21-01-2021, 01:23 AM
السلام عليكم ورحمة الله وبركاته.
عند كسر برنامج غالبا ما أجد نفسي أتبع أنماطا متقاربة، على سبيل المثال أبحث عن استيراد البرنامج من الرجيستري أو كتابة ملف أو الاتصال بالانترنت أو غيره، وفي أسوأ الأحوال قد أتتبع دالة DispatchMessage (في برامج النوافذ) مع رسالة WM_LBUTTONUP حتي أصل إلى ما قد يساعد.
الأداة التي أقترحها فكرتها بسيطة، تسجل استدعاءات الدوال "المهمة"، و"المهمة" هنا تعني قائمة مسبقة من الدوال يمكن للمستخدم اختيارها (أو إضافة ما يشاء حتى)، وتمكّن من اختيار ال Thread أو تقسهما بناء على ذلك.
قد تكون الأداة على شكل loader و dll يحقن في البرنامج ويتواصل ال dll مع loader عن طريق خادم محلي أو عن طريق قراءة مباشرة من الloader لذاكرة محجوزة من قِبل الdll.
الأداة فكرتها طبيعية وأعتقد من المنطقي وجود مثلها لكني لا أعلم.
لعلها أيضا فرصة طيبة لمن أراد أن يطبق ما تعلمه من برمجة ولمن أراد تجربة بيئة عمل جماعي، وقد تساعد على توضيح بعض المفاهيم المتعلقة بالهندسة العكسية.
عند كسر برنامج غالبا ما أجد نفسي أتبع أنماطا متقاربة، على سبيل المثال أبحث عن استيراد البرنامج من الرجيستري أو كتابة ملف أو الاتصال بالانترنت أو غيره، وفي أسوأ الأحوال قد أتتبع دالة DispatchMessage (في برامج النوافذ) مع رسالة WM_LBUTTONUP حتي أصل إلى ما قد يساعد.
الأداة التي أقترحها فكرتها بسيطة، تسجل استدعاءات الدوال "المهمة"، و"المهمة" هنا تعني قائمة مسبقة من الدوال يمكن للمستخدم اختيارها (أو إضافة ما يشاء حتى)، وتمكّن من اختيار ال Thread أو تقسهما بناء على ذلك.
قد تكون الأداة على شكل loader و dll يحقن في البرنامج ويتواصل ال dll مع loader عن طريق خادم محلي أو عن طريق قراءة مباشرة من الloader لذاكرة محجوزة من قِبل الdll.
الأداة فكرتها طبيعية وأعتقد من المنطقي وجود مثلها لكني لا أعلم.
لعلها أيضا فرصة طيبة لمن أراد أن يطبق ما تعلمه من برمجة ولمن أراد تجربة بيئة عمل جماعي، وقد تساعد على توضيح بعض المفاهيم المتعلقة بالهندسة العكسية.