الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

هل يمكن جعل الملفات الديناميكيه dll لا تعمل الا مع برنامجي فقط

بدأه hosamhamdy في 3 فبراير 2013 · 4 رد · 967 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

هل يمكن جعل الملفات الديناميكيه dll لا تعمل الا مع برنامجي فقط بمعني انني قمت بتصميم ملف dll ولكني اريد استخدامه بكلمة سر تستخدم في الكود البرمجي لبرنامجي

#2

تستطيع بأبسط شكل

تمرير كلمة مرور أو قيمة معيّنة إلى التوابع الموجودة في الملف

وهناك يتم تنفيذ خوارزمية معينة للتحقق من تطابقها وحينها يتم تنفيذ التابع أو يعيد قيم فارغة.

 

مثلاً:

مرر كلمة طويلة ومعقّدة

في التوابع قم بحساب MD5 hash لهذه الكلمة وقم بمطابقتها مع قيمة مخزنة مسبقاً في الملف.

 

من يحصل على الملف فقط لا يمكنه الحصول على الكلمة التي تقوم بتمريرها لأنه من الصعب الوصول إلى الكلمة من الـ hash إن كان طويلاً ومعقداً

 

الحل الوحيد لتجاوز هذه الحماية هي بالحصول على الكلمة من برنامجك أو التعديل على ملف DLL لتجاوز التحقق.

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#3

شكرا على هذه المعلومه القيمة

#4

حاولت اكثر من مرة تنفيذ هذه الطريقة ولكن لم استطع هل يمكن وضع مثال

#5

السلام عليكم ورحمة الله وبركاته

 

قمت بعمل مثال على السريع لإحدى الأفكار التي خطرت لي بهذا الخصوص

 

وهي أن تتضمن المكتبة صنف مسؤول عن التخويل فيه خاصيتان الأولى قيمة مفتاح والأخرى قيمة استجابة لهذا المفتاح و منهج يقوم بالمطابقة فإن اختلت يرمي استثناء مولدا خطأ عدم توفر نقطة دخول

 

ولا شك أي استدعاء لمكونات المكتبة بدون معرفة معادلة المطابقة سيرمي خطأ ولن يستطيع تشغيلها إلا هاكر

 

أما في حال قمت أنت باستخدام المكتبة فيجب عليك أولا توليد مفتاح عشوائي وتحسب استجابته من خلال نفس المعادلة وتضعهما في خصائص صنف التخويل

ومن ثم يتم استدعاء منهج فحص التخويل في مشيدات الأصناف و المناهج الستاتيكية وعندما تتم المطابقة يسير العمل بشكل طبيعي

 

كان بالإمكان وضع قيمة واحدة ثابتة وفحصها كما تفضل الإخوة ولكن حتى نصعب الموضوع على الهاكر قليلا :)

 

المكتبة :

 

using System;
using System.Collections.Generic;
using System.Linq;

namespace PrivateDllLib
{
    public class PrivateDll
    {
        public PrivateDll()
        {
            Authorizer.CheckAuthorization();
        }

        public void Method1()
        {
            // Do some thing.
        }


        public void Method2()
        {
            // Do some thing.
        }

        public static bool Method3()
        {
            Authorizer.CheckAuthorization();
            // Do some thing.
            return true;
        }
    }

    public class Authorizer
    {
        public static int Key { get; set; }
        public static int ResponseKey { get; set; }

        public static void CheckAuthorization()
        {
            int tmp = (((Key + 23) * 7) - 11) * 2;
            if (ResponseKey != tmp)
                throw new EntryPointNotFoundException();
        }

    }
}

 

و الاستدعاء من قبل تطبيقك

 

using PrivateDllLib;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows;

namespace YourApplication
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            int Key = new Random(1000).Next(1000);
            Authorizer.Key = Key;
            Authorizer.ResponseKey = (((Key + 23) * 7) - 11) * 2;

        }

        private void btnCallStaticMethod_Click(object sender, RoutedEventArgs e)
        {
            if (PrivateDll.Method3())
                MessageBox.Show("Method3 has return true.");
        }

        private void btnCreateInstnce_Click(object sender, RoutedEventArgs e)
        {
            PrivateDll pd = new PrivateDll();
            if (pd != null)
                MessageBox.Show("Instance has created.");
            pd.Method1();
        }

    }
}

 

أما من يستدعيها بدون وضع القيم وفق المعادلة الخاصة فستولد خطأ ويقف ويتجاوز التنفيذ داخل المكتبة

 

 

المثال كاملا

 

PrivateDll.rar

ما أقبـح المعصية ، تذهب لذتها ويبقى إثمها ... ومأ أحسن الطاعة ، تذهب مشقتها ويبقى ثوابها

كل نعيم دون الجنة غرور ... وكـل شقـاء دون النـار سرور

الدورة التطبيقية لتعليم التصميم بالإليستريتور

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…