You are on page 1of 562

2nd

Edition
AT4RE
1
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انفهرس‬ ‫انعكسي ‪ :‬خطىج إنى األياو‪.‬‬
‫ج‬ ‫انهُذسح‬

‫الفَرس‬

‫‪2‬‬ ‫انفهرس‬

‫‪16‬‬ ‫إهذاء ‪...‬‬

‫‪17‬‬ ‫انًمذيح‬

‫‪19‬‬ ‫كيف ذسرعًم انكراب؟‬

‫‪21‬‬ ‫انثاب األول‪ :‬أفكار ودهىل يرمذيح في ‪OLLYDBG‬‬

‫‪22‬‬ ‫كيف يُمّخ ‪ OLLYDBG‬انثرايج ؟‬

‫‪22‬‬ ‫‪ .1‬أوًال ‪ :‬ضشح انذأال انًسزؼًهخ فٌ انذسط‬


‫‪22‬‬ ‫‪CreateProcess .1.1‬‬
‫‪24‬‬ ‫‪GetStartupInfo‬‬ ‫‪1.2.‬‬
‫‪24‬‬ ‫‪ReadProcessMemory‬‬ ‫‪.1.3‬‬
‫‪25‬‬ ‫‪WriteProcessMemory‬‬ ‫‪.1.4‬‬
‫‪26‬‬ ‫‪CloseHandle‬‬ ‫‪.1.5‬‬
‫‪26‬‬ ‫‪ZeroMemory‬‬ ‫‪.1.6‬‬
‫‪27‬‬ ‫‪SetThreadContext‬‬ ‫‪.1.7‬‬
‫‪27‬‬ ‫‪GetOpenFileName‬‬ ‫‪.1.8‬‬
‫‪28‬‬ ‫‪WaitForDebugEvent‬‬ ‫‪.1.9‬‬
‫‪33‬‬ ‫‪ContinueDebugEvent .1.10‬‬
‫‪34‬‬ ‫‪DebugActiveProcess .1.11‬‬

‫‪34‬‬ ‫‪ .2‬باَب ًال ‪ :‬دهمخ انزنمَخ‬


‫‪34‬‬ ‫‪ .2.1‬طش‪ٝ‬قح ػَو ‪ Debug‬ىثشّاٍج‬

‫‪38‬‬ ‫‪ .3‬بنلب ًال ‪ :‬كَفَخ أضغ امطخ رولف ‪ BP‬ين اوع اسزلنبء فٌ انزؼهًََخ ‪ int3‬؟‬
‫‪38‬‬ ‫‪ .3.1‬م‪ٞ‬ف‪ٞ‬ح ٗضغ ّقطح اىر٘قف ٗإصاىرٖا ف‪ ٜ‬اىثشّاٍج ف‪ ٜ‬ديقح اىرْق‪ٞ‬خ‬
‫‪41‬‬ ‫ثاىثا‪ٍ :‬ثاه ذطث‪ٞ‬ق‪ٍ ٜ‬رقذً‬ ‫‪3.2.‬‬

‫‪2009‬‬ ‫‪2‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انفهرس‬ ‫انعكسي ‪ :‬خطىج إنى األياو‪.‬‬
‫ج‬ ‫انهُذسح‬

‫‪48‬‬ ‫انسكريثريُغ في ‪OLLYDBG‬‬

‫‪48‬‬ ‫‪ .4‬انًمذيخ‬

‫‪48‬‬ ‫‪ .5‬سبسَبد ٍجت يؼشفزهب‬

‫‪49‬‬ ‫‪ .6‬انزؼهَمبد‬

‫‪49‬‬ ‫‪ .7‬انجزاراد‬

‫‪49‬‬ ‫‪ .8‬أايش ‪OdbgScript‬‬


‫‪49‬‬ ‫‪ .8.1‬اىػ‪ٞ‬غح اىؼاٍح‬
‫‪49‬‬ ‫‪ .8.2‬اىرؼي‪َٞ‬اخ‬

‫‪67‬‬ ‫‪ .9‬يهذك‬
‫‪67‬‬ ‫ذطث‪ٞ‬ق ػَي‪ٜ‬‬ ‫‪9.1.‬‬
‫‪69‬‬ ‫‪Vcodes‬‬ ‫‪.9.2‬‬

‫‪70‬‬ ‫فك دًايح ‪ PC-GUARD FOR WIN32‬اإلصذار رلى ‪5.00 :‬‬

‫‪70‬‬ ‫‪ .1‬انًمذيخ‬

‫‪71‬‬ ‫‪ .2‬فك دًبٍخ انًهف انزنفَزً ‪PCGWIN32.exe‬‬


‫‪71‬‬ ‫‪ .2.1‬فذع اىثشّاٍج‬
‫‪71‬‬ ‫‪ .2.2‬اىـ ‪Loader‬‬
‫‪73‬‬ ‫‪ .2.3‬فل اىذَا‪ٝ‬ح‬

‫‪82‬‬ ‫‪ 3.‬فك دًبٍخ يهف انًكزجخ انذٍنبيَكَخ ‪PCGW32.DLL‬‬


‫‪82‬‬ ‫‪ .3.1‬فذع ٗدساسح اىَيف‬
‫‪83‬‬ ‫‪ .3.2‬دفع اىثشّاٍج ٍِ اىزامشج ‪Dump‬‬
‫‪84‬‬ ‫‪ 3.3.‬إػادج تْاء ‪ Imports‬تاسرؼَاه تشّاٍج ‪Import REConstructor‬‬

‫‪85‬‬ ‫‪ .4‬انخبرًخ‬

‫‪86‬‬ ‫عًم هُذسح عكسيح نًكىَاخ دنفي‬

‫‪86‬‬ ‫‪ .1‬األهذاف‬

‫‪86‬‬ ‫‪ .2‬يمذيخ‬
‫‪86‬‬ ‫‪ .2.1‬غ‪ٞ‬غح اىَنّ٘اخ اىَسرؼَيح‬
‫‪87‬‬ ‫‪ .2.2‬األدٗاخ اىَسرخذٍح‬

‫‪87‬‬ ‫‪ .3‬انهنذسخ انؼكسَخ نههذف‬

‫‪2009‬‬ ‫‪3‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انفهرس‬ ‫انعكسي ‪ :‬خطىج إنى األياو‪.‬‬
‫ج‬ ‫انهُذسح‬

‫‪87‬‬ ‫‪ .3.1‬اىرذي‪ٞ‬و األٗى‪ٜ‬‬


‫‪90‬‬ ‫‪ .3.2‬اىرْق‪ٞ‬خ ٗاىررثغ‬
‫‪91‬‬ ‫‪ .3.3‬اىذػــ٘ه ػي‪ٍ ٚ‬ؼيٍ٘اخ اىرسج‪ٞ‬ـو ٗػَو ٍ٘ىذ ٍفاذ‪ٞ‬خ ‪Serial Fishing + Keygening‬‬
‫‪92‬‬ ‫‪ 3.4.‬اىرؼذ‪ٝ‬ــو فـ‪ ٜ‬اىَنـُ٘ تاىــ ‪Patching‬‬

‫‪97‬‬ ‫تريجح إضافح نـ ‪OLLYDBG‬‬

‫‪97‬‬ ‫‪ 1.‬يمذيخ‬

‫‪98‬‬ ‫‪ .2‬إاطبء يطشأع جدٍذ ين اوع "‪"Dynamic link library‬‬

‫‪98‬‬ ‫‪ .3‬إاطبء انذانزَن _‪ ODBG_Plugindata‬أ_‪ ODBG_Plugininit‬أرػذٍشهًب‬

‫‪105‬‬ ‫انثاب انثاَي‪ :‬انرعايم يع انذىاياخ انًرمذيح‬

‫‪106‬‬ ‫كسر ترَايج يشفر تـ ‪ ASPROTECT SKE‬تطرق يخرهفح‬

‫‪107‬‬ ‫‪ .1‬أو ‪ :‬رذهَم انجشابيج‬


‫‪110‬‬ ‫‪ .1.1‬اىخط٘ج األٗى‪ : ٚ‬فل اىثشّاٍج اىضذ‪ٞ‬ح‬
‫‪112‬‬ ‫‪ .1.2‬اىخط٘ج اىثاّ‪ٞ‬ح ‪ :‬ذْق‪ٞ‬خ اىثشّاٍج‬

‫‪114‬‬ ‫‪ .2‬ػًم ‪ crack‬غبنخ نماطش‬


‫‪114‬‬ ‫‪DUP 2.19‬‬ ‫‪ 2.1.‬اىطش‪ٝ‬قح األٗى‪ : ٚ‬غْغ تاذص تاسرخذاً‬
‫‪115‬‬ ‫‪ 2.2.‬اىطش‪ٝ‬قح اىثاّ‪ٞ‬ح ‪ :‬ػَو ‪InlinePatch‬‬
‫‪118‬‬ ‫‪ .2.3‬اىطش‪ٝ‬قح اىثاىثح ‪ :‬غْغ ى٘دس تاسرخذاً تشّاٍج ‪DUP 2.17‬‬

‫‪120‬‬ ‫انثاب انثانث‪ :‬انهاشيُغ وخىارزيياخ انرشفير‬

‫‪121‬‬ ‫يمذيح في انهاشيُغ وخىارزيياخ انرشفير ويكرثاذها‬

‫‪121‬‬ ‫‪ .1‬أوًال ‪ :‬نًذخ ػن يكزجبد انزطفَش أكَفَخ اسزخذايهب فٌ نغبد انجشيجخ‬


‫‪121‬‬ ‫‪ .1.3‬اىَفًٖ٘ األٗه ‪ :‬خ٘اسصٍ‪ٞ‬ح اىرطف‪ٞ‬ش‬
‫‪122‬‬ ‫‪ .1.4‬اىَفًٖ٘ اىثاّ‪ : ٜ‬اىٖاش‬
‫‪122‬‬ ‫‪ .1.5‬اىَنرثاخ اىَسرخذٍح ف‪ ٜ‬خ٘اسصٍ‪ٞ‬اخ اىرطف‪ٞ‬ش ٗاىٖاض‪ْٞ‬غ‬
‫‪122‬‬ ‫‪ .1.6‬اىَنرثاخ ٗىغاخ اىثشٍجح‬

‫‪124‬‬ ‫‪ .2‬باَب ًال ‪ :‬انزذهَم انؼبو نهزًشٍن‬

‫‪125‬‬ ‫‪ .3‬بنلب ًال ‪ :‬رذهَم انكود ين خالل ثشابيج ‪OllyDbg‬‬

‫‪130‬‬ ‫‪ .4‬ساثؼب ًال ‪ :‬رذهَم خواسصيَخ دسبة انسشٍبل نالسى‬

‫‪2009‬‬ ‫‪4‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انفهرس‬ ‫انعكسي ‪ :‬خطىج إنى األياو‪.‬‬
‫ج‬ ‫انهُذسح‬

‫‪130‬‬ ‫‪ .5‬خبيسب ًال ‪ :‬كزبثخ انكَجن‬

‫‪132‬‬ ‫خىارزييح انجًم‬

‫‪132‬‬ ‫‪ .1‬يمذيخ‬

‫‪132‬‬ ‫‪ .2‬أوًال ‪ :‬نًذخ يوجضح ػن خواسصيَخ انزصفَش ‪ElGamal‬‬


‫‪132‬‬ ‫‪ٍ .2.1‬ؼيٍ٘اخ ػاٍح‬
‫‪133‬‬ ‫‪ .2.2‬ضشح ث٘اتد اىخ٘اسصٍ‪ٞ‬ح اىؼاٍح ٗاىخاغح‬

‫‪134‬‬ ‫‪ .3‬باَب ًال ‪ :‬نًذخ يوجضح ػن يكزجخ ‪FGInt‬‬


‫‪134‬‬ ‫‪ٍ .3.1‬ؼيٍ٘اخ ػاٍح‬
‫‪134‬‬ ‫‪ .3.2‬اىرؼشف ػي‪ ٚ‬إجشائ‪ٞ‬اخ اى٘دذج ‪FGIntElGamal.pas‬‬

‫‪135‬‬ ‫‪ .4‬بنلب ًال ‪ :‬انزذهَم انؼبو نهزًشٍن‬

‫‪136‬‬ ‫‪ .5‬ساثؼب ‪ :‬رذهَم انكود ين خالل ثشابيج ‪OllyDbg‬‬

‫‪138‬‬ ‫‪ .6‬خبيسب‪ :‬رذهَم انلواثذ أإٍجبد انًفزبح انخبظ ثبنخواسصيَخ‬


‫‪139‬‬ ‫‪ .6.1‬اىطش‪ٝ‬قح األٗى‪ : ٚ‬اسرخذاً تشّاٍج ‪DLPTool‬‬
‫‪139‬‬ ‫‪ .6.2‬اىطش‪ٝ‬قح اىثاّ‪ٞ‬ح ‪ :‬اسرخذاً اىَ٘قغ‬

‫‪140‬‬ ‫‪ .7‬سبدسب ًال ‪ :‬كزبثخ انكَجن‬

‫‪141‬‬ ‫‪ .8‬كهًخ خزبيَخ‬

‫‪142‬‬ ‫اسرغالل خىارزييح‪ RSA‬في يكرثح ‪RSACRYPT‬‬

‫‪142‬‬ ‫‪ .1‬يمذيخ أرؼبسٍف‬


‫‪142‬‬ ‫‪ .1.1‬ىَذح ػِ خ٘اسصٍ‪ٞ‬ح ‪RSA‬‬
‫‪142‬‬ ‫‪ .1.2‬اىرطف‪ٞ‬ش غ‪ٞ‬ش اىَرْاظش‬

‫‪142‬‬ ‫‪ .2‬يلبل رطجَمٌ‬

‫‪153‬‬ ‫اسرغالل خىارزييح انـ ‪ RSA‬في يكرثح ‪FGINTRSA‬‬

‫‪153‬‬ ‫‪ 1.‬انًمذيخ‬

‫‪153‬‬ ‫‪ .2‬فذع انجشابيج‬

‫‪154‬‬ ‫‪ .3‬كسش انجشابيج‬

‫‪162‬‬ ‫‪ .4‬انًشفمبد‬

‫‪2009‬‬ ‫‪5‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انفهرس‬ ‫انعكسي ‪ :‬خطىج إنى األياو‪.‬‬
‫ج‬ ‫انهُذسح‬

‫‪163‬‬ ‫انثاب انراتع‪ :‬أفكار ودهىل تريجيح في انهُذسح انعكسيح‬

‫‪163‬‬ ‫ريجح ‪ PATCHER‬تاألسًثهي‬


‫طريمح ب‬

‫‪163‬‬ ‫‪ .1‬يمذيخ‬

‫‪164‬‬ ‫‪ .2‬يشادم انذسط‬


‫‪164‬‬ ‫‪ .2.1‬دساب ‪offset‬‬
‫‪166‬‬ ‫‪ .2.2‬اىذػ٘ه ػي‪ ٚ‬قاىة ٗذؼذ‪ٝ‬ئ ت٘اسطح ‪RadAsm‬‬
‫‪168‬‬ ‫‪ .2.3‬اىرؼشف ػي‪ ٚ‬اىذٗاه األساس‪ٞ‬ح اىَسرؼَيح ف‪ ٜ‬تشٍجح ‪Patch‬‬
‫‪170‬‬ ‫‪ .2.4‬اىطشٗع ف‪ ٜ‬تشٍجح اىـ ‪Patch‬‬
‫‪173‬‬ ‫‪ .2.5‬ذجشتح اىـ ‪Patch‬‬
‫‪174‬‬ ‫‪ .2.6‬إضافح ذذس‪ْٞ‬اخ ىيـ ‪Patch‬‬

‫‪178‬‬ ‫طريمح تريجح ‪ CRACKME‬و‪ KEYGENME‬تاألسًثهي واسرغالل انخىارزيياخ‬

‫‪179‬‬ ‫‪ .1‬يوجض فٌ انذًبٍخ أدذأدهب‬

‫‪179‬‬ ‫‪ .2‬دساسخ اظشٍخ نـ ‪CrackMe‬‬

‫‪180‬‬ ‫‪ .3‬دساسخ رطجَمخ نـ ‪CrackME‬‬


‫‪180‬‬ ‫اىفنشج األٗى‪ : ٚ‬اىْافزج اىَضػج ج‬ ‫‪.3.1‬‬
‫‪183‬‬ ‫اىفنشج اىثاّ‪ٞ‬ح ‪ :‬ػذً ذفؼ‪ٞ‬و األصساس‬ ‫‪.3.2‬‬
‫‪185‬‬ ‫اىفنشج اىثاىثح ‪ :‬إضافح ٍؤقد ‪ٝ‬غيق اىثشّاٍج ف‪ ٜ‬صٍِ ٍؼ‪ِٞ‬‬ ‫‪.3.3‬‬
‫‪186‬‬ ‫اىفنشج اىشاتؼح ‪ :‬دَا‪ٝ‬ح اىسش‪ٝ‬اه‬ ‫‪.3.4‬‬
‫‪189‬‬ ‫اىفنشج اىخاٍسح ‪ :‬اىثا‪ٝ‬راخ اىَسشٗقح‬ ‫‪.3.5‬‬
‫‪195‬‬ ‫اىفنشج اىسادسح ‪ :‬دَا‪ٝ‬ح اىن٘د تأدذ اىخ٘اسصٍ‪ٞ‬اخ ( سْرؼاٍو ٍغ ‪) CRC32‬‬ ‫‪.3.6‬‬

‫‪198‬‬ ‫‪ .4‬دساسخ اظشٍخ نـ ‪KeyGenME‬‬

‫‪198‬‬ ‫‪ .5‬دساسخ رطجَمَخ نـ ‪ KeyGenME‬ةسَظ‬


‫‪198‬‬ ‫‪ 5.1.‬اىَثاه األٗه ‪ :‬اىَسر٘‪ ٙ‬ذذد اىػفش‬
‫‪200‬‬ ‫‪ .5.2‬اىَثاه اىثاّ‪ : ٜ‬اىَسر٘‪ ٙ‬األٗه‬
‫‪201‬‬ ‫‪ .5.3‬اىَثاه اىثاىث ‪ :‬اسرؼَاه اسٌ اىجٖاص ف‪ ٜ‬ذ٘ى‪ٞ‬ذ اىسش‪ٝ‬اه‬

‫‪204‬‬ ‫‪ .6‬يفهوو ‪ KeyFileME‬أيلبل‬

‫‪205‬‬ ‫‪ .7‬خواسصيَبد انزطفَش أانهبش‬


‫‪205‬‬ ‫‪ .7.1‬خ٘اسصٍ‪ٞ‬اخ اىرطف‪ٞ‬ش‬
‫‪206‬‬ ‫‪ٍ .7.2‬ثاه ىخ٘اسصٍ‪ٞ‬ح اىرطف‪ٞ‬ش‬
‫‪209‬‬ ‫‪ .7.3‬خ٘اسصٍ‪ٞ‬اخ اىٖاش‬

‫‪2009‬‬ ‫‪6‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انفهرس‬ ‫انعكسي ‪ :‬خطىج إنى األياو‪.‬‬
‫ج‬ ‫انهُذسح‬

‫‪211‬‬ ‫تريجح ‪ SEARCH AND REPLACE‬تهغح ‪DELPHI‬‬

‫‪211‬‬ ‫‪ 1.‬انًمذيخ‬
‫‪212‬‬ ‫‪ .1.1‬اىخ٘اسصٍ‪ٞ‬اخ ٗاإلجشاءاخ‬
‫‪212‬‬ ‫‪ .1.2‬غذح اىق‪ ٌٞ‬اىر‪ّ ٜ‬ثذث ػْٖا ٕو ٕ‪ ٜ‬ق‪Hexadecimal ٌٞ‬‬
‫‪213‬‬ ‫ذطاتق ط٘ه اىق‪ ٌٞ‬اىقذ‪َٝ‬ح ٗاىجد‪ٝ‬ذج‬ ‫‪1.3.‬‬
‫‪213‬‬ ‫ػَو ّسخح ادر‪ٞ‬اط‪ٞ‬ح ىيَيف قثو اىرغ‪ٞٞ‬ش ف‪ ٜ‬اىق‪ٌٞ‬‬ ‫‪.1.4‬‬
‫‪213‬‬ ‫اىرأمذ ٍِ أُ اىَيف قذ ذٌ ذغ‪ٞٞ‬شٓ ٍِ قثو‬ ‫‪.1.5‬‬
‫‪214‬‬ ‫خ٘اسصٍ‪ٞ‬ح اىرذ٘‪ٝ‬و‬ ‫‪.1.6‬‬
‫‪214‬‬ ‫خ٘اسصٍ‪ٞ‬ح اىثذث‬ ‫‪.1.7‬‬
‫‪215‬‬ ‫خ٘اسصٍ‪ٞ‬ح اىرغ‪ٞٞ‬ش‬ ‫‪.1.8‬‬

‫‪216‬‬ ‫‪ .2‬رطجَك ػًهٌ‬


‫‪216‬‬ ‫‪ .2.1‬اىثذث‬
‫‪217‬‬ ‫‪ .2.2‬اىرغ‪ٞٞ‬ش‬

‫‪217‬‬ ‫‪ .3‬انخبرًخ‬

‫‪218‬‬ ‫اسرعًال ‪ RDTSC‬نكشف انًُمخ‬

‫‪218‬‬ ‫‪ .1‬يمذيخ‪:‬‬
‫‪218‬‬ ‫‪ 1.1.‬األٕذاف‬
‫‪218‬‬ ‫‪ .1.2‬ذؼاس‪ٝ‬ف ٍٗرفشقاخ‬
‫‪219‬‬ ‫‪ .1.3‬اىثذا‪ٝ‬ح‬

‫‪220‬‬ ‫‪ .2‬انؼًم انزطجَمٌ‬


‫‪220‬‬ ‫‪ .2.1‬تشٍجح خ٘اسصٍ‪ٞ‬ح ‪ RDTSC‬ف‪ ٜ‬دىف‪ٜ‬‬
‫‪221‬‬ ‫‪ .2.2‬اىررثغ ف‪ ٜ‬اىَْقخ‬
‫‪223‬‬ ‫‪ .2.3‬اىَقاسّح ت‪ ِٞ‬اىْرائج‬

‫‪224‬‬ ‫‪ 3.‬انخبرًخ‬

‫‪225‬‬ ‫كشف درايفر ‪ ADVANCED OLLYDBG‬نكشف انًُمخ‬

‫‪225‬‬ ‫‪ .1‬يمذيخ‪:‬‬
‫‪225‬‬ ‫‪ 1.1.‬األٕذاف‬
‫‪225‬‬ ‫‪ 1.2.‬ذؼاس‪ٝ‬ف‬
‫‪226‬‬ ‫‪ .1.3‬اىثذا‪ٝ‬ح‬

‫‪228‬‬ ‫‪ .2‬انجشيجخ‬

‫‪230‬‬ ‫‪ .3‬رنمَخ انزًشٍن‬

‫‪2009‬‬ ‫‪7‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انفهرس‬ ‫انعكسي ‪ :‬خطىج إنى األياو‪.‬‬
‫ج‬ ‫انهُذسح‬

‫‪231‬‬ ‫‪ .4‬انخبرًخ‬

‫‪232‬‬ ‫كيفيح تريجح ‪ UNPACKER‬تسيط‬

‫‪232‬‬ ‫‪ .1‬انًمذيخ‬

‫‪232‬‬ ‫‪ .2‬سبسَبد ٍجت يؼشفزهب‬


‫‪233‬‬ ‫اىـ ‪OEP JMP‬‬ ‫‪ 2.1.‬اى٘غ٘ه إى‪ٚ‬‬
‫‪233‬‬ ‫‪ٗ 2.2.‬ضغ ّقطح ذ٘قف ػي‪ ٚ‬اىـ ‪OEP JMP‬‬
‫‪236‬‬ ‫‪ .2.3‬اىذػ٘ه ػي‪ ٚ‬اىـ ‪OEP‬‬
‫‪237‬‬ ‫‪ .2.4‬ذجَ‪ٞ‬غ ٍيفاخ اىـ ‪ DLL‬داخو اىـ ‪Unpacker‬‬

‫‪239‬‬ ‫‪HANDLING DEBUG REGISTERS‬‬

‫‪239‬‬ ‫‪ .1‬يمذيخ‬

‫‪241‬‬ ‫‪ .2‬انزطجَك انؼًهٌ‬


‫‪242‬‬ ‫‪ .2.1‬م‪ٞ‬ف ّضغ ‪ HWBP‬؟‬
‫‪242‬‬ ‫‪ٍ .2.2‬ا ٕ٘ اىـ ‪ Thread Context‬؟‬

‫‪246‬‬ ‫‪ .3‬يلبل ػًهٌ‬

‫‪248‬‬ ‫إيجاد انسريال تطريمح انهجىو انعشىائي‬

‫‪248‬‬ ‫‪ .1‬أوًال‪ :‬يمذيخ ػن انهجوو انؼطوائٌ‪Introduction To Brute Force Attack‬‬

‫‪250‬‬ ‫‪ .2‬باَب ًال‪ :‬رذهَم انكود ‪Code Analysis‬‬

‫‪254‬‬ ‫‪ .3‬بنلب ًال‪ :‬رذهَم خواسصيَخ إٍجبد انسشٍبل‬

‫‪255‬‬ ‫‪ .4‬ساثؼب ًال‪ :‬طشائك انزفكَش فٌ كزبثخ انكَجن ‪Brute Forcer‬‬

‫‪255‬‬ ‫‪ .5‬انخبرًخ‬

‫‪256‬‬ ‫طرق انـ ‪ ANTI RCE‬ووسائم انرغهة عهيها‬

‫‪256‬‬ ‫‪ .1‬يمذيخ‬

‫‪257‬‬ ‫‪ .2‬أسبئم كطف انًنمخ ‪DEBUGGER DETECTION‬‬


‫‪257‬‬ ‫()‪PEB.BeingDebugged Flag: IsDebuggerPresent‬‬ ‫‪.2.1‬‬
‫‪258‬‬ ‫‪PEB.NtGlobalFlag, Heap Flags‬‬ ‫‪2.2.‬‬
‫‪263‬‬ ‫‪Debugger Interrupts‬‬ ‫‪2.3.‬‬
‫‪264‬‬ ‫‪Timing Checks‬‬ ‫‪2.4.‬‬

‫‪2009‬‬ ‫‪8‬‬
AT4RE :‫انفريك انعرتي نههُذسح انعكسيح‬ ‫انفهرس‬ .‫ خطىج إنى األياو‬: ‫انعكسي‬
‫ج‬ ‫انهُذسح‬

265 SeDebugPrivilege .2.5


266 Parent Process .2.6
268 DebugObject: NtQueryObject .2.7
269 Debugger Window .2.8
271 Debugger Process .2.9
271 Device Drivers .2.10
272 OllyDbg: Guard Pages .2.11

274 Breakpoint & Patching Detection ‫ أسبئم كطف امبط انزولف أانزؼذٍم ػهي انجشايج‬.3
274 .3.1
Software Breakpoint Detection
274 Hardware Breakpoint Detection .3.2
276 Patching Detection via Code Checksum Calculation .3.3

277 ANTI-ANALYSIS ‫ أسبئم رطوٍه انكود أينغ رذهَهه‬.4


277 .4.1
Encryption and Compression
279 Garbage Code and Code Permutation .4.2
282 Anti-Disassembly .4.3

284 ADVANCED AND OTHER TECHNIQUES ‫ أسبئم خشً يزمذيخ‬.5


284 Process Injection .5.1
286 Debugger Blocker .5.2
287 TLS Callbacks .5.3
289 Stolen Bytes .5.4
291 API Redirection .5.5
293 Multi-Threaded Packers .5.6
293 Virtual Machines .5.7
295 Anti-Dumping .5.8

296 ‫ يشاجغ هبيخ‬6.

297 ‫ ذذهيم تريجياخ دوخ َد‬:‫انثاب انخايس‬

298 )1( ‫ذذهيم ذطثيماخ انذوخ َد‬

299 Introduction to .net applications ‫ يمذيخ ػن رطجَمبد انذأد اذ‬:‫ أوًال‬1.

300 Reflector ‫ رهًَذبد ػن ثشابيج‬:‫باَب ًال‬ 2.


300 ‫اس ىغح اىثشٍجح‬ٞ‫اخر‬ 2.1.
301 ‫اساخ اىثذث‬ٞ‫خ‬ 2.2.
301 ‫اساخ اىثشّاٍج‬ٞ‫خ‬ 2.3.
302 Analyze .. Used By .. Go to Member ‫ضج‬َٞ‫اى‬ 2.4.

2009 9
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انفهرس‬ ‫انعكسي ‪ :‬خطىج إنى األياو‪.‬‬
‫ج‬ ‫انهُذسح‬

‫‪304‬‬ ‫بنلب ًال‪ :‬يمذيخ ػن اإلضبفخ ‪Deblector‬‬ ‫‪3.‬‬


‫‪305‬‬ ‫اىْافزج ‪IL View‬‬ ‫‪3.1.‬‬
‫‪306‬‬ ‫اىْافزٓ ‪Disassembly‬‬ ‫‪3.2.‬‬
‫‪306‬‬ ‫اىْافزج ‪Auto‬‬ ‫‪3.3.‬‬
‫‪306‬‬ ‫اىْافزٓ ‪Moduels‬‬ ‫‪3.4.‬‬

‫‪306‬‬ ‫‪ 4.‬ساثؼب ًال‪ :‬رذهَم انجشابيج انهذف أإٍجبد انسشٍبل‬


‫‪307‬‬ ‫اىرذي‪ٞ‬و األٗى‪ٜ‬‬ ‫‪4.1.‬‬
‫‪307‬‬ ‫ذذي‪ٞ‬و اىذاىح ‪GetValue‬‬ ‫‪4.2.‬‬

‫‪315‬‬ ‫‪ 5.‬خبيسب‪ :‬ادزًبود انسشٍبود ضًن انكَجن‬

‫‪317‬‬ ‫ذذهيم ذطثيماخ انذوخ َد (‪)2‬‬

‫‪317‬‬ ‫‪ .1‬يمذيخ أ اٍضبدبد‬


‫‪317‬‬ ‫‪ .1.1‬أٗ ًالو‪ :‬ذؼذ‪ٝ‬و ‪ٗ Assembly Name‬دفع اىَيف اىَؼذه‬
‫‪320‬‬ ‫‪ .1.2‬ثاّ‪ً ٞ‬الا‪ :‬إػذاداخ األداج ‪Reflexil‬‬
‫‪320‬‬ ‫‪ .1.3‬ثاىث ًالا ‪ :‬اىْافزج ‪Method definition‬‬
‫‪320‬‬ ‫‪ .1.4‬اىػفذح ‪Instructions :‬‬
‫‪320‬‬ ‫‪ .1.5‬اىػفذح ‪Variables :‬‬

‫‪320‬‬ ‫‪ .2‬رًشٍن رطجَمٌ وسزغالل انػفذزَن‪Instructions & Variables :‬‬

‫‪330‬‬ ‫ذذهيم ذطثيماخ انذوخ َد (‪)3‬‬

‫‪331‬‬ ‫‪ .1‬أوًال‪ :‬رفؼَم انضس ‪Enable Me‬‬

‫‪332‬‬ ‫‪ .2‬باَب ًال‪ :‬رجبأص دذس انضس ‪Enable Me‬‬

‫‪332‬‬ ‫‪ .3‬بنلب ًال‪ :‬رجبأص انًشدهخ ‪Step 2‬‬

‫‪334‬‬ ‫‪ .4‬ساثؼب ًال‪ :‬رجبأص انًشدهخ ‪Step 3‬‬

‫‪337‬‬ ‫‪ .5‬خبيسب ًال‪ :‬رجبأص انذذس ‪Timer‬‬

‫‪337‬‬ ‫‪ .6‬سبدسب ًال‪ :‬إٍجبد انسشٍبل نهمسى ‪Serial Fishing‬‬

‫‪339‬‬ ‫‪ .7‬سبثؼب ًال‪ :‬ػًم كَجن نهمسى ‪ Advanced‬أضشح انـ ‪Brute Force Attack‬‬
‫‪339‬‬ ‫‪ .7.1‬دساسح اىن٘د‬
‫‪342‬‬ ‫‪ SHA .7.2‬تشٗخ ف٘سس‪ْٞ‬غ‬
‫‪351‬‬ ‫‪ .7.3‬مراتح اىن‪ٞ‬جِ‬

‫‪353‬‬ ‫أمثلة تطبيقية لكسر برامج دوت نت‬

‫‪2009‬‬ ‫‪10‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انفهرس‬ ‫انعكسي ‪ :‬خطىج إنى األياو‪.‬‬
‫ج‬ ‫انهُذسح‬

‫‪353‬‬ ‫‪ 1.‬إٍجبد انسشٍبل نزطجَمبد انذأد اذ ‪Serial-fishing in DotNet Targets :‬‬

‫‪358‬‬ ‫‪ 2.‬انجبرطَنغ فٌ رطجَمبد انذأد اذ ‪Patching DotNet Targets :‬‬

‫‪363‬‬ ‫‪ 3.‬ػًم كَجن نزطجَمبد انذأد اذ (‪Keygenning DotNet Targets) 1‬‬

‫‪366‬‬ ‫‪ 4.‬ػًم كَجن نزطجَمبد انذأد اذ ين خالل اسخ انكود أإغالده (‪Keygenning DotNet Targets ) 2‬‬

‫‪373‬‬ ‫انثاب انسادس‪ :‬ذذهيم ذطثيماخ انجىال‬

‫‪374‬‬ ‫كسر ذطثيماخ انجىال (‪) 1‬‬

‫‪374‬‬ ‫‪ .1‬يمذيخ‬

‫‪374‬‬ ‫‪ .2‬انخطوح األأني ‪ :‬رذسَن لذساد ‪IDA pro‬‬

‫‪376‬‬ ‫‪ .3‬انخطوح انلباَخ ‪ :‬اسزكطبف انجشابيج‬

‫‪380‬‬ ‫‪ .4‬انخطوح انلبنلخ ‪ :‬كسش انجشابيج‬

‫‪389‬‬ ‫كسر ذطثيماخ انجىال (‪) 2‬‬

‫‪389‬‬ ‫‪ 1.‬يمذيخ دول انًؼبنج أاظبو انزطغَم‬

‫‪390‬‬ ‫‪ 2.‬اخزشاق دًبٍخ انجوال أفزخ يجهذاد اننظبو‬

‫‪390‬‬ ‫‪ 3.‬طشٍمخ انؼًم فٌ هزا انذسط‬

‫‪390‬‬ ‫‪ 4.‬كسش رطجَمبد انجوال‬


‫‪390‬‬ ‫اىرطث‪ٞ‬ق األٗه‬ ‫‪4.1.‬‬
‫‪395‬‬ ‫اىرطث‪ٞ‬ق اىثاّ‪ٜ‬‬ ‫‪4.2.‬‬

‫‪399‬‬ ‫‪ 5.‬يشفمبد انذسط‬

‫‪399‬‬ ‫‪ 6.‬سأاثظ يفَذح نهًضٍذ ين انًؼهويبد دول يؼبنجبد ‪ ARM‬أاظبو انزطغَم ‪Symbian‬‬

‫‪400‬‬ ‫كسر ذطثيماخ ‪WINDOWS MOBILE‬‬

‫‪400‬‬ ‫‪ .1‬يمذيخ‬
‫‪400‬‬ ‫‪ .1.1‬اىَرطيثاخ‬
‫‪400‬‬ ‫ذؼي‪َٞ‬اخ ٍؼاىج ‪ARM‬‬ ‫‪1.2.‬‬

‫‪403‬‬ ‫‪ .2‬يذبكبح ػًم رطجَمبد انـ ‪ Pocket PC‬ػهي انكًجَورش‬

‫‪2009‬‬ ‫‪11‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انفهرس‬ ‫انعكسي ‪ :‬خطىج إنى األياو‪.‬‬
‫ج‬ ‫انهُذسح‬

‫‪408‬‬ ‫‪ 3.‬ػًم ‪ Debugger‬ثبسزخذاو ‪ Microsoft Visual C++ 2005‬أ‪Emulator‬‬

‫‪414‬‬ ‫‪ 4.‬ػًم ‪ debbuge‬ثبسزخذاو ‪ IDA‬أ‪Emulator‬‬

‫‪420‬‬ ‫‪ 5.‬ايلهخ رطجَمَخ‬


‫‪420‬‬ ‫ىؼثح ‪Handmark Yathzee 1.05‬‬ ‫اىَثاه األٗه ‪ :‬مسش‬ ‫‪5.1.‬‬
‫‪429‬‬ ‫اىَثاه اىثاّ‪ : ٜ‬مسش ىؼثح ‪Fun2Link‬‬ ‫‪5.2.‬‬

‫‪432‬‬ ‫انثاب انساتع‪ :‬ذطثيماخ عًهيح يىسعح‬

‫‪433‬‬ ‫شرح كسر ترَايج ‪AUTORUN TYPHOON PRO V 4.0.4‬‬

‫‪445‬‬ ‫إيجاد سريال وكراتح كيجٍ نثرَايج ‪)DES( AVI VIDEO CONVERTER‬‬

‫‪447‬‬ ‫‪ .1‬أوًال‪ :‬إٍجبد انسشٍبل‬

‫‪450‬‬ ‫‪ .2‬باَب ًال‪ :‬كزبثخ كَجن نهجشابيج‬

‫‪452‬‬ ‫كسر انكرة اإلنكرروَيح انًصُىعح تثرَايج ‪EBOOK WORKSHOP‬‬

‫‪452‬‬ ‫‪ .1‬رؼشٍف انكزت اإلنكزشأاَخ‬

‫‪453‬‬ ‫‪ .2‬فك انكزبة ٍذأٍب ًال فٌ انزاكشح أرذهَهه‬

‫‪459‬‬ ‫‪ .3‬كزبثخ نودس نهكزبة‬

‫‪460‬‬ ‫‪ .4‬اسزخشاج انسشٍبل‬

‫‪461‬‬ ‫‪ .5‬كزبثخ ‪ Sniffer‬نهسشٍبل‬

‫‪462‬‬ ‫‪ .6‬غنغ انكَجن نهكزبة‬

‫‪465‬‬ ‫انثاب انثايٍ‪ :‬ذصًيى سكيُاخ نهثاذشاخ‬

‫‪466‬‬ ‫ذصًيى سكيٍ نثرَايج ‪ DUP‬تاسرخذاو انفىذىشىب‬

‫‪466‬‬ ‫‪ .1‬أوًال ‪ :‬يالدظبد دول انزػًَى‬

‫‪473‬‬ ‫‪ .2‬باَب ًال ‪ :‬رهَئخ انسكَن‬

‫‪476‬‬ ‫‪ .3‬بنلب ًال ‪ :‬رشكَت انسكَن‬

‫‪2009‬‬ ‫‪12‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انفهرس‬ ‫انعكسي ‪ :‬خطىج إنى األياو‪.‬‬
‫ج‬ ‫انهُذسح‬

‫‪479‬‬ ‫رَايج ‪ UPPP‬تاسرخذاو انفىذىشىب‬


‫ذصًيى سكيٍ نة‬

‫‪479‬‬ ‫‪ .1‬خطواد انؼًم‬

‫‪484‬‬ ‫‪ 2.‬اننزَجخ‬

‫‪485‬‬ ‫ذصييى سكيٍ نثرَايج ‪ UPPP‬تاسرخذاو ‪REALDRAW 5‬‬

‫‪486‬‬ ‫‪Rainbow I Uppp Skin .1‬‬

‫‪493‬‬ ‫‪ .2‬ضؼبس انفشٍك‬

‫‪496‬‬ ‫‪ .3‬رػًَى سكَن نجشابيج ‪ Dup‬ثبسزخذاو ‪RealDraw 5‬‬

‫‪497‬‬ ‫انثاب انراسع‪ :‬يرفرلاخ‬

‫‪498‬‬ ‫إذماٌ أدواخ انهُذسح انعكسيح‬

‫‪498‬‬ ‫‪ .1‬كزبثخ انجشابيج‬


‫‪498‬‬ ‫‪ 1.1.‬تؼض اإلػذاداخ اىََٖح قثو اىثذء‬
‫‪499‬‬ ‫مراب اىن٘د‬
‫ج‬ ‫‪.1.2‬‬
‫‪511‬‬ ‫‪ 1.3.‬إّطاء دَا‪ٝ‬ح ىيثشّاٍج‬

‫‪515‬‬ ‫‪ 2.‬اسزؼًبل ‪ OllyDbg‬نهزنمَخ (خفبٍب ‪) OllyDbg‬‬


‫‪515‬‬ ‫‪ 2.1.‬امرطاف اىخطأ‬
‫‪515‬‬ ‫‪ٍ .2.2‬ذاٗىح امرطاف اىَناُ اىَسؤٗه ػِ اىخطأ‬

‫‪520‬‬ ‫‪ .3‬كسش انجشابيج‬


‫‪520‬‬ ‫‪ .3.1‬فل اىضغظ‬
‫‪525‬‬ ‫‪ .3.2‬مسش اىذَا‪ٝ‬ح تن‪ٞ‬جِ‬

‫‪530‬‬ ‫انرطفم نهرًكٍ‪...‬‬

‫‪530‬‬ ‫‪ .1‬انًمذيخ‬

‫‪531‬‬ ‫‪ Windows Explorer .2‬يزػفخ اننظبو‬


‫‪531‬‬ ‫‪GUID -Globally Unique Identifier .2.1‬‬
‫‪532‬‬ ‫‪ٍ .2.2‬يف اىٖ٘ك – ‪MalwareHook.pas‬‬
‫‪535‬‬ ‫‪ٍ .2.3‬يف اىرثث‪ٞ‬د ‪SETUP.dpr‬‬

‫‪536‬‬ ‫‪ .3‬انجضء انزطجَمٌ‬


‫‪537‬‬ ‫‪ .3.1‬ذفذع اىش‪ٝ‬جسرش‪ٛ‬‬

‫‪2009‬‬ ‫‪13‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انفهرس‬ ‫انعكسي ‪ :‬خطىج إنى األياو‪.‬‬
‫ج‬ ‫انهُذسح‬

‫‪538‬‬ ‫ذفذع اىـ‬


‫‪Modules‬‬ ‫‪3.2.‬‬
‫‪538‬‬ ‫ذجشتح ػَو ٍيف اىٖ٘ك‬ ‫‪.3.3‬‬
‫‪539‬‬ ‫ػَو ٕ٘ك ىَيف ‪ Winlogon.exe‬ىذَا‪ٝ‬ح ٍيف اىٖ٘ك ٍِ اىذزف‬ ‫‪.3.4‬‬
‫‪540‬‬ ‫إىغاء اىٖ٘ك‬ ‫‪.3.5‬‬
‫‪541‬‬ ‫ذْظ‪ٞ‬ف ‪Winlogon.exe‬‬ ‫‪3.6.‬‬
‫‪541‬‬ ‫ذْظ‪ٞ‬ف ‪Explorer.exe‬‬ ‫‪.3.7‬‬

‫‪542‬‬ ‫‪ .4‬يشادم دزف انفَشأسبد‬

‫‪542‬‬ ‫‪ .5‬انخبرًخ‬

‫‪543‬‬ ‫انثغراخ انري ذسهم كسر دًايح انثرايج انًثريجح تـ ‪VB6‬‬

‫‪543‬‬ ‫‪ .1‬أوًال‪ :‬كبئن غَش يف ّؼم فٌ اننسخخ انزجشٍجَخ‬


‫‪543‬‬ ‫‪ .1.1‬اىَثاه األٗه ‪( :‬صس غ‪ٞ‬ش ٍفؼّو)‬
‫‪544‬‬ ‫‪ .1.2‬اىَثاه اىثاّ‪ّ( : ٜ‬ع ‪ٝ‬ذه ػي‪ ٚ‬أُ ّسخرْا ذجش‪ٝ‬ث‪ٞ‬ح ٗغ‪ٞ‬ش ٍسجيح)‬
‫‪545‬‬ ‫‪ .1.3‬اىَثاه اىثاىث ‪( :‬تْذ اىذفع غ‪ٞ‬ش ٍفؼّو ف‪ ٜ‬اىقائَح)‬

‫‪547‬‬ ‫‪ .2‬باَب ًال‪ :‬ابفزح يضػجخ رظهش ػنذ إلالع انجشابيج‬


‫‪547‬‬ ‫‪ .2.1‬اىَثاه األٗه ‪ MsgBox :‬ذظٖش ػْذ إقالع اىثشّاٍج مرْث‪ ٔٞ‬ػي‪ ٚ‬أّٔ ّسخح غ‪ٞ‬ش ٍسجيح‬
‫‪548‬‬ ‫مرْث‪ ٜ‬ػي‪ ٚ‬اّرٖاء ٍذج اسرخذاً اىثشّاٍج‬
‫ٓ‬ ‫‪ .2.2‬اىَثاه اىثاّ‪ٍ : ٜ‬شتغ د٘اس ‪ٝ‬ظٖش ػْذ اإلقالع‬

‫‪562‬‬ ‫‪ .3‬بنلب ًال‪ MsgBox :‬رخشج ػنذ إدخبل ثَبابد رسجَم غَش غذَذخ ‪Bad Boy‬‬

‫‪562‬‬ ‫‪ .4‬ساثؼب ًال‪ :‬إغالق انجشابيج ننفسه ػنذ اازهبء انًذح انزجشٍجَخ أ ػنذ إدخبل ثَبابد غَش غذَذخ‬

‫‪562‬‬ ‫‪ .5‬خبيسب ًال‪ :‬يمبساخ انسشٍبل انذمَمٌ ثبنسشٍبل انخبطئ‬


‫‪563‬‬ ‫اىطش‪ٝ‬ق األٗى‪ : ٚ‬اسرخذاً ‪OllyDbg‬‬
‫ج‬ ‫‪.5.1‬‬
‫‪563‬‬ ‫‪ .5.2‬اىطش‪ٝ‬قح اىثاّ‪ٞ‬ح ‪ :‬اسرخذاً األداج ‪vbaStrCmp.2.1‬‬

‫‪565‬‬ ‫دًايح انذوَغم ‪DONGLE PROTECTION‬‬

‫‪565‬‬ ‫‪ .1‬يمذيخ‬
‫‪565‬‬ ‫‪ .1.1‬ذؼش‪ٝ‬ف اىذّٗغو ٗ أّ٘اػٖا‬
‫‪565‬‬ ‫‪ .1.2‬ىَذح ػِ اىطشماخ اىَػْؼح ىيذّٗغو‬

‫‪566‬‬ ‫‪ .2‬انذًبٍخ ثبسزخذاو انذأاغم‬

‫‪567‬‬ ‫‪ .3‬اػبئخ نذًبٍخ رطجَمك ثطكم جَذ ثبسزخذاو انذأاغم‪Dongle‬‬


‫‪567‬‬ ‫اىـ‪SDKs‬‬‫قشاءج اىـ ‪ٗ Manuals‬اوطالع ػي‪ٚ‬‬ ‫‪.3.1‬‬
‫‪567‬‬ ‫تؼثش ذ٘اتغ اسرذػاء اىذّٗغو )‪(Distribute Function Calls‬‬ ‫‪.3.2‬‬
‫‪567‬‬ ‫فذع ٍرنشس )‪(Frequent Check‬‬ ‫‪.3.3‬‬
‫‪568‬‬ ‫اسرخذاً رامشج اىذّٗغو‬ ‫‪.3.4‬‬

‫‪2009‬‬ ‫‪14‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انفهرس‬ ‫انعكسي ‪ :‬خطىج إنى األياو‪.‬‬
‫ج‬ ‫انهُذسح‬

‫‪568‬‬ ‫و ذسرخذً ضشٗط فذع تس‪ٞ‬طح‬ ‫‪.3.5‬‬


‫‪568‬‬ ‫اسرخذاً اىـ ‪ Key‬اىخاظ تاىذّٗغو‬ ‫‪.3.6‬‬
‫‪569‬‬ ‫اسرخذً اىذَا‪ٝ‬ح اىخاغح تاىطشمح أٗ ٍا ‪ٝ‬ؼشف تاىـ ‪Shell‬‬ ‫‪.3.7‬‬
‫‪569‬‬ ‫اىذَا‪ٝ‬ح ٍِ اىـ ‪Emulator‬‬ ‫‪.3.8‬‬

‫‪570‬‬ ‫‪ .4‬يسبأئ اسزخذاو انذأاغم فٌ دًبٍخ انجشايج يمبساخ ثبنوسبئم األخشى‬

‫‪571‬‬ ‫‪ .5‬يواضَغ راد غهخ ةانًوضوع ين انًنزذى ‪:‬‬

‫‪572‬‬ ‫انخاذًح‬

‫‪573‬‬ ‫‪INDEX‬‬

‫‪2009‬‬ ‫‪15‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫اإلهذاء‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫إٍداء ‪...‬‬

‫ضا‪ ٟ‬ال إي٘ إال اهلل ستُس ضغ‪ ٍٛ‬اهلل ؾ‪ٛ‬م زلا‪ ٤‬ايكسؽ‪..‬‬
‫إىل َٔ غتٓذب شيو ايطدٌ ايص‪ ٟ‬غرلؾع ‪٠‬‬

‫إىل َٔ ْؿه‪ٛ‬ا عِٓٗ غباض ايتػ‪ٜٛ‬ـ ‪ٚ‬ايت‪ٛ‬انٌ ‪ٚ‬األَاْ‪ ٞ‬ي‪ٝ‬ذعً‪ٛ‬ا َٔ َباز‪َٚ ِٗ٥‬عتكساتِٗ ‪ٚ‬أق‪ٛ‬اشلِ أؾعاالً تٓٗض بِٗ‬
‫‪ٚ‬بأَتِٗ‪..‬‬

‫إىل نٌ َٔ نشّ‪ٜٚ ٢‬هش‪ ٞ‬ب‪ٛ‬قت٘ ‪ٚ‬دٗس‪ َٔ ٙ‬أدٌ إ‪ٜ‬كاٍ عًِ اشلٓسغ‪ ١‬ايعهػ‪ ١ٝ‬يًعطب ‪ٚ‬املػًُني‪..‬‬

‫إىل نٌ أعها‪ْ٤‬ا األععا‪ ٤‬يف ايؿط‪ٜ‬ل ايعطب‪ ٞ‬يًٗٓسغ‪ ١‬ايعهػ‪..١ٝ‬‬

‫إىل ٖؤال‪ ٤‬مج‪ٝ‬عاً ْٗس‪ٖ ٟ‬صا ايهتاب‪ ،‬آًَني إٔ جيس‪ٚ‬ا ؾ‪ ٘ٝ‬املتع‪ٚ ١‬ايؿا‪٥‬س‪ ،٠‬غا‪ً٥‬ني اهلل عع ‪ٚ‬دٌ إٔ ‪ٜ‬ه‪ ٕٛ‬خايكاً ي‪ٛ‬دٗ٘‬
‫ايهط‪..ِٜ‬‬

‫حت‪ ١ٝ‬يهِ مج‪ٝ‬عاً‬

‫‪2009‬‬ ‫‪16‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انًمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫املقدمة‬
‫زٕڃ خهلل خڀُضبه خڀُلُڃ‬

‫كرُونَ}‬
‫ن أُمَّهَبتِكُمْ نَب تَعْهَمُىنَ شَيْئًب وَجَعَمَ نَكُمُ انسَّمْعَ وَانْأَبْصَبرَ وَانْأَفِْئدَةَ نَعَهَّكُمْ َتشْ ُ‬
‫{وَانهَّهُ أَ ْخرَجَكُمْ مِهْ بُطُى ِ‬

‫[خڀىمٿ ‪] 78 :‬‬

‫اذتُس هلل املبس‪ ٨‬املع‪ٝ‬س ‪ٜ‬بسأ ارتًل ثِ ‪ٜ‬ع‪ٝ‬س‪ ٖٛٚ ٙ‬أٖ‪ ٕٛ‬عً‪ٚ ٘ٝ‬ي٘ املجٌ األعً‪ ،٢‬ال ‪َٜ‬عِعُب عٓ٘ َجكاٍ شض‪ ٍ٠‬يف‬
‫ايػُ‪ٛ‬ات ‪ٚ‬ال يف األضض ‪ٚ‬ال أقػط َٔ شيو إال بعًُ٘ يكس أسكاِٖ ‪ٚ‬عسِٖ عساً‪ ٌٖ ،‬حتؼ َِٓٗ َٔ أسسٍ أ‪ ٚ‬تػُع شلِ‬
‫ضِنعاً‪ ،‬خؿعت األق‪ٛ‬ات يًطمحٔ ؾال تػُع إال ُٖػاً ‪ٚ ..‬ايكال‪ٚ ٠‬ايػالّ عً‪ ٢‬غ‪ٝ‬سْا ستُس ‪ٚ‬عً‪ ٢‬آي٘ ‪ٚ‬قشب٘ ‪ٚ‬غًِ‪،‬‬
‫‪ٚ‬بعس‪:‬‬

‫َٓص إٔ مت اْطالم َ‪ٛ‬قع ايؿط‪ٜ‬ل ايعطب‪ ٞ‬يًٗٓسغ‪ ١‬ايعهػ‪ ١ٝ‬عاّ ‪ٚ 2007‬حنٔ ْػع‪ ٢‬ظسٍ ‪ْٚ‬ؿاطٍ إىل إ‪ٜ‬كاٍ عًِ‬
‫اشلٓسغ‪ ١‬ايعهػ‪ ١ٝ‬يًعطب مبذاالت٘ اي‪ٛ‬اغع‪ ١‬اييت ناْت سهطاً يًػطب ؾكط‪.‬‬

‫ع‬
‫ٍ‬ ‫يكس ناْت بسا‪ٜ‬تٓا َت‪ٛ‬انع‪َٚ ١‬تعب‪ ١‬دساً‪ٚ ،‬خاق‪ٚ ١‬إّٔ َؿطزات ٖصا ايعًِ دس‪ٜ‬س‪َٚ ٠‬ا ْؿط عٓ٘ َٔ نتبٍ ‪َٛٚ‬ان‪ٝ‬‬
‫بايًػ‪ ١‬ايعطب‪ٜ ١ٝ‬هاز إٔ ‪ٜ‬ه‪ ٕٛ‬ؾب٘ َعس‪ٚ ّٚ‬ال ‪ٜ‬ؿ‪ ٞ‬بايػطض‪.‬‬

‫يهٔ ٖصا مل ‪ٜ‬كـ عجط‪ ً٠‬أَاّ ععميتٓا ‪ٚ‬إقطاضْا يف إ‪ٜ‬كاٍ ٖصا ايعًِ‪ ،‬ؾبسأْا بتكس‪ ِٜ‬ايسض‪ٚ‬ؽ املهت‪ٛ‬ب‪ٚ ١‬املك‪ٛ‬ض‪ ٠‬بًػتٓا‬
‫ايعطب‪ٚ ،١ٝ‬قُٓا بؿطح ايهجرل َٔ أز‪ٚ‬ات ‪ٚ‬بطاَر ٖصا ايعًِ‪ٚ ،‬قسَٓا ز‪ٚ‬ضاتٍ َتدكك‪ ١‬ب٘‪ٚ ،‬ضؾعٓا َٔ غ‪ ١ٜٛ‬املدلزتني يف‬
‫زتاٍ محا‪ ١ٜ‬ايدلاَر عٔ طط‪ٜ‬ل ايتُاض‪ٚ ٜٔ‬ايتشس‪ٜ‬ات اييت نٓا ْكسَٗا ‪ْٚ‬ؿاضى األعها‪ ٤‬بٗا‪.‬‬

‫مل ‪ٜ‬كـ طُ‪ٛ‬سٓا عٓس ٖصا اذتس‪ ،‬بٌ أقبشٓا ْٓاؾؼ ايؿطم األدٓب‪ ١ٝ‬يف ٖصا ايعًِ يٓه‪َٓ ٕٛ‬تذني ال َػتًٗهني؛‬
‫ؾأقسضْا ايعس‪ٜ‬س َٔ األز‪ٚ‬ات ‪ٚ‬ايدلاَر اييت قُُت بأ‪ٜ‬س‪ٜٓ‬ا ‪ٚ‬عك‪ٛ‬يٓا‪ْٚ ،‬طُح اي‪ٚ ّٛٝ‬نٌ ‪ ّٜٛ‬يًُع‪ٜ‬س املع‪ٜ‬س‪ٚ ،‬ز‪َٚ‬اً ‪ٜ‬تشا‪ٚ‬ض‬
‫أع نا‪ ٤‬ايؿط‪ٜ‬ل س‪ ٍٛ‬أؾهاض ‪ٚ‬أز‪ٚ‬ات ختسّ ٖصا ايعًِ ي‪ٝ‬ك‪َٛٛ‬ا بدلزتتٗا ‪ٚ‬تكسميٗا‪.‬‬

‫‪ٚ‬يكس نإ اذتسخ األندل يف عامل اشلٓسغ‪ ١‬ايعهػ‪ ١ٝ‬ايعطب‪ ٖٛ ٞ‬إقساض نتابٓا ايهدِ "َسخٌ إىل اشلٓسغ‪ ١‬ايعهػ‪"١ٝ‬‬
‫يطًب ٖصا ايعًِ غ‪ٛ‬ا‪ّ٤‬‬
‫‪٠‬‬ ‫نٗس‪ ١ٜ‬يف ضأؽ ايػٓ‪ ١‬اشلذط‪ 1429 ١ٜ‬س‪ٛ‬ت أيـ با‪ ٤‬اشلٓسغ‪ ١‬ايعهػ‪ٚ ،١ٝ‬أقبح املطدع األ‪ٍٚ‬‬
‫أناْ‪ٛ‬ا َٔ املدلزتني أ‪ ٚ‬املتدككني أ‪ ٚ‬غرلِٖ َٔ اشل‪ٛ‬ا‪.٠‬‬

‫‪ٚ‬اي‪ٜ ّٛٝ‬ػ‪ٛ‬م بهِ ايؿط‪ٜ‬ل ايعطب‪ ٞ‬يًٗٓسغ‪ ١‬ايعهػ‪ٜٚ ١ٝ‬ػبح َعهِ يف زتاٍ أ‪ٚ‬غع يف عامل اشلٓسغ‪ ١‬ايعهػ‪١ٝ‬‬
‫عٓسَا ‪ٜ‬كسّ يهِ نتاب٘ ايجاْ‪( ٞ‬اشلٓسغ‪ ١‬ايعهػ‪ : ١ٝ‬خط‪ ٠ٛ‬إىل األَاّ) س‪ٝ‬ح غتتعطؾ‪ َٔ ٕٛ‬خالٍ ٖصا اٍنتاب عً‪ ٢‬بعض‬

‫‪2009‬‬ ‫‪17‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انًمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫املؿاٖ‪ ِٝ‬املتكسَ‪ ١‬يف عًِ اشلٓسغ‪ ١‬ايعهػ‪١ٝ‬؛ ند‪ٛ‬اضظَ‪ٝ‬ات ايتؿؿرل‪ٚ ،‬ؾو اذتُا‪ٜ‬ات ايؿا‪٥‬ه‪ٚ ،١‬حتً‪ ٌٝ‬ايؿرل‪ٚ‬غات‪ٚ ،‬بطزت‪١‬‬
‫ٍ َا‪ٚ ،‬تٓك‪ٝ‬ح بطاَر ايس‪ٚ‬ت ْت ‪ٚ‬ادت‪ ٌٝ‬ايجاْ‪ َٔ ٞ‬بطاَر ادت‪ٛ‬اٍ‪ٚ ،‬تكُ‪ ِٝ‬غهني‬
‫أز‪ٚ‬ات ايؿو‪ٚ ،‬نتاب‪ ١‬باتـ أ‪ ٚ‬ن‪ٝ‬ذٔ يدلْاَر‬
‫يًباتؿات‪ٚ ،‬ايهجرل‪..‬‬

‫‪ٖٚ‬ا حنٔ ْتكسّ بٗصا ايهتاب غا‪ً٥‬ني اهلل تعاىل إٔ ‪ٜ‬ه‪ ٕٛ‬خايكاً ي‪ٛ‬دٗ٘ ايهط‪ ،ِٜ‬ؾإٕ ‪ٚ‬دست ‪ -‬أ‪ٜٗ‬ا ايكاض‪ ٨‬ايعع‪ٜ‬ع‬
‫‪ -‬ؾ‪ ٘ٝ‬دٗساً ؾازع يٓا بايت‪ٛ‬ؾ‪ٝ‬ل ‪ٚ‬ايػساز‪ٚ ،‬إٕ ‪ٚ‬دست ظي‪ ١‬قًِ ؾاؾتح شلا باب ايتذا‪ٚ‬ظ ‪ٚ‬املػؿط‪..٠‬‬

‫ؾـػاَح ‪ٚ‬نٔ بايػّذل أععَِ َؿهٌ‬ ‫ؾال بس َٔ ع‪ٞ‬ـــــــــ ـبٍ ؾإٕ جتسْ٘‬
‫ي٘ احملاغٔ قس متت غ‪ ٣ٛ‬خرل َطغٌ‬ ‫ؾُٔ شا ايص‪َ ٟ‬ا غا‪ ٤‬قط‪َٔٚ ،‬‬

‫‪ٚ‬آخط زع‪ٛ‬اْا إِٔ اذتُس هلل ضب ايعاملني‪...‬‬

‫ايؿط‪ٜ‬ل ايعطب‪ ٞ‬يًٗٓسغ‪ ١‬ايعهػ‪١ٝ‬‬

‫‪Arab Team 4 Reverse Engineerin‬‬

‫‪2009‬‬ ‫‪18‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انًمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫كيف تستعنل المتاب؟‬

‫مت ظ‪ٝ‬ٵُٳ خڀٽعدذ ڀُ٭‪ ٍ٥‬ڀځٹدَت وخڀًخَْ ؤٸ‪ ًٝ‬ٸًَ فبٽه ڄه خؼبُووص وخڀُُٕ ؤؼىدء خڀٹُخءش وخڀع‪٥‬سُٷ؛ ڀٍخ ٸً ذبً ؤن خڀٽعدذ ٸً وُؾ‬
‫ٸځُالً ‪٬‬ه خڀعسىَر خؼب٭عدي لُػ مت خ‪٬‬عمدي ظسىَر ؤمشٿ‪ ،‬ټمد مت و‪ٜ ٫٠‬ىَ َڄَّصٍ إلؼدَش خالوعسدي ؤو خڀعمٍَُ ‪٬‬ځً خڀ‪ٙ‬ٽٿ خڀعدرل ‪:‬‬

‫بؼدَش خالوعسدي بذل و‪٥‬إ ڄد ؤو ٌٖء ڄهڃ ـًخً‪.‬‬

‫خ‪٠‬ٱ‪٬ ٣‬ځً ٌٍي خڀ‪ٝ‬ىَش ڀعممُٿ خؼبُٴٹدض خڀعدز٭ص ڀٽٿ يَْ‪.‬‬


‫وذبًَ خال٘دَش بذل ؤن نكم درص يزفك وازذ (‪ )1‬وبمٿ خٔڃ خڀًَْ‬
‫خڀالظُين ويخوځً ذبً صبُ‪ ٫‬ڄد ٔعمعدـً ؼبٕدَُش خڀًَْ‪.‬‬

‫ڀځمٕد‪ً٬‬ش‪.‬‬

‫ٴٽُش ٌدڄص ؤو ڄالل‪٩‬ص ٌدڄص‪.‬‬

‫وال‪ٜ‬ص ٘دڄځص‪.‬‬

‫ُٔي خأليوخض خڀيت ٔعمعدـهد يف خپيَْ ‪.‬‬

‫َخز‪ ٣‬دلوٸ‪ ٫‬ؤو ڄىعًي‪.‬‬

‫و ټٍڀٻ مت ظ٭مً ‪ً٬‬ڂ خڀعٵ‪ُٝ‬ٿ يف ز٭‪ ٟ‬خألڄىَ وخڀيت ‪ -‬يف خ‪٬‬عٹديود‪ -‬ڄه خڀىخـر ؤن ظٽىن ‪٬‬ځً خ‪ّ٤‬ال‪ ٍ٪‬هبد؛ ڀٍخ وُـى ڄىٻ ؤوٍ‬
‫خڀٽُمي ؤن ظُـ‪ ٫‬بذل خإل‪ًٜ‬خَ خألوپ ڄه ټعدزىد (مزخل إىل اهليزصة العكضية) ‪٬‬ىًڄد َع٭ٍَ ‪٬‬ځُٻ ٴهڃ ٍ٘ء ڄه ؤٔدُٔدض ٌٍخ خڀ٭ځڃ‬
‫وٸسٿ ‪ُ٤‬ق ؤٌ ٔاخپ‪ ،‬وكبه ‪٬‬ځً ؼٹص زإوٻ ٔعفً ٴًُ زٱُعٻ‪.‬‬

‫‪.‬‬ ‫ؤو ظٵ‪١‬ٿ زدڀًوىپ بذل خؼب‪ٙ‬دَټص خڀعدڀُص دلًَِ ڄه خؼب٭ځىڄدض‬ ‫يبٽىٻ ربمُٿ خإل‪ًٜ‬خَ خألوپ ڄه ٌىد ڄسدُ٘ش‬

‫وٸً و‪ٝٝ‬ط ڄ‪ٙ‬دَټص ڄٕعٹځص ألٔحځعٽڃ‪ ،‬ڄالل‪٩‬دظٽڃ و ټٍخ خٸعُخلدظٽڃ لىپ خڀ‪٥‬س٭ص خألوذل ڄه خڀٽعدذ يبٽىٽڃ خڀًوىپ خڀُهد ڄسدُ٘ش‬

‫‪.‬‬ ‫ڄه ٌىد‬

‫‪2009‬‬ ‫‪19‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انًمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫و ػهى َفض انُهح خصصُا يشاركح يثثرح نرهمي يالزظاذكى و ذظاؤالذكى ادلخصصح‬
‫نطثؼرُا انثاَيح يٍ انكراب‪.‬‬

‫‪2009‬‬ ‫‪20‬‬
‫الباب األول‪ :‬أفلار وحلول متقدمة يف ‪OllyDbg‬‬

‫‪21‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫كيف ييقّح ‪ OllyDbg‬الربامج ؟‬


‫‪How Does OllyDbg Debugs Targets‬‬

‫يف ٌٍخ خڀًَْ ٔىع٭ُٲ زةٌن خهلل ‪٬‬ځً خڀ‪َُ٥‬ٹص خڀيت َ٭مٿ هبد ‪ OllyDbg‬ڀعىٹُك زُودڄؿ ڄد‪ ،‬وؤَ‪١‬دً خڀ‪َُ٥‬ٹص خڀيت َ‪ ٫١‬هبد وٹ‪ ٣‬ظىٸٳ ڄه‬
‫وى‪ ٪‬خٔعؽىدء يف خڀع٭ځُمُص ‪. Int3‬‬

‫ٸسٿ خڀسًء ٔىٹىڂ ز‪ُٙ‬ق خڀًوخپ خؼبٕع٭مځص يف خڀًَْ ‪:‬‬

‫‪CreateProcess‬‬
‫‪GetStartupInfo‬‬
‫‪ReadProcessMemory‬‬
‫‪WriteProcessMemory‬‬
‫‪WaitForDebugEvent‬‬
‫‪ContinueDebugEvent‬‬
‫‪CloseHandle‬‬
‫‪GetOpenFileNameA‬‬
‫‪ZeroMemory‬‬
‫‪GetThreadContext‬‬
‫‪SetThreadContext‬‬
‫‪DebugActiveProcess‬‬

‫‪ .1‬أ‪ٚ‬الً ‪ :‬ؾطح ايس‪ٚ‬اٍ املػتعًُ‪ ١‬يف ايسضؽ‬


‫‪CreateProcess‬‬ ‫‪.1.1‬‬
‫يخڀص ڀعممُٿ ڄځٳ ظىٵٌٍُ بذل خڀٍخټُش ‪ ،‬ڄه ؤـٿ خڀعىٵٍُ ؤو خڀعىٹُك لٕر خڀسدَوڄط َ ‪ dwCreationFlags‬وؽبٍي خڀًخڀص ‪10‬‬
‫زدَوڄعُخض ټدڀعدرل ‪:‬‬

‫يخڀص ربمُٿ ڄځٳ ڀځٍخټُش‪ ،‬وٌٍ ظُـ‪ ٫‬ٸُمعٌن ‪:‬‬


‫(‪BOOL CreateProcess‬‬ ‫‪ TRUE‬يف لدڀص قبدلهد يف ربمُٿ خڀربودڄؿ‪ FALSE .‬بٌخ ٴ‪ٙ‬ځط يف ربمُٿ خؼبځٳ‪.‬‬
‫ڀٍڀٻ وـر ‪٬‬مٿ خوعسدَ ٸسٿ خڀًوىپ يف خڀ٭مځُدض ‪٬‬ځً خؼبځٳ خحملمٿ‪.‬‬
‫ٌٍخ خڀسدَوڄعُ ٌى ڄاُ٘ كبى و‪ ،ٛ‬وٌٍخ خألوًن هبر ؤن وبعىٌ ڄٕدَ خؼبځٳ خڀٌٍ ظًَُ ربمُځً‬
‫‪LPCTSTR lpApplicationName‬‬ ‫ڀځٍخټُش ڄه ؤـٿ خڀعىٵٍُ‪.‬‬
‫ڄالل‪٩‬ص ‪ :‬يف خڀٱدڀر خؼبځٵدض ڄه وى‪ exe ٪‬ؤو ‪ ٌٍ com‬ڄد ظىٵٍ ؤؼىدء خڀ‪١‬ٱ‪٬ ٣‬ځًُ ڄُظٌن‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪22‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫خِن زبُٿ ؤن ڀًَٻ ڄځٳ ظىٵٌٍُ‪ ،‬ڀٽه زدڄعًخي ـبعځٳ؛ ڄؽالً ‪ jpg :‬ؤو زًون خڄعًخي لىت وظًَُ‬
‫ظىٵٍُي‪ ،‬بٌن ڄد‪٬‬ځُٻ ٔىي ټعدزص ‪ Loader‬وبمٿ ٌڀٻ خؼبځٳ هبٍي خڀًخڀص‪.‬‬
‫‪LPTSTR lpCommandLine‬‬ ‫ڄاُ٘ كبى و‪ ٛ‬ڄىعهٍ زـ ‪ 0byte‬ووبمٿ خألوخڄُ خڀيت ٔعىٵٍ ؤؼىدء ربمُٿ خؼبځٳ‪.‬‬
‫ڄاُ٘ كبى زىُص ڄه وى‪ SECURITY_ATTRIBUTES ٪‬هبد ز٭‪ ٟ‬و‪ٝ‬دج‪ ٛ‬خؼبځٳ خحملمٿ‬
‫‪LPSECURITY_ATTRIBUTESlpProcessAttributes‬‬
‫ڀځٍخټُش زدڀًخڀص‪( .‬ڀه كبعدـهد)‬
‫‪LPSECURITY_ATTRIBUTES lpThreadAttributes‬‬ ‫وٵٓ خڀ‪ٍٙ‬ء زدڀىٕسص ڀځسدَوڄعُ خڀٕدزٷ‪( ...‬ڀه كبعدـهد)‬
‫‪BOOL bInheritHandles‬‬ ‫ڀه كبعدـً‪.‬‬
‫ٌٍخ ٌى خڀسدَوڄعُ خؼبهڃ يف ٌٍي خڀًخڀص‪ ،‬وٌى وبعىٌ ‪٬‬ځً خڀ‪َُ٥‬ٹص خڀيت ربر ؤن وبمٿ هبد خؼبځٳ يف‬
‫خڀٍخټُش‪ ،‬ؤىٍټُ ز٭‪ ٟ‬خألڄؽځص‪.‬‬
‫‪ : CREATE_SUSPENDED‬ربمُٿ خؼبځٳ ڀځٍخټُش‪ ،‬وو‪٠‬٭ً يف لدڀص خوع‪٩‬دَ ٸسٿ‬
‫ظىٵٍُ ؤٌ ظ٭ځُمُص ڄه ؤوپ ٸٕڃ يف خڀربودڄؿ خحملمٿ‪.‬‬
‫‪ :DEBUG_PROCESS‬ربمُٿ خؼبځٳ ڄه ؤـٿ خڀعىٹُك‪ ،‬ؤُعڃ ظىٹُك ؤٌ ظىخز‪ ٫‬ؽبٍخ‬
‫خڀربودڄؿ ؤَ‪١‬دً‪.‬‬
‫‪DWORD dwCreationFlags‬‬ ‫‪ : DEBUG_ONLY_THIS_PROCESS‬زب‪ ُٛٝ‬خڀطوٹُك ڄه ؤـٿ خڀـ‬
‫‪ Process‬خألٔدٍٔ يف خڀربودڄؿ‪.‬‬

‫ؤڄد بن ټىط ظًَُ ؤن َىٵٍ خڀربودڄؿ ڄسدُ٘ش ز٭ً ربمُځً‪ ،‬ٴُٽٵٍ ظ‪ٝ‬ٵًن ٌٍخ خؼباُ٘ جب٭ځً ‪NULL‬‬
‫‪.‬‬
‫يف ٌٍخ خڀًَْ ٔىمعدؾ خعبم‪ ٫‬زٌن ٌدظٌن خػبد‪ُٜ‬عٌن خألوًنظٌن‪ ،‬ؤىف٭ٿ ٌٍخ خڀسدَوڄعُ ‪:‬‬
‫‪DEBUG_PROCESS | DEBUG_ONLY_THIS_PROCESS‬‬
‫‪LPVOID lpEnvironment‬‬ ‫ڀه كبعدـً‪.‬‬
‫‪LPCTSTR lpCurrentDirectory‬‬ ‫ڀه كبعدـً‪.‬‬
‫ڄاُ٘ كبى خڀسىُص ‪ STARTUPINFO‬وزىُعهد ټدڀعدرل ‪:‬‬
‫‪typedef struct _STARTUPINFO { // si‬‬
‫;‪DWORD cb‬‬
‫;‪LPTSTR lpReserved‬‬
‫;‪LPTSTR lpDesktop‬‬
‫;‪LPTSTR lpTitle‬‬
‫;‪DWORD dwX‬‬
‫;‪DWORD dwY‬‬
‫‪LPSTARTUPINFO lpStartupInfo‬‬ ‫;‪DWORD dwXSize‬‬
‫;‪DWORD dwYSize‬‬
‫;‪DWORD dwXCountChars‬‬
‫;‪DWORD dwYCountChars‬‬
‫;‪DWORD dwFillAttribute‬‬
‫;‪DWORD dwFlags‬‬
‫;‪WORD wShowWindow‬‬
‫;‪WORD cbReserved2‬‬
‫;‪LPBYTE lpReserved2‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪23‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫;‪HANDLE hStdInput‬‬
‫;‪HANDLE hStdOutput‬‬
‫;‪HANDLE hStdError‬‬
‫;‪} STARTUPINFO, *LPSTARTUPINFO‬‬

‫ؼبٿء ٌٍي خڀسىُص ٔىمعدؾ خڀًخڀص ‪. GetStartupInfo‬‬


‫ڄاُ٘ كبى خڀسىُص ‪ ROCESS_INFORMATION‬وٌٍ ڄهمص ـًخً يف صبُ‪ ٫‬ظ‪٥‬سُٹدض ٌٍي‬
‫خڀًخڀص‪ ،‬وزىُعهد ټدڀعدرل ‪:‬‬
‫‪typedef struct _PROCESS_INFORMATION { // pi‬‬
‫;‪HANDLE hProcess‬‬
‫;‪HANDLE hThread‬‬
‫;‪DWORD dwProcessId‬‬
‫;‪DWORD dwThreadId‬‬
‫;‪} PROCESS_INFORMATION‬‬
‫لُػ ‪:‬‬
‫‪LPPROCESS_INFORMATION‬‬
‫‪lpProcessInformation‬‬ ‫‪ٌ hProcess‬ى ڄٹس‪ ٟ‬خڀـ ‪ Process‬وهبر خڀعمُّ زُىً وزٌن ‪dwProcessId‬‬
‫‪ٌ :‬ى ‪ PID‬ڀځربودڄؿ‪ ،‬ڄؽٿ خڀٌٍ ذبًي يف ‪ٔ . TaskMan‬ىمعدـً ڄه ؤـٿ ‪٬‬مٿ‬
‫‪ Attach‬ڀربودڄؿ ؿبمٿ يف خڀٍخټُش ‪ .‬ألن خؼبٹس‪ ٟ‬يبٽه ؤن ظعٱًن ٸُمعً زدٔع٭مدپ خڀًخڀص‬
‫‪ OpenProcess‬ڀعٱًُن و‪ٝ‬دج‪ ٛ‬خڀع٭دڄٿ ڄ‪ ٫‬خڀربودڄؿ خحملمٿ ڀځٍخټُش‪.‬‬
‫ال ٔىممٿ خڀربودڄؿ‬
‫ؤڄد خڀـ ‪ PID‬ٴُٽىن ؼدزعًد ڄديخڂ خڀربودڄؿ ؿبمٿ ڀځٍخټُش ‪ .‬بٌ وكن ؤ‪ً ٜ‬‬
‫ڄه ؤـٿ خڀعىٹُك؛ ڀٍڀٻ ٔعهمىد خڀٹُمص ‪ hProcess‬وڀُٓ ‪.dwProcessId‬‬
‫‪ : hThread‬ڄٹس‪ ٟ‬خڀـ ‪ Thread‬وهبر خڀعمُُّ زُىً وزٌن ‪: dwThreadId‬‬
‫خڀـ ‪ TID‬وٌٍ ٸُمص ؼدزعص ڀځـ ‪ Thread‬خألٔدٍٔ يف خڀربودڄؿ‪.‬‬

‫وخڀٵُٶ زُىهڃ ټدڀٵُٶ زٌن خالؼىٌن خڀٕدزٹٌن ‪ ،‬ڀٽه دبٵهىڄٌن ـبعځٵٌن‪.‬‬


‫;)‬ ‫خوعهط‪.‬‬

‫‪GetStartupInfo .1.2‬‬

‫(‪VOID GetStartupInfo‬‬ ‫يخڀص ؼبٿء خڀسىُص ‪STARTUPINFO‬‬


‫‪LPSTARTUPINFO lpStartupInfo‬‬ ‫ڄاُ٘ كبى خڀسىُص ‪STARTUPINFO‬‬
‫;)‬ ‫خوعهط‪.‬‬

‫‪ReadProcessMemory .1.3‬‬
‫(‪BOOL ReadProcessMemory‬‬ ‫‪.‬‬ ‫يخڀص ڀٹُخءش زُدودض ڄه ‪٬‬ىىخن ‪٠‬مه خؼبځٳ خحملمٿ يف خڀٍخټُش‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪24‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ظُـ‪ TRUE ٫‬بن قبمط يف خڀعىٵٍُ‪.‬‬


‫خڀربودڄؿ خؼبك ڄٿ ڀځٍخټُش وٌى ‪٠‬مه خڀسىُص‬ ‫ڄٹس‪ٟ‬‬
‫‪HANDLE hProcess‬‬ ‫ز٭ً ظىٵٍُ خڀًخڀص‬ ‫‪PROCESS_INFORMATION‬‬
‫‪. CreateProcess‬‬
‫‪LPCVOID lpBaseAddress‬‬ ‫خڀ٭ىىخن خڀٌٍ ظًَُ خڀٹُخءش ڄىً‪ ،‬وٌى ڄه وى‪. VA ٪‬‬
‫خؼبعٱًن خڀٌٍ ٔعمٵ‪ ٧‬ٴًُ خڀًخڀص خؼب٭ځىڄدض خڀيت ٸُؤظً خ ڄه ٌڀٻ‬
‫‪LPVOID lpBuffer‬‬
‫خڀ٭ىىخن‪.‬‬
‫ټڃ ‪ً٬‬ي خڀسُدودض خڀيت ظًَُ ٸُخءهتد ڄه خڀ٭ىىخن خڀٌٍ ؤ‪ُ٥٬‬ط‬
‫‪DWORD nSize‬‬
‫خڀًخڀص؟‬
‫خڀًخڀص ظ‪ ٫١‬ٴًُ ‪ً٬‬ي خڀسدَعدض خڀيت ٸُؤض ڄه خڀ٭ىىخن ‪ .‬يف ز٭‪ٟ‬‬
‫خؼبُخض َٽىن خغبفڃ خڀٌٍ ؤ‪ُ٥٬‬ىد خڀًخڀص ؤټرب ڄه ‪ً٬‬ي خڀسدَعدض‬
‫‪LPDWORD lpNumberOfBytesRead‬‬ ‫يف خڀ٭ىىخن‪ ،‬وزٍخڀٻ ڀه ظٹُؤ خ غبفڃ زإټمځً‪ .‬وٌٍخ خڀ٭ىىخن وبعىٌ‬
‫‪ً٬‬ي خڀسدَعدض خڀيت ٸُؤض ڄه خڀ٭ىىخن ‪ .‬يف خڀٱدڀر ڀه كبعدـً‪،‬‬
‫ٔىف٭ځً ‪NULL‬‬
‫;)‬ ‫خوعهط‪.‬‬

‫‪WriteProcessMemory .1.4‬‬
‫‪.‬‬ ‫يخڀص ڀٽعدزص زُدودض يف ‪٬‬ىىخن ‪٠‬مه خؼبځٳ خحملمٿ يف خڀٍخټُش‬
‫(‪BOOL WriteProcessMemory‬‬
‫ظُـ‪ TRUE ٫‬بن قبمط يف خڀعىٵٍُ‪.‬‬
‫ڄٹس‪ ٟ‬خڀربودڄؿ خحملمٿ ڀځٍخټُش‪ ،‬وٌى ‪٠‬مه خڀسىُص‬
‫‪HANDLE hProcess‬‬ ‫ز٭ً ظىٵٍُ خڀًخڀص‬ ‫‪PROCESS_INFORMATION‬‬
‫‪. CreateProcess‬‬
‫‪LPCVOID lpBaseAddress‬‬ ‫خڀ٭ىىخن خڀٌٍ ظًَُ خڀٷَخءش ڄىً‪ ،‬وٌى ڄه وى‪. VA ٪‬‬
‫‪LPVOID lpBuffer‬‬ ‫خؼبعٱًن خڀٌٍ وبعىٌ خڀسُدودض خڀيت ظًَُ ټعدزعهد يف خڀ٭ىىخن‪.‬‬
‫ټڃ ‪ً٬‬ي خڀسُدودض خڀيت ظًَُ ټعدزعهد يف خڀ٭ىىخن خڀٌٍ ؤ‪ُ٥٬‬ط‬
‫‪DWORD nSize‬‬
‫خڀًخڀص؟‬
‫‪ .‬يف ز‪ٞ ٫‬‬ ‫خڀًخڀص ظ‪ ٫١‬ٴًُ ‪ً٬‬ي خڀسدَعدض خڀيت ټعسط يف خڀ٭ىىخن‬
‫خؼبُخض َٽىن خغبفڃ خڀٌٍ ؤ‪ُ٥٬‬ىد خڀًخڀص ؤټرب ڄه ‪ً٬‬ي خڀسدَعدض‬
‫‪LPDWORD lpNumberOfBytesWritten‬‬ ‫خؼبمٽه ټعدزعهد يف خڀ٭ىىخن‪ ،‬وزٍخڀٻ ڀه ظٽعر خغبفڃ زإټمځً ‪.‬‬
‫‪ .‬يف‬ ‫وٌٍخ خڀ٭ىىخن وبعىٌ ‪ً٬‬ي خڀسدَعدض خڀيت ټعسط يف خڀ٭ىىخن‬
‫خڀٱدڀر ڀه كبعدـً‪ٔ ،‬ىف٭ځً ‪NULL‬‬
‫;)‬ ‫خوعهط‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪25‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪CloseHandle .1.5‬‬
‫يخڀص إلٰالٶ ڄٹس‪ ٟ‬؛ ڄؽالً ‪ٌ hProcess‬ى ڄٹس‪ ،ٟ‬ڀٍڀٻ َځّڄىد بٰالٸً ‪.‬‬
‫(‪BOOL CloseHandle‬‬
‫وٌٍ ظُـ‪ TRUE ٫‬بٌخ قبمط‬
‫‪HANDLE hObject‬‬ ‫خؼبٹس‪ ٟ‬خڀٌٍ ظًَُ بٰالٸً‪.‬‬
‫;)‬ ‫خوعهط‬

‫‪ZeroMemory .1.6‬‬
‫(‪VOID ZeroMemory‬‬ ‫يخڀص ڀع‪ٝ‬ٵًن ڄعٱًن‪.‬‬
‫‪PVOID Destination‬‬ ‫‪٬‬ىىخن خؼبعٱًن خڀٌٍ ظًَُ ظ‪ٝ‬ٵًني‪.‬‬
‫‪DWORD Length‬‬ ‫لفڃ خؼبعٱًن خڀٌٍ ظًَُ ظ‪ٝ‬ٵًني‪.‬‬
‫;)‬ ‫خوعهط‬

‫) ‪: GetThreadContext‬‬

‫يخڀص ڄعڃَّش وسبٽىىد ڄه ـځر ‪ -‬ظٹَُسدً‪ -‬صبُ‪ ٫‬خؼب٭ځىڄدض لىپ خپـ ‪ Context‬ڀځربودڄؿ خحملمٿ‬
‫‪BOOL‬‬
‫‪٬‬ځٹص‬
‫يف خڀٍخټُش‪ .‬ووٹ‪ ًٝ‬زـ ‪ Context‬زىُص ربعىٌ ټٿ ڄه خؼبٕفالض وخڀُخَدض ‪ Flags‬خؼبط‬
‫(‪GetThreadContext‬‬
‫زدؼبځٳ خحملمٿ يف خڀٍخټُش ‪.‬‬
‫ٌٍي خڀًخڀص ظع٭دڄٿ ڄ‪ ٫‬خڀـ ‪ Threads‬ڀٍڀٻ وـر ب‪٥٬‬دئٌد ڄٹس‪ ٟ‬خڀـ ‪ Thread‬وٌى‬
‫‪HANDLE hThread‬‬
‫‪٠‬مه خڀسىُص ‪ PROCESS_INFORMATION‬ز٭ً ظىٵٍُ خڀًخڀص ‪. CreateProcess‬‬
‫ڄاُ٘ كبى خڀسىُص ‪ CONTEXT‬وٌٍ ټدڀعدرل ‪:‬‬
‫{ ‪typedef struct _CONTEXT‬‬
‫‪DWORD‬‬ ‫;‪ContextFlags‬‬
‫‪DWORD‬‬ ‫;‪Dr0‬‬
‫‪DWORD‬‬ ‫;‪Dr1‬‬
‫‪DWORD‬‬ ‫;‪Dr2‬‬
‫‪DWORD‬‬ ‫;‪Dr3‬‬
‫‪LPCONTEXT lpContext‬‬
‫‪DWORD‬‬ ‫;‪Dr6‬‬
‫‪DWORD‬‬ ‫;‪Dr7‬‬
‫;‪FLOATING_SAVE_AREA FloatSave‬‬
‫‪DWORD‬‬ ‫;‪SegGs‬‬
‫‪DWORD‬‬ ‫;‪SegFs‬‬
‫‪DWORD‬‬ ‫;‪SegEs‬‬
‫‪DWORD‬‬ ‫;‪SegDs‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪26‬‬
AT4RE :‫انفريك انعرتي نههُذسح انعكسيح‬ ‫ وانذهىل انًرمذيح‬Olly .‫ خطىج إنى األياو‬:‫انهُذسح انعكسيح‬

DWORD Edi;
DWORD Esi;
DWORD Ebx;
DWORD Edx;
DWORD Ecx;
DWORD Eax;
DWORD Ebp;
DWORD Eip;
DWORD SegCs;
DWORD EFlags;
DWORD Esp;
DWORD SegSs;
BYTE
ExtendedRegisters[MAXIMUM_SUPPORTED_EXTENS
ION];
} CONTEXT;

.ًٝ‫ىٻ ٴهمط ڄد وٹ‬٩‫و‬


); .‫خوعهط‬

SetThreadContext .1.7
BOOL SetThreadContext( .‫يخڀص ڀعٯٌَُ ڄ٭ځىڄدض ًٔن خڀربودڄؿ يف خڀٍخټُش‬
HANDLE hThread .ًُ‫ خڀٌٍ ظًَُ خڀعمٽڃ ٴ‬Thread ‫ خڀـ‬ٟ‫ڄٹس‬
CONST CONTEXT *lpContext .‫ڄاُ٘ كبى خڀسىُص‬
); .‫خوعهط‬
ً ‫ ڄؽ‬.. Flag ‫ص ؤال َٽٵٍ ٔىي ظٱًُن ٸُمص خپـ‬٤‫ُو‬ٙ‫ ڀعفدوِ ٸٵّش ڄه ڄ‬: ً‫يثال‬
‫ ؟‬JNZ‫ و‬JZ ‫ زدڀىٕسص ڀځٹٵّظٌن‬ZF ‫ال‬
‫ديش‬٬‫ مث ب‬Context ‫ َٽٵٍ ظٱًُن خڀسىُص‬Flag ‫ بٌن ڀعٱًُن ٌٍي خڀـ‬،‫ ڂ‬٫‫س٭ًد و‬٤ ‫ ؟‬Context ‫مه خڀسىُص‬٠ ً‫ ظىـ‬Flag ‫وٌٿ ٌٍي خڀـ‬
.‫ ڀعىٵٍُ ڄٽدن آوُ ڄسدُ٘ش‬Eip ‫ًد ظٱًُن خؼبٕفٿ‬١َ‫ يبٽىٻ ؤ‬. Thread ‫س٭هد يف‬٤

GetOpenFileName .1.8
BOOL GetOpenFileName( .‫ الوعُدَ ڄځٳ ڄد‬OpenDialog ‫يخڀص ڀٵعك‬
: ‫ وٌٍ ټدڀعدرل‬OPENFILENAME ‫ڄاُ٘ خڀسىُص‬
typedef struct tagOFN { // ofn
DWORD lStructSize;
LPOPENFILENAME lpofn
HWND hwndOwner;
HINSTANCE hInstance;
LPCTSTR lpstrFilter;

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ 2009 27


AT4RE :‫انفريك انعرتي نههُذسح انعكسيح‬ ‫ وانذهىل انًرمذيح‬Olly .‫ خطىج إنى األياو‬:‫انهُذسح انعكسيح‬

LPTSTR lpstrCustomFilter;
DWORD nMaxCustFilter;
DWORD nFilterIndex;
LPTSTR lpstrFile;
DWORD nMaxFile;
LPTSTR lpstrFileTitle;
DWORD nMaxFileTitle;
LPCTSTR lpstrInitialDir;
LPCTSTR lpstrTitle;
DWORD Flags;

WORD nFileOffset;
WORD nFileExtension;
LPCTSTR lpstrDefExt;
DWORD lCustData;
LPOFNHOOKPROC lpfnHook;
LPCTSTR lpTemplateName;
} OPENFILENAME;

‫دء‬٬ً‫ خؼبځٵدض خڀيت ظًَُ ٸسٿ خٔع‬٪‫وهبر ظٱًُنٌد لٕر َٰسعٻ ألوىخ‬
.‫خڀًخڀص‬
); .‫خوعهط‬

WaitForDebugEvent .1.9
‫ىپ لًغ ڄه خأللًخغ خؼبىـىيش يف خڀسىُص‬ٝ‫دَ ل‬٩‫يخڀص خوع‬
BOOL WaitForDebugEvent(
. DEBUG_EVENT
LPDEBUG_EVENT lpDebugEvent .‫ُٿ‬ٝ‫ُلً زدڀعٵ‬ٙ‫ ؤى‬DEBUG_EVENT ‫ڄاُ٘ خڀسىُص‬
‫ُ؟‬٩‫ټڃ ڄه خڀىٸط ظًَُ ڀځًخڀص ؤن ظىع‬

‫ وظُټىد ٌٍي خڀًخڀص‬،‫ زبُٿ ؤوً ڀه وبًغ ؤٌ لًغ يف زُودؾبىد‬:ً‫ڄؽال‬


‫ زىد ؾبمًخً!! بن ټىط‬ٚ‫ خػبد‬Debbuger ‫ُ!! ؤټًُ ُٔسٹً خڀـ‬٩‫ظىع‬
DWORD dwMilliseconds
‫خڀًخڀص‬
. ‫ظًَُ ظٵديٌ ٌڀٻ يبٽىٻ ؤن ربًي وٸعدً إلهندء‬

INFINITE ُ‫ ؤىف٭ٿ ٌٍخ خڀسدَوڄع‬،ُ٩‫يف لدڀعىد ٔىعُټهد يخجمد ظىع‬


...‫ٿ لًغ‬ٝ‫ُ يخجمدً لىت وب‬٩‫ خوع‬..
); .‫خوعهط‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ 2009 28


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ .1.9.1‬ايبٓ‪DEBUG_EVENT ١ٝ‬‬

‫ٌٍي خپزىُص ربعىٌ ‪٬‬ځً صبُ‪ ٫‬خأللًخغ خؼبمٽه ؤن ظ‪ُ٥‬ؤ يف زُودؾبىد خحملمٿ خذل خڀٍخټُش‪ ،‬وزىُعهد ټدڀعدرل‪:‬‬

‫{ ‪typedef struct _DEBUG_EVENT‬‬ ‫زىُص ربعىٌ صبُ‪ ٫‬خأللًخغ خؼبمٽىص ؤؼىدء ظىٹُكخڀربودڄؿ خحملمٿ يف خڀٍخټُش‪.‬‬
‫وبعىٌ ټىي خغبًغ خڀٌٍ وٸ‪ ٫‬ؤؼىدء ظىٹُك زُودڄؿ‪ ،‬ويبٽه ؤن َٽىن خڀٹُڃ خڀعدڀُص‪:‬‬
‫‪: EXCEPTION_DEBUG_EVENT‬‬
‫‪ٔ . u‬ىع‪ُ٥‬ٶ ؽبد‬ ‫لًوغ خٔعؽىدء يف خڀربودڄؿ‪ ،‬وؤ٘ٽدڀً ټؽًنش ‪٠‬مه خڀسىُص‬
‫زدڀعٵ‪ُٝ‬ٿ‪ ،‬وزدڀ‪١‬س‪ ٣‬يف ‪. u.Exception‬‬
‫‪: CREATE_PROCESS_DEBUG_EVENT‬‬
‫خڀربودڄؿ مت ربمُځً ڄه ؤـٿ خڀعىٹُك ‪ .‬ظُـ‪ ٫‬خؼب٭ځىڄدض يف خڀسىُص ‪ . u‬زدڀ‪١‬س‪ ٣‬يف‬
‫‪. u.CreateProcessInfo‬‬
‫‪: CREATE_THREAD_DEBUG_EVENT‬‬
‫خڀربودڄؿ ٸًُ خڀعىٹُك‪ ،‬بو‪ٙ‬دء‪ Thread‬ـًًَش‪.‬‬
‫ظُـ‪ ٫‬ڄ٭ځىڄدهتد يف خڀسىُص ‪. u.CreateThread . u‬‬
‫‪: EXIT_THREAD_DEBUG_EVENT‬‬
‫ٌىدٺ ‪ Thread‬ؤٰځٹط يف زُودڄؿ ٸًُ خڀعىٹُك‪ .‬وظُـ‪ ٫‬ڄ٭ځىڄدهتد يف خڀسىُص ‪. u‬‬
‫زدڀ‪١‬س‪. u.ExitThread ٣‬‬
‫‪: EXIT_PROCESS_DEBUG_EVENT‬‬
‫;‪DWORD dwDebugEventCode‬‬ ‫خڀربودڄؿ ٸًُ خڀعىٹُك ٸً مت بٰالٸً‪ ،‬وظُـ‪ ٫‬ڄ٭ځىڄدض ‪َُ٤‬ٹص خإلٰالٶ يف خپزىُص ‪. u‬‬
‫زدڀ‪١‬س‪. u.ExitProcess ٣‬‬
‫‪: LOAD_DLL_DEBUG_EVENT‬‬
‫خڀٍخټُش وڄ٭ځىڂخهتد‬
‫‪.‬‬ ‫خڀربودڄؿ ٸًُ خڀعىٹُك ٸً ضبٿ ڄٽعسص خذل‬
‫‪٠‬مه خڀسىُص ‪ . u‬زدڀ‪١‬س‪. u.LoadDll ٣‬‬
‫‪: UNLOAD_DLL_DEBUG_EVENT‬‬
‫خڀربودڄؿ ٸًُ خڀعىٹُك ٸً لَُ ڄٽعسص‪ ،‬وض وـً ڄ٭ځىڄدهتد يف خڀسىُص ‪ . u‬زدڀ‪١‬س‪٣‬‬
‫‪u.UnloadDll‬‬
‫‪: OUTPUT_DEBUG_STRING_EVENT‬‬
‫‪:‬‬ ‫خڀربودڄؿ ٸًُ خڀعىٹُك ٸً ظسديپ ڄ٭ځىڄدض ڄ‪ ٫‬خؼبىٹك‪ ،‬ويبٽه ٌڀٻ زدڀًخڀص‬
‫‪ . u‬زدڀ‪١‬س‪٣‬‬ ‫‪ . DebugOutputString‬ظُـ‪ ٫‬خؼب٭ځىڄدض يف خڀسىُص‬
‫‪. u.DebugString‬‬
‫‪: RIP_EVENT‬‬
‫ظٹَُُ لىپ ؤو‪٥‬دء خڀى‪٩‬دڂ ؤؼىدء خڀعىٹُك‪ ،‬وَعڃ بَـد‪ ٪‬خڀعٹَُُ يف خڀسىُص‪ . u‬زدڀ‪١‬س‪٣‬‬
‫يف ‪u.RipInfo :‬‬
‫;‪DWORD dwProcessId‬‬ ‫ظځٹدجٍ‬
‫خپـ ‪ PID‬خػبد‪ ٚ‬زدڀربودڄؿ ٸًُ خڀعىٹُك رب‪ٝ‬ٿ ‪٬‬ځًُ خڀًخڀص ز‪ٙ‬ٽٿ ‪.‬‬
‫خڀـ ‪ ID‬ڀځـ ‪ Thread‬خألٔدٍٔ خػبد‪ ٚ‬زدڀربودڄؿ ٸًُ خڀعىٹُك رب‪ٝ‬ٿ ‪٬‬ځًُ خڀًخڀص‬
‫;‪DWORD dwThreadId‬‬
‫ز‪ٙ‬ٽٿ ظځٹدجٍ‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪29‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫خڀسىُص ؤو خڀعُټُسص ‪ . u‬وٌٍ زىُدض يخوٿ ٌٍي خڀسىُص خألٔدُٔص ‪ٔ :‬ى‪ُٙ‬ق ټٿ زىُص‬
‫{ ‪union‬‬
‫‪٬‬ځً لًخ وزدڀعٵ‪ُٝ‬ٿ‪.‬‬
‫;‪EXCEPTION_DEBUG_INFO Exception‬‬ ‫ؤوىخ‪ ٪‬وڄ٭ځىڄدض خالٔعؽىدءخض خؼبمٽىص يف خڀربودڄؿ‬
‫;‪CREATE_THREAD_DEBUG_INFO CreateThread‬‬ ‫ڄ٭ځىڄدض خڀـ ‪ Threads‬خڀيت َى‪ٙ‬حهد خڀربودڄؿ ٸًُ خڀعىٹُك‪.‬‬
‫‪CREATE_PROCESS_DEBUG_INFO‬‬
‫خڀعىٹُك‬
‫‪.‬‬ ‫ڄ٭ځىڄدض خڀربودڄؿ خحملمٿ يف خڀٍخټُش ز٭ً ربمُځً ڄه ؤـٿ‬
‫;‪CreateProcessInfo‬‬
‫‪EXIT_THREAD_DEBUG_INFO‬‬
‫ڄ٭ځىڄدض خڀـ ‪ Threads‬خڀيت ؤٰځٹهد خڀربودڄؿ ٸًُ خڀعىٹُك‪.‬‬
‫;‪ExitThread‬‬
‫‪EXIT_PROCESS_DEBUG_INFO‬‬
‫ڄ٭ځىڄدض ٘ٽٿ خػبُوؾ ڄه زُودڄؿ ٸًُ خڀعىٹُك‪.‬‬
‫;‪ExitProcess‬‬
‫;‪LOAD_DLL_DEBUG_INFO LoadDll‬‬ ‫خڀعىٹُك‬
‫‪.‬‬ ‫ڄ٭ځىڄدض لىپ خؼبٽعسص خڀيت ضبځهد زُودڄؿ ٸًُ‬
‫‪UNLOAD_DLL_DEBUG_INFO‬‬
‫ڄ٭ځىڄدض خؼبٽعسص خڀيت لٌَُد زُودڄؿ ٸًُ خڀعىٹُك‪.‬‬
‫;‪UnloadDll‬‬
‫‪OUTPUT_DEBUG_STRING_INFO‬‬
‫ڄ٭ځىڄدض لىپ يخڀص ‪( . DebugOutPutString‬ڀه وع‪ُ٥‬ٶ ؽبد)‬
‫;‪DebugString‬‬
‫;‪RIP_INFO RipInfo‬‬ ‫ڄ٭ځىڄدض لىپ ؤو‪٥‬دء خڀى‪٩‬دڂ ؤؼىدء خڀعىٹُك‪( .‬ڀه وع‪ُ٥‬ٶ ؽبد)‬
‫;‪} u‬‬
‫;‪} DEBUG_EVENT‬‬

‫‪ .1.9.2‬ايبٓ‪u ١ٝ‬‬

‫ٌٍي خڀسىُص ٌٍ خڀٽٿ يف خڀٽٿ ڀځم‪ٝ‬ىپ ‪٬‬ځً ظٵ‪ُٝ‬الض خأللًخغ خڀيت رب‪ٝ‬ٿ ؤؼىدء ظىٹُكزُودڄؿ‪ ،‬ؤىع‪ُ٥‬ٶ ؽبد زدڀعٵ‪ُٝ‬ٿ بن ٘دء خهلل ‪.‬‬

‫‪EXCEPTION_DEBUG_INFO‬‬
‫زىُص ربعىٌ ظٵ‪ُٝ‬ٿ لىپ خالٔعؽىدء خڀٌٍ لًغ يف خڀربودڄؿ‪ ،‬وٌٍ ټدڀعدرل ‪:‬‬

‫‪typedef‬‬ ‫‪struct‬‬
‫{ ‪_EXCEPTION_DEBUG_INFO‬‬
‫خؼبمٽىص ؤَه وټُٳ وٸ٭ط؟‪ ..‬زىُعهد ټدڀعدرل ‪:‬‬
‫‪.‬‬ ‫زىُص ربعىٌ ؤوىخ‪ ٪‬خالٔعؽىدءخض‬
‫{ ‪typedef struct _EXCEPTION_RECORD‬‬
‫;‪DWORD ExceptionCode‬‬
‫;‪DWORD ExceptionFlags‬‬
‫;‪struct _EXCEPTION_RECORD *ExceptionRecord‬‬
‫‪EXCEPTION_RECORD‬‬
‫;‪PVOID ExceptionAddress‬‬
‫;‪ExceptionRecord‬‬
‫;‪DWORD NumberParameters‬‬
‫‪DWORD‬‬
‫;]‪ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS‬‬
‫;‪} EXCEPTION_RECORD‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪30‬‬
AT4RE :‫انفريك انعرتي نههُذسح انعكسيح‬ ‫ وانذهىل انًرمذيح‬Olly .‫ خطىج إنى األياو‬:‫انهُذسح انعكسيح‬

: ‫لُػ‬
: ExceptionCode
. ٣‫دج٭ص ڄىهد ٴٹ‬ٙ‫ُق خڀ‬ٙ‫ خالٔعؽىدء خڀٌٍ لًغ ؤى‬٪‫وى‬

EXCEPTION_ACCESS_VIOLATION
‫ىىخن ٌٌ ضبدَص ڄ٭ُىص؛ ڄؽالً وًَُ خڀٽعدزص يف‬٬ ‫ىپ خذل‬ٜ‫خٔعؽىدء ؤؼىدء ؿبدوڀص زُودڄؿ ٸًُ خڀعىٹُك خڀى‬
٣‫ٴٹ‬
. ‫ ڀځٽعدزص‬ٚ‫ىىخن ود‬٬ ٍُ‫ ؤو ظىٵ‬،٣‫ ڀځٹُخءش ٴٹ‬ٛٝ‫ىىخن ـب‬٬
EXCEPTION_BREAKPOINT
‫ وٌٍ يف خڀٱدڀر خڀع٭ځُمُص‬،‫٭ص‬٤‫ ڄٹد‬٪‫ص ظىٸٳ ڄه وى‬٥‫ىىخن وبعىٌ وٹ‬٬ ٍُ‫لًوغ خٔعؽىدء ؤؼىدء ظىٵ‬
OllyDbg ‫ وٌى وٵًٕ ڄد ظ٭عمًي‬،‫ص ظىٸٳ‬٥‫ وٹ‬٪‫ ٌٍي خألوًنش ربًغ خٔعؽىدء ڄه وى‬. Int3
. ‫ص ظىٸٳ‬٥‫ وٹ‬٫٠‫ڀى‬
EXCEPTION_FLT_DIVIDE_BY_ZERO
. 0ً‫ځ‬٬ ‫مځُص ٸٕمص‬٬ ِ‫ودء ؤؼىدء ؿبدوڀص زُودڄؿ ٸًُ خڀعىٹُك بقبد‬
‫خٔعػ‬
EXCEPTION_SINGLE_STEP
‫ ويبٽىىد‬،‫ ظ٭عمً ٌٍخ خالٔعؽىدء‬OllyDbg ‫ يف‬Tracing ‫ُص‬ٜ‫؛ ڄؽٿ ود‬٫‫خٔعؽىدء وبًغ ؤؼىدء خڀععس‬
ًَُ‫ظ‬
. ‫ًي خڀع٭ځُمدض خڀيت وٵٍض يف خڀربودڄؿ ڄه ٴعمً لىت بٰالٸً ؤو ټمد‬٬ ‫ڄه ڄ٭ُٴص‬
EXCEPTION_STACK_OVERFLOW
. Stack OverFlow‫ىپ‬ٝ‫ خٔعؽىدء ؤؼىدء ل‬،‫مص ڄه خظبهد‬٠‫وخ‬

: ‫ وٌٍ ټدڀعدرل‬MSDN‫ خالٔعؽىدءخض خحبػ يف‬٫ُ‫ڀځمًَّ ڄه خؼب٭ځىڄدض لىپ صب‬

EXCEPTION_ACCESS_VIOLATION
EXCEPTION_ARRAY_BOUNDS_EXCEEDED
EXCEPTION_BREAKPOINT
EXCEPTION_DATATYPE_MISALIGNMENT
EXCEPTION_FLT_DENORMAL_OPERAND
EXCEPTION_FLT_DIVIDE_BY_ZERO
EXCEPTION_FLT_INEXACT_RESULT
EXCEPTION_FLT_INVALID_OPERATION
EXCEPTION_FLT_OVERFLOW
EXCEPTION_FLT_STACK_CHECK
EXCEPTION_FLT_UNDERFLOW
EXCEPTION_ILLEGAL_INSTRUCTION
EXCEPTION_IN_PAGE_ERROR
EXCEPTION_INT_DIVIDE_BY_ZERO
EXCEPTION_INT_OVERFLOW
EXCEPTION_INVALID_DISPOSITION
EXCEPTION_NONCONTINUABLE_EXCEPTION
EXCEPTION_PRIV_INSTRUCTION
EXCEPTION_SINGLE_STEP
EXCEPTION_STACK_OVERFLOW

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ 2009 31


AT4RE :‫انفريك انعرتي نههُذسح انعكسيح‬ ‫ وانذهىل انًرمذيح‬Olly .‫ خطىج إنى األياو‬:‫انهُذسح انعكسيح‬

:ُ‫ ٌٍخ خڀسدَوڄع‬٣‫ َهمىد ٴٹ‬،ٍ‫ال َهمىد خڀسدٸ‬

: ExceptionAddress
.‫ىًي خٔعؽىدء‬٬ ‫خڀ٭ىىخن خڀٌٍ لًغ‬

DWORD dwFirstChance; .ً‫ڀه كبعدـ‬


} EXCEPTION_DEBUG_INFO;

CREATE_THREAD_DEBUG_INFO
: ‫ وٌٍ ټدڀعدرل‬،‫إٌد زُودڄؿ ٸًُ خڀعىٹُك‬ٙ‫ خڀيت ؤو‬Thread ‫ربعىٌ ڄ٭ٿوڄدض خڀـ‬

typedef struct _CREATE_THREAD_DEBUG_INFO


{
HANDLE hThread; .‫إٌد خڀربودڄؿ ٸًُ خڀعىٹُك‬ٙ‫ خڀيت ؤو‬Thread ‫ خڀـ‬ٟ‫ڄٹس‬
LPVOID lpThreadLocalBase; ً‫ڀه كبعدـ‬
LPTHREAD_START_ROUTINE lpStartAddress; .‫ خعبًًَش يف زُودڄؿ ٸًُ خڀعىٹُك‬Thread‫ځٷ ڄىً خڀـ‬٥‫خڀ٭ىىخن خڀٌٍ ظى‬
} CREATE_THREAD_DEBUG_INFO;

CREATE_PROCESS_DEBUG_INFO
typedef struct _CREATE_PROCESS_DEBUG_INFO
.‫دءي ڄه ؤـٿ خڀعىٹُك‬ٙ‫ ؤؼىدء بو‬Process‫ځً ڄ٭ځىڄدض خڀـ‬٬ ٌ‫زىُص ربعى‬
{
HANDLE hFile; .‫ځر‬ٝ‫ خڀ‬ُٚ‫ځً ڄٕعىي خڀٹ‬٬ ‫ خؼبځٳ‬ٟ‫ڄٹس‬
HANDLE hProcess; Process ‫ خڀـ‬ٟ‫ڄٹس‬
HANDLE hThread; Process ‫ خألٔدٍٔ يف خڀـ‬Thread ‫ خڀـ‬ٟ‫ڄٹس‬
LPVOID lpBaseOfImage; .) PE Format ‫ يَوْ خڀـ‬٫‫ (َخـ‬.‫مص‬٠‫ وخ‬ImageBase
DWORD dwDebugInfoFileOffset; .ً‫ڀه كبعدـ‬
DWORD nDebugInfoSize; .ً‫ڀه كبعدـ‬
LPVOID lpThreadLocalBase; .ً‫ڀه كبعدـ‬
LPTHREAD_START_ROUTINE lpStartAddress; . EP= ImageBase + OEP ‫ص خڀًوىپ ڀربودڄؿ ٸًُ خڀعىٹُك‬٥‫وٹ‬
LPVOID lpImageName; . ASCII ‫ڄٕدَ خؼبځٳ ٸًُ خڀعىٹُك‬
WORD fUnicode; . Unicode ‫ڄٕدَ خؼبځٳ‬
} CREATE_PROCESS_DEBUG_INFO;

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ 2009 32


AT4RE :‫انفريك انعرتي نههُذسح انعكسيح‬ ‫ وانذهىل انًرمذيح‬Olly .‫ خطىج إنى األياو‬:‫انهُذسح انعكسيح‬

EXIT_THREAD_DEBUG_EVEN
typedef struct _EXIT_THREAD_DEBUG_INFO { Thread ‫لدڀص بٰالٶ خڀـ‬
DWORD dwExitCode; . 0ٌ‫ٽٿ ٔځُڃ ظٽىن ٌٍي خڀٹُمص ظٕدو‬ٙ‫يف لدڀص قبدق خإلٰالٶ ز‬
} EXIT_THREAD_DEBUG_INFO;

EXIT_PROCESS_DEBUG_EVEN
typedef struct _EXIT_PROCESS_DEBUG_INFO { .‫َُٹص خػبُوؾ ڄه خڀعىٹُك‬٤ ٍ٥‫ظ٭‬
DWORD dwExitCode; .‫ټىي لدڀص خػبُوؾ ڄه خڀعىٹُك‬
} EXIT_PROCESS_DEBUG_INFO;

LOAD_DLL_DEBUG_INFO
typedef struct _LOAD_DLL_DEBUG_INFO { .‫زىُص ربعىٌ ڄ٭ځىڄدض خؼبٽعسص خڀيت ضبځهد خڀربودڄؿ ؤؼىدء خڀعىٹُك‬
HANDLE hFile; .‫هد‬١‫ڄٹس‬
LPVOID lpBaseOfDll; .‫ ڀځمٽعسص‬ImageBase ‫خڀـ‬
DWORD dwDebugInfoFileOffset; .ً‫ڀه كبعدـ‬
DWORD nDebugInfoSize; .ً‫ال كبعدـ‬
LPVOID lpImageName; .‫ڄٕدَ خؼبٽعسص وخظبهد‬
WORD fUnicode; . Unicode ‫ڄٕدَ خؼبٽعسص وخظبهد‬
} LOAD_DLL_DEBUG_INFO;

UNLOAD_DLL_DEBUG_EVEN
typedef struct _UNLOAD_DLL_DEBUG_INFO { .‫ځً ڄ٭ځىڄدض خؼبٽعسص خحملَُش ؤؼىدء ظىٹُكخڀربودڄؿ‬٬ ٌ‫زىُص ربعى‬
LPVOID lpBaseOfDll; . ImageBase ‫ىىخهند يف خڀٍخټُش‬٬
} UNLOAD_DLL_DEBUG_INFO;

ContinueDebugEvent .1.10
...ً‫ ڀځربودڄؿ ؤٌ ظعس٭‬Trace ‫ٌٍي خڀًخڀص إلسبدڂ ظىٹُك خڀربودڄؿ وټإوىد و٭مٿ‬

BOOL ContinueDebugEvent ( .ٓ‫ بٌخ قبمط وخڀ٭ٽٓ زدڀ٭ٽ‬TRUE ٫‫يخڀص ظُـ‬


‫ځًُ ڄه خڀًخڀص‬٬ ‫ٿ‬ٝ‫ كب‬. ‫ زربودڄؿ ٸًُ خڀعىٹُك‬ٚ‫ خػبد‬Id ‫خڀـ‬
DWORD dwProcessId ‫ ؤظعٍټٌُد؟‬CreateProcess
.‫ هبر خڀعمُُّ زُىهڃ‬hProcess ‫ وڀـ‬Id ‫ ٌى‬: ‫ص ڄهمص‬٩‫ڄالل‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ 2009 33


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫خڀـ ‪ Id‬خػبد‪ ٚ‬زـ ‪ Thread‬خألٔدُٔص‪.‬‬


‫‪DWORD dwThreadId‬‬
‫ڄالل‪٩‬ص ‪ٌ :‬ى ‪ Id‬وڀُٓ ‪. hThread‬‬
‫ټُٳ ٔعٽمٿ خڀًخڀص خڀعىٹُك‪ .‬وٌٍ هبٍي خأل٘ٽدپ ‪:‬‬
‫‪DBG_CONTINUE‬‬
‫ظىٸٳ خڀربودڄؿ يف خؼبىٹك بٌخ لًغ ؤٌ خٔعؽىدء‪.‬‬
‫‪DBG_EXCEPTION_NOT_HANDLED‬‬
‫‪DWORD dwContinueStatus‬‬ ‫خالٔعؽىدءخض‬
‫‪.‬‬ ‫ؤټمٿ ظىٵٍُ خڀربودڄؿ زًون خڀعىٸٳ ‪٬‬ىً‬

‫ڂالل‪٩‬ص ‪ :‬بٌخ خٔع٭مځط ٌٍي خػبد‪ُٜ‬ص ولًغ خٔعؽىدء‪ ،‬ٴٕىٲ َٱځٷ‬


‫خػب‪ٝ‬دج‪ٛ‬‬
‫‪.‬‬ ‫خڀربودڄؿ زدػب‪٥‬إ‪ ،‬ڀٍڀٻ هبر ؤن ربٍَ يف خڀع٭دڄٿ ڄ‪ٌٍ ٫‬ي‬
‫;)‬

‫‪DebugActiveProcess .1.11‬‬
‫ټمد و٭ځڃ ؤوً يف ‪ٌ OllyDbg‬ىدڀٻ ود‪ُٜ‬ص ‪٬‬مٿ ‪ Attach‬ڀربودڄؿ‪ ،‬وٌٍ ظ٭ين ظىٹُك زُودڄؿ ؿبمٿ ؤ‪ٜ‬الً ڀځٍخټُش ‪ .‬ڀ٭مٿ ٌڀٻ كبعدؾ‬
‫ؽبٍي خڀًخڀص ‪. DebugActiveProcess‬‬

‫يخڀص ‪٬‬مٿ ‪ Attach‬ڀربودڄؿ ڄه ؤـٿ خڀعىٹُك‪ .‬ظُـ‪ TRUE ٫‬بٌخ قبمط‪.‬‬


‫( ‪BOOL DebugActiveProcess‬‬
‫وخڀ٭ٽٓ زدڀ٭ٽٓ‪.‬‬
‫خڀـ ‪ Pid‬خػبد‪ ٚ‬زدڀربودڄؿ خڀٌٍ وًَُ ظىٹُمً‪ ،‬ويبٽىٻ خغب‪ٝ‬ىپ ‪٬‬ځًُ زإلً‬
‫‪DWORD dwProcessId‬‬
‫ؿبَُخض خڀـ ‪ process‬ڄؽٿ ‪ TaskMan‬ؤو‪Kernel Detective‬‬
‫;)‬

‫ڀألڄؽځص‬
‫‪.‬‬ ‫هبٍخ وٽىن ٸً ؤهنُىد ٴٹُش ُ٘ق خڀًوخپ‪ ،‬ؤىمُ ڀځٵٹُش خڀعدڀُص خؼبى‪ٝٝ‬ص‬

‫‪ .2‬ثاْ‪ٝ‬اً ‪ :‬سًك‪ ١‬ايتٓك‪ٝ‬ح‬

‫‪ .2.1‬طط‪ٜ‬ك‪ ١‬عٌُ ‪ Debug‬يدلْاَر‬

‫يف ٌٍي خڀٵٹُش ٔىٽعر وىخَِڄُص وټىيخً زُٕ‪٥‬دً ڀـ ‪ Debugger‬زُٕ‪ ،٣‬وٌى ُٔعٽَُ يف ټٿ خڀـ ‪ Debbugers‬خڀيت ٔى‪ُ٥‬ق‪،‬‬
‫وخڀيت ظىـً خِن‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪34‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ْ .2.1.1‬اؾص‪ ٠‬اخت‪ٝ‬اض ايدلاَر َٔ أدٌ ايتٓك‪ٝ‬ح‬


‫خؼبٕاوپ ‪٬‬ه ودٴٍش خوعُدَ خڀربخڄؿ ٌٍ ‪ GetOpenFileNameA‬ويبٽه خٔعٱالؽبد زدڀ‪ٙ‬ٽٿ خڀعدرل ‪:‬‬
‫ش‬ ‫ټمد ُ٘لىد ڄه ٸسٿ ٴدڀًخڀص‬

‫ؤوالً ظ٭َُٳ ڄعٱًن ڄه وى‪ ٪‬خڀسىُص خڀيت ربعدؾ ٌٍي خڀًخڀص زدڀ‪ٙ‬ٽٿ خڀعدرل‪:‬‬
‫;‪OPENFILENAME ofn‬‬

‫مث ظٱًُن و‪ٝ‬دج‪ ٛ‬خڀسىُص لٕر ٘ٽٿ خؼبځٵدض خڀيت وًَُ ظىٹُمهد‪ ،‬وٌٍ ٰدڀسدً ڄه ٌُحص ‪ . exe‬مث ٔعمعدؾ ٌٍي خؼبعٱًن خڀٌٍ ٔىمٵ‪ ٧‬ٴًُ‬
‫ڄٕدَ خڀربودڄؿ خؼبىعدَ‪.‬‬

‫ؤؼىدء ظ٭َُٳ خڀسىُص يف ز٭‪ ٟ‬خجملم٭دض ويف خڀٱدڀر ڀه َٽىن ڄٽدهند ٴدَٰدً‪ ،‬وٌٍخ ُٔاؼُ ‪٬‬ځً خڀًخڀص‪ ،‬ڀٍڀٻ وـر ظ‪ٝ‬ٵًن خڀسىُص زدڀًخڀص‬
‫‪ RtlZeroMemory‬وټٍڀٻ خألڄُ ڀٽٿ زىُص ‪ُ٬‬ٴىدٌد ؤو ڄعٱًن ټسًن‪.‬‬

‫ټمد ٸځىد ٴدڀسىُص ربعدؾ ؼبعٱًن ربٵ‪ ٧‬ٴًُ خؼبٕدَ ؤى٭ُٴً ټدڀعدرل ‪:‬‬
‫;]‪char FileTarget[256‬‬

‫مث و‪ٝ‬ٵُ خڀسىُص وخؼبعٱًن ‪:‬‬

‫;))‪ZeroMemory (&ofn,sizeof(ofn‬‬
‫;))‪ZeroMemory (FileTarget,sizeof(FileTarget‬‬

‫;)‪ofn.lStructSize = sizeof(ofn‬‬
‫;"‪ofn.lpstrFilter = "Win32\0*.exe‬‬
‫;‪ofn.lpstrFile = FileTarget‬‬
‫;‪ofn.nMaxFile = 256‬‬
‫;‪ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST‬‬

‫مث وٕعً‪ ٍ٬‬خڀًخڀص ټدڀعدرل ڄ‪ ٫‬خوعسدٌَد ‪:‬‬

‫))‪if(GetOpenFileNameA(&ofn‬‬
‫{‬
‫‪//‬‬ ‫انكىد انزي َشيذ تُفيزِ إٌ َجحت انذانة‬
‫}‬

‫‪ .2.1.2‬حتُ‪ ٌٝ‬بطٕاَر يًصانط‪ َٔ ٠‬أدٌ ايتٓك‪ٝ‬ح‬


‫وڄدٌخ ز٭ً بن ٸمىد زدوعُدَ خڀربودڄؿ خڀٌٍ وًَُ ظىٹُمً؟‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪35‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫هبر ربمُځً خذل خڀٍخټُش خبد‪ُٜ‬ص خڀعىٹُك‪ ،‬وٌڀٻ ڄد ظٵ٭ځً خڀًخڀص‪ٔ . CreateProcess‬ىٕعٱځهد ټدڀعدرل ‪:‬‬

‫ڀٽه ٸسٿ ٌڀٻ ؤظٍټُ خڀًخڀص ‪ GetStartupInfo‬؟ ُٔٽىن خڀىدظؿ ٌٽٍخ ‪:‬‬

‫ؤوالً هبر ظ٭َُٳ خڀسىُدض خڀيت ربعدؾ خڀًخڀعٌن مث ظ‪ٝ‬ٵًننبد ټدڀعدرل‪:‬‬

‫;‪STARTUPINFO sinfo‬‬
‫;‪PROCESS_INFORMATION pinfo‬‬
‫; ‪BOOL Result=FALSE‬‬

‫;))‪ZeroMemory(&pinfo,sizeof(pinfo‬‬
‫;))‪ZeroMemory(&sinfo,sizeof(sinfo‬‬

‫ؼبدٌخ ٸمط زع٭ُٲ خؼبعٱًن ‪ Result‬؟ ظٍټُ ؤن خڀًخڀص ‪ CreateProcess‬ظُـ‪ ٫‬ٸُمص ‪. BOOL‬‬
‫;)‪GetStartupInfo(&sinfo‬‬
‫‪Result=CreateProcess(FileTarget,0,0,0,0,DEBUG_PROCESS+‬‬
‫;)‪DEBUG_ONLY_THIS_PROCESS,0,0,&sinfo,&pinfo‬‬

‫ٌد ٸً ؤ‪ٜ‬سك زُودؾبىد ڄعىٸٳ يف خڀٍخټُش‪ .‬ڄد خػب‪٥‬ىش خڀعدڀُص ؟ ظدز‪... ٫‬‬

‫‪ .2.1.3‬ايسخ‪ ٍٛ‬ذتًك‪ ١‬ايتٓك‪ٝ‬ح‬

‫ٌٍخ ٌى خعبّء خؼبهڃ يف خؼبىٹك ڀٍڀٻ َټّ ـًُخً يف ٌٍي خڀٵٹُش‪.‬‬

‫خغبځٹص زدڀ‪ٙ‬ٽٿ خڀعدرل ‪:‬‬


‫)‪while(Result‬‬
‫{‬

‫}‬

‫ؤٌ ؤوً بٌخ قبك يف ربمُٿ خڀربودڄؿ ڀځٍخټُش ٴًُٕوٿ خغبځٹص ‪ .‬وڀٽه ڄىت ىبُؾ ڄه خغبځٹص ؟ ٔى٭ُٲ خعبىخذ ٸَُسدً‪.‬‬

‫ڄدٌخ َ٭ً ؤن يوٿ خغبځٹص؟ ټُٳ ٌٍ لدڀص خڀربودڄؿ ؟ ؤټًُ ٌى ڄعىٸٳ !! ڀٽه ظىٸٳ ڄه خڀًخڀص ‪ CreateProcess‬ڀٍڀٻ وـر‬
‫بيودڀً حل ڀٹص خڀعىٹُك وٌڀٻ زدڀًخڀص ‪ WaitForDebugEvent‬و‪٩‬ه ؤوٻ ظعٍټٌُد ـًُخً؟‬

‫زدَخڄعٌُ مت ُ٘لهمد‪ ،‬وهبر ظ٭َُٳ خڀسىُص خؼبٕعىًڄص يف ٌٍي خڀًخڀص ټدڀعدرل‪:‬‬


‫ن‬ ‫ٌٍي خڀًخڀص ربعدؾ‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪36‬‬
AT4RE :‫انفريك انعرتي نههُذسح انعكسيح‬ ‫ وانذهىل انًرمذيح‬Olly .‫ خطىج إنى األياو‬:‫انهُذسح انعكسيح‬

DEBUG_EVENT DebugEvent;

: ‫ٍ خڀًخڀص يخوٿ خغبځٹص‬٬ً‫مث وٕع‬


while(Result)
{
WaitForDebugEvent(&DebugEvent,INFINITE);
}

‫سك يف لځٹص خڀعىٹُك ؟‬ٜ‫خِن ڄدٌخ َ٭ً ؤن ؤ‬

‫يف خؼبعٱًن‬ ‫ خڀٹُڃ خؼبمٽىص‬٫‫؟ َخـ‬ ‫َعڃ ٌڀٻ‬ ‫ ؤظ٭ُٲ ټُٳ‬، ‫ خأللًخغ خڀيت ربًغ يف خڀربودڄؿ‬٫ُ‫هبر ڄُخٸسص صب‬
dwDebugEventCode
ٌ‫ مث بټمدپ خڀعىٹُك يف لدڀص دل وبًغ ؤ‬. ‫ ؽبٍخ خؼبعٱًن لٕر خڀٹُڃ خؼبمٽىص ڀً ووُخٸر خأللًخغ‬Switch Case ‫وڀٍڀٻ ٔىٹىڂ ز٭مٿ‬
.ً‫ َخـ٭هد ـًُخ‬ContinueDebugEvent : ‫زدڀًخپ‬
‫ وٌڀٻ ش‬،‫لًغ ڄه خأللًخغ خؼبمٽىص‬

: ‫ڄدؽبد ټدڀعدرل ڀعفدوِ خالٔعؽىدءخض‬٫‫يبٽه خٔع‬

ContinueDebugEvent(DebugEvent.dwProcessId,
DebugEvent.dwThreadId,DBG_EXCEPTION_NOT_HANDLED);

: ‫ٽٿ خڀعدرل‬ٙ‫وزدڀعدرل ظٽىن خغبځٹص ټدڄځص زدڀ‬

. DBG_CONTINUE ‫ُص‬ٜ‫ زدػبد‬ContinueDebugEvent ‫خپ‬


‫ وٌڀٻ زدڀً ش‬،‫ُٳ ڀً ذبدوِ خالٔعؽىدءخض ټځهد‬١‫ز٭ً ؤن و‬
while(Result)
{
WaitForDebugEvent(&DebugEvent,INFINITE);
switch(DebugEvent.dwDebugEventCode)
{
case CREATE_PROCESS_DEBUG_EVENT:

break;

case EXCEPTION_DEBUG_EVENT:
ContinueDebugEvent( DebugEvent.dwProcessId,
DebugEvent.dwThreadId,
DBG_CONTINUE);

break;

case CREATE_THREAD_DEBUG_EVENT:

break;

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ 2009 37


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪case EXIT_PROCESS_DEBUG_EVENT:‬‬
‫; ‪Result = FALSE‬‬
‫;‪break‬‬
‫}‬

‫‪Result=ContinueDebugEvent( DebugEvent.dwProcessId,‬‬
‫‪DebugEvent.dwThreadId,‬‬
‫;)‪DBG_EXCEPTION_NOT_HANDLED‬‬
‫}‬

‫;)‪CloseHandle(pinfo.hProcess‬‬
‫;)‪CloseHandle(pinfo.hThread‬‬
‫;)‪ExitProcess(0‬‬

‫وىٹك‬
‫ال وىًٕ بٰالٶ خؼبىٹك وبٰالٶ خؼبٹدز‪ ٟ‬ز٭ً خػبُوؾ ڄه خغبځٹص‪ ،‬وؤن ُ٘‪ ٢‬خػبُوؾ ڄه خغبځٹص ٌى بٰالٶ خڀربودڄؿ خڀٌٍ ‪.‬‬

‫وهبٍخ وٽىن ٸً ؤهنُىد لځٹص خڀعىٹُك‪ .‬ؤىمُ ڀٵٹُش خألڄؽځص ‪:‬‬

‫خڀٽىي ز‪ٙ‬ٽٿ ټدڄٿ ٔعفًي يف خؼبُٴٹدض زدٔڃ ‪Debug1.cpp‬‬

‫‪ .3‬ثايجاً ‪ :‬ن‪ٝ‬ـ‪ٚ ١ٜ‬نع ْكط‪ ٠‬ت‪ٛ‬قـ ‪ْٛ َٔ BP‬ع اغتجٓا‪ ٤‬يف ايتعً‪ int3 ١ُٝٝ‬؟‬
‫ٌٍي ٌٍ خڀٵٹُش خألٌڃ يف خڀًَْ‪ ،‬ؤىٹىڂ زعٹُٕمهد بذل ٸٕمٌن ؤٔدٌُٔن ونبد‪:‬‬

‫‪ )1‬و‪ ٫٠‬وٹ‪٥‬ص خڀعىٸٳ وبِخڀعهد يف خڀربودڄؿ يف لځٹص خڀعىٹُك‪.‬‬

‫‪ )2‬ظعس‪ ٫‬خڀربودڄؿ ڀځى‪ٜ‬ىپ خذل وٹ‪٥‬ص خڀعىٸٳ وـځر ڄ٭ځىڄدض صبُ‪ ٫‬خؼبٕفالض‪.‬‬

‫‪ .3.1‬ن‪ٝ‬ؿ‪ٚ ١ٝ‬نع ْكط‪ ١‬ايت‪ٛ‬قـ ‪ٚ‬إظايتٗا يف ايدلْاَر يف سًك‪ ١‬ايتٓك‪ٝ‬ح‬

‫ټُٵٍ ـ٭ٿ زُودڄؿ ڄد يف لځٹص خڀعىٹُك‪ٔ ،‬ىمُ ڀځٵٹُش خألټؽُ ظ‪ٙ‬ىَٹدً‪ ،‬وٌٍ ‪َُ٤‬ٹص و‪ ٫٠‬وٹ‪٥‬ص ظىٸٳ ټمد ظٵ٭ٿ يف‬
‫وخِن وز٭ً ؤن ‪ُ٬‬ٴىد ش‬
‫‪ OllyDbg‬سبدڄد ڀى‪ ٫٠‬وٹ‪٥‬ص ظىٸٳ زـ )‪. (F2‬‬

‫ټمد و٭ځڃ ٴةن خڀع٭ځُمُص ‪ int3‬ربًغ خٔعؽىدءً يف خؼب٭دجل‪ ،‬ودبد ؤن لځٹص خڀعىٹُك ظعُك ڀىد خڀعىٸٳ ‪٬‬ىً خالٔعؽىدءخض‪ ،‬ٴسسٕد‪٤‬ص ڀى‪ ٫٠‬وٹ‪٥‬ص‬
‫ظىٸٳ ‪٬‬ىً ‪٬‬ىىخن ڄ٭ٌن َٽٵٍ ؤن قب٭ٿ ٌڀٻ خڀ٭ىىخن َىٵٍ خڀع٭ځُمُص ‪. Int3‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪38‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ .3.1.1‬ن‪ٝ‬ؿ‪ٚ ١ٝ‬نع ْكط‪ ١‬ت‪ٛ‬قـ بايتعً‪ Int3 ١ُٝٝ‬يف عٓ‪ٛ‬إ َعني‬


‫ټمد و٭ځڃ ؤوً ‪٬‬ىً ټٿ ‪٬‬ىىخن ظىٵٍ ظ٭ځُمُص ڄ٭ُىص ؤو ز‪ٙ‬ٽٿ ؤيٶ َىٵٍ ‪ Op Code‬ڄ٭ٌن‪ ،‬خڀـ ‪ Op Code‬ڀځع٭ځُمُص ‪ٌ int3‬ى ‪0xCC‬‬

‫(‪. )0CCh‬‬

‫ڀٍڀٻ ٔىٕع٭مٿ خڀًخڀص ‪ WriteProcessMemory‬ڀٽعدزص خڀع٭ځُمُص ‪٬ 0xCC‬ىً خڀ٭ىىخن خؼبُخي خڀعىٸٳ ‪٬‬ىًي‪ ،‬ڀٽه ٸسٿ و‪ ٫٠‬وٹ‪٥‬ص‬
‫ڀځًخپ‪. ReadProcessMemory :‬‬
‫ظىٸٳ هبر ؤن كبٵ‪ ٧‬خڀع٭ځُمُص خأل‪ٜ‬ځُص ڀٽٍ وُـ‪ ٫‬خڀعىٵٍُ ڀځربودڄؿ‪ ،‬ؤىمعدؾ ؽبٍخ خڀٱُ‪ ٞ‬ش‬
‫)‪void Set_int3_BP(HANDLE hProcess,void* Address,char *OriginalOP‬‬
‫{‬
‫;‪char int3_OP=0xCC‬‬
‫;)‪ReadProcessMemory(hProcess,Address,OriginalOP,1,0‬‬
‫;)‪WriteProcessMemory(hProcess,Address,&int3_OP,1,0‬‬
‫}‬

‫ټمد ظُي ٴٹً ٸمىد زع٭َُٳ يخڀص زؽالؼص زدَوڄعُخض ٌڃ ‪٬‬ځً خڀعىخرل ‪:‬‬

‫‪ : hProcess )1‬ڄٹس‪ ٟ‬خڀربودڄؿ خحملمٿ ڀځٍخټُش‪.‬‬


‫‪ : Address )2‬خڀ٭ىىخن خڀٌٍ وًَُ و‪ ٫٠‬وٹ‪٥‬ص ظىٸٳ ‪٬‬ىًي‪.‬‬
‫‪ : OriginalOP )3‬ڀىمٵ‪ ٧‬ٴًُ خڀع٭ځُمُص خأل‪ٜ‬ځُص ٸسٿ و‪ ٫٠‬وٹ‪٥‬ص ظىٸٳ‪.‬‬

‫‪ .3.1.2‬ن‪ٝ‬ؿ‪ ١ٝ‬إظاي‪ْ ١‬كط‪ ١‬ايت‪ٛ‬قـ ‪ٚ‬إضداع ايتشهِ يًدلْاَر‬

‫ن‪ٝ‬ـ‪ ١ٜ‬إظاي‪ْ ١‬كط‪ ١‬ايت‪ٛ‬قـ؟‬


‫وٵعُ‪ ٞ‬ؤوىد وًَُ و‪ ٫٠‬وٹ‪٥‬ص ظىٸٳ يف خڀ٭ىىخن ‪ 0x004010E4‬ٴإؼىدء ظىٵٍُ خڀع٭ځُمُص ‪٬ Int3‬ىً ٌٍخ خڀ٭ىىخن وب‪ٝ‬ٿ خٔعؽىدء‪ .‬الل‪ ٧‬ؤوىد‬
‫ٸځىد ‪٬‬ىً ظىٵٌٍُد‪ ،‬ؤٌ ؤن ٌٍي خڀع٭ځُمُص وٵٍض وؤن خؼباُ٘ كبى ڄٹ‪ ٫٥‬خڀٽىي ‪ EIP‬ٸً ِخي زىخلً ألن خڀـ ‪ OP Code‬ڀځـ ‪ int3‬ڄد ٌى‬
‫بال زدَط وخلً‪.‬‬

‫خ ؤوٸٳ خڀربودڄؿ ‪٬‬ىً خغبًغ‬ ‫‪ EIP = 0x004010E5‬وخؼبىٹك خڀٌٍ ټعنب‬ ‫بٌن خالٔعؽىدء ل‪ٝ‬ٿ خِن و‬
‫‪ .EXCEPTION_DEBUG_EVENT‬خِن ټُٳ و٭ُٲ ؤن خالٔعؽىدء ل‪ٝ‬ٿ يف ٌٍخ خڀ٭ىىخن زدڀ‪١‬س‪٣‬؟ وټُٳ وَّٿ وٹ‪٥‬ص خڀعىٸٳ؟ ڀٵ٭ٿ‬
‫ٌڀٻ ڄد ‪٬‬ځُىد ٔىي خظسد‪ ٪‬خڀ‪َُ٥‬ٹص خڀعدڀُص ‪:‬‬

‫ؤوالُ هبر ؤن لبعرب خالٔعؽىدء ڀى٭ُٲ ؤوً ڄه وى‪ . EXCEPTION_BREAKPOINT ٪‬بٌخ ټدن ټٍڀٻ وٹىڂ جبځر خڀـ‬
‫‪ Context‬ڀځربودڄؿ ٸًُ خڀعىٹُك زدڀًخڀص ‪ GetThreadContext‬ز٭ً ؤن قب٭ٿ ‪ContextFlags=CONTEXT_FULL‬‬
‫عبځر خڀسىُص زإټمځهد ‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪39‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫مث ز٭ً ٌڀٻ وٹدَن خڀـ ‪ EIP‬ڄه خڀـ ‪ Context‬بٌخ ټدن ٌى وٵًٕ خڀ٭ىىخن خڀٌٍ وًَُ خڀعىٸٳ ‪٬‬ىًي ‪ .‬يف لدڀعىد ٌى‬
‫‪ 0x004010E5‬ظٍټُ ؤوً ٸً ؤ‪٠‬ٵىد ‪ 1‬ڀځ٭ىىخن ألن خڀع٭ځُمُص وٵٍض‪.‬‬

‫ٌدٌى خِن خڀربودڄؿ ڄعىٸٳ سبدڄدً ‪٬‬ىً خڀ٭ىىخن خڀٌٍ وًَُ‪ ،‬خِن ٔىٹىڂ زةِخڀص وٹ‪٥‬ص خڀعىٸٳ‪ ،‬وٌڀٻ ذټعدزص يخڀص زُٕ‪٥‬ص ظٹىڂ زةِخڀعهد‪ ،‬وٌٍ‬
‫وخ‪٠‬مص ‪:‬‬
‫*‪void Remove_int3_BP(CONTEXT *cntxt,HANDLE hThread,HANDLE hProcess,void‬‬
‫)‪Address,char OriginalOP‬‬
‫{‬
‫;)‪WriteProcessMemory(hProcess,Address,&OriginalOP,1,0‬‬
‫;‪cntxt->ContextFlags=CONTEXT_FULL‬‬
‫;)‪GetThreadContext(hThread,cntxt‬‬
‫;‪cntxt->Eip--‬‬
‫;)‪SetThreadContext(hThread,cntxt‬‬
‫}‬

‫ٔىى‪٠‬ك ټُٳ ظ٭مٿ ٌٍي خڀًخڀص؟ يف خألوپ ظٹىڂ زةَـد‪ ٪‬خڀع٭ځُمُص خأل‪ٜ‬ځُص خڀيت ًٰنودٌد ذـ ‪ int3‬مث ظٹىڂ جبځر خڀـ ‪ Context‬خغبدرل‬
‫ڀځربودڄؿ ‪ .‬ظٍټُ ؤوىد وٹٳ ‪٬‬ىً ‪٬‬ىىخن ًََّ زـ ‪٬ 1‬ه خڀ٭ىىخن خڀٌٍ ظىٸٵىد ‪٬‬ىًي‪ ،‬ڀٍڀٻ وـر ؤن وىٹ‪ ٛ‬خڀـ ‪ EIP‬زىخلً ڀٽٍ و٭ىي‬
‫ڀځع٭ځُمص خأل‪ٜ‬ځُص‪ ،‬مث وُـ‪ ٫‬خڀعمٽڃ ڀځربودڄؿ زدڀًخڀص‪. SetThreadContext‬‬

‫وخڀٕاخپ خپٌٌ َ‪ُ٥‬ق وٵًٕ ‪ :‬ڄىت هبر ؤن و‪ ٫١‬وٹ‪٥‬ص ظىٸٳ؟‬

‫يبٽىٻ و‪٠‬٭هد ڄسدُ٘ش ز٭ً ربمُٿ خڀربودڄؿ خؽبًٲ ڀځٍخټُش‪ٌ ،‬ٽٍخ‪:‬‬

‫‪Result=CreateProcess( FileTarget,‬‬
‫‪0,0,0,0,‬‬
‫‪DEBUG_PROCESS+ DEBUG_ONLY_THIS_PROCESS,‬‬
‫‪0,0,‬‬
‫‪&sinfo,‬‬
‫;)‪&pinfo‬‬
‫;)‪Set_int3_BP(pinfo.hProcess,(void *)0x004010E4,&OriginalOP‬‬

‫ؤو ( ظٍټُ ٸځىد‪" :‬ؤو" ) يبٽىٻ و‪٠‬٭هد يف خغبًغ ‪ٌ CREATE_PROCESS_DEBUG_EVENT‬ٽٍخ ‪:‬‬


‫)‪switch(DebugEvent.dwDebugEventCode‬‬
‫{‬
‫‪case CREATE_PROCESS_DEBUG_EVENT:‬‬
‫;)‪Set_int3_BP(pinfo.hProcess,(void *)0x004010E4,&OriginalOP‬‬
‫;‪break‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪40‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫َت‪ ٢‬جيب إظاي‪ْ ١‬كط‪ ١‬ايت‪ٛ‬قـ؟‬


‫يبٽه بِخڀعهد ؤؼىدء خڀعىٸٳ ‪٬‬ىً خالٔعؽىدء‪ ،‬ټدڀعدرل ‪:‬‬

‫‪case EXCEPTION_DEBUG_EVENT:‬‬
‫)‪if(DebugEvent.u.Exception.ExceptionRecord.ExceptionCode==EXCEPTION_BREAKPOINT‬‬
‫{‬
‫;‪cntxt.ContextFlags=CONTEXT_FULL‬‬
‫;)‪GetThreadContext(pinfo.hThread,&cntxt‬‬
‫)‪if(cntxt.Eip==0x004010E5‬‬
‫{‬
‫;)‪MessageBox(0,"We Are on the BP","On BP",MB_OK‬‬
‫‪Remove_int3_BP( &cntxt,‬‬
‫‪pinfo.hThread,‬‬
‫‪pinfo.hProcess,‬‬
‫‪(void *)0x004010E4,‬‬
‫;)‪OriginalOP‬‬
‫}‬
‫}‬
‫‪ContinueDebugEvent(DebugEvent.dwProcessId,‬‬
‫‪DebugEvent.dwThreadId,‬‬
‫;)‪DBG_CONTINUE‬‬
‫;‪break‬‬

‫‪ .3.2‬ثايجا‪َ :‬جاٍ تطب‪ٝ‬ك‪َ ٞ‬تكسّ‬

‫خڀٕىَْ وٌى وخ‪٠‬ك ـًخً‪.‬‬


‫‪.‬‬ ‫ذبً خڀٽىي ټدڄالً يف خؼبُٴٹدض ؼبؽدپ َٹعى‪ ٛ‬خڀَُٕدپ ڄه ‪٠‬مُص ڄُٴٷ ڄ‪٫‬‬

‫وؤَ‪١‬دً ٔىفً ڄؽدالً َ٭‪ ٍ٥‬ٸُمص صبُ‪ ٫‬خدلٔفالض ؤؼىدء خڀعىٸٳ يف ‪٬‬ىىخن ڄد‪.‬‬

‫خِن ٔىٹىڂ زًَخٔص ڄؽدپ ڄعٹًڂ ٸځُالً‪ ،‬وى‪٠‬ك ڄه والڀً ‪َُ٤‬ٹص ظعس‪ ٫‬وو‪ ٫٠‬وٹ‪ ٣‬ظىٸٳ ‪٬‬ځً زُودڄؿ ڄ‪١‬ٱى‪ ٢‬وٸى‪ ٛ‬خڀَُٕدپ ؤَ‪١‬دً‪،‬‬
‫ؤىٹىڂ زع‪٥‬سُٷ ټٿ ڄد ظ٭ځمىدي يف ٌٍخ خڀًَْ ‪٬‬ځً ٌٍخ خؼبؽدپ؛ لُػ ٔىُخٸر ؤٰځر خأللًخغ زً‪.‬‬

‫خٴعك خڀ‪١‬مُص ؤعُخٌد ټدڀعدرل ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪41‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫َ‪٥‬ځر خالٔڃ وخڀَُٕدپ وٌىدڀٻ َٔدڀص و‪٥‬إ‪ .‬خِن ضبځً يف ‪: OllyDbg‬‬

‫ؤوط ظ٭ُٲ ټُٳ ظٵٻ ‪٠‬ٱ‪ًَ UPX ٣‬وَدُ ‪ٜ‬مُك؟! خوّپ خذل خڀٹٵّش خؼبمُّش ؽبٍخ خڀ‪١‬دٰ‪ ٣‬مث خ‪٠‬ٱ‪: F9٣‬‬

‫خڀٹٵّش ‪٬‬ىً خڀ٭ىىخن ‪ 0x05212DF0‬ظٍټُي ـًُخً‪ .‬و خِن ال ظ‪١‬ٱ‪ F8 ٣‬زٿ خذبً بذل خڀ٭ىىخن خڀٌٍ ظٌٍر ڀً خڀٹٵّش ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪42‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ٔعىعٹٿ خذل خڀ٭ىىخن ‪:0x040675C0‬‬

‫صبُٿ!! خِن ؤ‪ٜ‬سك خڀٽىي وخ‪٠‬مدً‪ ،‬بٌن ڄدٌخ ل‪ٝ‬ٿ لٌن و‪٠‬٭ىد وٹ‪٥‬ص خڀعىٸٳ؟!‬

‫ټمد ظ٭ځڃ ٴـ ‪ UPX‬زُودڄؿ ‪٠‬ٱ‪ .٣‬ڄد وب‪ٝ‬ٿ ٸسٿ ظىٵٍُ خڀٹٵّش ٌى ٴٻ ‪٠‬ٱ‪ ٣‬ټىي خڀربودڄؿ يف خڀٍخټُش مث ظىٵٍُي ز٭ًٌد‪.‬‬

‫خِن ڀى‪١‬ٱ‪ F9 ٣‬وڀى‪ٙ‬دًٌ ؤَه ىبعسث خڀَُٕدپ؟‬

‫ز٭ً خڀ‪١‬ٱ‪٬ ٣‬ځً ‪ ٫٠ F9‬وٹ‪٥‬ص ظىٸٳ ‪٬‬ىً ‪ MessageBox‬ڄه والپ ‪ CommandLine‬يف ‪ٌ OllyDbg‬ٽٍخ ‪:‬‬

‫ؤو ڄه والپ ب‪٠‬دٴص ؤوُىد ‪ٌ Zool@nder‬ٽٍخ ‪:‬‬

‫مث خټعر ؤٌ خٔڃ وؤٌ َُٔدپ‪ ،‬وڀُٽه ‪ AT4RE‬و خڀَُٕدپ ٌى ‪ 1111111111111‬مث خ‪٠‬ٱ‪" ٣‬ربٹٷ ڄه خڀعٕفُٿ" ؤُعىٸٳ‬
‫‪ OllyDbg‬يف ٌٍخ خؼبٽدن ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪43‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ؤِپ وٹ‪٥‬ص خڀعىٸٳ ڄه ‪ MOV EDI,EDI‬مث ‪٠‬٭هد يف ‪ RETN 10‬وخ‪٠‬ٱ‪ٔ F9 ٣‬عفً ؤن َٔدڀص خػب‪٥‬إ ٸً ‪٨‬هُض ڀٻ‪ ،‬ڄىخٴٷ وز٭ًٌد‬
‫ُٔعىٸٳ ‪٬ OllyDbg‬ىً ‪. RETN 10‬‬

‫خ‪٠‬ٱ‪ F8 ٣‬ؤعفً وٵٕٻ ‪٬‬ىً ڄ‪َٔ ًَٝ‬دڀص خػب‪٥‬إ‪.‬‬

‫خِن ‪ ٫٠‬وٹ‪٥‬ص ظىٸٳ ‪٬‬ىً ٌٍخ خڀ٭ىىخن ‪ 00403FF4‬مث ؤ‪ ً٬‬بيودپ خالٔڃ وخڀعٕفُٿ‪ ،‬و‪٬‬ىًٌد ٔى‪ٙ‬دًٌ خڀعدرل (خو‪ ُ٩‬خؼبٕفالض) ‪:‬‬

‫ٌدٌى خڀَُٕدپ خػبد‪ ٚ‬زدالٔڃ ‪ AT4RE‬بوً ‪ 0160‬ـُزً‪ ..‬بوً َ٭مٿ !! خِن هبر ؤن وعٍټُ ڄد َځٍ ‪:‬‬

‫‪٬ )1‬ىىخن خڀٹٵّش ڀٵٻ خڀٽىي يف خڀٍخټُش ‪. 0x05212DF :‬‬


‫‪ )2‬خڀ٭ىىخن خڀٌٍ وًَُ خڀعىٸٳ ‪٬‬ىًي ڀٹى‪ ٛ‬خڀَُٕدپ‪ ،‬وٌى‪. 0x0403FF4 :‬‬
‫‪ )3‬خڀَُٕدپ َىـً يف خڀ٭ىىخن خڀٌٍ يف خؼبٕفٿ ‪. EDX‬‬

‫ؤٰٿٶ ‪ OllyDbg‬وي‪٬‬ىد وٵ٭ٿ ٌڀٻ زُؾبُدً‪.‬‬

‫أوالً ‪ٔ :‬ىممٿ خڀربودڄؿ ڄه ؤـٿ خڀعىٹُك وو‪٩‬ىٻ ظ٭ُٲ ټُٳ ظٹىڂ زٍڀٻ؟!‪.‬‬

‫ثاَياً ‪ٔ :‬ىٹىڂ زى‪ ٫٠‬وٹ‪٥‬ص ظىٸٳ ‪٬‬ىً ‪٬‬ىىخن خڀٹٵّش ‪ 0x05212DF‬ولٌن َعىٸٳ خڀربودڄؿ وَّځهد مث و‪ ٫١‬وٹ‪٥‬ص ؤوُي ‪٬‬ىً خڀ٭ىىخن‬
‫‪ 0x0403FF4‬ولٌن َعىٸٳ ‪٬‬ىً ٌٍي خألوًنش وٹىڂ زٹى‪ ٛ‬خؼبٕفالض وڄ٭ځىڄدض خڀعٕفُٿ ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪44‬‬
AT4RE :‫انفريك انعرتي نههُذسح انعكسيح‬ ‫ وانذهىل انًرمذيح‬Olly .‫ خطىج إنى األياو‬:‫انهُذسح انعكسيح‬

case CREATE_PROCESS_DEBUG_EVENT:
Set_int3_BP(pinfo.hProcess,(void *)0x005212DF,&OriginalOP);
break;

case EXCEPTION_DEBUG_EVENT:
if(DebugEvent.u.Exception.ExceptionRecord.ExceptionCode==EXCEPTION_BREAKPOINT)
{
cntxt.ContextFlags=CONTEXT_FULL;
GetThreadContext(pinfo.hThread,&cntxt);
if(cntxt.Eip == 0x005212DF + 1)
{
Remove_int3_BP(&cntxt,
pinfo.hThread,
pinfo.hProcess,
(void *)0x005212DF,
OriginalOP);

Set_int3_BP(pinfo.hProcess,(void *)0x00403FF4,&OriginalOP);
}
else if(cntxt.Eip == 0x00403FF4 + 1)
{
wsprintf(RegInformation,"EAX = %.8X\n"
"ECX = %.8X\n"
"EDX = %.8X\n"
"EBX = %.8X\n"
"ESP = %.8X\n"
"EBP = %.8X\n"
"ESI = %.8X\n"
"EDI = %.8X",
cntxt.Eax,
cntxt.Ecx,
cntxt.Edx,
cntxt.Ebx,
cntxt.Esp,
cntxt.Ebp,
cntxt.Esi,
cntxt.Edi);

MessageBox(0,RegInformation,"Registers",MB_OK | MB_ICONINFORMATION);
ReadProcessMemory(pinfo.hProcess,(void *)cntxt.Edx,Serial,5,0);
MessageBox(0,Serial,"Your Serial Is :",0);
Remove_int3_BP ( &cntxt,
pinfo.hThread,
pinfo.hProcess,
(void *)0x00403FF4,
OriginalOP );
}
}
ContinueDebugEvent(DebugEvent.dwProcessId,
DebugEvent.dwThreadId,
DBG_CONTINUE);
break;

‫ٍ ټىي‬٥‫هُ َٔدڀص ظ٭‬٩‫دً ٔى‬١َ‫ وؤ‬،‫ ؽبد‬ImageBase ‫ ؤىٹىڂ جبځر خڀـ‬،‫ خأللًخغ؛ ڄؽالً بٌخ ضبٿ خڀربودڄؿ يخڀص ڄد‬ٟ‫ُٳ ز٭‬١‫خِن ٔى‬
: ‫لدڀص وُوؾ خڀربودڄؿ ڄه خڀعىٹُك‬
case LOAD_DLL_DEBUG_EVENT:

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ 2009 45


AT4RE :‫انفريك انعرتي نههُذسح انعكسيح‬ ‫ وانذهىل انًرمذيح‬Olly .‫ خطىج إنى األياو‬:‫انهُذسح انعكسيح‬

wsprintf(SomeInfo,"The Program Loads a new Library its ImageBase =


%.8X",DebugEvent.u.LoadDll.lpBaseOfDll);
MessageBox(0,SomeInfo,"Dll ImageBase",MB_OK);
break;

: ‫ ؤؼىدء ربمُٿ خؼبځٳ ڀځٍخټُش‬PE ‫ ڄ٭ځىڄدض‬ٟ‫ـځر ز٭‬

case CREATE_PROCESS_DEBUG_EVENT:
Set_int3_BP(pinfo.hProcess,(void *)0x005212DF,&OriginalOP);
wsprintf(SomeInfo,"Program Loaded :\nImageBase = %.8X\nEP = %.8X",
DebugEvent.u.CreateProcessInfo.lpBaseOfImage,
DebugEvent.u.CreateProcessInfo.lpStartAddress);
MessageBox(0,SomeInfo,"Some Pe Info",MB_OK);
break;

:‫دً ټىي لدڀص خػبُوؾ ڄه خڀعىٹُك‬١َ‫ وؤ‬،‫ َٔدڀص ؤؼىدء خػبُوؾ ڄه خڀعىٹُك‬٪‫ر‬٤

case EXIT_PROCESS_DEBUG_EVENT:
wsprintf(SomeInfo,"Program Closed , its state = %.8X",
DebugEvent.u.ExitProcess.dwExitCode);
MessageBox(0,SomeInfo,"State",MB_OK);
Result=FALSE;
break;

.‫ خڀٕىَْ ټىي يف خؼبُٴٹدض‬.‫ځً زدٸٍ خأللًخغ بن ؤَيض‬٬ ‫يبٽىٻ خڀعمُن‬

‫ ڀربودڄؿ ڄه ؤـٿ خڀعىٹُك ؟‬Attach ‫مٿ‬٬ ‫ڄدٌخ خِن ڀى ؤَيود‬

‫همد زدڀًخڀص‬١َ‫ وظ٭ى‬GetOpenFileNameA ‫ و‬CreateProcess ‫ ويبٽه خڀٹُدڂ زً حبٍٲ خألڄَُه‬٣ُٕ‫خألڄُ ز‬


‫ زُودڄؿ‬PID ً‫ځ‬٬ ‫ٿ‬ٝ‫ ڀعم‬Kernel Detective ‫ٽٿ؛ ڄؽالً خٴعك زُودڄؿ‬ٙ‫ خڀيت يبٽه خٔعٱالؽبد هبٍخ خڀ‬DebugActiveProcess
: ً‫ألـٿ ظىٹُم‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ 2009 46


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫مث و٭‪ ً٥‬ڀځًخڀص ‪ DebugActiveProcess‬ټدڀعدرل ‪:‬‬

‫; )‪DebugActiveProcess((DWORD)1576‬‬

‫مث وًوځً غبځٹص خڀعىٹُك‪.‬‬

‫وخڀٕالڂ‬
‫‪.‬‬ ‫بذل ٌىد وىهٍ خڀًَْ وخڀ‪ٝ‬الش وخڀٕالڂ ‪٬‬ځً ؤُ٘ٲ خػبځٷ ًُٔود ؿبمً ‪٬‬ځًُ خڀ‪ٝ‬الش‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪47‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫السلريبتييغ يف ‪OllyDbg‬‬
‫‪Scripting In OLLYDBG : OdbgScript‬‬

‫‪ .4‬املكسَ‪١‬‬
‫‪ ٌٍ : OdbgScript‬ڀٱص زُؾبص ود‪ٜ‬ص زربودڄؿ خڀعىٹُك ‪ OllyDbg‬وٌٍ ٘سُهص بذل لًٍ ڄد زځٱص خڀعفمُ‪.٫‬‬

‫ټٽٿ ڀٱص ٔٽَُسط ‪ OdbgScript‬ڀً ؤوخڄُ وڄ٭ُٴدض ود‪ٜ‬ص زً ذب٭ٿ ‪٬‬مځُص خڀعىٹُك ؤڄُخً ٔهالً و‪ٝ‬ى‪ٜ‬دً ‪٬‬ىًڄد َع‪٥‬ځر خألڄُ ظىٵٍُ‬
‫‪٬‬مځُدض آڀُص ؤو ڄعٽَُش ؤو خالؼىٌن ڄ٭دً‪.‬‬

‫وٸٳ ‪٬‬ىً ز٭‪ٟ‬‬


‫خذضپـ ‪ ، OdbgScript‬ټٿٍ ‪٬‬ځً لًش‪ ،‬ڄ‪ ٫‬خڀط‬
‫ٔىع‪ُ٥‬ٶ يف ٌٍخ خڀًَْ بذل خڀع٭َُٳ زٽٿ خألوخڄُ وخؼبعٱًنخض خپغ ش‬
‫خألڄؽځص خڀَُٕ٭ص وخڀ٭مځُص‪ ،‬وخڀيت يبٽه لٹه ڄ٭‪٩‬مهد ڄسدُ٘ش يف ڄځٳ ٔٽَُسط و‪ ٍٝ‬وخٔعً‪٬‬دئٌد ڀځعفَُر‪.‬‬

‫‪ .5‬أغاغ‪ٝ‬ات جيب َعطؾتٗا‬

‫ٌٍ ڄ‪ٙ‬دهبص ڀى‪ً٩‬نهتد يف ڀٱص خڀعفمُ‪ ٫‬ڄ‪ ٫‬خوعالٴدض زُٕ‪٥‬ص ‪:‬‬


‫ؼدزط‪٬‬ځً ؤهند ٸُڃ ٔعص ‪َُٙ٬‬ص‪.‬‬
‫َع٭دڄٿ ‪ OdbgScript‬ڄ‪ ٫‬ټٿ خڀٹُڃ خپ ش‬
‫‪٬‬ىً خٔع٭مدپ ٸُڃ ‪َُٙ٬‬ص َىسٱٍ ؤن ظعس‪ ٫‬زىٹ‪٥‬ص‪.‬‬
‫‪٬‬ىً خٔع٭مدپ ‪٬‬سدَخض ٔعص ‪َُٙ٬‬ص‪ ،‬هبر ل‪ٌُٝ‬د زٌن خڀُڄّ ‪( #‬ڄؽدپ‪.) #4A00# :‬‬
‫يبٽه خٔع٭مدپ خڀُڄّ ؟ ڀع٭ىَ‪ ٟ‬خڀٹُڃ خجملهىڀص (ڄؽدپ‪.) #4?00# :‬‬
‫ټسدٸٍ ڀٱدض خڀربؾبص‪َٕ OdbgScript ،‬ع٭ڃپ خؼب٭دڄالض خڀعدڀُص‪ > < ^ | & / * - + :‬لُػ ‪:‬‬

‫يماتم ‪AND‬‬ ‫&‬


‫يماتم ‪OR‬‬ ‫|‬
‫^ يماتم ‪XOR‬‬
‫> يماتم ‪SHR‬‬
‫< يماتم ‪SHL‬‬

‫خؼبعٱًنخض خحملفىِش‪ ٌٍ :‬ؤظبدء ود‪ٜ‬ص يبى‪ ٫‬ؤن سبىك ألٌ ڄعٱًن آوُ‪:‬‬

‫‪ $RESULT‬ربعىٌ يخجمدً خڀٹُمص خؼبُـ٭ص ڄه خألوخڄُ‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪48‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ $RESULT_1‬خڀٹُمص خؼبُـ٭ص ڄه ز٭‪ ٟ‬خألوخڄُ‪.‬‬


‫‪ $RESULT_2‬خڀٹُمص خؼبُـ٭ص ڄه ز٭‪ ٟ‬خألوخڄُ‪.‬‬
‫‪ VERSION$‬ظُـ‪َ ٫‬ٸڃ ب‪ًٜ‬خَ ‪.OdbgScript‬‬

‫‪ .6‬ايتعً‪ٝ‬كات‬

‫‪٬‬ىً بيودپ ظ٭ځُٹدض و‪ُٝ‬ص ‪٬‬ځً ؤٌ ٔٽَُسط هبر ڄُخ‪٬‬دش ڄد َځٍ‪:‬‬


‫خڀع٭ځُٷ َٕسٷ زإلً خڀُڄَّه ; ؤو ‪. //‬‬
‫ٔ‪ ُ٥‬خڀع٭ځُٷ خؼبٕسىٶ زدڀُڄّ ; ٌ‪٨‬هُ يف ودٴٍش ظىٵٍُ خڀٕٽَُسط‪.‬‬
‫يبٽه خالٔعٱىدء ‪٬‬ه خڀُڄَّه خڀٕدزٹٌن ُ٘‪ ٢‬ل‪ ُٝ‬و‪ ٛ‬خڀع٭ځُٷ زٌن *‪ /‬و‪. */‬‬

‫‪ .7‬ادتصاشات‬

‫خعبٍخٌش (‪ : )label‬ظٕمُص ٔ‪ ُ٥‬ڄ٭ٌن ڄه خڀٕٽَُسط ڀٱُ‪ ٞ‬خڀٹٵّ بڀًُ ‪٬‬ىً ظىٵٍُ خڀٕٽَُسط‪.‬‬
‫ڀع٭َُٳ ـٍخٌش َٽٵٍ ټعدزص خالٔڃ خؼبُخي ؽبد ڄعسى‪ ٪‬زدڀُڄّ وٹ‪٥‬عدن ‪. :‬‬
‫ي‪٬‬دجهد َٽعر خظبهد ز٭ً خڀع٭ځُمص خؼبىدٔسص يون ؤن ظعس‪ ٫‬زدڀُڄّ وٹ‪٥‬عدن ‪. :‬‬
‫الٔط‬

‫أ‪ٚ‬اَط ‪OdbgScript‬‬ ‫‪.8‬‬

‫‪ .8.1‬ايك‪ٝ‬ػ‪ ١‬ايعاَ‪١‬‬

‫ټىن ‪٬‬ځً خڀ‪ٙ‬ٽٿ خڀعدرل ‪:‬‬


‫خڀ‪ُٝ‬ٱص خڀ٭دڄص ألٌ ؤڄُ ْض‬

‫]‪INSTRUCTION param1, param2 [param3‬‬

‫لُػ ‪:‬‬

‫خڀع٭ځُمص ؤو خألڄُ‪.‬‬ ‫‪‬‬ ‫‪INSTRUCTION‬‬

‫خدل‪٬‬دڄٿ خألوپ‪.‬‬ ‫‪‬‬ ‫‪param1‬‬

‫خؼب٭دڄٿ خڀؽدين‪.‬‬ ‫‪‬‬ ‫‪param2‬‬

‫خؼب٭دڄٿ خڀؽدڀػ‪ ،‬وٌى خوعُدٌَ وًٰن بڀّخڄٍ؛ ڀىـىيي زٌن‬ ‫‪‬‬ ‫‪param3‬‬

‫ڄ٭ٹىٴعٌن‪.‬‬

‫‪ .8.2‬ايتعً‪ُٝ‬ات‬

‫‪: ADD‬‬
‫‪ADD dest, src‬‬ ‫اًض‪ٚ‬قج‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪49‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫إظبلج ‪ src‬إًٗ ‪ٕ dest‬ضمغ اًِبخز ل‪dest ٙ‬‬ ‫اًَمؾٕل‬


‫"‪add x, "times‬‬ ‫‪//‬‬ ‫تؾد اًؾٌَ‪ٚ‬ج "‪x= "100 times‬‬ ‫َذــبل‬
‫‪mov x, 100‬‬ ‫‪//‬‬ ‫‪x = 100‬‬
‫‪add ecx, x‬‬ ‫‪//‬‬ ‫إظبلج ‪ 100‬إًٗ ‪ecx‬‬
‫‪add [401000], 200‬‬ ‫‪//‬‬ ‫إظبلج ‪ 200‬إًٗ َضخٕٖ اًؾِٕاُ ‪401000‬‬
‫‪: AL‬‬
‫‪AL‬‬ ‫اًض‪ٚ‬قج‬
‫خِمذ األَر "‪" Animate into‬‬ ‫اًَمؾٕل‬
‫‪: ALLOC‬‬
‫‪ALLOC size‬‬ ‫اًض‪ٚ‬قج‬
‫خخضص َشبضج هدرٓب ‪ size‬ل‪ ٙ‬اًذايرث‪ٕ .‬خررػ اًؾِٕاُ اًَخضص ل‪RESULT$ ٙ‬‬ ‫اًَمؾٕل‬
‫‪: AN‬‬
‫‪AN add‬‬ ‫اًض‪ٚ‬قج‬
‫خِمذ األَر ‪ًٌ Analyze‬ؾِٕاُ ‪addr‬‬ ‫اًَمؾٕل‬
‫‪an eip‬‬ ‫‪//‬‬ ‫= ‪CTRL-A‬‬ ‫َذــبل‬
‫‪: AO‬‬
‫‪AO‬‬ ‫اًض‪ٚ‬قج‬
‫خِمذ األَر "‪" Animate Over‬‬ ‫اًَمؾٕل‬
‫‪: ASK‬‬
‫‪ASK question‬‬ ‫اًض‪ٚ‬قج‬
‫خغٔر ِبلذث ِض‪ٚ‬ج خضخٕ٘ اًؾتبرث ‪ً question‬سٌة اًِص اًَدخل َُ عرك اًَشخؾَل‪.‬‬ ‫‪‬‬ ‫اًَمؾٕل‬
‫‪ ‬خرسؼ ‪ $RESULT = 0‬ؽِد اًظقع ؽٌٗ زر اإلًقبء‪.‬‬
‫‪ ‬خرسؼ يذًى عٕل اًِص ل‪ ٙ‬اًَخق‪ٚ‬ر ‪. $RESULT_1‬‬

‫‪mov eip, $RESULT‬‬ ‫‪//‬‬ ‫َذــبل‬


‫‪"ask "Enter new EIP‬‬
‫‪cmp $RESULT, 0‬‬
‫‪je cancel_pressed‬‬
‫‪mov eip, $RESULT‬‬
‫‪cancel_pressed:‬‬
‫‪ret‬‬
‫‪: ASM‬‬
‫‪ASM addr, command‬‬ ‫اًض‪ٙ‬فج‬
‫خضوُ األَر ‪ command‬ل‪ ٙ‬اًؾِٕاُ ‪addr‬‬ ‫اًَمؾٕل‬
‫"‪asm 4012FE, "xor eax,eax‬‬ ‫َذــبل‬
‫‪ASMTX‬‬
‫‪ASMTXT addr, file‬‬ ‫اًض‪ٚ‬قج‬ ‫‪:T‬‬
‫خضوُ يٕد ٌَك اًخسَ‪ٚ‬ؼ ل‪ ٙ‬اًؾِٕاُ ‪addr‬‬ ‫اًَمؾٕل‬
‫"‪asm 4012FE, "mycode.asm‬‬ ‫َذــبل‬
‫‪: ATOI‬‬
‫]‪ATOI str [, base=16.‬‬ ‫اًض‪ٚ‬قج‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪50‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫خضٕ‪ٚ‬ل اًؾتبرث اًرهَ‪ٚ‬ج ‪ َُ str‬األشبس ‪( base‬الخراظ‪ٚ‬بً شخج ؽشر٘) إًٗ َوبتٌٔب الشخج ؽشر٘‪.‬‬ ‫اًَمؾٕل‬
‫اًِبخز ل‪$RESULT ٙ‬‬
‫‪atoi "30", 10.‬‬ ‫‪//‬‬ ‫‪RESULT = 1E‬‬ ‫َذــبل‬
‫‪atoi "1110", 2‬‬ ‫‪//‬‬ ‫‪RESULT = 0E‬‬
‫‪: BC‬‬
‫]‪BC [addr‬‬ ‫اًض‪ٚ‬قج‬
‫ضذك ِوعج خٕهك ف‪ٚ‬ر َشرٕعج ؽِد اًؾِٕاُ ‪addr‬‬ ‫اًَمؾٕل‬
‫‪bc 6A0000‬‬ ‫‪//‬‬ ‫َذــبل‬
‫‪bc eip‬‬ ‫‪//‬‬
‫‪: BD‬‬
‫]‪BD [addr‬‬ ‫اًض‪ٚ‬قج‬
‫خؾع‪ٚ‬ل ِوعج خٕهك ف‪ٚ‬ر َشرٕعج ؽِد اًؾِٕاُ ‪addr‬‬ ‫اًَمؾٕل‬
‫‪bd 6A0000‬‬ ‫َذــبل‬
‫‪bd eip‬‬
‫‪BEGINS‬‬
‫]‪BEGINSEARCH [start‬‬ ‫اًض‪ٚ‬قج‬ ‫‪: EARCH‬‬
‫ِشخ اًيٕد اًَِوص اتخداءً َُ اًؾِٕاُ ‪ start‬إًٗ اًذايرث ‪.‬‬ ‫اًَمؾٕل‬
‫ٕخشخؾَل تبًَٕازاث َؼ ‪ ENDSEARCH‬فبًتًب ًخشر‪ٚ‬ؼ ؽٌَ‪ٚ‬ج اًتضد تبألَر ‪. FIND‬‬
‫‪mov count, 0‬‬ ‫;‬ ‫َذــبل‬
‫‪mov start, eip‬‬ ‫;‬
‫‪beginsearch start‬‬ ‫;‬ ‫ِشخ اتخداءً َُ ‪eip‬‬
‫‪loop:‬‬ ‫;‬
‫‪find start, #60#‬‬ ‫;‬ ‫اًتضد اتخداءً َُ ‪ eip‬ؽُ اًخؾٌ‪َٚ‬ج ‪pushad‬‬
‫‪cmp $RESULT,0‬‬ ‫;‬ ‫لضص ِخ‪ٚ‬سج اًتضد‬
‫‪je end‬‬ ‫;‬ ‫خرٕر إذا ًٍ خٕسد‬
‫‪mov‬‬ ‫‪start,‬‬ ‫;‬ ‫ِول اًؾِٕاُ اًخبً‪ ٙ‬اًذ٘ ٕسدح ل‪ ْٚ‬اًخؾٌ‪َٚ‬ج إًٗ‬
‫‪$RESULT+1‬‬ ‫‪start‬‬
‫‪add count, 1‬‬ ‫;‬ ‫ز‪ٚ‬بدث اًؾداد‬
‫‪jmp loop‬‬ ‫;‬
‫‪end :‬‬
‫‪end :‬‬ ‫;‬
‫‪endsearch‬‬ ‫;‬ ‫خمر‪ٚ‬ـ اًذايرث‬
‫‪msg count‬‬ ‫;‬ ‫إغٔبر ؽدد َراح ٕرٕد اًخؾٌ‪َٚ‬ج‬
‫‪: BP‬‬
‫‪BP addr‬‬ ‫اًض‪ٚ‬قج‬
‫خمؾ‪ٚ‬ل ِوعج خٕهك ف‪ٚ‬ر َشرٕعج ؽِد اًؾِٕاُ ‪addr‬‬ ‫اًَمؾٕل‬
‫‪bp 6A0000‬‬ ‫َذــبل‬
‫‪bp eip‬‬
‫‪: BPCND‬‬
‫‪BPCND addr, cond‬‬ ‫اًض‪ٚ‬قج‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪51‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫خمؾ‪ٚ‬ل ِوعج خٕهك َشرٕعج تبًشرع ‪ cond‬ؽِد اًؾِٕاُ ‪addr‬‬ ‫اًَمؾٕل‬


‫‪bpcnd‬‬ ‫‪401000,‬‬ ‫خٕهك إذا اًَشسل ‪AL=1‬‬ ‫َذــبل‬
‫"‪"AL==1‬‬
‫‪BPGOT‬‬
‫‪:O‬‬
‫‪BPGOTO addr, label‬‬ ‫اًض‪ٚ‬قج‬
‫اًومز إًٗ اًسُذَاذَث ‪ label‬تؾد إًهٕك ؽٌٗ ِوعج اًخٕهك ؽِد اًؾِٕاُ ‪َ ٕٙٓ addr‬شبتْث ًألَر ‪EOB‬‬ ‫اًَمؾٕل‬
‫‪mov addr, 64A000‬‬ ‫َذــبل‬
‫‪bp addr‬‬
‫‪bpgoto addr, notice‬‬ ‫ؽِد ضدٕد ‪; , int3 exception‬‬
‫…‬ ‫;‬
‫اًخؾٌ‪َٚ‬بح خيَل اِعالهبً َُ‬
‫…‬
‫‪notice:‬‬ ‫‪notice‬‬
‫"‪msg "Break Point set correctly‬‬
‫‪BPHWC‬‬
‫]‪BPHWC [addr‬‬ ‫اًض‪ٚ‬قج‬
‫ضذك ِوعج خٕهك ٓبردٕ‪ٚ‬ر ؽِد اًؾِٕاُ ‪addr‬‬ ‫اًَمؾٕل‬
‫‪bphwc 64A000‬‬ ‫َذــبل‬
‫‪BPHWS‬‬
‫]‪BPHWS addr, [mode‬‬ ‫اًض‪ٚ‬قج‬
‫ٕظؼ ِوعج خٕهك ٓبردٕ‪ٚ‬ر ؽِد اًؾِٕاُ ‪ٕ addr‬األَِبع اًََيِج ٓ‪:ٙ‬‬ ‫اًَمؾٕل‬
‫"‪ " r‬هراءث‬‫‪‬‬
‫‪ " w" ‬يخبتج‬
‫‪ " x" ‬خِم‪ٚ‬ذ (الخراظ‪)ٙ‬‬
‫"‪bphws 64A000, "w‬‬ ‫َذــبل‬
‫‪BPL‬‬
‫‪BPL addr, expr‬‬ ‫اًض‪ٚ‬قج‬
‫ٕظؼ ِوعج خٕهك ؽِد اًؾِٕاُ ‪ً addr‬خدٕ‪ ُٚ‬اًؾتبرث ‪expr‬‬ ‫اًَمؾٕل‬
‫"‪bpl 64A000, "eax‬‬ ‫خدٕ‪ ُٚ‬ه‪َٚ‬ج ‪ eax‬ؽِد يل خٕهك ؽٌٗ اًؾِٕاُ‬ ‫َذــبل‬
‫‪64A000‬‬
‫‪BPLCN‬‬
‫‪BPLCND addr, expr, cond‬‬ ‫اًض‪ٚ‬قج‬ ‫‪D‬‬

‫ٕظؼ ِوعج خٕهك َشرٕعج تبًشرع ‪ cond‬ؽِد اًؾِٕاُ ‪ً addr‬خدٕ‪ ُٚ‬اًؾتبرث ‪expr‬‬ ‫اًَمؾٕل‬
‫خدٕ‪ ُٚ‬ه‪َٚ‬ج ‪ eax‬ؽِد يل خٕهك ؽٌٗ اًؾِٕاُ ; "‪bpl addr, "eax", "ecx ==0‬‬ ‫َذــبل‬
‫;‬ ‫‪64A000‬‬
‫ٕ ؽِد اشخ‪ٚ‬مبء اًشرع ‪ecx=0‬‬
‫‪BPMC‬‬
‫]‪BPMC [addr‬‬ ‫اًض‪ٚ‬قج‬
‫ضذك ِوعج خٕهك ل‪ ٙ‬اًذايرث ؽِد اًؾِٕاُ ‪addr‬‬ ‫اًَمؾٕل‬
‫‪BPRM‬‬
‫‪BPRM addr, size‬‬ ‫اًض‪ٚ‬قج‬
‫ظؼ ِوعج خٕهك ل‪ ٙ‬اًذايرث ؽِد اًوراءث ؽٌٗ اًؾِٕاُ ‪ addr‬تعٕل ‪size‬‬ ‫اًَمؾٕل‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪52‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪bprm 64A000, 08‬‬ ‫َذــبل‬


‫‪BPWM‬‬
‫‪BPWM addr, size‬‬ ‫اًض‪ٚ‬قج‬
‫ظؼ ِوعج خٕهك ل‪ ٙ‬اًذايرث ؽِد اًيخبتج ؽٌٗ اًؾِٕاُ ‪ addr‬تعٕل ‪size‬‬ ‫اًَمؾٕل‬
‫‪bpwm 64A000, 08‬‬ ‫َذــبل‬
‫‪BUF‬‬
‫‪BUF var‬‬ ‫اًض‪ٚ‬قج‬
‫خضٕل اًَخق‪ٚ‬ر ‪( var‬ؽتبرث إٔ ه‪َٚ‬ج) إًٗ َوبتٌْ اًرهَ‪ٙ‬‬ ‫اًَمؾٕل‬
‫"‪mov str, "DEDE‬‬ ‫َذــبل‬
‫‪msg str‬‬ ‫;‬ ‫خرسؼ ‪DEDE‬‬
‫‪buf str‬‬
‫‪msg str‬‬ ‫;‬
‫خرسؼ ‪# 44454445#‬‬
‫‪CMP‬‬
‫]‪CMP dest, src [,size‬‬ ‫اًض‪ٚ‬قج‬
‫شت‪ٔٚ‬ج تِغ‪ٚ‬رٓب ل‪ً ٙ‬قج اًخسَ‪ٚ‬ؼ‪ .‬خوبرُ ‪َ src‬ؼ ‪ dest‬تعٕل ‪size‬‬ ‫اًَمؾٕل‬
‫‪cmp y, x‬‬ ‫َذــبل‬
‫‪cmp eip, 401000, 4‬‬
‫‪CMT‬‬
‫‪CMT addr, comment‬‬ ‫اًض‪ٚ‬قج‬
‫ظؼ خؾٌ‪ٚ‬ن ‪ comment‬ؽِد اًؾِٕاُ ‪addr‬‬ ‫اًَمؾٕل‬
‫‪cmt eip, "This is the‬‬ ‫َذــبل‬
‫"‪OEP‬‬
‫‪COB‬‬
‫‪COB‬‬ ‫اًض‪ٚ‬قج‬
‫خٕاضل خِم‪ٚ‬ذ اًشير‪ٚ‬تح تؾد َضبدلج ِوعج خٕهك‪ .‬خٌق‪ ٙ‬ؽَل األَر ‪EOB‬‬ ‫اًَمؾٕل‬
‫َذــبل‬

‫‪COE‬‬
‫‪COE‬‬ ‫اًض‪ٚ‬قج‬
‫خٕاضل خِم‪ٚ‬ذ اًشير‪ٚ‬تح تؾد َضبدلج اشخذِبء‪ .‬خٌق‪ ٙ‬ؽَل األَر ‪EOE‬‬ ‫اًَمؾٕل‬
‫َذــبل‬
‫‪DBH‬‬
‫‪DBH‬‬ ‫اًض‪ٚ‬قج‬
‫إخمبء اًَِوص‬ ‫اًَمؾٕل‬
‫‪DBS‬‬
‫‪DBS‬‬ ‫اًض‪ٚ‬قج‬
‫إغٔبر اًَِوص‪ .‬خٌق‪ ٙ‬ؽَل األَر ‪DBH‬‬ ‫اًَمؾٕل‬
‫‪DEC‬‬
‫‪DEC var‬‬ ‫اًض‪ٚ‬قج‬
‫عرش ٕاضد َُ اًَخق‪ٚ‬ر ‪var‬‬ ‫اًَمؾٕل‬
‫‪mov var, B‬‬ ‫َذــبل‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪53‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪dec var‬‬
‫‪msg var‬‬ ‫;‬ ‫خرسؼ ‪A0000000‬‬
‫‪DIV‬‬
‫‪DIV op1, op2‬‬ ‫اًض‪ٚ‬قج‬
‫خوش‪ op1 ٍٚ‬ؽٌٗ ‪ٕ op2‬ضمغ اًِبخز ل‪op1 ٙ‬‬ ‫اًَمؾٕل‬
‫‪mov op1, 12.‬‬ ‫َذــبل‬
‫‪mov op2, 6‬‬
‫‪ op1 = 2 div op1, op2‬خرسؼ‬
‫‪DM‬‬
‫‪DM addr, size, file‬‬ ‫اًض‪ٚ‬قج‬
‫شية (‪َ ) dump‬ضخٕٖ اًذايرث َُ اًؾِٕاُ ‪ٕ addr‬تعٕل ‪ size‬إًٗ اًٌَك ‪file‬‬ ‫اًَمؾٕل‬
‫"‪dm eip, 1000, "c:\dump.bin‬‬ ‫َذــبل‬
‫‪DMA‬‬
‫‪DMA addr, size, file‬‬ ‫اًض‪ٚ‬قج‬
‫شية ذٍ إظبلج َضخٕٖ اًذايرث َُ اًؾِٕاُ ‪ٕ addr‬تعٕل ‪ size‬إًٗ اًٌَك ‪ file‬إذا ٕسد‬ ‫اًَمؾٕل‬
‫"‪dma eip, 1000, "c:\dump.bin‬‬ ‫َذــبل‬
‫‪DPE‬‬
‫‪DPE file, ep‬‬ ‫اًض‪ٚ‬قج‬
‫شية َضخٕٖ اًذايرث ًٌٌَك اًخِم‪ٚ‬ذ٘ اًَِوص إًٗ اًٌَك ‪ٕ file‬سؾل ِوعج دخًْٕ ‪ep‬‬ ‫اًَمؾٕل‬
‫‪dpe "c:\dump.exe",‬‬ ‫َدــبل‬
‫‪eip‬‬
‫‪EOB‬‬
‫‪EOB label‬‬ ‫اًض‪ٚ‬قج‬
‫خضٕ‪ٚ‬ل خِم‪ٚ‬ذ اًشير‪ٚ‬تح إًٗ اًسذاذث ‪ label‬ؽِد ِوعج اًخٕهك اًخبً‪ٚ‬ج‬ ‫اًَمؾٕل‬
‫‪EOE‬‬
‫‪EOE label‬‬ ‫اًض‪ٚ‬قج‬
‫خضٕ‪ٚ‬ل خِم‪ٚ‬ذ اًشير‪ٚ‬تح إًٗ اًسذاذث ‪ label‬ؽِد االشخذُاء اًخبً‪ٙ‬‬ ‫اًَمؾٕل‬
‫‪eoe end:‬‬ ‫َذــبل‬
‫‪ERUN‬‬
‫‪ERUN‬‬ ‫الض‪ٚ‬قج‬
‫َشبتٔج ًٌظقع ؽٌٗ ‪ . SHIFT-F9‬خِم‪ٚ‬ذ دُٕ اًخٕهك ؽِد االشخذِبءاح‬ ‫اًَمؾٕل‬
‫‪ESTI‬‬
‫‪ESTI‬‬ ‫اًض‪ٚ‬قج‬
‫َشبتٔج ًٌظقع ؽٌٗ ‪. SHIFT-F7‬‬ ‫اًَمؾٕل‬
‫‪ESTO‬‬
‫‪ESTO‬‬ ‫اًض‪ٚ‬قج‬
‫هد‪َٚ‬ج ًيُ َشبتٔج ًألَر ‪. ESTI‬‬ ‫اًَمؾٕل‬
‫َذــبل‬
‫‪EVAL‬‬
‫"}‪EVAL "string with {var‬‬ ‫اًض‪ٚ‬قج‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪54‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫خن٘‪َ ٍٚ‬خق‪ٚ‬ر داخل ؽتبرث‪ٕ .‬اًَخق‪ٚ‬ر ‪ٚ‬سة أُ ‪ٚ‬ؾرك ت‪ ُٚ‬ؽالَخ‪ ٙ‬خِض‪ٚ‬ص " "‪.‬‬ ‫اًَمؾٕل‬
‫‪mov x, 1F‬‬ ‫َذــبل‬
‫"}‪eval "the value of x is {x‬‬ ‫;‬ ‫"‪$RESULT= "the value of x is 1F‬‬
‫‪EXEC/E‬‬
‫‪EXEC … ENDE‬‬ ‫اًض‪ٚ‬قج‬ ‫‪NDE‬‬

‫خِمذ خؾٌ‪َٚ‬بح ًقج اًخسَ‪ٚ‬ؼ اًَضضٕرث ت‪ ENDEٕ EXEC ُٚ‬ل‪ ٙ‬ة‪ٚ‬ئج اًترِبَز اًَِوص‪.‬‬ ‫اًَمؾٕل‬
‫اًَخق‪ٚ‬راح اًَؾرلج ت‪ ُٚ‬ؽالَخ‪ ٙ‬خِض‪ٚ‬ص‪ ،‬خؾٕط تو‪َٚ‬خٔب‪.‬‬
‫"‪mov x, "eax‬‬ ‫َذــبل‬
‫"‪mov y, "401000‬‬
‫‪exec‬‬
‫}‪xor {x}, {x‬‬ ‫‪; xor eax,eax‬‬
‫}‪add {x}, {y‬‬ ‫‪; add eax, 401000‬‬
‫‪ende‬‬
‫‪FILL‬‬
‫‪FILL addr, len, value‬‬ ‫اًض‪ٚ‬قج‬
‫َلء اًذايرث ؽِد اًؾِٕاُ ‪ addr‬تبًو‪َٚ‬ج ‪ٕ value‬تعٕل ‪ len‬تب‪ٚ‬ح‬ ‫اًَمؾٕل‬
‫‪fill 401000, FF, 90‬‬ ‫ٌَئ اًذايرث ؽِد ‪ 401000‬تـ ‪ 128‬خؾٌ‪َٚ‬ج ‪NOP‬‬ ‫َذــبل‬
‫‪FIND‬‬
‫‪FIND addr, expr‬‬ ‫اًض‪ٚ‬قج‬
‫لًتضد ؽُ اًو‪َٚ‬ج ‪ expr‬اتخداءً َُ اًؾِٕاُ ‪. addr‬‬ ‫اًَمؾٕل‬
‫خرسؼ ؽِٕاُ إٔل َضبدلج ًٌو‪َٚ‬ج ل‪. RESULT$ ٙ‬‬
‫‪find eip, #6AFFE8#‬‬ ‫اًتضد ؽُ أ٘ خؾٌ‪َٚ‬ج ‪َ push -1‬ختٕؽج تِداء‬ ‫َذــبل‬
‫‪FINDCA‬‬
‫]‪FINDCALLS addr [,name‬‬ ‫اًض‪ٚ‬قج‬ ‫‪LLS‬‬

‫للتضد ؽُ سَ‪ٚ‬ؼ اًِداءاح اًو‪ٚ‬بش‪ٚ‬ج (‪ ) dll calls‬اتخداءً َُ اًؾِٕاُ ‪َٕٚ addr‬يُ اشخؾَبل اًَرشص ‪name‬‬ ‫اًَمؾٕل‬
‫‪findcalls eip, reg‬‬ ‫اًتضد ؽُ اًِداءاح اًخبضج تبًرسشخر٘‬ ‫َذــبل‬
‫‪FINDC‬‬
‫‪FINDCMD addr, cmdstr‬‬ ‫اًض‪ٚ‬قج‬ ‫‪MD‬‬

‫لًتضد ؽُ اًخؾٌ‪َٚ‬ج ‪ cmdstr‬اتخداءً َُ اًؾِٕاُ ‪. addr‬‬ ‫اًَمؾٕل‬


‫‪َٚ‬يُ اًتضد ؽُ شٌشٌج خؾٌ‪َٚ‬بح َؼ اًمضل ت‪ِٔٚ‬ب تمبضٌج َِوٕعج ";"‪.‬‬
‫"‪findcmd eip, "push 0‬‬ ‫;‬ ‫اًتضد ؽُ اًخؾٌ‪َٚ‬ج ‪push 0‬‬ ‫َذــبل‬
‫;‪findcmd eip, "cmp al,dl; setne bl‬‬
‫"‪not ebx‬‬
‫‪FINDOP‬‬
‫‪FINDOP addr, opcode‬‬ ‫اًض‪ٚ‬قج‬
‫اًتضد ل‪ ٙ‬اًيٕد ؽُ ‪ opcode‬اتخداءً َُ اًؾِٕاُ ‪addr‬‬ ‫اًَمؾٕل‬
‫‪findop eip, #33??#‬‬ ‫;‬ ‫اًتضد ؽُ أ٘ خؾٌ‪َٚ‬ج ‪xor‬‬ ‫َذــبل‬

‫‪FINDM‬‬
‫‪FINDMEM val [, StartAddr‬‬ ‫اًض‪ٚ‬قج‬ ‫‪EM‬‬

‫اًتضد ل‪ ٙ‬اًذايرث ؽُ اًو‪َٚ‬ج ‪ val‬اتخداءً َُ اًؾِٕاُ ‪StartAddr‬‬ ‫اًَمؼٕل‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪55‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪findmem #6A00#‬‬ ‫َذــبل‬


‫‪FREE‬‬
‫]‪FREE addr [, size‬‬ ‫اًض‪ٚ‬قج‬
‫خضر‪ٚ‬ر الذايرث (اًخ‪ ٙ‬فبًتبً َب شتن ٕخضضح تبألَر ‪ ) ALLOC‬ؽِد اًؾِٕاُ ‪ٕ addr‬تعٕل ‪ size‬ول‪ ٙ‬ضبًج‬ ‫اًَمؾٕل‬
‫ؽدٍ خؾر‪ٚ‬ك اًعٕل ‪ size‬لش‪ٚ‬خٍ خصر‪ٚ‬ر يبَل اًذايرث‬
‫‪alloc 100‬‬ ‫خخض‪ٚ‬ص ‪ 256‬تب‪ٚ‬ح ل‪ ٙ‬ضمضج ذايرث سد‪ٚ‬دث‬ ‫َذــبل‬
‫‪free $RESULT, FF‬‬ ‫خضر‪ٚ‬ر ‪ 128‬تب‪ٚ‬ح َُ اًذايرث اًَخضضج‬
‫‪GBPR‬‬
‫‪GBPR‬‬ ‫اًض‪ٚ‬قج‬
‫سٌة ِٕػ آخر ِوعج خٕهك‬ ‫اًَمؾٕل‬
‫‪ِ 10‬وعج خٕهك ؽبد‪ٚ‬ج‬
‫‪ِ 20‬وعج خٕهك ل‪ ٙ‬اًذايرث‬
‫‪ِ 40‬وعج خٕهك ضٌتج (ٓبردٕ‪ٚ‬ر)‬
‫‪GBPR‬‬ ‫َذــبل‬
‫‪cmp $RESULT, 10‬‬
‫‪je SelectNormalBP‬‬
‫‪cmp $RESULT, 20‬‬
‫‪je SelectMemBP‬‬
‫‪cmp $RESULT, 40‬‬
‫‪je SelectHwBP‬‬
‫‪jmp NextBP‬‬
‫‪GCI‬‬
‫‪GCI addr, info‬‬ ‫اًض‪ٚ‬قج‬
‫خرسؼ َؾٌٍٕ اح ضٕل خؾٌ‪َٚ‬ج ًقج اًخسَ‪ٚ‬ؼ ؽِد اًؾِٕاُ ‪addr‬‬ ‫اًَمؾٕل‬
‫اًَؾبَل ‪ info‬هد ‪ٚ‬يُٕ أضد اًو‪ ٍٚ‬اًخبً‪ٚ‬ج‪:‬‬
‫‪ COMMAND‬خرسؼ اًـ ‪ opcode‬إًَالن ًٌخؾٌ‪َٚ‬ج‪.‬‬ ‫‪‬‬
‫‪ DESTINATION ‬خرسؼ ؽِٕاُ إًضٕل ل‪ ٙ‬ضبًج خؾٌ‪َٚ‬بح اًومز‪ ،‬اًِداء ٕاًرسٕػ ‪. ret‬‬
‫‪ SIZE ‬خرسؼ عٕل إٔ ؽدد تب‪ٚ‬خبح ‪ opcode‬اًخؾٌ‪َٚ‬ج‪.‬‬
‫‪ TYPE ‬خرسؼ ُٕػ اًخؾٌ‪َٚ‬ج‪:‬‬
‫‪ 10 o‬أَر دلؼ إًٗ اًَيدس ‪. push‬‬
‫‪ 20 o‬أَر شضة َُ اًَيدس ‪. pop‬‬
‫‪ 40 o‬أَر ‪. fpu‬‬
‫‪ 50 o‬أَر همزث ف‪ٚ‬ر َشرٕعج‪.‬‬
‫‪ 60 o‬أَر همزث َشرٕعج‪.‬‬
‫‪ 70 o‬أَر ِداء‪.‬‬
‫‪ 80 o‬أَر رسٕػ‪.‬‬
‫‪gci‬‬ ‫‪401000,‬‬ ‫َذــبل‬
‫‪destination‬‬
‫‪GCMT‬‬
‫‪GCMT addr‬‬ ‫اًض‪ٚ‬قج‬
‫خرسؼ اًخؾٌ‪ٚ‬ن ؽِد اًؾِٕاُ ‪addr‬‬ ‫اًَمؾٕل‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪56‬‬
AT4RE :‫انفريك انعرتي نههُذسح انعكسيح‬ ‫ وانذهىل انًرمذيح‬Olly .‫ خطىج إنى األياو‬:‫انهُذسح انعكسيح‬

gcmt 40D1F5 ‫َذــبل‬


GMA
GMA name, info ‫قج‬ٚ‫اًض‬
name ٍ‫ ) ذاح االش‬module( ‫خرسؼ َؾٌَٕبح ؽُ إًضدث‬ ‫اًَمؾٕل‬
MODULEBASE, MODULESIZE, CODEBASE, :‫ج‬ًٚ‫ٍ اًخب‬ٚ‫أخذ ٕاضدث َُ اًو‬ٚ ُ‫َيُ أ‬ٚ info ‫اًَؾبَل‬
CODESIZE, MEMBASE, MEMSIZE, ENTRY, NSECT, DATABASE, RELOCTABLE,
RELOCSIZE, RESBASE, RESSIZE, IDATABASE, IDATATABLE, EDATATABLE, EDATASIZE
gma "crackme", codebase ‫َذــبل‬
msg $RESULT
GMEMI
GMEMI addr, info ‫قج‬ٚ‫اًض‬
addr ُ‫ ًٔب اًؾِٕا‬َٙ‫ِخ‬ٚ ٙ‫خرسؼ َؾٌَٕبح ؽُ يخٌج اًذايرث اًخ‬ ‫اًَمؾٕل‬
MEMORYBASE, MEMORYSIZE, :‫ج‬ًٚ‫ٍ اًخب‬ٚ‫أخذ ٕاضدث َُ اًو‬ٚ ُ‫َيُ أ‬ٚ info ‫اًَؾبَل‬
MEMORYOWNER
gmemi eip, memorysize ‫َذــبل‬
msg $RESULT
GMI
GMI addr, info ‫قج‬ٚ‫اًض‬
addr ُ‫ ًٔب اًؾِٕا‬َٙ‫ِخ‬ٚ ٙ‫ ) اًخ‬module( ‫خرسؼ َؾٌَٕبح ؽُ إًضدث‬ ‫اًَمؾٕل‬
MODULEBASE, MODULESIZE, CODEBASE, :‫ج‬ًٚ‫ٍ اًخب‬ٚ‫أخذ ٕاضدث َُ اًو‬ٚ ُ‫َيُ أ‬ٚ info ‫اًَؾبَل‬
CODESIZE, MEMBASE, MEMSIZE, ENTRY, NSECT, DATABASE, RELOCTABLE,
RELOCSIZE, RESBASE, RESSIZE, IDATABASE, IDATATABLE, EDATATABLE, EDATASIZE,
NAME, PATH, VERSION
gmi eip, name ‫ب‬ًٚ‫سٌة اشٍ إًضدث اًَِوضج ضب‬ ‫َذــبل‬
gma $RESULT, entry ‫سٌة ِوعث اًدخٕل‬
msg $RESULT ‫ رشبًج‬ٙ‫إغٔبر ِوعج اًدخٕل ل‬
GN
GN addr ‫قج‬ٚ‫اًض‬
. RETURN$ ٙ‫ ل‬addr ُ‫خرسؼ االشٍ اًرَز٘ ًٌؾِٕا‬
 ‫اًَمؾٕل‬
ٍ‫ ٕاش‬RETURN_1$ ٙ‫ ) ل‬kernel32 :‫ خرسؼ اشٍ اًَيختج (َذبل‬، API ‫ إذا يبُ اًؾِٕاُ ٕٓ ًداًج‬
. RETURN_2$ ٙ‫ ) ل‬ExitProcess :‫اًداًج (َذبل‬
gn eip ‫َذــبل‬
msg $RESULT
GO
GO addr ‫قج‬ٚ‫اًض‬
addr ُ‫خِمذ اًترِبَز ضخٗ اًؾِٕا‬ ‫اًَمؾٕل‬
go eip + 1000 ‫َذــبل‬
GPA
GPA proc, lib ‫قج‬ٚ‫اًض‬
. RETURN$ ٙ‫ ل‬lib ‫ داخل اًَيختج‬proc ‫خرسؼ ؽِٕاُ اًداًج‬ ‫اًَمؾٕل‬
. ‫ ضبًج ؽدٍ ٕسٕد اًداًج إٔ اًَيختج‬ٙ‫ ل‬RETURN == 0$ ،‫ خرسؼ ضمر‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ 2009 57


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫َم‪ٚ‬دث ؽِد اًضبسج ًٕظؼ ِوبع خٕهك ؽٌٗ دٕال ‪. API‬‬ ‫‪‬‬
‫"‪gpi "CreateFileW", "kernel32.dll‬‬ ‫َذــبل‬
‫‪GPI‬‬
‫‪GPI key‬‬ ‫اًض‪ٚ‬قج‬
‫خرسؼ َؾٌَٕبح ؽُ اًـ ‪ process‬اًَِوص‪.‬‬ ‫اًَمؾٕل‬
‫اًتبرَٕخر ‪َٚ key‬يُ أُ ‪ٚ‬أخذ ٕاضدث َُ اًو‪ ٍٚ‬اًخبً‪ٚ‬ج‪HMAINTHREAD, PROCESSID, HPROCESS, :‬‬
‫‪, MAINTHREADID,‬‬
‫‪, CURRENTDIR EXEFILENAME, PROCESSNAME, MAINBASE,‬‬
‫‪SYSTEMDIR‬‬
‫‪gpi PROCESSID‬‬ ‫خرسؼ اًـ ‪ PID‬اًضبً‪ٙ‬‬ ‫َذــبل‬
‫‪GREF‬‬
‫]‪GREF [instance‬‬ ‫اًض‪ٚ‬قج‬
‫خرسؼ اًؾِٕاُ اًخبً‪ًِ ٙ‬خ‪ٚ‬سج اًتضد‪ ،‬ض‪ٚ‬د ‪ instance‬خدل ؽٌٗ رهٍ اًِخ‪ٚ‬سج اًخبً‪ٚ‬ج‪.‬‬ ‫‪‬‬ ‫اًَمؾٕل‬
‫‪َ ‬م‪ٚ‬دث ؽِد اًضبسج إل‪ٚ‬سبد أيذر َُ ِخ‪ٚ‬سج تضد‪.‬‬
‫" " ‪wrt "found.txt",‬‬ ‫خٔ‪ٚ‬ئ اًٌَك اًذ٘ ش‪ٚ‬يخة ل‪ ْٚ‬اًِبخز (ضذك‬ ‫َذــبل‬
‫َضخٕٖ اًشبتن إُ ٕسد)‬
‫‪mov instance,1‬‬ ‫خٔ‪ٚ‬ئج اًؾداد‬
‫"‪find eip, "xor al,al‬‬ ‫تضد ؽُ اًخؾٌ‪َٚ‬ج‬
‫‪next:‬‬
‫‪cmp $RESULT, 0‬‬
‫‪je finish‬‬ ‫إُ ًٍ خٕسد << خرٕر‬
‫‪gref instance‬‬ ‫سٌة اًؾِٕاُ اًخبً‪ٙ‬‬
‫‪wrta "found.txt", $RESULT,‬‬ ‫يخبتج اًؾِٕاُ اًضبً‪ ٙ‬ل‪ ٙ‬اًٌَك اًِض‪ٕ( ٙ‬اضد‬
‫تبًشعر)‬
‫‪inc instance‬‬ ‫االِخوبل إًٗ ِخ‪ٚ‬سج اًتضد اًخبً‪ٙ‬‬
‫‪jmp next‬‬
‫‪finish:‬‬
‫‪msg "check the file found.txt for‬‬
‫"‪search results‬‬
‫‪ret‬‬
‫‪INC‬‬
‫‪INC var‬‬ ‫اًض‪ٚ‬قج‬
‫خظ‪ٚ‬ك ٕاضد ًٌَخق‪ٚ‬ر ‪. var‬‬ ‫اًَمؾٕل‬
‫‪mov x, 0‬‬ ‫خؾرك ‪ٕ x‬خؾع‪ ْٚ‬اًو‪َٚ‬ج ضمر‬ ‫َذــبل‬
‫‪inc x‬‬ ‫خز‪ٚ‬د ٕاضد‬
‫‪ITOA‬‬
‫]‪ITOA n [, base=16‬‬ ‫اًض‪ٚ‬قج‬
‫خضٕل اًو‪َٚ‬ج اًؾدد‪ٚ‬ج ‪ n‬إًٗ ؽتبرث ؽدد‪ٚ‬ج ل‪ ٙ‬األشبس ‪( base‬الخراظ‪ٚ‬بً شخج ؽشر٘)‬ ‫اًَمؾٕل‬
‫‪mov y, 01F2‬‬ ‫َذــبل‬
‫‪itoa y‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪58‬‬
AT4RE :‫انفريك انعرتي نههُذسح انعكسيح‬ ‫ وانذهىل انًرمذيح‬Olly .‫ خطىج إنى األياو‬:‫انهُذسح انعكسيح‬

mov x, "01F2 equivalent in HEX is: "


+ $RESULT
msg x
itoa y,A
mov x, "01F2 equivalent in Dec is: "
+ $RESULT
msg x
itoa y,2
mov x, "01F2 equivalent in BIN is: "
+ $RESULT
msg x
ret
JA;
JMP label ‫قج‬ٚ‫اًض‬ JAE;
JB;
.‫ؼ‬َٚ‫ ًقج اًخس‬ٙ‫راخٔب ل‬ٚ‫ َشبتٔج ًِغ‬label ‫خومز إًٗ اًسذاذث‬ ‫اًَمؾٕل‬ JBE;
‫َذــبل‬ JE;
JNE;
Loop: JMP
... ‫َج‬ٌٚ‫ختضد ؽُ اًخؾ‬
findcmd eip, "setne al"
cmp $RESULT, 0 ‫إذا ًٍ خٕسد‬
je Finish
Finish ‫خومز إًٗ اًسذاذث‬
jmp Loop ‫إذا ٕسدح خومز إًٗ اًسذاذث‬
Loop
Finish:
msg "Sorry, Nothing found"
ret
KEY
KEY vkcode [, shift [, ctrl][ ‫قج‬ٚ‫اًض‬
. vkode ‫خَبذل اًظقع ؽٌٗ زر ذٕ اًرَز‬  ‫اًَمؾٕل‬
1 ٕ‫ أ‬0 ‫َج‬ٚ‫ تئؽعبئَٔب اًو‬ctrlٕ shift ُٚ‫َيُ َضبيبث اًظقع ؽٌٗ اًزر‬ٚ 
.‫رسٗ َراسؾج اًٌَضن‬ٚ vcodes َُ ‫د‬ٚ‫ ًالعالػ ؽٌٗ اًَز‬
shift + F9/ key 78,1 ‫َذــبل‬
ctrl + space / key 20, 0,1
LBL
LBL addr, text ‫قج‬ٚ‫اًض‬
. addr ُ‫ك سذاذث ؽِد اًؾِٕا‬ٚ‫خظ‬ ‫اًَمؾٕل‬
lbl eip, "This is the ‫َذــبل‬
OEP"
LC
LC ‫قج‬ٚ‫اًض‬
. Log window ‫خَشص َضخٕٖ ِبلذث اًَدِٕج‬ ‫اًَمؾٕل‬
‫َذــبل‬
LCLR
LCLR ‫قج‬ٚ‫اًض‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ 2009 59


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫خَشص َضخٕٖ ِبلذث اًَدِٕج اًخبضج تبًشير‪ٚ‬تح‪.‬‬ ‫اًَمؾٕل‬


‫َذــبل‬

‫‪LEN‬‬
‫‪LEN str‬‬ ‫اًض‪ٚ‬قج‬
‫خرسؼ عٕل اًؾتبرث ‪. str‬‬ ‫اًَمؾٕل‬
‫"‪len "AT4RE is my team‬‬ ‫َذــبل‬
‫‪msg $RESULT‬‬
‫‪LM‬‬
‫‪LM addr, size, filename‬‬ ‫اًض‪ٚ‬قج‬
‫خضَل ٌَك اإللراؿ ‪ dump‬ذٕ االشٍ ‪ filename‬ل‪ ٙ‬اًؾِٕاُ ‪ٕ addr‬تعٕل ‪. size‬‬ ‫‪‬‬ ‫اًَمؾٕل‬
‫‪ ‬خؾيس ؽَل األَر ‪. DM‬‬
‫‪lm‬‬ ‫‪40100,‬‬ ‫‪1000,‬‬ ‫َذــبل‬
‫"‪"dump.bin‬‬
‫‪LOG‬‬
‫]‪LOG src [,prefix‬‬ ‫اًض‪ٚ‬قج‬
‫خدُٕ اًو‪َٚ‬ج ‪ src‬ل‪ِ ٙ‬بلذث اًَدِٕج ‪OllyDbg Log Window‬‬ ‫‪‬‬ ‫اًَمؾٕل‬
‫‪ ‬إذا يبِح ‪ src‬خَذل ؽتبرث ذبتخج‪ ،‬لخٌى اًؾتبرث شخدُٕ يَب ٓ‪.ٙ‬‬
‫‪ ‬إذا يبِح ‪ src‬خَذل َخق‪ٚ‬ر إٔ َشسل‪ ،‬لش‪ٚ‬خٍ خدٕ‪ ُٚ‬ه‪َٚ‬ج اًَخق‪ٚ‬ر إٔ اًَشسل‪.‬‬
‫‪mov x, 1E‬‬ ‫َذــبل‬
‫‪mov eax, x‬‬
‫"‪log "AT4RE is the best‬‬ ‫خدُٕ اًؾتبرث ت‪"" ُٚ‬‬
‫‪log x‬‬ ‫خدُٕ ‪"" x: 0000001E‬‬
‫‪log eax‬‬ ‫خدُٕ "‪" eax: 0000001E‬‬
‫""‪log eax,‬‬ ‫خدُٕ "‪" 0000001E‬‬
‫‪MOV‬‬
‫]‪MOV dest, src [,size‬‬ ‫اًض‪ٚ‬قج‬
‫يَذ‪ٌٚ‬خٔب ل‪ً ٙ‬قج اًخسَ‪ٚ‬ؼ‪.‬‬
‫‪‬‬ ‫اًَمؾٕل‬
‫‪ ‬خِول اًو‪َٚ‬ج ‪ src‬إًٗ اًَخق‪ٚ‬ر ‪ٕ dest‬تعٕل ‪. size‬‬
‫ؽشر٘‪ ،‬ه‪َٚ‬ج ؽدد‪ٚ‬ج‪َ ،‬شسل إٔ را‪ٚ‬ج‪.‬‬
‫ث‬ ‫‪ src ‬هد خيُٕ ؽتبرث ِض‪ٚ‬ج‪ ،‬ؽتبرث شخج‬
‫‪mov x, 0F‬‬ ‫َذــبل‬
‫"‪mov y, "Hello world‬‬ ‫ِول ؽتبرث ِض‪ٚ‬ج إًٗ َخق‪ٚ‬ر‬
‫‪mov eax, ecx‬‬ ‫ِول َشسل إًٗ َشسل‬
‫‪mov [ecx], #DEADC0DE#‬‬ ‫ؽشر٘ إًٗ اًؾِٕاُ اًَؤشر‬
‫ث‬ ‫ِول ؽتبرث شخج‬
‫تـ ‪ecx‬‬
‫‪mov !CF, 1‬‬ ‫خمؾ‪ٚ‬ل را‪ٚ‬ج االضخمبغ‬
‫! ‪mov !DF,‬‬ ‫ِول ضبًج را‪ٚ‬ج االزدٕاس‪ٚ‬ج إًٗ را‪ٚ‬ج االخسبّ‬
‫‪mov‬‬ ‫‪[403000],‬‬ ‫‪"Hello‬‬ ‫ِول اًؾتبرث اًِض‪ٚ‬ج إًٗ اًؾِٕاُ ‪403000‬‬
‫"‪world‬‬
‫‪MEMCP‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪60‬‬
AT4RE :‫انفريك انعرتي نههُذسح انعكسيح‬ ‫ وانذهىل انًرمذيح‬Olly .‫ خطىج إنى األياو‬:‫انهُذسح انعكسيح‬

MEMCPY dest,src,size ‫قج‬ٚ‫اًض‬ Y


. size ‫ ٕتعٕل‬dest ُ‫ إًٗ اًؾِٕا‬src ُ‫َج اًَؤشر ًٔب تبًؾِٕا‬ٚ‫خِول اًو‬ ‫اًَمؾٕل‬
. mov [dst],[src],size :‫ َعبتوج ًألَر‬
Code Size ‫ إًٗ اًَشبضج اًَخضضج ٕتعٕل‬Code Base َُ ‫ِول َضخٕٖ اًذايرث اِعالهب‬ ‫َذــبل‬
gma "GDI32",CODEBASE ‫ ًٌٕضدث‬Code Base ‫سٌة‬
GDI32.dll
mov base, $RESULT ‫ر‬ٚ‫ِوٌْ إًٗ اًَخق‬
gma "GDI32",CODESIZE ‫ ًٌٕضدث‬Code Size ‫سٌة‬
GDI32.dll
mov size, $RESULT ‫ر‬ٚ‫ِوٌْ إًٗ اًَخق‬
alloc size ‫ اًذايرث‬ٙ‫ص َشبضج ل‬ٚ‫خخض‬
size ‫تعٕل‬
mov dst,$RESULT ًٗ‫إ‬ ‫اًَخضص‬ ُ‫اًؾِٕا‬ ‫ِول‬
‫ر‬ٚ‫اًَخق‬
memcpy dst,base,size
MSG
MSG message ‫قج‬ٚ‫اًض‬
message َُٕ‫ٕ خغٔر رشبًج تَظ‬ ‫اًَمؾٕل‬
msg "OEP Found!" ‫َذــبل‬
MSGYN
MSGYN message ‫قج‬ٚ‫اًض‬
" NO"ٕ " YES" ُٚ‫ َؼ زر‬message َُٕ‫خغٔر رشبًج تَظ‬ ‫اًَمؾٕل‬
" YES" ‫ إذا ظقع اًزر‬1ٕ " NO" ‫ إذا ظقع اًزر‬0 ‫خرسؼ‬
msgyn "Do you want to exit?" ‫َذــبل‬
cmp $Result,0
je Continue
Exit:
msg "Script terminated by user"
ret
Continue:
..
..
MUL
MUL op1, op2 ‫قج‬ٚ‫اًض‬
op2 ‫ تـ‬op1 ‫ ِبخز ظرة‬op1 ‫ اًَؾبَل‬ٙ‫ خضمغ ل‬،‫ؼ‬َٚ‫ٌخٔب تٌقج اًخس‬ٚ‫يَذ‬ ‫اًَمؾٕل‬
mov x, 0F ‫َذــبل‬
mul x, 2
NEG
NEG op ‫قج‬ٚ‫اًض‬
op ‫ ) ًٌَؾبَل‬Two's Complement( ٙ‫ خضشة اًَيَل اًذِبئ‬،‫ؼ‬َٚ‫ٌخٔب تٌقج اًخس‬ٚ‫يَذ‬ ‫اًَمؾٕل‬
mov x, 15 ‫َذــبل‬
neg x

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ 2009 61


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪eval "the 2's complement of 15 is‬‬


‫"}‪{x‬‬
‫‪msg $RESULT‬‬ ‫خرسؼ "‪" FFFFFFEB‬‬
‫‪ret‬‬
‫‪NOT‬‬
‫‪NOT op‬‬ ‫اًض‪ٚ‬قج‪:‬‬ ‫اًض‪ٚ‬قج‬
‫يَذ‪ٌٚ‬خٔب تٌقج اًخسَ‪ٚ‬ؼ‪ ،‬خضشة اًَيَل األضبد٘ (‪ًٌَ ) One's Complement‬ؾبَل ‪op‬‬ ‫اًَمؾٕل‬
‫‪mov x, 15‬‬ ‫َذــبل‬
‫‪not x‬‬
‫‪eval‬‬ ‫‪"the‬‬ ‫‪1's‬‬
‫‪complement of 15 is‬‬
‫"}‪{x‬‬
‫‪msg $RESULT‬‬ ‫خرسؼ "‪" FFFFFFEA‬‬
‫‪ret‬‬
‫‪OR‬‬
‫‪OR dest, src‬‬ ‫اًض‪ٚ‬قج‬
‫يَذ‪ٌٚ‬خٔب تٌقج اًخسَ‪ٚ‬ؼ‪ ،‬خوٍٕ تبًؾٌَ‪ٚ‬ج اًَِعو‪ٚ‬ج "‪ " OR‬ت‪ ، src ٕ dest ُٚ‬خضمغ اًِبخز ل‪dest ٙ‬‬ ‫اًَمؾٕل‬
‫‪mov y, A2‬‬ ‫َذــبل‬
‫‪mov x, 6B‬‬
‫‪or x, y‬‬
‫"}‪eval "x OR y = {x‬‬ ‫‪/‬‬ ‫‪" EB000000‬‬‫خرسؼ "‬
‫‪msg $RESULT‬‬
‫‪ret‬‬
‫‪OPCOD‬‬
‫‪OPCODE addr‬‬ ‫اًض‪ٚ‬ـث‬ ‫‪E‬‬

‫خرسؼ ل‪ RESULT$ ٙ‬اًـ ‪ Opcode‬اًَوبتل ًٌخؾٌ‪َٚ‬ج إًَسٕدث ؽٌٗ اًؾِٕاُ ‪. addr‬‬


‫‪‬‬ ‫اًَمؾٕل‬
‫‪ ‬خرسؼ ل‪ RESULT_2$ ٙ‬عٕل اًـ ‪. Opcode‬‬
‫‪ ‬ل‪ ٙ‬ضبل ‪ Opcode‬خبعئ‪ ،‬خرسؼ ‪. RESULT_2 = 0$‬‬
‫‪opcode eip‬‬ ‫َذــبل‬
‫‪msg $RESULT‬‬ ‫‪ opcode‬ؽِد ‪eip‬‬
‫‪msg $RESULT_2‬‬ ‫عٕل اًيٕد‬

‫]‪OPENDUMP addr [,base,size‬‬ ‫اًض‪ٚ‬قج‬


‫خمخص ِبلذث شية (‪ًَ ) dump‬ضخٕٖ اًذايرث ؽِد اًؾِٕاُ ‪ addr‬إٔ اتخداءً َُ اًؾِٕاُ ‪ٕ base‬تعٕل ‪size‬‬ ‫اًَمؾٕل‬
‫‪OPENDUMP‬‬

‫‪opendump eip‬‬ ‫خمخص ِبلذث شية ًٌذايرث ؽِد اًؾِٕاُ ‪eip‬‬ ‫َذــبل‬
‫‪opendump eip, eip, 1000‬‬
‫خمخص ِبلذث شية ًٌذايرث ؽِد اًؾِٕاُ ‪eip‬‬
‫تعٕل ‪h1000‬‬
‫‪OPENT‬‬
‫‪OPENTRACE‬‬ ‫اًض‪ٚ‬قج‬ ‫‪RACE‬‬

‫خمخص ِبلذث اًخؾوة (‪) trace window‬‬ ‫اًَمؾٕل‬


‫‪PAUSE‬‬
‫‪PAUSE‬‬ ‫اًض‪ٚ‬قج‬
‫خؾٌن خِم‪ٚ‬ذ اًشير‪ٚ‬تح‪.‬‬
‫‪‬‬ ‫اًَمؾٕل‬
‫‪ًَٕ ‬اضٌج اًخِم‪ٚ‬ذ ‪ٚ‬سة اًِور ؽٌٗ األَر ‪ َُ Resume‬اًوبئَج اًَِشدًج ًإلظبلج ‪. OdbgScript‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪62‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪POP‬‬
‫‪POP dword‬‬ ‫اًض‪ٚ‬قج‬
‫يَذ‪ٌٚ‬خٔب تٌقج اًخسَ‪ٚ‬ؼ‪ ،‬خوٍٕ تئخرار إٔل ه‪َٚ‬ج ل‪ ٙ‬اًَيدس إًٗ اًَخق‪ٚ‬ر ‪dword‬‬ ‫اًَمؾٕل‬
‫‪pop eax‬‬ ‫إٔل ه‪َٚ‬ج ل‪ ٙ‬اًَيدس إًٗ ‪eax‬‬ ‫َذــبل‬
‫]‪pop [58C000‬‬ ‫اًو‪َٚ‬ج اًخبً‪ٚ‬ج ل‪ ٙ‬اًَيدس إًٗ اًؾِٕاُ ‪C00058‬‬
‫‪PREOP‬‬
‫‪PREOP addr‬‬ ‫اًض‪ٚ‬قج‬
‫خرسؼ ؽِٕاُ اًخؾٌ‪َٚ‬ج اًشبتوج‪ًٌ ،‬خؾٌ‪َٚ‬ج إًَسٕدث ؽٌٗ اًؾِٕاُ ‪. addr‬‬
‫‪‬‬ ‫اًَمؾٕل‬
‫‪ ‬خِت‪ :ْٚ‬ال خرسؼ تبًظرٕرث آخر خؾٌ‪َٚ‬ج ِمذح‪ ،‬أ٘ ًُ خرسؼ َذال ؽِٕاُ همزث َشخٕلبث‪.‬‬
‫‪ ‬تَؾِٗ آخر‪ PREOP ،‬خرسؼ لوع ؽِٕاُ اًخؾٌ‪َٚ‬ج ل‪ ٙ‬اًشعر هتل اًضبً‪.ٙ‬‬
‫‪preop eip‬‬ ‫َذــبل‬
‫‪PUSH‬‬
‫‪PUSH dword‬‬ ‫اًض‪ٚ‬قج‬
‫يَذ‪ٌٚ‬خٔب تٌقج اًخسَ‪ٚ‬ؼ‪ ،‬خوٍٕ تدلؼ ه‪َٚ‬ج اًَخق‪ٚ‬ر ‪ dword‬إًٗ اًَيدس‬ ‫اًٍ لؾٕل‬
‫‪push eax‬‬ ‫‪ eax‬إًٗ اًَيدس‬ ‫َذــبل‬
‫]‪push [58C000‬‬ ‫اًو‪َٚ‬ج ل‪ ٙ‬اًؾِٕاُ ‪ C00058‬إًٗ اًَيدس‬
‫‪READS‬‬
‫‪READSTR str, len‬‬ ‫اًض‪ٚ‬قج‬ ‫‪TR‬‬

‫خرسؼ ؽدد ‪ َُ len‬األضرك َُ اًؾتبرث ‪ str‬اتخداءً َُ اً‪ٙ‬شبر‬ ‫اًَمؾٕل‬


‫"‪mov str, "AT4RE is the best‬‬ ‫َذــبل‬
‫‪readstr str, 5‬‬ ‫خرسؼ "‪" AT4RE‬‬
‫‪msg $RESULT‬‬
‫‪REF‬‬
‫‪REF addr‬‬ ‫اًض‪ٚ‬قج‬
‫شت‪ٔٚ‬ج تبًظقع ؽٌٗ ‪ CTRL + R‬إٔ خبض‪ٚ‬ج ‪. Find references to‬‬ ‫‪‬‬ ‫اًَمؾٕل‬
‫خرسؼ ل‪ RESULT$ ٙ‬إٔل َرسؼ (‪ًٌ ) reference‬ؾِٕاُ ‪. addr‬‬ ‫‪‬‬
‫خرسؼ ل‪ RESULT_1$ ٙ‬اًخؾٌ‪َٚ‬ج ؽِد اًَرسؼ‪.‬‬ ‫‪‬‬
‫خرسؼ ل‪ RESULT_2$ ٙ‬اًخؾٌ‪ٚ‬ن ؽِد اًَرسؼ‪.‬‬ ‫‪‬‬
‫ًسٌة تبه‪ ٙ‬اًَراسؼ ‪ٚ‬ؾبد خِم‪ٚ‬ذ األَر ‪ REF‬إًٗ ض‪. RESULT = 0$ ُٚ‬‬ ‫‪‬‬
‫‪Repeat:‬‬ ‫َذــبل‬
‫‪ref eip‬‬
‫‪log $RESULT‬‬
‫‪log $RESULT_1‬‬
‫‪log $RESULT_2‬‬
‫‪cmp $RESULT, 0‬‬
‫‪jne Repeat‬‬
‫‪ret‬‬

‫‪REPL‬‬
‫‪REPL addr, find, repl, len‬‬ ‫اًض‪ٚ‬قج‬
‫ختدل اًؾتبرث اًرهَ‪ٚ‬ج ‪ find‬تبًؾتبرث اًرهَ‪ٚ‬ج ‪ repl‬اتخداءً َُ اًؾِٕاُ ‪ٕ addr‬ؽٌٗ عٕل ‪ len‬تب‪ٚ‬ح‬ ‫اًَمؾٕل‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪63‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪repl eip, #6A00#, #6A01#, 10‬‬ ‫ختدل ‪ push 0‬تـ ‪push 1‬‬ ‫َذــبل‬
‫‪repl eip, #75??#, #7500#, 1F‬‬
‫خٌق‪ ٙ‬أ٘ همزث ‪jnz‬‬
‫‪repl 40100, #40#, #90#, 1F‬‬
‫ختدل ‪ inc eax‬تـ ‪nop‬‬
‫‪RET‬‬
‫‪RET‬‬ ‫اًض‪ٚ‬قج‬
‫خِٔ‪ ٙ‬خِم‪ٚ‬ذ اًشير‪ٚ‬تح إٔ خرسؼ َُ َِبداث داًج‬ ‫اًَمؾٕل‬
‫‪REV‬‬
‫‪REV dword‬‬ ‫اًض‪ٚ‬قج‬
‫خرسؼ اًو‪َٚ‬ج اًَؾيٕشج ًٌو‪َٚ‬ج ‪dword‬‬ ‫اًَمؾٕل‬
‫‪rev 01234567‬‬ ‫َذــبل‬
‫‪msg $RESULT‬‬ ‫خرسؼ ‪67452301‬‬
‫‪ROL‬‬
‫‪ROL op, count‬‬ ‫اًض‪ٚ‬قج‬
‫يَذ‪ٌٚ‬خٔب تٌقج اًخسَ‪ٚ‬ؼ‪ ،‬خوٍٕ تخدٕ‪ٚ‬ر اًو‪َٚ‬ج ‪ op‬إًٗ اً‪ٚ‬شبر ؽدد ‪ count‬تح‪ ،‬اًو‪َٚ‬ج اًِبخسج ل‪op ٙ‬‬ ‫اًَمؾٕل‬
‫‪rol eax, cl‬‬ ‫َذــبل‬
‫‪rol [58C000], 10‬‬
‫‪rol 12345678, 4‬‬ ‫خرسؼ ‪23456781‬‬
‫‪ROR‬‬
‫‪ROR op, count‬‬ ‫اًض‪ٚ‬قج‬
‫يَذ‪ٌٚ‬خٔب تٌقج اًخسَ‪ٚ‬ؼ‪ ،‬خوٍٕ تخدٕ‪ٚ‬ر اًو‪َٚ‬ج ‪ op‬إًٗ اً‪ َُٚٚ‬ؽدد ‪ count‬تح‪ ،‬اًن‪َٚ‬ج اًِبخسج ل‪op ٙ‬‬ ‫اًَمؾٕل‬
‫‪ror eax, cl‬‬ ‫َذــبل‬
‫‪ror [58C000], 10‬‬
‫‪ror 12345678, 4‬‬ ‫خرسؼ ‪81234567‬‬
‫‪RTR‬‬
‫‪RTR‬‬ ‫اًض‪ٚ‬قج‬
‫شت‪ٔٚ‬ج تبًظقع ؽٌٗ ‪ CTRL + F9‬إٔ خِم‪ٚ‬ذ اًؾٌَ‪ٚ‬ج ‪ Run till return‬ل‪OllyDbg ٙ‬‬ ‫اًَمؾٕل‬
‫‪RTU‬‬
‫‪RTU‬‬ ‫اًض‪ٚ‬قج‬
‫خِم‪ ٙ‬اًؾٌَ‪ٚ‬ج ‪ Run till user code‬ل‪OllyDbg ٙ‬‬
‫شت‪ٔٚ‬ج تبًظقع ؽٌٗ ‪ ALT + F9‬إٔ ذ‬ ‫اًَمؾٕل‬
‫‪RUN‬‬
‫‪RUN‬‬ ‫اًض‪ٚ‬قج‬
‫شت‪ٔٚ‬ج تبًظقع ؽٌٗ ‪ F9‬إٔ خِم‪ٚ‬ذ اًؾٌَ‪ٚ‬ج ‪ Run‬ل‪OllyDbg ٙ‬‬ ‫اًَمؾٕل‬
‫‪SCMPI‬‬
‫]‪SCMPI dest, src [,size‬‬ ‫اًض‪ٚ‬قج‬
‫شت‪ٔٚ‬ج تبألَر ‪َ CMP‬ؼ لبرن تش‪ٚ‬ع‪ SCMPI :‬ال خؾ‪ٚ‬ر آخَبٍاً ًيتر إٔ ضقر اًضرٕك‬ ‫اًَمؾٕل‬
‫اًَذبل اًحاً‪ ٙ‬دائَب ‪ٚ‬رسؼ ؽتبرث "‪" Good‬‬
‫"‪mov x, "at4re‬‬ ‫َذــبل‬
‫"‪scmpi x, "AT4RE‬‬
‫‪je Good‬‬
‫"‪msg "Bad‬‬
‫‪Good:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪64‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫"‪msg "Good‬‬
‫‪ret‬‬
‫‪SETOPT‬‬
‫‪SETOPTION‬‬ ‫اًض‪ٚ‬قج‬ ‫‪ION‬‬

‫خمخص ِبلذث اًخ‪ٚ‬براح ل‪OllyDbg ٙ‬‬ ‫اًَمؾٕل‬


‫‪SHL‬‬
‫‪SHL op, count‬‬ ‫اًض‪ٚ‬قج‬
‫يَذ‪ٌٚ‬خٔب تٌقج اًخسَ‪ٚ‬ؼ‪ ،‬خوٍٕ تئزاضج اًو‪َٚ‬ج ‪ op‬إًٗ اً‪ٚ‬شبرؽدد ‪ count‬تح‪ ،‬اًو‪َٚ‬ج اًِبخسج ل‪op ٙ‬‬ ‫اًَمؾٕل‬
‫‪hl eax, cl‬‬ ‫َذــبل‬
‫‪shl [58C000], 10‬‬
‫‪mov x,12345678‬‬
‫‪shl x, 4‬‬ ‫خرسؼ ‪23456780‬‬
‫‪SHR‬‬
‫‪SHR op, count‬‬ ‫اًض‪ٚ‬قج‬
‫يَذ‪ٌٚ‬خٔب تٌقج اًخسَ‪ٚ‬ؼ‪ ،‬خوٍٕ تئزاضج اًو‪َٚ‬ج ‪ op‬إًٗ اً‪ٚ‬شبرؽدد ‪ count‬تح‪ ،‬اًو‪َٚ‬ج الِبخسج ل‪op ٙ‬‬ ‫اًَمؾٕل‬
‫‪hr eax, cl‬‬ ‫َذــبل‬
‫‪shr [58C000], 10‬‬
‫‪mov x,12345678‬‬
‫‪shr x, 4‬‬ ‫خرسؼ ‪01234567‬‬
‫‪STI‬‬
‫‪STI‬‬ ‫اًض‪ٚ‬قج‬
‫شت‪ٔٚ‬ج تبًظقع ؽٌٗ ‪ F7‬إٔ خِم‪ٚ‬ذ اًؾٌَ‪ٚ‬ج ‪ Step Into‬ل‪OllyDbg ٙ‬‬ ‫اًَمؾٕل‬
‫‪STO‬‬
‫‪STO‬‬ ‫اًض‪ٚ‬قج‬
‫شت‪ٔٚ‬ج تبًظقع ؽٌٗ ‪ F8‬إٔ خِم‪ٚ‬ذ اًؾٌَ‪ٚ‬ج ‪ Step Over‬ل‪OllyDbg ٙ‬‬ ‫اًَمؾٕل‬
‫‪STR‬‬
‫‪STR var‬‬ ‫اًض‪ٚ‬قج‬
‫ؽيس ‪ ، BUF‬خضٕل اًَخق‪ٚ‬ر ‪( var‬ه‪َٚ‬ج ؽدد‪ٚ‬ج) إًٗ َوبتٌْ اًِض‪ٙ‬‬ ‫اًَمؾٕل‬
‫"‪mov strng, "AT4RE‬‬ ‫َذــبل‬
‫‪msg strng‬‬
‫خرسؼ ‪AT4RE‬‬
‫‪buf strng‬‬
‫‪msg strng‬‬ ‫خرسؼ ‪# 4154345245#‬‬
‫‪str strng‬‬
‫‪msg strng‬‬ ‫‪AT4RE‬‬ ‫خرسؼ ‪AT4RE‬‬
‫‪SUB‬‬
‫‪SUB dest, src‬‬ ‫اًض‪ٚ‬قج‬
‫يَذ‪ٌٚ‬خٔب تٌقج اًخسَ‪ٚ‬ؼ‪ ،‬خوٍٕ تعرش ه‪َٚ‬ج ‪ٕ dest َُ src‬خضمغ اًِبخز ل‪dest ٙ‬‬ ‫اًَمؾٕل‬
‫‪sub eax, ebx‬‬ ‫َذــبل‬
‫‪sub [58C000], 1000‬‬
‫‪TC‬‬
‫‪TC‬‬ ‫اًض‪ٚ‬قج‬
‫خوٍٕ تئ‪ٚ‬وبك اًخؾوة (‪ ) Tracing‬ل‪OllyDbg ٙ‬‬ ‫اًَمؾٕل‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪65‬‬
AT4RE :‫انفريك انعرتي نههُذسح انعكسيح‬ ‫ وانذهىل انًرمذيح‬Olly .‫ خطىج إنى األياو‬:‫انهُذسح انعكسيح‬

TEST
TEST dest, src ‫قج‬ٚ‫اًض‬
.‫ دُٕ ضمغ اًِبخز‬src ٕ dest ُٚ‫ ت‬AND ‫ج‬ٌَٚ‫ خوٍٕ تؾ‬،‫ؼ‬َٚ‫ٌخٔب تٌقج اًخس‬ٚ‫يَد‬ ‫اًَمؾٕل‬
.‫ ضشة اًِبخز‬CF OF PF SF ZF ‫بح‬ٚ‫َج اًرا‬ٚ‫ر ه‬ٚ‫خق‬
ask "Input x:" ‫َذــبل‬
cmp $RESULT, 0
je canceled
mov x, $RESULT
ask "Input y:"
cmp $RESULT, 0
je canceled
mov y, $RESULT
test x, y
eval "flags after TEST x,y : CF= {!CF} OF= {!OF} PF= {!PF}
SF= {!SF} ZF= {!ZF}"
msg $RESULT
canceled:
ret
TI
TI ‫قج‬ٚ‫اًض‬
OllyDbg ٙ‫ ل‬Trane Into ‫ج‬ٌَٚ‫ذ اًؾ‬ٚ‫ إٔ خِم‬CTRL + F11 ٌٗ‫ٔج تبًظقع ؽ‬ٚ‫شت‬ ‫اًَمؾٕل‬
TICK
TICK var ‫قج‬ٚ‫اًض‬
ms ‫ج‬ِٚ‫خْ تأًك سزء َُ اًذب‬ٚ‫تح َِذ تدا‬ٚ‫ اًشير‬ٙ‫خِم‬
‫ ٕهح ذ‬var ‫ر‬ٚ‫ اًَخق‬ٙ‫خرسؼ ل‬ ‫اًَمؾٕل‬
tick var ‫َذــبل‬
itoa var,10. ٘‫ل إًٗ اًِغبٍ اًؾشر‬ٕٚ‫خض‬
eval "script took {$RESULT} ms"
msg $RESULT
TICND
TICND cond ‫قج‬ٚ‫اًض‬
cond ‫ُ خضون اًشرع‬ٚ‫ ) إًٗ ض‬Trace Into( ‫خخؾوة داخل اًِداءاح‬ ‫اًَمؾٕل‬
ticnd "eip > 402000" ‫َذــبل‬
opentrace
ret
TO
TO ‫قج‬ٚ‫اًض‬
OllyDbg ٙ‫ ل‬Trane Over ‫ج‬ٌَٚ‫ذ اًؾ‬ٚ‫ إٔ خِم‬CTRL + F12 ٌٗ‫ٔج تبًظقع ؽ‬ٚ‫شت‬ ‫اًَمؾٕل‬
TOCND
TOCND cond ‫قج‬ٚ‫اًض‬
cond ‫ُ خضون اًشرع‬ٚ‫ ) إًٗ ض‬Trace Over( ‫خخؾوة خبرر اًِداءاح‬ ‫اًَمؾٕل‬
tocnd "eip > 402000" ‫َذــبل‬
opentrace
ret
VAR
VAR var ‫قج‬ٚ‫اًض‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ 2009 66


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫خؾٌُ اًَخق‪ٚ‬ر ‪ var‬دُٕ إؽعبءّ ه‪َٚ‬ج‬ ‫اًَمؾٕل‬


‫األَر ‪ٚ MOV‬وٍٕ تبًَذل َؼ إؽعبء ه‪َٚ‬ج ًٌَخق‪ٚ‬ر‬
‫‪XOR‬‬
‫‪XOR dest, src‬‬ ‫اًض‪ٚ‬قج‬
‫يَذ‪ٌٚ‬خٔب تٌقج اًخسَ‪ٚ‬ؼ‪ ،‬خوٍٕ تؾٌَ‪ٚ‬ج ‪ xor‬ت‪ٕ dest ٕ src ُٚ‬خضمغ اًِبخز ل‪dest ٙ‬‬ ‫اًَمؾٕل‬
‫‪xor eax, ebx‬‬ ‫َذــبل‬
‫‪xor [58C000], 1F‬‬
‫‪XCHG‬‬
‫‪XCHG dest, src‬‬ ‫اًض‪ٚ‬قج‬
‫خوٍٕ تِول ‪ src‬إًٗ ‪ dest ٕ dest‬إًٗ ‪src‬‬ ‫اًَمؾٕل‬
‫‪xchg eax, ebx‬‬ ‫َذــبل‬
‫‪xchg [58C000], 1F‬‬
‫‪xchg‬‬ ‫‪[58C100],‬‬
‫]‪[58C200‬‬
‫‪WRT‬‬
‫]‪WRT file, data [,separator‬‬ ‫اًض‪ٚ‬قج‬
‫خِشأ اًٌَك ‪ file‬خٍ خيخة ل‪ ْٚ‬اًَؾٌَٕج ‪ٕ data‬خظ‪ٚ‬ك اًمبضل ‪ separator‬ل‪ ٙ‬األخ‪ٚ‬ر‬ ‫اًَمؾٕل‬
‫ل‪ ٙ‬ضبل ٕسٕد اًٌَك‪ٚ ،‬خٍ َشص َضخٕاّ‬
‫‪WRTA‬‬
‫]‪WRTA file, data [,separator‬‬ ‫اًض‪ٚ‬قج‬
‫خيخة ل‪ ٙ‬اًٌَك ‪ file‬اًَؾٌَٕج ‪ٕ data‬خظ‪ٚ‬ك اًمبضل ‪ separator‬ل‪ ٙ‬األخ‪ٚ‬ر‬ ‫اًَمؾٕل‬
‫ل‪ ٙ‬ضبل ٕسٕد اًٌَك‪ٚ ،‬خٍ إيَبل َضخٕاّ‬
‫اِغر إًٗ اًخعت‪ٚ‬ن اًؾٌَ‪ ٙ‬ل‪ ٙ‬اًٌَضن‬ ‫َذــبل‬

‫‪ًَ .9‬شل‬

‫‪ .9.1‬تطب‪ٝ‬ل عًُ‪ٞ‬‬

‫يبٽه ربمُٿ ڄځٳ خڀع‪٥‬سُٷ وڄؽدپ ڄه خڀٕٽَُسط وخؼبځٳ خڀىدظؿ ڄه ٌىد‪.‬‬

‫يف ٌٍخ خؼبؽدپ ٔىمدوپ خٔعىال‪َُٔ ٚ‬دالض ظٕفُٿ خڀربودڄؿ خؼبُٴٷ وخڀيت ٌٍ غبٕه غب‪ ٧‬ؿبٹىوص يف ټىي خڀربودڄؿ!‬

‫وًڂ لٌن خڀعٕفُٿ‪َ ،‬٭ين ؤوً ال وـىي ػبىخَِڄُص لٕدذ ڀَُٕدپ ‪ٜ‬مُك‪.‬‬
‫خڀربودڄؿ َٕع٭مځهد ڄه ؤـٿ خدلٸد َوص ڄ‪ ٫‬ڄد ًَوځً خؼبٕط‬

‫بٌن ټٿ ڄد ‪٬‬ځُىد ٴ٭ځً ٌى ‪ٌٍ ًُٜ‬ي خڀَُٕدالض وذبمُ٭هد وبن ٘حىد خٔع٭مځىدٌد يف ڄىڀً ټُفٌن ‪ٙ٬‬ىخجٍ‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪67‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫٘دٶ‪.‬‬
‫ڀٽه ڀُٓ خألڄُ زدؽبٌن ٴدڀَُٕدالض ٘سً ڄس٭ؽُش ‪ -‬ټؽًنش و‪٤‬ىَځص‪ -‬فبد هب٭ٿ صب٭هد ًَوَدً ؤڄُخً خً‬

‫ٌىد ظإيت ٴدجًش وشبُش ظ‪٥‬سُٷ ڄد ظ٭ځمىدي ‪٬‬ه ‪ OdbgScript‬وـ٭ٿ ؤڄُ صب‪ ٫‬خڀَُٕدالض َعڃ آڀُد ويف وٸط وـُّ‪.‬‬

‫ڀىځٹٍ ؤوال و‪ُ٩‬ش ‪٬‬ه ټُٵُص ظىخـً خڀَُٕدالض يف خڀربودڄؿ ‪ ,‬وٌٍر بذل خڀ٭ىىخن ‪ 4CDDD0‬ؤهـً ڄد َځٍ ‪:‬‬

‫ًٌٴىد ٌىد ٌى بهبدي ڄى‪٧‬وڄص ربٽڃ ظُخ‪ٜ‬ٳ خڀَُٕدالض ڀٽٍ وٕعٱځهد يف ټعدزص ٔٽَُسط َٹىڂ جبم٭هد‪.‬‬

‫يف‬ ‫‪DDh‬‬ ‫خَش زـ ‪ DEh‬ودوص ٴُمد زُىهد‪ ،‬ولىت زـ‬‫خَش زـ ‪ DFh‬ودوص‪ ،‬وض‬ ‫يالزظح أوىل ‪ :‬خڀَُٕدالض ڄعسد‪ً٬‬ش ض‬
‫ؤڄدټه ؤوُي‪ ،‬وٌٍخ ڀُٓ زدعبًُ ألوً ال ًَپ ‪٬‬ځً خڀعُظُر وخڀعى‪ُ٩‬ڃ‪.‬‬
‫ؤلُدن ؤوُي ‪ 33‬ودوص‪.‬‬
‫خَش ‪ 32‬ودوص و خً‬ ‫يالزظح ثاَيح ‪ :‬ؤ‪٤‬ىخپ خڀَُٕدالض زبعځٳ ‪ٙ٬‬ىخجُدً‪ ،‬ض‬
‫خَش ‪ 31‬ودوص‪ ،‬وض‬

‫ڀٽه بٌخ ؤڄ٭ىد خڀى‪ٔ ُ٩‬هـً ؤن خوعالٲَ خڀٵُٶ يف خڀعسد‪ ً٬‬زٌن ټٿ َُٔدپ وخڀٌٍ َځًُ ڄعىدٔرٌ ڄ‪ ٫‬خوعالٲ ‪٤‬ىپ ټٿ وخلًٍ ڄىهمد‪،‬‬
‫وزدڀعدرل وٕعىځ‪ ٛ‬ؤن خڀعسد‪ ً٬‬زٌن ؤوپ ودوص يف ټٿ َُٔدپ وؤوپ ودوص ڀځَُٕدپ خڀٌٍ َځًُ ٌٍ ٸُمص ؼدزعص وظٕدوٌ ‪ FFh‬ودوص‪.‬‬

‫ڀىٕعؽمُ ٌٍي خػبد‪ُٜ‬ص يف ټعدزص ٔٽَُسط‪:‬‬

‫زًخَص ٔىٹىڂ زع٭َُٳ ڄعٱًنَه خؼىٌن‪ ،‬خألوپ وٕمًُ ‪ addr‬وو٭‪٬ ًُ٥‬ىىخن ؤوپ َُٔدپ لىت وسًؤ خڀ٭ً ڄه ٌىدٺ‪.‬‬

‫ٌد ‪:‬‬
‫وخپؼدين وٕمًُ ‪ instance‬وخڀٌٍ ُٔځ٭ر يوَ خڀ٭ًخي ڀ٭ًي خڀَُٕدالض خڀيت ٔىفځر‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪68‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪mov addr,‬‬ ‫‪04CDDE0‬‬


‫‪mov instance, 0‬‬

‫وٹىڂ ز٭ًٌد زةو‪ٙ‬دء ڄځٳ و‪ ٍٝ‬وٕمًُ ‪ serials.txt‬و‪ ٫١‬ٴًُ خڀَُٕدالض خؼب‪٥ٝ‬ديش‪ ،‬ووٽعر ٴًُ ټٹُمص ؤوڀُص خڀى‪"Valid :ٛ‬‬
‫"‪.Serials:‬‬

‫ٔىٕع٭مٿ خألڄُ ‪ WRT‬ڀعًڄًن ؿبعىي ؤٌ ڄځٳ وبمٿ وٵٓ خالٔڃ بن ټدن ڄىـىيخً‪:‬‬

‫"‪wrt "serials.txt", "Valid Serials:‬‬


‫خِن وٹىڂ زةو‪ٙ‬دء خغبځٹص خڀيت ٔعٹٳ ‪٬‬ىً زًخَص ټٿ َُٔدپ ڀعٽعسً يف ڄځٵىد خؼبٍټىَ ٔدزٹدً ‪:‬‬
‫‪loop:‬‬
‫‪cmp [addr], 0‬‬
‫‪je end‬‬
‫]‪wrta "serials.txt", [addr‬‬
‫‪add addr, FF‬‬
‫‪inc instance‬‬
‫‪jmp loop‬‬

‫مث و‪٩‬هُ خڀىدظؿ ز٭ً ربىَځً بذل خڀى‪٩‬دڂ خڀ٭‪: ٌُٙ‬‬


‫‪end:‬‬
‫‪itoa instance, 0A‬‬
‫"‪eval "{$RESULT} serials were fished‬‬
‫‪msg $RESULT‬‬
‫‪ret‬‬

‫وىٵٍ خڀٕٽَُسط يف ‪ OllyDbg‬ڀىم‪ٝ‬ٿ ز٭ًٌد ‪٬‬ځً ڄځٳ ‪( serials.txt‬قبًي جبدور ڄځٳ خڀربودڄؿ‪ :‬خؼبٕدَ خالٴعُخ‪ )ٍ٠‬وزً ټٿ‬
‫خڀَُٕدالض ڄى‪٩‬مص‪.‬‬

‫‪Vcodes .9.2‬‬

‫خ‪٠‬ٱ‪ ٣‬خڀ‪ٝ‬ىَش ڀعممُٿ خؼبُٴٹدض‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪69‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫فم محاية ‪ PC-GUARD for Win32‬اإلصدار رقه ‪5.00 :‬‬

‫‪ .1‬املكسَ‪١‬‬
‫ٌٍخ خڀربودڄؿ ًَوٿ يف ‪٬‬دجځص زُخڄؿ خڀـ ‪ Licensing‬وَٹ‪ ًٝ‬زٍڀٻ ؤوىد زدٔع٭مدپود ؽبٍخ خڀربودڄؿ ڀه كب‪ٝ‬ٿ ٴٹ‪٬ ٣‬ځً زُودڄؿ ؿبمٍ‬
‫‪ ً٠‬خؽبىًٔص خڀ٭ٽُٕص زٿ يبٽىىد ‪٬‬ه ‪َُ٤‬ٹً بيڄدؾ آڀُص ظٕفُٿ ټدڂڀص وڄعىى‪٬‬ص لٕر خحلخـص ‪ .‬خغب‪ٝ‬ىپ ‪٬‬ځً زُودڄؿ ٸدزٿ پپظٕفُٿ‬
‫وؿبًوي يف خڀّڄه وخالٔع٭مدپ‪..‬‬

‫ڀٽٍ ال وع‪ُ٥‬ٶ بذل ُ٘ق ټٿ و‪ٝ‬دج‪ ٛ‬خڀربودڄؿ يبٽىٻ ؤوٍ خڀٹدَت ذبُزص خڀىٕىص خؼبُٴٹص وخڀع‪٥‬ځ‪٬ ٫‬ځً ټٿ و‪ٝ‬دج‪ٝ‬هد ألوىد‬
‫ْنلدوپ يف ٌٍخ خڀًَْ بن ٘دء خهلل ب‪٥٬‬دء ظى‪ُ٠‬ك ‪٬‬ه ټُٵُص ٴٻ ضبدَص خڀربودڄؿ زدٔعٱالپ خڀـ ‪ Exceptions‬خڀىدذبص ‪٬‬ه خڀععس‪ ٫‬زدؼبىٹك‪.‬‬

‫وٸسٿ خڀسًخَص يبٽىىد خڀٹىپ‪ :‬بن ‪ً٬‬ڂ ټٵدءش ٌٍخ خڀىى‪ ٪‬ڄه خغبمدَص ڄ‪ ٫‬خٔع٭مدپ ود‪ُٜ‬ص خڀـ ‪ Licensing‬ڄ‪ُٙ‬و‪ ٢‬زسٹدء خڀـ‬
‫‪َ Loader‬٭ين ٴٻ ؤٌ زُودڄؿ ؿبمٍ زًٌي خڀ‪َُ٥‬ٹص خؼبٍټىَش ٔدزٹدً هب٭ځً ټدڄالً يون ؤٌ ربًًَخض يف خالٔع٭مدپ‪.‬‬

‫‪ PEiD‬ڀځٵم‪ ٛ‬ؤو ‪. AT4RE FastScanner‬‬


‫‪.OllyDbg‬‬
‫‪ OllyDump Plugin‬ڀ٭مٿ وٕىص ڄه خڀٍخټُش‪.‬‬
‫‪ Import REConstructor‬ب‪٬‬ديش زىدء خڀًوخپ خؼبٕعً‪٬‬دش ڄه خڀربودڄؿ‪.‬‬

‫ٌٍخ خڀًَْ ڄىـً بذل خؼبٕعىي خڀ‪ٙ‬سً ڄعىٔ‪ ،٣‬وٌى ڄً‪٬‬ىڂ زدڀ‪ٝ‬ىَ ڀُٽىن ؤي‪ ً٬‬ڀځٵهڃ بن‬
‫٘دء خهلل‪.‬‬

‫مت ظٹُٕڃ خڀًَْ بذل ٸٕمٌن ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪70‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ٴٻ ضبدَص خؼبځٳ خڀعىٵٌٍُ ‪PCGWIN32.exe‬‬


‫ٴٻ ضبدَص ڄځٳ خؼبٽعسص خڀًَىدڂَٽُص ‪PCGW32.DLL‬‬

‫ايتٓؿ‪ٝ‬ص‪PCGWIN32.exe ٟ‬‬ ‫‪ .2‬ؾو محا‪ ١ٜ‬املًـ‬

‫‪ .2.1‬ؾشل ايدلْاَر‬

‫خٔع٭مدپ زُخڄؿ ٴم‪ ٛ‬ڄؽٿ ‪ PEiD‬ؤو ‪ AT4RE FastScanner‬ڀځعإټً ڄه وـىي ضبدَص ؤو ‪٠‬ٱ‪ ٣‬ؤو ڄ٭ُٴص خڀځٱص خؼبٕع٭مځص يف خڀربؾبص‬
‫ؤڄُ ؤٔدٍٔ يف ‪٬‬ددل خؽبىًٔص خڀ٭ٽُٕص‪.‬‬

‫والل‪ ٧‬ؤن خڀربودڄؿ ڄ‪١‬ٱى‪ ٢‬وڄ‪ٙ‬ٵُ زىخٔ‪٥‬ص زُودڄؿ ‪ PC-Guard 5.0‬ويبٽه خڀعإټً ڄه خؼب٭ځىڄدض خؼب٭‪٥‬دش ڄه ‪ُ٤‬ٲ ؤيخش خڀٵك‪ ٚ‬ڄه‬
‫‪.AT4RE‬‬ ‫والپ ڄعدز٭ص خڀربودڄؿ يف خؼبىٹك ڀعٵديٌ خڀىٸى‪ ٪‬يف ؤو‪٥‬دء ٔسسهد ؤيوخض ‪ٜ‬ممط ڀعّوَُ ز‪ٝ‬مدض خڀربخڄؿ ڄؽٿ‬
‫‪Signs_Imitator‬‬

‫اٍ ‪Loader‬‬
‫‪ .2.2‬ـ‬

‫كبمٿ خڀربودڄؿ يف خؼبىٹك وز٭ًٌد ْوالل‪ ٧‬وٹ‪٥‬ص يوىپ خڀربودڄؿ خڀٱًن لٹُٹُص ‪ 00483000‬وٌٍ زًخَص خڀـ ‪ Loader‬خؼبٕاوپ ‪٬‬ه ٴٻ‬
‫خغبمدَص‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪71‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ٌٍخ ڄؽدپ پألٸٕدڂ خػبد‪ٜ‬ص زدِڀص خغبدٔسص ‪:‬‬


‫ڀٽٍ وٵهڃ خڀٵٽُش ؤټؽُ ووٕعى‪٬‬سهد ز‪ٙ‬ٽٿٍ ـًٍُ ٲ‬

‫ٸسٿ و‪ ٫٠‬خغبمدَص وٹ‪٥‬ص يوىپ خڀربودڄؿ ڄىـىيش يف خڀٹٕڃ ‪ .text‬ويبٽىىد ٸُخءش خڀـ ‪ Strings‬وخالٔعً‪٬‬دءخض زى‪٠‬ىق يف خؼبىٹك‪.‬‬

‫ػًهيح احلًايح متز مبززهرني ‪:‬‬

‫‪ .1‬ضبدَص خڀربودڄؿ خؽبًٲ‪ :‬زُودڄؿ خغبمدَص َ‪ٙ‬ٵُ‪١َ ،‬ٱ‪ ، ٣‬يٌڂؾ خڀـ ‪ Loader‬يف خڀربودڄؿ خؽبًٲ ًٌٰٗن وٹ‪٥‬ص خڀًوىپ خغبٹُٹُص‬
‫ڄه خڀٹٓڂ ‪ .text‬بذل خڀٹٕڃ خڀٌٍ وبعىٌ خڀـ ‪.Loader‬‬

‫َ‪ٝ‬سك خڀىدظؿ ٌٽٍخ ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪72‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ .2‬خڀـ ‪ Loader‬وبعىٌ ‪٬‬ځً ظ٭ځُمدض ٴٻ خڀع‪ٙ‬ٵًن ٗخڀ‪١‬ٱ‪ٗ ٣‬بَـد‪ ٪‬وٹ‪٥‬ص خڀًوىپ خغبٹُٹُص‪ ،‬وټٿ ٌٍي خڀ٭مځُدض ظعڃ يف‬
‫خڀٍخټُش‪ ،‬وي و َكظىٌ ؤَ‪١‬د ‪٬‬ٿي ټٿ خػبً‪ ٪‬خؼب٭ُوٴص إلَٹدٲ خؼبىٹك ٗظ‪ٙ‬ىَٗ ٗظ‪ٙ‬ٵًن خڀٽىي عب٭ٿ ظعس‪ ٫‬خڀـ ‪ Loader‬ؤڄُخً ‪٫ٜ‬خًذٗفبالً‪،‬‬
‫ووبىٌ ؤَ‪١‬د بـُخءخض خڀعٕفُٿ وخڀعمًًَخض خػبد‪ٜ‬ص زّڄه وڄًش خٔعىًخڂ خڀربودڄؿ يف خڀربخڄؿ خڀيت ربعىٌ ‪٬‬ځً ود‪ُٜ‬ص ‪.Licensing‬‬

‫‪ٜ‬٭ر ب‪٠‬دٴص بذل‬


‫ٸىش زُودڄؿ خحلڄدَص ظٽمه يف‪ :‬زُؾبص ‪ٜ Loader‬٭ر خڀععس‪ ،٫‬ووبعىٌ ‪٬‬ځً وً‪ ٪‬ذب٭ٿ خڀى‪ٜ‬ىپ بذل خڀىٹ‪٥‬ص خغبٹُٹُص ؤڄُخً خً ‪،‬‬
‫ـ٭ٿ ب‪٬‬ديش زىدء خالٔعً‪٬‬دءخض ُ٘حدً ڀُٓ يف ڄعىدوپ خعبمُ‪.٫‬‬

‫‪ .2.3‬ؾو اذتُا‪١ٜ‬‬

‫وبعىٌ ٌٍخ خعبدور ڄه خڀًَْ خڀ‪َُ٥‬ٹص خڀ٭مځُص ڀٵٻ خغبمدَص‪.‬‬

‫‪ .2.3.1‬إعسازات املٓكح‬

‫وٌٍر بذل‪ Options :‬مث ‪Debugging options‬‬

‫وځٱٍ ظٵ٭ُٿ خػبُدَخض ټدڀعدرل ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪73‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ًَ٬‬ٿ خعبًًَ كبٵ‪ ٧‬خػبُدَخض‪.‬‬


‫ز٭ً خڀط‬

‫يبٽىىد ظ٭ًَٿ وُدَخض خؼبىٹك ټٿ ڄُش ٗلٕر وى‪ ٪‬خغبمدَص خڀيت وًَُ يَخٔعهد‪.‬‬

‫ْكط‪ ١‬ايبسا‪ ١ٜ‬اذتك‪ٝ‬ك‪١ٝ‬‬ ‫‪.2.3.2‬‬


‫ڀځم‪ٝ‬ىپ ‪٬‬ځً ٸدجمص خڀـ ‪ٗ Exceptions‬ٴهڃ ڄدٌخ وبًغ ٸسٿ ‪٨‬هىَ ودٴٍش خڀربودڄؿ؟‬

‫وٌٍر بذل ‪ View :‬مث ‪ Log‬مث كبدوپ ظ‪ٙ‬ٯَٿ خڀربودڄؿ زدٔع٭مدپ ‪ Shift F9‬ڀعى‪ ٍ٥‬خڀـ ‪ Exceptions‬ټمد ٌى ڄى‪٠‬ك يف َُ٘‪٣‬‬
‫خؼبىٹك‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪74‬‬
AT4RE :‫انفريك انعرتي نههُذسح انعكسيح‬ ‫ وانذهىل انًرمذيح‬Olly .‫ خطىج إنى األياو‬:‫انهُذسح انعكسيح‬

.‫هُ ودٴٍش خڀربودڄؿ‬٩‫و٭ًُ خڀٽُش بذل ؤن ظ‬

.‫ خڀىدذبص ٸسٿ ؤن َ٭مٿ خڀربودڄؿ‬Exceptions ‫ًي خڀـ‬٬ ‫ ٗكبٕر‬Log ‫خِن وٌٍر بذل‬
‫تشغيل البرنامج‬ F9
00483343 Access violation when writing to [657EAB6E] Shift + F9
00483564 Access violation when writing to [B4E6507E] Shift + F9
004836D8 Single step event at PCGWIN32.004836D8 Shift + F9
00483A0D Single step event at PCGWIN32.00483A0D Shift + F9
7C911230 INT3 command at ntdll.DbgBreakPoint
7C911230 INT3 command at ntdll.DbgBreakPoint
7C911230 INT3 command at ntdll.DbgBreakPoint
00492999 Single step event at PCGWIN32.00492999 Shift + F9
0049698F Single step event at PCGWIN32.0049698F Shift + F9
0046E343 Access violation when writing to [657EAB6E] Shift + F9
0046E564 Access violation when writing to [B4E6507E] Shift + F9
0046E6D8 Single step event at PCGWIN32.0046E6D8 Shift + F9
0046EA0D Single step event at PCGWIN32.0046EA0D Shift + F9
7C911230 INT3 command at ntdll.DbgBreakPoint
7C911230 INT3 command at ntdll.DbgBreakPoint
7C911230 INT3 command at ntdll.DbgBreakPoint
0047D999 Single step event at PCGWIN32.0047D999 Shift + F9
58B50000 Module C:\WINDOWS\system32\COMCTL32.dll
76C40000 Module C:\WINDOWS\system32\IMAGEHLP.dll
76340000 Module C:\WINDOWS\system32\comdlg32.dll
77F40000 Module C:\WINDOWS\system32\SHLWAPI.dll
7C9D0000 Module C:\WINDOWS\system32\SHELL32.dll
77390000 Module
C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-
Controls_6595b64144ccf1df_6.0.2600.2180_x-
ww_a84f1ff9\comctl32.dll
0048198F Single step event at PCGWIN32.0048198F Shift + F9
Set Memory Breakpoint on Access ‫هنا نضع‬
77BD0000 Module C:\WINDOWS\system32\VERSION.dll
5B090000 Module C:\WINDOWS\system32\uxtheme.dll
‫تظهر نافذة البرنامج‬

‫ص خڀسًخَص‬٥‫ ألوً ُٔعڃ خڀًوىپ بذل وٹ‬Set Memory Breakpoint on Access ‫ص ظىٸٳ‬٥‫ وٹ‬٫١‫ و‬Exception ُ‫ز٭ً آو‬
.Loader ‫خغبٹُٹُص ڀځربودڄؿ وخػبُوؾ ڄه خڀـ‬

Memory ‫ مث‬View : ‫وٌٍر بذل‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ 2009 75


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫لبعدَ خڀٹٕڃ ‪ code‬مث و‪ ٫١‬وٹ‪٥‬ص ظىٸٳ‪ ،‬يف لدڀص خڀًوىپ ؽبٍخ خڀٹٕڃ ٴةن خؼبىٹك َْعىٸٳ‪.‬‬

‫صبُٿ ظىٸٳ خؼبىٹك يف وٹ‪٥‬ص خڀسًخَص خغبٹُٹُص ڀځربودڄؿ يف خڀٍخټُش‪.‬‬

‫ٗخالٔعً‪٬‬دءخض‪،‬‬ ‫خڀـ ‪Strings‬‬ ‫ڀىعإټً ؤوىد يف وٹ‪٥‬ص خڀسًخَص خغبٹُٹُص ڀځربودڄؿ‪ :‬وٌٍر بذل ودٴٍش‬
‫بٲٌخ خٔع‪٥‬٭ىد ٸُخءهتد زى‪٠‬ىق ٴدڀ٭مځُص ودـمص‪.‬‬

‫سؿغ ايدلْاَر َٔ ايصانط‪Dump ٠‬‬ ‫‪.2.3.3‬‬


‫ٔىٲ كبدوپ بن ٘دء خهلل لٵ‪ ٧‬خڀربودڄؿ خزعًخء ڄه وٹ‪٥‬ص خڀسًخَص خعبًًَش يف ڄځٳ ـًًَ ڄه خڀٍخټُش وٌٍخ ڄد َٕمً ز٭مٿ ‪Dump‬‬

‫ٔىٕع٭مٿ ؤيخش ‪.OllyDump Plugin‬‬


‫يف ٌٍي خؼبُلځص ال هبىِ ؤن وٱځٷ خؼبىٹك لىت وىعهٍ ڄه ‪٬‬مځُص ٴٻ خغبمدَص‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪76‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫وٌٍر بذل ‪ Plugins‬مث ‪ OllyDump‬مث ‪Dump debugged process‬‬

‫وځٱٍ ظٵ٭ُٿ ‪ Rebuild import‬ألوىد ٔىٕع٭مٿ زُودڄؿ ‪:‬‬


‫‪. Import REConstructor‬‬

‫وٹىڂ حبٵ‪ ٧‬خڀربودڄؿ خعبًًَ ڄه خڀٍخټُش بذل خڀٹُ‪.ٚ‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪77‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫إعاز‪ ٠‬بٓا‪ Imports ٤‬باغتعُاٍ بطْاَر ‪Import REConstructor‬‬ ‫‪.2.3.4‬‬

‫ز٭ً ظ‪ٙ‬ٱُٿ ؤيخش ب‪٬‬ديش زىدء خڀـ ‪ imports‬وٌٍر بذل ‪ Attach to an Active process :‬ولبعدَ زُودڄؿ خڀًَْ‪.‬‬

‫زُودڄؿ خڀًَْ ؿبمٿ يف خڀٍخټُش ‪٬‬ه ‪َُ٤‬ٷ خؼبىٹك وڄعىٸٳ يف وٹ‪٥‬ص خڀسًخَص خغبٹُٹُص‪ ،‬ڀٍخ ال‬
‫هبىِ ؤن وٱځٷ خؼبىٹك لىت ظىعهٍ خڀ٭مځُص ټدڄځص ټمد ٌټُود ٔدزٹدً‪.‬‬

‫وٌٍر بذل ‪ IAT Infos Needed‬ڀى‪٬ ٫١‬ىىخن وٹ‪٥‬ص خڀسًخَص خغبٹُٹُص خؼب٭ُوٴص زُڄّ ‪: OEP‬‬

‫مث ‪٬‬ځً ‪: AutoSearch‬‬

‫يف لدڀص وـىي وعُفص بهبدزُص ظ‪٩‬هُ ٌٍي خڀُٔدڀص‬

‫و‪١‬ٱ‪٬ ٣‬ځً ‪: Get Imports‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪78‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ٌٍي خڀـ ‪ Imports‬خڀيت ظ٭ُٲ ‪٬‬ځُهد خڀربودڄؿ‪ ،‬وخڀيت َٕع‪ ٫ُ٥‬ظؽسُط ‪٬‬ىدوَىهد‪ ،‬وڀٽه ٸسٿ خڀعؽسُط هبر ٴم‪ ٛ‬خڀـ ‪ imports‬ڀُعڃ‬
‫ب‪ٜ‬اللهد ًَوَدً‪.‬‬

‫و‪١‬ٱ‪٬ ٣‬ځً ‪Show Invalid‬‬

‫خظسد‪ ٪‬خڀعُظُر يف خؼبىٹك ڀربودڄؿ خڀًَْ؛‬


‫ظ‪٩‬هُ ڀىد يخڀص يف خؼبٽعسص خڀًَىدڄٽُص ‪ًٰ Kernel32.dll‬ن ڄ٭ُوٴص‪ ،‬ووٕع‪ ٫ُ٥‬خڀع٭ُٲ ‪٬‬ځُهد ذ‬
‫لُػ ؤهند ظٹ‪ ٫‬زٌن يخڀص ‪ ، GetVersion ٗ HeapDestroy‬وٌٍ يخڀص ‪ ExitProcess‬خڀيت ٔىٲ و‪ٝ‬ځمهد زدٔع٭مدپ وُدَ ‪:‬‬
‫‪Import Editor‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪79‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫لبعدَ ‪ ExitProcess‬مث كبٵ‪ ٧‬خػبُدَ ‪:‬‬

‫دبد ىب‪ ٛ‬خڀـ ‪ Import‬خڀعدرل خڀٯَُ ڄ٭ُوٲ ٴال َىـً ڀًَىد خٔڃ خؼبٽعسص وؽبٍخ ٔىٽعٵٍ حبٍٴهد ڄه خڀٹدجمص وڀٽه وىعسً ؽبٍي خڀ٭مځُص ألين‬
‫يف ز٭‪ ٟ‬خغبدالض ال َؿوِ لٍٲ خڀـ ‪ Import‬خڀٱًن ڄ٭ُوٴص وؿبدوڀص ب‪ٜ‬اللهد ًَوَدً؛ ألن لٍٴهد َاؼُ ‪٬‬ځً خڀربودڄؿ ‪ ،‬و‪١‬ٱ‪ ٣‬خڀَّ‬
‫خأليبه ڀځٵإَش مث لبعدَ ‪.Cut Thunks‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪80‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ٜ Import‬مُمص ؤىمدوپ ظؽسُعهد يف خڀربودڄؿ خعبًًَ ‪. Dump‬‬ ‫ٌ ‪٬‬ىدوَه‬


‫خِن ؤ‪ٜ‬سك پي ود‬

‫و‪١‬ٱ‪٬ ٣‬ځً ‪Fix Dump‬‬

‫مث لبعدَ خڀربودڄؿ خعبًًَ ‪. Dump‬‬

‫ز٭ً بسبدڂ ټٿ ڄُخلٿ خپ‪٪‬ڄځُص كبدوپ ظ‪ٙ‬ٱُٿ خڀربودڄؿ وخڀعُټُّ ‪٬‬ځً ذبَُر و‪ٝ‬دج‪.ًٝ‬‬

‫وٹىڂ ز٭مٿ ٴم‪ ٛ‬ـًًَ ز٭ً ٴٻ خغبڃخَص ڀى‪ٙ‬دًٌ وعُفص خڀ٭مځُص ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪81‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪PCGW32.DLL‬‬ ‫‪ .3‬ؾو محا‪ًَ ١ٜ‬ـ املهتب‪ ١‬ايس‪ٜٓ‬اَ‪ٝ‬ه‪١ٝ‬‬

‫‪ .3.1‬ؾشل ‪ٚ‬زضاغ‪ ١‬املًـ‬

‫آوٳ خػبد‪ٜ‬ص‬
‫ڀٵٻ ضبدَص ڄځٳ خؼبٽعسص خڀًَىدڄُٽُص ‪ PCGW32.dll‬وعس‪ ٫‬وٵٓ خڀ‪َُ٥‬ٹص خؼبٍټىَش خً‬
‫زدٔعٱالپ ‪ Exceptions‬ڀځى‪ٜ‬ىپ بذل وٹ‪٥‬ص خڀسًخَص خغبٹُٹُص ڀځمځٳ‪.‬‬

‫‪٬‬مځُص خڀٵم‪ ٛ‬ظسٌن خٔڃ زُودڄؿ خغبمدَص ‪:‬‬

‫مث ‪:‬‬

‫‪ OllyDbg‬ال وبڃٍپ ڄځٵدض خؼبٽعسص خڀًَىدڄٽُص ظځٹدجُدً؛ ڀٍخ هبر ‪٬‬ځُىد خٔع٭مدپ زُودڄؿ ودَـٍ ڀعىٹُك ٌٍخ خڀىى‪٪‬‬
‫ڄه خؼبځٵدض‪ٗ ،‬يبٽىىد خٔع٭مدپ زُودڄؿ ‪ Loaddll.exe‬ڄ‪ ٫‬خؼبىٹك‪.‬‬

‫ٌٍي وٹ‪٥‬ص يوىپ ڄځٳ ‪ Dll‬خحملمٍ ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪82‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ .3.2‬سؿغ ايدلْاَر َٔ ايصانط‪Dump ٠‬‬

‫خظسد‪ ٪‬خڀ‪َُ٥‬ٷ خڀٕدزٹص ؤوٍ خڀ٭َّّ ٔع‪ٝ‬ٿ لعمدً بذل وٹ‪٥‬ص خڀسًخَص خغبٹُٹُص ؼبځٳ ‪: Dll‬‬
‫ذ‬

‫و ٌىد ‪٬‬مځُص لٵ‪ ٧‬خؼبځٳ ڄسدُ٘ش ڄه خڀٍخټُش ڄ‪ ٫‬وٹ‪٥‬ص خڀسًخَص خغبٹُٹُص ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪83‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ .3.3‬إعاز‪ ٠‬بٓا‪ Imports ٤‬باغتعُاٍ بطْاَر ‪Import REConstructor‬‬

‫ال يبٽىىد ربمُٿ ڄځٳ ‪ Dll‬ڄسدُ٘ش ڄه خڀـ ‪ Process‬ڀٍخ ْنلڃٍ پ زُودڄؿ ‪ Loaddll.exe‬خڀٌٍ ضبٿ زًوَي ڄځٳ‬
‫‪ Dll‬مث و‪١‬ٱ‪٬ ٣‬ځً ‪.Pick DLL‬‬

‫ٌش خڀيت ‪٨‬هُض ڀىد ‪:‬‬


‫لبعدَ خؼبځٳ خؼبُخي ب‪٬‬ديش زىدء خڀـ ‪ Imports‬ڀً يف خڀىدٲ‬

‫وًوٿ ‪٬‬ىىخن وٹ‪٥‬ص خڀًوىپ خغبٹُٹُص ڀځمځٳ مث و‪١‬ٱ‪٬ ٣‬ځً ‪ ، AutoSearch‬ويف لدپ خڀ٭ؽىَ ‪٬‬ځً وعُفص بهبدزُص ظ‪٩‬هُ ڀىد َٔدڀص قبدق‬
‫خڀ٭مځُص‪.‬‬

‫و ‪٬‬ىً خڀ‪١‬ٱ‪٬ ٣‬ځً ‪ Get Imports‬والل‪ ٧‬ؤوً ال َىـً ؤو‪٥‬دء يف خڀ٭ىدوَه ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪84‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫وٹىڂ زعؽسُط خپ‪٬‬ىدوَه خڀ‪ٝ‬مُمص يف خؼبځٳ خعبًًَ ‪:‬‬

‫‪ .4‬ارتامت‪١‬‬
‫خغبمً هلل مت ٌٍخ خڀًَْ ووٕإپ خهلل ظ٭دذل ؤن َٽىن ‪ُ٩٬‬ڃ خڀىٵ‪ ٫‬ؤهٿ خڀٵهڃ‪.‬‬

‫خؼبځٵدض خڀيت ‪٬‬مٿ ‪٬‬ځُهد ٌٍخ خڀًَْ ڄُٴٹص ڀُعٕهَّ ڀٻ ؤوٍ خڀٽُمي خڀعفُزص‬
‫ڄ‪ ٫‬خظسد‪ ٪‬ټٿ خؼبُخلٿ وخڀى‪ٜ‬ىپ بذل خڀىعُفص خؼبُ‪ُ٠‬ص‪ .‬ويبٽىٻ ربمُځهد ڄه‬
‫ي ود‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪85‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫عنل ٍيدسة علسية مللوىات دلفي‬


‫‪Delphi component RCE‬‬

‫‪ .1‬األٖساف‬
‫خغب‪ٝ‬ــىپ ‪٬‬ځً ڄ٭ځىڄدض خڀعٕفُـٿ و‪٬‬مٿ ڄىڀً ڄٵدظُك ‪.Serial Fishing and Keygening‬‬

‫خڀع٭ًَــٿ ٴـٍ خؼبٽـىن زدڀــ ‪.Patching‬‬

‫‪َ .2‬كسَ‪١‬‬
‫ڀٱص خڀربؾبص يڀٵٍ ڄه خڀځٱدض خؼبع‪٥‬ىَش وخپٔهځص خالٔع٭مدپ وخڀعى‪ ،ُٛٝ‬وظىٴُ بڄٽدوُص ب‪٠‬دٴص ڄٽىودض ـًًَش ذب٭ځهد ٸديَش ‪٬‬ځً‬
‫خڀعإٸځڃ ڄ‪ ٫‬ڄع‪٥‬ځسدض ټٿ ڄربڄؿ ڄهمد ټدن ڄٕعىخي‪.‬‬

‫ڄؽالً َٕع‪ ٫ُ٥‬ڄربڄؿ ٌدوٌ خٔع٭مدپ ؤ‪٬‬ٹً وىخَِڄُدض خڀع‪ٙ‬ٵًن خؼبىـىيش يف ڄٽعسدض ـدٌّش يون ڄ٭ُٴص وٵدَدٌد‪ ،‬وٌٍخ ٔدٌڃ يف ‪٨‬هىَ‬
‫ُ٘ټدض ڄعى‪ٝٝ‬ص ٴٹ‪ ٣‬يف زُؾبص ڄٽىودض يڀٵٍ وظٕىَٹهد‪.‬‬

‫‪ .2.1‬ق‪ٝ‬ػ‪ ١‬امله‪ْٛ‬ات املػتعًُ‪١‬‬

‫يڀٵٍ ڄّوي زإيخش ـبع‪ٝ‬ص زة‪٠‬دٴص ڄٽىودض ـًًَش‪ ،‬وظؽسُعهد ز‪ُٝ‬ٱص ‪:‬‬

‫‪ Pas‬ڄځٳ ڄ‪ ًٌَٝ‬ڄ‪ ٫‬بڄٽدوُص خڀع٭ًَٿ وب‪٠‬دٴص ‪ Procedures‬و ‪٬ Functions‬ځًُ‪.‬‬


‫‪ Dcu‬ڄ‪ً٬ ٫‬ڂ بڄٽدوُص ب‪٠‬دٴدض ؤوُي‪.‬‬
‫‪ Bpl‬ڄٽعسص ټدڄځص ڄٕعٹځص ڄ‪ً٬ ٫‬ڂ بڄٽدوُص ب‪٠‬دٴدض ؤوُي ؤَ‪١‬دً‪.‬‬

‫ڀځمًَّ ڄه خؼب٭ځىڄدض ‪٬‬ه ڄٽىودض يڀٵٍ و‪َُ٤‬ٹص خڀعى‪ُٝ‬ر يبٽىٽڃ َِدَش ڄىٸ‪ ٫‬يڀٵٍ‬
‫ڀځ٭ُذ خؼبعى‪ ٛٝ‬يف خڀربؾبص خذپيڀٵٍ ‪٬‬ځً خڀُخز‪ ٣‬خڀعدرل ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪86‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ .2.2‬األز‪ٚ‬ات املػتدسَ‪١‬‬

‫خؼبىٹك ‪.OllyDbg‬‬
‫ڄكََ ٌٽٓ ‪. HexWorkshop v5‬‬
‫زُودڄؿ خڀسمػ ‪٬‬ه خڀـ ‪Search and replace – Strings‬‬
‫‪.Delphi 7 Entreprise‬‬

‫ڄه ؤـٿ ظى‪ُ٠‬ك ٌٍخ خڀًَْ ٸڃود زربؾبص ڄٽىن يڀٵٍ‪ ،‬وؤ‪٠‬ٵىد بڀًُ خڀ‪ُ٥‬ٶ خڀٽالُٔٽُص خڀيت ظ٭عمً ‪٬‬ځً خڀعإټً ڄه ظ‪ٙ‬ٱُٿ يڀٵٍ‬
‫ڀٽٍ َ٭مٿ خؼبٽىن ز‪َُ٥‬ٹص ًٰن ؿبًويش‪ ،‬وخڀ‪ُ٥‬ٶ خعبًًَش خڀيت ظ٭عمً خغب‪ٝ‬ىپ ‪٬‬ځً ڄ٭ځىڄدض ظٕفُٿ يون خڀځفىء بذل ٴم‪ ٛ‬ظ‪ٙ‬ٱُٿ‬
‫يڀٵٍ‪.‬‬

‫ٸځص زًڄؿ ‪ Junkcode‬ؤو خٔع٭مدپ ‪ ،Obfuscation‬وخڀع‪ٙ‬ٵًن‬


‫وٕع‪ ٫ُ٥‬ضبدَص خؼبٽىن زىٵٓ خڀ‪ُ٥‬ٶ خؼب٭هىيش ڀځربخڄؿ خؼبٕط‬
‫َٕد‪ ً٬‬ؤَ‪١‬د يف ـ٭ٿ خألـّخء خغبٕدٔص ڄه خڀـ ‪ًٰ Code‬ن ڄٵهىڄص ؤؼىدء خڀععس‪ ٫‬يف خؼبىٹك‪.‬‬

‫‪ .3‬اشلٓسغ‪ ١‬ايعهػ‪ ١ٝ‬يًٗسف‬

‫‪ .3.1‬ايتشً‪ ٌٝ‬األ‪ٚ‬ي‪ٞ‬‬

‫وٹىڂ ؤوالً زعؽسُط خؼبٽىن ‪ IsTRIALTEST‬وڀعٕهُٿ خڀ٭مځُص ٸڃود زربؾبص ؤيخش‬


‫ظؽسُط يبٽىٽڃ ظكڄُٿ خؼبٽىن وخأليخش ڄه ٌىد‪.‬‬

‫وٹىڂ زةو‪ٙ‬دء ڄ‪ُٙ‬و‪ ٪‬ـًًَ وز٭ً بسبدڂ خڀ٭مځُص وٌٍر پڀعسىَر خعبًًَ ‪ AT4RE‬وو‪ُ١‬ٳ خؼبٽىن ‪ IsTRIALTEST‬بذل خؼب‪ُٙ‬و‪ ٪‬مث كبٵ‪٧‬‬
‫خڀٽٿ مث و‪ٙ‬ٱٿ خؼب‪ُٙ‬و‪ ،٪‬خو‪ ُ٩‬خڀ‪ٝ‬ىَش ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪87‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫خڀعسىَر ‪AT4RE‬‬ ‫‪01‬‬


‫خؼبٽىن ‪IsTRIALTEST‬‬ ‫ب‪٠‬دٴص‬ ‫‪02‬‬
‫خؼب٭ځىڄدض خػبد‪ٜ‬ص زدؼبٽىن ولٹىپ خڀعٕفُٿ‬ ‫‪03‬‬

‫والل‪ ٧‬ؤن خڀربودڄؿ َ٭مٿ ذ‪َُ٤‬ٹص ‪٬‬ديَص‪ ،‬وڄ‪٩‬هُي ڄ‪٥‬دزٷ ڀځم‪ُٙ‬و‪ ٪‬يون ؤٌ ظٱًُن ؤو ب‪٠‬دٴدض ‪:‬‬

‫و٭ًُ ظ‪ٙ‬ٱُٿ خؼب‪ُٙ‬و‪ ٪‬خعبًًَ وپټه زةٰالٶ يڀٵٍ ٌٍي خؼبُش‪.‬‬

‫والل‪ ٧‬ؤوً ؤوُؾ َٔدڀص َ٭ځمىد ٴُهد زإوىد وٕع٭مٿ وٕىص ذبَُسُص ‪: Trial Version‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪88‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ز٭ً خڀٹُدڂ زةٰالٶ خڀُٔدڀص َ‪٩‬هُ ڀىد خڀربودڄؿ وڀٽه َىـً ظٱًُنخض يف خؼب‪٩‬هُ‪ ،‬وٌىدٺ ‪٬‬سدَش ‪ Trial Version‬ؤ‪ُ٠‬ٵط بذل ‪Caption‬‬
‫خڀربودڄؿ؟‬

‫َهد زإوىد وٕع٭مٿ وٕىص ذبَُسُص ‪: Trial Version‬‬


‫وٹىڂ زةٰالٶ خؼب‪ُٙ‬و‪ ٪‬و‪٬‬ىًٌد ٔىالل‪ ٧‬ؤوً ڄُش ؤوُي ٸً ؤوُؾ َٔدڀص َ٭ځمىد ٲ‬

‫خؼبٽىن ٸدڂ زدڀعٱًُنخض خڀعدڀُص يف لدڀص بيودپ ڄ٭ځىڄدض ظٕفُٿ ًٰن ‪ٜ‬مُمص و‪ً٬‬ڂ ظ‪ٙ‬ٱُٿ يڀٵٍ ‪:‬‬
‫بٌن ٲ‬

‫ڀ٭ىىخن خڀربودڄؿ‪.‬‬ ‫ب‪٠‬دٴص ټځمص ‪TRIAL VERSION‬‬ ‫‪01‬‬


‫‪ 02‬ـ٭ٿ وخـهص خڀربودڄؿ ٘ٵدٴص‪.‬‬
‫ؤَ‪.ٟ‬‬
‫‪ 03‬ڀىن خػب‪ ٣‬خألٔىي خؼبٕع٭مٿ ؤ‪ٜ‬سك ٘ٵدٴدً خً‬
‫‪َٔ 04‬دڀص ڄّ‪٬‬فص ‪٬ NagScreen‬ىً ظ‪ٙ‬ٱُٿ خڀربودڄؿ‪.‬‬
‫‪َٔ 05‬دڀص ڄّ‪٬‬فص ‪٬ NagScreen‬ىً بٰالٶ خڀربودڄؿ‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪89‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ .3.2‬ايتٓك‪ٝ‬ح ‪ٚ‬ايتتبع‬

‫وٹىڂ زعممُٿ خڀربودڄؿ يف خؼبىٹك ‪ OllyDbg‬مث وسمػ ‪٬‬ه خڀُٔدڀص خؼبّ‪٬‬فص بڄد ‪٬‬ه ‪َُ٤‬ٷ خڀٽځمدض خؼبٕع٭مځص يف خڀُٔدڀص ڄؽٿ‬
‫‪ Trial‬يف ‪ Text strings referenced‬ؤو ‪٬‬ه ‪َُ٤‬ٷ خٔعً‪٬‬دءخض خڀُٔدڀص ‪.Windows API‬‬

‫دبد ؤوً ال َىـً ظ‪ٙ‬ٵًن ڀځـ ‪ Strings‬ٴدڀٽځمدض خؼبٕع٭مځص يف خڀُٔدڀص ظ‪٩‬هُ زى‪٠‬ىق يف خؼبىٹك ٔىٹىڂ خِن زدڀسمػ وخڀععس‪.٫‬‬

‫و ټمد ٌټُ آوٵد يف زًخَص خڀًَْ بوىد وٕع‪ ٫ُ٥‬ظ٭ٹًُ ظعس‪ ٫‬خڀُٔدجٿ وخڀٽځمدض خڀيت َ٭عمً ‪٬‬ځُهد خڀٽؽًن ڄه خڀـ ‪Reverse‬‬
‫‪ engineer‬يف خڀسمػ ‪٬‬ه ‪٬‬ىدوَه خڀٵم‪ ٛ‬ز٭مٿ ‪ Obfuscation‬ڀځمىد‪٤‬ٷ خغبٕدٔص‪.‬‬

‫وُي يف خڀ‪ٝ‬ىَش ٴىٶ زى‪٠‬ىق ؿبعىَدض خڀُٔدجٿ وؤَ‪١‬د ټځمص ‪ TRIAL VERSION‬خڀيت ؤ‪ُ٠‬ٵط بذل ‪٬‬ىىخن خڀربودڄؿ‪.‬‬

‫و ٌىد َعسٌن خڀٵم‪ ٛ‬خڀ٭دڂ خڀعدز‪ ٫‬ڀـ ‪ OnCreate‬وخٔعً‪٬‬دءخض خڀٵم‪: ٛ‬‬

‫‪1‬‬

‫‪2‬‬

‫‪3‬‬

‫‪4‬‬
‫‪6‬‬

‫‪5‬‬
‫‪7‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪90‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫يف خعبًوپ زدٸٍ خالٔعً‪٬‬دءخض ‪ - Calls‬خؼبٕاوڀص ‪٬‬ه ظٱًُن ڀىن وخـهص خڀربودڄؿ وـ٭ځهد ٘ٵدٴص‪ -‬ظ‪٩‬هُ ؤَ‪١‬د زٌن خڀٹٵّخض خؼبٍټىَش‪.‬‬
‫انؼُىاٌ‬ ‫ذفكيك‬ ‫ذؼهيك‬ ‫يالزظح‬ ‫انزلى‬
‫‪004541AB‬‬ ‫‪PUSH EBP‬‬ ‫خڀسًخَص‬ ‫و‪ ٫١‬وٹ‪٥‬ص ظىٸٳ‬ ‫‪01‬‬
‫‪004541C5‬‬ ‫‪CALL 00454118‬‬ ‫خٔعً‪٬‬دء وىخَِڄُص خڀعٕفُٿ‬ ‫و‪ ٫١‬وٹ‪٥‬ص ظىٸٳ‬ ‫‪02‬‬
‫‪004541D0‬‬ ‫‪CALL 00453D44‬‬ ‫خٔعً‪٬‬دء وىخَِڄُص خڀعإټً ڄه وـىي يڀٵٍ يف خڀٍخټُش‬ ‫و‪ ٫١‬وٹ‪٥‬ص ظىٸٳ‬ ‫‪03‬‬
‫‪004541CC‬‬ ‫‪JNZ‬‬ ‫‪00454235‬‬ ‫خڀٹٵّ ز٭ً خڀعمٹٷ ڄه ڄ٭ځىڄدض خڀعٕفُٿ خڀ‪ٝ‬مُمص‬ ‫‪04‬‬
‫‪004541D7‬‬ ‫‪JNZ‬‬ ‫‪00454235‬‬ ‫خڀٹٵّ ز٭ً خڀعمٹٷ ڄه وـىي يڀٵٍ يف خڀٍخټُش‬ ‫‪05‬‬
‫‪004541DE‬‬ ‫‪CALL 004273B0‬‬ ‫خٔعً‪٬‬دء خڀُٔدڀص خؼبّ‪٬‬فص‬ ‫‪06‬‬
‫‪004541F3‬‬ ‫‪CALL 00404150‬‬ ‫ب‪٠‬دٴص ‪ Trial Version‬بذل ‪ Caption‬خڀربودڄؿ‬ ‫‪07‬‬

‫‪ .3.3‬اذتكــ‪ ٍٛ‬عً‪َ ٢‬عً‪َٛ‬ات ايتػذ‪ٝ‬ـٌ ‪ٚ‬عٌُ َ‪ٛ‬يس َؿات‪ٝ‬ح ‪Serial Fishing + Keygening‬‬

‫َسًؤ خٔعً‪٬‬دء وىخَِڄُص ڄ٭ځىڄدض خڀعٕفُٿ ټمد ٌى ڄى‪ ٫٠‬يف خڀ‪ٝ‬ىَ خڀعدڀُص ‪:‬‬

‫‪@Project1_00454118:‬‬
‫‪push ebp‬‬ ‫ي‪٬‬دء‬
‫زًخَص خالٔط‬
‫‪mov ebp,esp‬‬
‫‪add esp,-8‬‬
‫‪push ebx‬‬
‫‪xor edx,edx‬‬
‫‪mov dword ptr ss:[ebp-8],edx‬‬
‫‪mov ebx,eax‬‬
‫‪xor eax,eax‬‬
‫‪push ebp‬‬
‫‪push Project1_0045419e‬‬
‫]‪push dword ptr fs:[eax‬‬
‫‪mov dword ptr fs:[eax],esp‬‬
‫‪xor eax,eax‬‬
‫‪mov dword ptr ss:[ebp-4],eax‬‬
‫]‪mov eax,dword ptr ds:[ebx+$038‬‬
‫‪call @Project1_00404148‬‬
‫‪test eax,eax‬‬
‫‪jl @Project1_00454157‬‬
‫‪inc eax‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪91‬‬
AT4RE :‫انفريك انعرتي نههُذسح انعكسيح‬ ‫ وانذهىل انًرمذيح‬Olly .‫ خطىج إنى األياو‬:‫انهُذسح انعكسيح‬

xor edx,edx
@Project1_00454148:
mov ecx,dword ptr ds:[ebx+$038]
movzx ecx,byte ptr ds:[ecx+edx- ‫ڄ٭دعبص خٔڃ خؼبٕع٭مٿ سبُ ز٭مځُدض لٕدزُص‬
1]
add dword ptr ss:[ebp-4],ecx
...‫ يف خؼبىٹك‬٫‫ص ٔهځص خڀٵهڃ وخڀععس‬٥ُٕ‫ز‬
inc edx
dec eax
jnz @Project1_00454148
@Project1_00454157:
mov eax,dword ptr ss:[ebp-4]
mov ecx,$0256
cdq
idiv ecx
imul eax,edx,$01024
lea ecx,dword ptr ss:[ebp-8]
mov edx,$010
call @Project1_00407E38
mov edx,dword ptr ss:[ebp-8] ...‫مُك خڀىدظؿ ز٭ً خؼب٭دعبص‬ٝ‫زبَّه َٸڃ خڀعٕفُٿ خڀ‬
mov eax,dword ptr ds:[ebx+$03c]
...‫ث خؼبًوٿ‬٤‫زبَّه َٸڃ خڀعٕفُٿ خػبد‬

User name = STRELiTZIA


53+54+52+45+4C+69+54+5A+49+41 = 32B
32B mod 256 = D5 ‫خىارسييح ادلؼاجلح‬
D5 * 1024 = D6DF4
Format 16 hex = 00000000000D6DF4

: ٍ‫مٿ ڄىڀً ؤَٸدڂ زځٱص خپيڀٵ‬٬


function GetValidSerial(Name: string): string;
var i, Serial: integer;
begin
Serial := 0;
for i := 0 to Length(Name) do
begin
Serial := Serial + Ord(Name[i]);
end;
Serial := Serial mod $256;
Serial := Serial * $1024;
Result := IntToHex(Serial, 16);
end;

procedure TKeygen.GenerateBtnClick(Sender: TObject);


begin
SerialEdt.Text := GetValidSerial(NameEdt.Text);
end;

Patching ‫ٕ بايــ‬ٛ‫ املهـ‬ٞ‫ــٌ ؾـ‬ٜ‫ ايتعس‬.3.4

‫س َهإ ايباتـ‬ٜ‫ حتس‬.3.4.1

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ 2009 92


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫خڀع٭ًَٿ زدڀسدظ‪ُٙ‬ىٯ ڀُٓ ‪٬‬مځُص ظٱًُن زدَعدض ٴٹ‪ ٣‬يون ؿبدوڀص ٴهڃ ڄد ًَوَ يف خڀربودڄؿ خؼبٕعهًٲ‪،‬‬
‫يف ټؽًن ڄه خغبدالض ظٱًُن زدَط وخلً ٴٹ‪َ ٣‬ٽٵٍ ؤن هب٭ٿ خڀربودڄؿ ڄٕفالً ز‪ٙ‬ٽٿٍ ټدڄٿٍ يون‬
‫ظٱًُن ‪ً٬‬ش ٸٵّخض ٌىد وي ودٺ‪.‬‬

‫‪@Project1_004541ac:‬‬ ‫زًخَص خالٔعً‪٬‬دء‬


‫‪push ebp‬‬
‫‪mov ebp,esp‬‬
‫‪push 0‬‬
‫‪push ebx‬‬
‫‪push esi‬‬
‫‪mov ebx,eax‬‬
‫‪xor eax,eax‬‬
‫‪push ebp‬‬
‫‪push Project1_0045424b‬‬
‫]‪push dword ptr fs:[eax‬‬
‫‪mov dword ptr fs:[eax],esp‬‬
‫‪mov eax,ebx‬‬ ‫خٔعً‪٬‬دء ٴم‪ ٛ‬ڄ٭ځىڄدض خڀعٕفُٿ‬
‫‪call @Project1_00454118‬‬
‫‪test al,al‬‬ ‫ٸٵّش ُ٘‪ُ٤‬ص بذل زُ خِڄدن يف لدڀص ‪al = 1‬‬
‫‪jnz @Project1_00454235‬‬
‫‪mov eax,ebx‬‬
‫خٔعً‪٬‬دء ٴم‪ ٛ‬ظ‪ٙ‬ٱُٿ يڀٵٍ يف خڀٍخټُش‬
‫‪call @Project1_00453D44‬‬
‫‪test al,al‬‬ ‫ٸٵّش ُ٘‪ُ٤‬ص بذل زُ خِڄدن يف لدڀص ‪al = 1‬‬
‫‪jnz @Project1_00454235‬‬
‫‪mov eax,Project1_00454260‬‬
‫‪@Project1_004273B0‬‬
‫]‪lea edx,dword ptr ss:[ebp-4‬‬
‫]‪mov esi,dword ptr ds:[ebx+$040‬‬

‫والل‪ ٧‬ؤن خڀٹٵّش خألوذل خػبد‪ٜ‬ص زٵم‪ ٛ‬ڄ٭ځىڄدض خڀعٕفُٿ ظٹٵّ ؤَ‪١‬دً ٴىٶ خٔعً‪٬‬دء خڀعمٹٷ ڄه وـىي يڀٵٍ يف خڀٍخټُش فبد هب٭ځىد‬
‫و‪ُ١‬ذ ‪ٝ٬‬ٵىََه حبفٍُ وخلً‪.‬‬

‫ٔىٹىڂ زعٱًُن خڀٹٵّش خڀ‪ُ٤ُٙ‬ص بذل ٸٵّش ًٰن ُ٘‪ُ٤‬ص ‪:‬‬

‫‪call @Project1_00454118‬‬
‫‪test al,al‬‬
‫‪jmp @Project1_00454235‬‬ ‫‪ JNZ‬ظ‪ٝ‬سك ‪JMP‬‬
‫‪mov eax,ebx‬‬
‫‪call @Project1_00453D44‬‬
‫‪test al,al‬‬
‫‪jnz @Project1_00454235‬‬

‫ز٭ً لٵ‪ ٧‬خڀعٱًُنخض قبُذ ظ‪ٙ‬ٱُٿ خڀربودڄؿ ڄه ـًًَ‪...‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪93‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫َخج‪ !!٫‬خڀربودڄؿ َ٭مٿ زٽٵدءش وڀٽه ٌٿ هبر ‪٬‬ځُىد يف ټٿ ڄُش ‪٬‬مٿ زدظ‪ُٙ‬ىٯ ڀٽٿ ڄ‪ُٙ‬و‪ ٪‬ـًًَ؟‬

‫خعبىخذ‪ :‬ال ‪٤‬س٭دً‪ ،‬وخغبٿ‪ٌ :‬ى خڀع٭ًَٿ خؼبسدُ٘ يف خؼبٽىن ‪٬‬ه ‪َُ٤‬ٷ خحملَُ ‪.HexWorkshop v5‬‬

‫طط‪ٜ‬ك‪ ١‬ايتعس‪ٌٜ‬‬ ‫‪.3.4.2‬‬


‫يف ڄ٭‪٩‬ڃ خغبدالض ظٽىن خؼبځٵدض خؼبُٴٹص يف ‪ Delphi package‬ټؽًنش ـًخً‪ ،‬وَٽىن خڀسمػ يف ټٿ ڄځٳ ‪٬‬ه ټځمص ‪ Trial‬ڄع٭ر‬
‫ـًخً؛ ڀٍخ خٔع٭مدپ خأليخش ‪َ Search and replace‬ٽىن ڄٵًُخً ـًخً‪.‬‬

‫ـًُ‪ ،‬يبٽىىد خِن ٴعك خؼبځٵدض خؼبٕاوڀص ‪٬‬ه خڀُٔدجٿ وخڀعٱًُنخض خػبد‪ٜ‬ص زـ ‪ Trial Version‬وڀٽه ٸسٿ ٌڀٻ وإوٍ خڀٹُڃ خؼبسُىص يف‬
‫خڀ‪ٝ‬ىَش خڀعدڀُص ‪:‬‬

‫‪004541C5‬‬ ‫‪E8 4EFFFFFF‬‬ ‫‪CALL Project1.00454118‬‬ ‫وإوٍ ٌٍخ خعبّء ڄه خڀٽىي ‪:‬‬
‫‪004541CA‬‬ ‫‪84C0‬‬ ‫‪TEST AL,AL‬‬
‫‪004541CC‬‬ ‫‪75 67‬‬ ‫‪JNZ SHORT Project1.00454235‬‬ ‫‪84C075678BC3‬‬
‫‪004541CE‬‬ ‫‪8BC3‬‬ ‫‪MOV EAX,EBX‬‬
‫‪004541D0‬‬ ‫‪E8 6FFBFFFF‬‬ ‫‪CALL Project1.00453D44‬‬ ‫ظٕهُٿ خڀسمػ يف ؿبَُ‬
‫‪004541D5‬‬ ‫‪84C0‬‬ ‫‪TEST AL,AL‬‬ ‫‪Hex‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪94‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ظ٭ًَٿ ڄځٳ ‪IsTRIALTEST.dcu‬‬

‫ٸسٿ ‪:‬‬

‫ز٭ً ‪:‬‬

‫ظ٭ًَٿ ڄځٳ ‪IsTRIALTEST_Install.bpl‬‬

‫ٸسٿ ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪95‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ز٭ً ‪:‬‬

‫‪.compilation‬‬ ‫ز٭ً خالوعهدء ڄه خڀع٭ًَٿ وٹىڂ زة‪٬‬ديش ظؽسُط ڄٽىن يڀٵٍ بٌخ خٸع‪١‬ط خڀ‪ُ١‬وَش‪ ،‬وو‪ٝ‬ى‪ٜ‬دً يف لدالض ‪٬‬مٿ‬
‫وزدڀىٕسص ڀعمَُىىد ٴال َٹع‪ ٍ١‬خألڄُ ٌڀٻ‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪96‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫بردلة إضافة لـ ‪OllyDbg‬‬


‫‪Developping an OllyDbg Plugin‬‬

‫‪.OllyDbg‬‬
‫‪.Plugin Development Kit 1.10‬‬
‫ْنٔعىًڂ‬ ‫‪C/C++ IDE‬‬ ‫(ٔىٕع٭مٿ‬ ‫‪A c/c++ compiler/linker‬‬
‫‪.)vs2008‬‬

‫(خڀعممُٿ ڄه ڄُٴٹدض خڀٽعدذ)‪.‬‬

‫‪ّ .1‬قسَ‪١‬‬
‫ب‪٠‬دٴدض ‪٬ OllyDbg‬سدَش ‪٬‬ه ڄځٵدض ‪٬ DLL‬ديَص‪ ،‬ڀٽه َ‪ٙ‬عُ‪ ٢‬ؤن ظ‪٬ ًٍَٝ‬ځً خألٸٿ يخڀعٌن ڄه ؤ‪ٜ‬ٿ ‪ 14‬يخڀص ڄ٭ُٴص يف ڄځٳ‬
‫‪. plugin.h‬‬

‫‪٬‬ىًڄد َسًؤ ‪٬ OllyDbg‬مځً ٴةوً َٹىڂ زعممُٿ صبُ‪ ٫‬خؼبځٵدض ٌخض خالڄعًخي "‪ "DLL‬يف ؾبځً خإل‪٠‬دٴدض وخلًشً ظځى خألوُي‪ ،‬وَٵم‪ ٛ‬بٌخ‬
‫ڄد ټدوط ظ‪ٌٍ ًَٝ‬ي خڀًوخپ‪.‬‬
‫‪_ODBG_Plugindata‬‬
‫‪_ODBG_Plugininit‬‬

‫بٌخ ټدن ڄځٳ "‪ٌ ًََٝ "DLL‬دظٌن خڀًخڀعٌن ٴةن ‪ – OllyDbg‬ڄسًجُدً‪َ -‬٭عرب ؤن خؼبځٳ ‪٬‬سدَش ‪٬‬ه ب‪٠‬دٴص ‪ٜ‬دغبص‪.‬‬

‫بٌن‪ :‬خِن ڀًَىد ڄ٭ځىڄدض ټدٴُص ز‪ٙ‬ٽٿ و‪ ٌُ٩‬إلو‪ٙ‬دء ب‪٠‬دٴص ڀـ ‪ ،OllyDbg‬ؤىٹىڂ زدِيت ‪:‬‬

‫‪ .1‬بو‪ٙ‬دء ڂُ٘و‪ ٪‬ـًًَ ڄه وى‪." Dynamic link library" ٪‬‬


‫‪ .2‬بو‪ٙ‬دء خڀًخڀعٌن _‪ ODBG_Plugindata‬و_‪ ODBG_Plugininit‬وظ‪ًَُٝ‬نبد‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪97‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ .2‬إْؿا‪َ ٤‬ؿط‪ٚ‬ع دس‪ٜ‬س َٔ ْ‪ٛ‬ع "‪"Dynamic link library‬‬


‫٘ٱٍٿ خڀٵُفىخپ ٔعىيَى‪.‬‬
‫ڄه ٸدجمص ‪ File‬خوعُ ‪.New >> Project‬‬
‫ڄه ٸدجمص وى‪ ٪‬خؼب‪ُٙ‬و‪ ٪‬خوعُ ‪.Visual C++ >> Win32‬‬
‫ڄه خڀٹدجمص خؼبٹدزځص خوعُ ‪.Win32 Project‬‬
‫ؤيوٿ خٔڃ خؼب‪ُٙ‬و‪ ٪‬خعبًًَ زًالً ڄه ">‪ "<Enter_name‬وڀُٽه "‪ "MyOlly‬مث خ‪٠‬ٱ‪ ٣‬ڄىخٴٷ‪٩ُٔ ،‬هُ ڀٻ خؼب٭دجل‬
‫خوعُ "‪ "DLL‬ټىى‪ ٪‬خؼب‪ُٙ‬و‪ ٪‬و"‪"\"Empty Project‬ڄ‪ُٙ‬و‪ ٪‬ٴدَٮ" مث خ‪٠‬ٱ‪ ٣‬ڄىخٴٷ‪.‬‬

‫خِن ٔىٹىڂ زة‪٠‬دٴص ڄځٳ ټىي ـًًَ\ٴدَٮ ڀځم‪ُٙ‬و‪ ٪‬زإٌ خٔڃ وزدڄعًخي ‪ cpp‬ولدن وٸط ټعدزص خڀٽىي ‪:‬‬

‫‪BOOL APIENTRY DllMain( HINSTANCE hModule, DWORD‬‬ ‫‪ul_reason_for_call, LPVOID‬‬


‫{ )‪lpReserved‬‬
‫{ )‪switch (ul_reason_for_call‬‬
‫‪case DLL_PROCESS_ATTACH:‬‬
‫;‪g_hInst=hModule‬‬
‫}‬
‫;‪return TRUE‬‬
‫}‬

‫ٌٍي خڀًخڀص ‪٬‬سدَش ‪٬‬ه خؼبًوٿ \"‪ "Entry point‬وٌٍ ؼدزعص يف ڄ٭‪٩‬ڃ ڄځٵدض "‪"DLL‬‬

‫ٸمىد زع٭َُٳ ڄعٱًن ‪٬‬دڂ "‪ "g_hInst‬غبٵ‪ ٧‬ٸُمص ‪ HINSTACE‬خػبد‪ٜ‬ص زدإل‪٠‬دٴص‬

‫خِن خوعهُىد ڄه خعبّء خألوپ ؤىىعٹٿ بذل خػب‪٥‬ىش خڀعدڀُص وخڀيت ٔىٹىڂ ٴُهد زٽعدزص خڀًخڀعٌن خؼبٍټىَظٌن ٔدزٹدً‪.‬‬

‫‪ .3‬إْؿا‪ ٤‬ايسايتني _‪ٚ ODBG_Plugininit_ٚ ODBG_Plugindata‬تكس‪ٜ‬طُٖا‬

‫خِن دبد ؤوىد ال و٭ُٲ ڄد خڀٌٍ ظىٸ٭ً ‪ OllyDbg‬ڄه ٌٍي خڀًوخپ ‪٬‬ىًڄد َٹىڂ زعممُٿ خإل‪٠‬دٴص ٔىٹىڂ زدڀُـى‪ ٪‬بذل ڄځٳ خؼبٕد‪ً٬‬ش خؼبُٴٷ‬
‫\‪ ، plugin.hlp‬خٴعك خؼبځٳ مث خوعٹٿ بذل ٸٕڃ "‪ ،"Plugin callback functions‬ؤعُي ‪ 14‬ظ٭َُٵدً ڀځًوخپ خڀيت يبٽه ڀإل‪٠‬دٴص‬
‫‪ًٌَُٜ‬د‪ٌٍ .‬ي خڀًوخپ ٌٍ ؤُځص خڀعىد‪٤‬ر زٌن خإل‪٠‬دٴص و ‪ ، OllyDbg‬وڄد َهمىد ڄىهد لدڀُد خڀًخڀعٌن ‪ODBG_Plugindata‬‬
‫ض‬
‫و‪.ODBG_Plugininit‬‬

‫ڀىځٹٍ و‪ُ٩‬ش ‪٬‬ځً خڀًخڀص خألوذل ‪:‬‬


‫; )‪int ODBG_Plugindata(char *shortname‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪98‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ٌٍي خڀًخڀص هبر ؤن ظٽىن ڄىـىيش يف صبُ‪ ٫‬ب‪٠‬دٴدض ‪ ، OllyDbg‬وو‪ُ٨‬ٵعهد زدوع‪ٝ‬دَ وٕه خٔڃ خإل‪٠‬دٴص ڀځمعٱًن ‪shortname‬‬
‫وبَـد‪َ ٪‬ٸڃ وٕىص ‪ OllyDbg‬خڀيت وربڄؿ خإل‪٠‬دٴص ؽبد‪ ،‬ويف صبُ‪ ٫‬خغبدالض ٔعٽىن ٌٍي خڀٹُمص ڄٕدوَص ڀځؽدزط‬
‫‪.PLUGIN_VERSION‬‬

‫لُٲ وؤن ال وبعىٌ ‪٬‬ځً ؤٌ َڄىِ ود‪ٜ‬ص‪.‬‬


‫خٔڃ خإل‪٠‬دٴص هبر ؤن ال ًََّ ‪٬‬ه ‪ 31‬خً‪،‬‬

‫خڀًخپ ‪:‬‬
‫خِن ڀىٹڃ زع‪٥‬سُٷ ٌٍي ش‬
‫{ )‪int ODBG_Plugindata(char *shortname‬‬
‫;)"‪lstrcpy(shortname, "MyOlly‬‬
‫;‪return PLUGIN_VERSION‬‬
‫}‬

‫ڄد خڀٌٍ ٴ٭ځىدي ؟‬

‫ٸمىد زدٔعىًخڂ خڀًخڀص ‪ lstrcpy‬ڀىٕه خٔڃ خإل‪٠‬دٴص خڀيت وٹىڂ زةو‪ٙ‬دجهد بذل خؼبعٱًن ‪ shortname‬مث ٸمىد زةَـد‪٪‬‬
‫خڀٹُمص ‪ PLUGIN_VERSION‬وخڀيت ظٽدٴث ‪َ 110‬ٸڃ ب‪ًٜ‬خَ ‪ OllyDbg‬خڀٌٍ وربڄؿ خإل‪٠‬دٴص ڀً‪.‬‬

‫خِن ڀىىعٹٿ بذل خڀًخڀص خڀؽدوُص خڀيت هبر ؤن وٹىڂ زع‪٥‬سُٹهد يف خإل‪٠‬دٴص ‪.ODBG_Plugininit‬‬

‫ٌٍخ ٌى خڀع٭َُٳ خڀٌٍ َ٭‪ُ٥‬ىد بَدي ڄځٳ خؼبٕد‪ً٬‬ش ڀځًخڀص ‪:‬‬

‫( ‪int ODBG_Plugininit‬‬
‫‪int OllyDbgversion,‬‬ ‫َٸڃ ب‪ًٜ‬خَ ‪.OllyDbg‬‬
‫‪HWND hw,‬‬ ‫ڄٹس‪ ٟ‬خڀىدٴٍش خڀُجُُٕص يف ‪. OllyDbg‬‬
‫‪ulong *features‬‬ ‫ٸُمص ؿبفىِش إل‪ًٜ‬خَخض ٸديڄص ڄه ‪ OllyDbg‬وزدڀعدرل ال هتمىد‪.‬‬
‫;)‬
‫خڀًخڀص هبر ؤن ظ٭ًُ خڀٹُمص ‪ 0‬بٌخ ؤَيود ؤن َٹىڂ ‪ OllyDbg‬زعممُٿ خإل‪٠‬دٴص زىفدق ؤو ‪ 1 -‬ڀٽٍ َٹىڂ‬
‫‪Return value‬‬
‫‪ OllyDbg‬زعفدٌٿ خإل‪٠‬دٴص‪.‬‬

‫خِن ڀىٹڃ زع‪٥‬سُٷ ٌٍي خڀًخڀص ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪99‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫{ )‪int ODBG_Plugininit(int OllyDbgversion,HWND hw,ulong *features‬‬


‫{ )‪if (OllyDbgversion<PLUGIN_VERSION‬‬
‫;‪return -1‬‬
‫}‬

‫;‪g_hOlly=hw‬‬
‫;‪return 0‬‬
‫}‬

‫يف خڀٕ‪ ُ٥‬خألوپ وٹىڂ دبٹدَوص خڀؽدزط ‪ PLUGIN_VERSION‬وخڀٌٍ َٕدوٌ ‪ 110‬ڄ‪ ٫‬خؼبعٱًن ‪ OllyDbgversion‬خڀٌٍ يبَُي‬
‫‪ OllyDbg‬ڀإل‪٠‬دٴص‪ ،‬بٌخ ټدوط ٸُمص ‪ OllyDbgversion‬ؤ‪ٜ‬ٱُ ڄه ‪ PLUGIN_VERSION‬ٴةوىد ٔىٹىڂ زةَـد‪ 1 - ٪‬ڀٽٍ َعڃ‬
‫ذبدٌٿ خإل‪٠‬دٴص‪.‬‬

‫ڄىت يبٽه ؤن ظٽىن ٸُمص ‪ OllyDbgversion‬ؤ‪ٜ‬ٱُ ڄه ‪ PLUGIN_VERSION‬؟‬

‫ټمد ظ٭ُٲ ٴةن خڀىٕىص خألوًنش ڄه ‪ 1.10 ٌٍ OllyDbg‬وٌٍ خڀىٕىص خڀيت وٹىڂ زربؾبص ٌٍي خإل‪٠‬دٴص ؽبد‪.‬‬

‫ظ‪ٝ‬ىَ ڀى ؤن ؤلًخً ڄد ال َّخپ َٕعىًڂ وٕىص ٸًيبص ڄؽال ‪ ،1.08‬يف ٌٍي خغبدڀص ‪٬‬ىًڄد ظٹىڂ ٌٍي خڀىٕىص خڀٹًيبص ڄه‬
‫‪ OllyDbg‬زعممُٿ خإل‪٠‬دٴص ُٔعڃ ظىٵٍُ خڀًخڀص ‪ ODBG_Plugininit‬وڄه مث خڀعمٹٷ ڄه خڀ‪٢ُٙ‬‬
‫‪.OllyDbgversion<PLUGIN_VERSION‬‬

‫دبد ؤوىد زُؾبىد خإل‪٠‬دٴص ڀىٕىص ‪ 1.10 OllyDbg‬ٴٕعٽىن ٸُمص ‪ PLUGIN_VERSION‬ظٕدوٌ ‪ ،110‬ڀٽه‬
‫خِن َعڃ ربمُٿ خإل‪٠‬دٴص يف وٕىص ٸًيبص ڄه ‪ OllyDbg‬ڀٍڀٻ ٔعٽىن ٸُمص ‪ OllyDbgversion‬ظٕدوٌ َٸڃ‬
‫ٌٍي خڀىٕىص خڀٹًيبص يف خغبدڀص خڀيت خٴعُ‪٠‬ىدٌد ‪.108‬‬

‫ٔاخپ آوُ‪ :‬ڄدٌخ ڀى ٸَُود ذبدٌٿ ٌٍخ خألڄُ‪ ،‬وٴ‪١‬ځىد خؼبعدز٭ص يف ربمُٿ خإل‪٠‬دٴص‪ ،‬دب٭ىن آوُ ؤَـ٭ىد خڀٹُمص ‪0‬؟‬

‫ټؽًن ڄه خألُ٘دء ًٰن خؼبعىٸ٭ص يبٽه ؤن ربًغ خزعًخءً ڄه ؤن خإل‪٠‬دٴص ال ظ٭مٿ ز‪ٙ‬ٽٿ ‪ٜ‬مُك وخوعهدءً زعم‪٥‬ڃ‬
‫‪. OllyDbg‬‬

‫ڀىىعٹٿ بذل خڀٕ‪ ُ٥‬خڀعدرل ‪:‬‬


‫‪g_hOlly=hw‬‬

‫ٌىد ‪ُ٬‬ٴىد ڄعٱًن ‪٬‬دڂ "‪ "g_hOlly‬ڀٽٍ كبٵ‪ ٧‬ڄٹس‪ ٟ‬ودٴٍش ‪ OllyDbg‬ٴًُ‪ ،‬وخڀيت ٔىٲ ربعدـهد اللٹدً زدڀعإټًُ بٌخ ٸَُض خٔعىًخڂ‬
‫ز٭‪ ٟ‬يوخپ خڀـ ‪. API‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪100‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫يف خڀٕ‪ ُ٥‬خڀٌٍ َځًُ ٸمىد زةَـد‪ ٪‬خڀٹُمص ‪ 0‬ڄه خڀًخڀص ڀٽٍ َٕعمُ ‪ OllyDbg‬يف ربمُٿ خإل‪٠‬دٴص‪.‬‬

‫خِن ڀًَىد ب‪٠‬دٴص َٹسځً خ ‪ OllyDbg‬ڀٽه ظسٹٍ زٱًن ٴدجًش‪ ,‬ڀىٹڃ زع‪٥‬ىٌَُد ٸځُال‪..‬‬

‫ڄد خڀٌٍ وًَُ ‪٬‬مځً خِن ؟‬

‫ب‪٠‬دٴص ‪٬‬ى‪ ُٝ‬بذل ٸدجمص ‪٬ OllyDbg‬ىً ظٵ٭ُځً َٹىڂ زععس‪ ٫‬ظ٭ځُمص خألظبسځٍ خؼبىعدَش يف ودٴٍش خڀًڄر‪.‬‬

‫ڀٽٍ وٹىڂ زة‪٠‬دٴص ‪٬‬ىد‪ ُٜ‬ـًًَش بذل ٸىخجڃ ‪ OllyDbg‬خؼبىعځٵص َځّڄىد ظ‪٥‬سُٷ يخڀعٌن ؤوُظٌن ڄه خڀًوخپ خڀـ ‪ 14‬خڀيت َؤَىدٌد يف ڄځٳ‬
‫"‪: "plugin.hlp‬‬

‫ؤوپ يخڀص ٌٍ ‪ ODBG_Pluginmenu‬وٌٍ خڀًخڀص خڀيت ظٕمك ڀىد زة‪٠‬دٴص ‪٬‬ىد‪ ُٜ‬ـًًَش ڀځٹىخجڃ‪.‬‬
‫خڀًخڀص خڀؽدوُص ٌٍ ‪ ODBG_Pluginaction‬خڀيت َٕعً‪ُ٬‬هد ‪٬ OllyDbg‬ىً ظٵ٭ُٿ ؤلً ‪٬‬ىد‪ ُٜ‬خڀٹىخجڃ خػبد‪ٜ‬ص زدإل‪٠‬دٴص‪.‬‬
‫ڀىُي خڀًخڀص خألوذل ‪:‬‬
‫( ‪int ODBG_Pluginmenu‬‬
‫‪int origin,‬‬ ‫ڄ٭ُٲ خڀىدٴٍش خغبد‪٠‬ىص ڀځٹدجمص خڀيت مت ظٵ٭ُٿ ؤلً ‪٬‬ىد‪ٌُٜ‬د‪.‬‬
‫ـبّن َعڃ ٴًُ وٕه ؤظبدء خڀ٭ىد‪ ُٜ‬خڀيت وًَُ ب‪٠‬دٴعهد‪ .‬الل‪ ٧‬ؤن ؤٸ‪ ًٝ‬لفڃ ڄٕمىق زً ٌى ‪4096‬‬
‫‪char data[4096],‬‬
‫زدَط‪.‬‬
‫‪void *item‬‬ ‫‪٬‬ىىخن ڀځ٭ى‪ ُٝ‬خؼبىعدَ يف ؤقي وىخٴٍ ‪.OllyDbg‬‬
‫‪َ OllyDbg‬عىٸ‪ ٫‬ڄىد ؤن و٭ًُ خڀٹُمص ‪ 1‬بٌخ ؤ‪٠‬ٵىد ‪٬‬ىد‪ ُٜ‬ـًًَش إللًي خڀٹىخجڃ ؤو خڀٹُمص ‪ٜ‬ٵُ‬
‫;)‬
‫يف لدپ دل وٹڃ زة‪٠‬دٴص ؤٌ ‪٬‬ىد‪ ُٜ‬ـًًَش‪.‬‬

‫ڀىٹڃ زع‪٥‬سُٷ خڀًخڀص ‪:‬‬


‫{ )‪int ODBG_Pluginmenu(int origin,char data[4096],void *item‬‬
‫{ )‪switch (origin‬‬
‫‪case PM_DISASM:‬‬
‫{‬
‫;} '‪char items[1024] = { '\0‬‬
‫;)"‪wsprintf(items,"0 Follow selection‬‬
‫;)‪lstrcpy(data, items‬‬
‫;‪return 1‬‬
‫}‬
‫;‪default: break‬‬
‫}‬
‫;‪return 0‬‬
‫}‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪101‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ڀىځٹٍ و‪ُ٩‬ش ‪٬‬ځً خڀٽىي ‪:‬‬

‫ٸمىد زع‪٥‬سُٷ صبځص خالوعُدَ ‪٬ switch‬ځً خؼبعٱًن ‪ origin‬وخڀٌٍ وبعىٌ ‪٬‬ځً ڄ٭ُٲ أللً وىخٴٍ ‪ OllyDbg‬خؼبىعځٵص‪.‬‬
‫ڄد َهمىد ڄه ٌٍي خؼب٭ُٴدض خِن ‪ PM_DISASM‬خڀيت ظ‪ًٙ‬ن بذل ودٴٍش ‪ OllyDbg‬خڀيت ظ٭ُ‪ ٞ‬ظ٭ځُمدض خألظبسځٍ‪.‬‬
‫ڀىٌُ خڀٽىي يف خأل‪٬‬ځً لُػ ٸُمص ‪ origin‬ظٕدوٌ ‪.PM_DISASM‬‬

‫ٸمىد زةو‪ٙ‬دء ـبّن ټسًن ز‪ٙ‬ٽٿ ټديف "‪ 1024‬زدَط" ڀعىَّه ؤظبدء خڀ٭ىد‪ ُٜ‬خعبًًَش خڀيت ُٔعڃ ب‪٠‬دٴعهد بذل خڀٹدجمص خػبد‪ٜ‬ص زىدٴٍش‬
‫خألظبسځٍ‪ ،‬مث ٸمىد زىٕه خڀٕځٕځص خڀى‪ُٝ‬ص بذل خؼبىّن زىخٔ‪٥‬ص ‪ ، lstrcpy‬وؤ‪ً٬‬ود خڀٹُمص ‪ 1‬ڀٽٍ لبرب ‪ OllyDbg‬ؤوىد ؤ‪٠‬ٵىد ‪٬‬ىد‪ُٜ‬‬
‫ڀځٹدجمص ووعىٸ‪ ٫‬ؤن ظ‪٩‬هُ يف خڀٹدجمص خػبد‪ٜ‬ص زىدٴٍش خألظبسځٍ‪.‬‬

‫خالن ڀىع٭ُٲ ‪٬‬ځً خڀىٕٷ خؼبٕعىًڂ يف زىدء ‪٬‬ىد‪ ُٜ‬خڀٹدجمص‪.‬‬

‫يف ڄؽدڀىد خڀٕدزٷ ٸمىد زىٕه "‪ "Follow selection 0‬بذل خؼبىّن ‪ data‬ڄد َ٭ىًُ ٌٍخ ؤوىد وًَُ ڄه ‪ OllyDbg‬ؤن َ‪ُ١‬ٳ ‪٬‬ى‪ُٝ‬‬
‫ـًًَ بذل خڀٹدجمص زدٔڃ "‪ "Follow selection‬وَ٭‪ٌٍ ٍ٥‬خ خڀ٭ى‪ ُٝ‬ڄ٭ُٲ ٸُمعً ‪.0‬‬

‫ٌٍخ ٌى خڀىم‪ ٣‬خڀ٭دڂ ‪:‬‬

‫خٔڃ خڀٹدجمص خػبد‪ٜ‬ص زـ خإل‪٠‬دٴص خڀٌٍ وٹىڂ زةو‪ٙ‬دجهد (خوعُدٌَ)‪.‬‬

‫{ ٌٍخ خڀُڄّ َٕعىًڂ ټًالڀص ‪٬‬ځً زًخَص خڀٹدجمص خڀٵُ‪ُ٬‬ص (خوعُدٌَ)‪.‬‬

‫ڄ٭ُٲ خڀ٭ى‪ ُٝ‬خألوپ‪.‬‬


‫خٔڃ خڀ٭ى‪ ُٝ‬خڀٵُ‪ ٍ٬‬خألوپ‪.‬‬
‫| ٌٍخ خڀُڄّ َٕعىًڂ إل‪٠‬دٴص ٴد‪ٜ‬ٿ (خوعُدٌَ)‪.‬‬

‫ڄ٭ُٲ خڀ٭ى‪ ُٝ‬خڀؽدين (خوعُدٌَ)‪.‬‬


‫خٔڃ خڀ٭ى‪ ُٝ‬خڀٵُ‪ ٍ٬‬خڀؽدين (خوعُدٌَ)‪.‬‬
‫} ٌٍخ خڀُڄّ َٕعىًڂ ټًالڀص ‪٬‬ځً هندَص خڀٹدجمص خڀٵُ‪ُ٬‬ص (خوعُدٌَ)‪.‬‬

‫* خَـ‪ ٫‬ؼبځٳ ‪ plugin.hlp‬ؼبًَّ ڄه خڀعٵد‪ُٜ‬ٿ‪..‬‬

‫خِن ڀىُي خڀًخڀص خڀعدڀُص خڀيت هبر ظ‪٥‬سُٹهد ‪:‬‬

‫( ‪void ODBG_Pluginaction‬‬
‫‪int origin,‬‬ ‫ڄ٭ُٲ خڀىدٴٍش خغبد‪٠‬ىص ڀځٹدجمص خڀيت مت ظٵ٭ُٿ ؤلً ‪٬‬ىد‪ٌُٜ‬د‪.‬‬
‫‪int action,‬‬ ‫ڄ٭ُٲ خڀ٭ى‪ ُٝ‬خڀٌٍ مت ظٵ٭ُځً ڄه خڀٹدجمص (‪ 0‬يف لدڀعىد‪ ,‬خَـ‪ ٫‬ڀځًخڀص خڀٕدزٹص)‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪102‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪void *item‬‬ ‫‪٬‬ىىخن ڀځ٭ى‪ ُٝ‬خؼبىعدَ يف ؤلً وىخٴٍ ‪.OllyDbg‬‬


‫;)‬

‫{ )‪void ODBG_Pluginaction(int origin,int action,void *item‬‬


‫{ )‪if(origin==PM_DISASM‬‬
‫{ )‪switch (action‬‬
‫‪case 0:‬‬
‫{‬
‫;‪t_dump *pd= (t_dump *)item‬‬
‫{ )‪if (pd!=NULL && pd->size!=0‬‬
‫‪Setcpu(0,0,pd-‬‬
‫;)‪>sel0,0,CPU_DUMPHIST|CPU_DUMPFIRST|CPU_DUMPFOCUS‬‬
‫}‬
‫}‬
‫;‪break‬‬
‫;‪default: break‬‬
‫}‬
‫}‬
‫}‬

‫ڀىُي خڀٽىي ‪:‬‬

‫ٸمىد زدوعسدَ ڄد بٌخ ټدوط ٸُمص ‪ origin‬ظٕدوٌ ‪ PM_DISASM‬بٌخ ټدوط خڀىعُفص بهبدزُص ٴةوىد ٔىىعٹٿ بذل خػب‪٥‬ىش‬
‫خألوُي وٌٍ خوعسدَ ٸُمص ‪ action‬ڄ‪. 0 ٫‬‬
‫دب٭ين آوُ ٌٿ ٸدڂ ڄٕعىًڂ خإل‪٠‬دٴص زعٵ٭ُٿ خڀ٭ى‪ "Follow selection" ُٝ‬خڀٌٍ وبمٿ ٸُمص ڄ٭ُٲ ‪ 0‬؟‬
‫بٌخ ټدوط خڀىعُفص بهبدزُص ٴٕىٹىڂ زعىٵٍُ يخڀص ‪ Setcpu‬وٌٍ وخلًش ڄه زٌن ‪ُٙ٬‬خض خڀًوخپ خڀيت َىٴٌُد ‪ OllyDbg‬ؼبربؾبٍ خإل‪٠‬دٴدض‪.‬‬

‫ڄد ظٹىڂ زً ٌٍي خڀًخڀص ٌى ب‪٨‬هدَ ‪٬‬ىىخن ڄ٭ٌن زبعدَي ؤوط يف ؤلً وىخٴٍ ‪ OllyDbg‬خڀؽالؼص ‪.Cpu,dump,stack‬‬

‫* خَـ‪ ٫‬ؼبځٳ ‪ plugin.hlp‬ؼبًَّ ڄه خڀعٵد‪ُٜ‬ٿ‬

‫خِن خوعهُىد ڄه زُؾبص خإل‪٠‬دٴص وزٹٍ ‪٬‬ځُىد ز٭‪ ٟ‬خألُ٘دء خڀسُٕ‪٥‬ص ‪:‬‬

‫‪ .1‬ظ‪ ًَُٝ‬خڀًوخپ خألَز‪ ٫‬ڀـ ‪ٔ : OllyDbg‬ىٹىڂ ز٭مٿ ٌڀٻ زة‪٠‬دٴص ز٭‪ ٟ‬خڀٽځمدض خحملفىِش بذل ظُوَٕص ٌٍي خڀًوخپ‪:‬‬

‫_‪ : export‬ڀع‪ ًَُٝ‬خڀًخڀص‪.‬‬


‫‪ : cdecl‬ؼبى‪ ٫‬خڀٽمسدَځُ ڄه ب‪٬‬ديش ظٕمُص ٌٍي خڀًوخپ‪.‬‬
‫َوَٕص ڀع‪ٝ‬سك ‪:‬‬
‫ٴځى ؤوٍود يخڀص ‪ ODBG_Pluginaction‬ټمؽدپ ٴٕىٹىڂ زدڀع٭ًَٿ ‪٬‬ځً خڀط‬
‫‪void‬‬ ‫)‪_export cdecl ODBG_Pluginaction(int origin,int action,void *item‬‬

‫زًال ڄه‬
‫)‪void ODBG_Pluginaction(int origin,int action,void *item‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪103‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫‪ Olly‬وانذهىل انًرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ .2‬ب‪٠‬دٴص خؼبځٵٌن ‪ plugin.h‬و‪ OLLYDBG.LIB‬بذل خؼب‪ُٙ‬و‪.٪‬‬

‫ٸڃ زىٕه ٌٍَه خؼبځٵٌن بذل ؤٌ ڄ‪ُٙ‬و‪ ٪‬ـًًَ ظٹىڂ زةو‪ٙ‬دجً وٶڂ زٕمسهمد بذل يخوٿ خؼب‪ُٙ‬و‪." Darg and Drop" ٪‬‬
‫‪ .3‬ٸڃ زعٵ٭ُٿ وُدَ خڀٽمسدَځُ ‪. /J‬‬

‫ظٕع‪٬ ٫ُ٥‬مٿ ٌٍخ يف خڀٵُفىخپ ٔعىيَى زدظسد‪ ٪‬خػب‪٥‬ىخض خڀعدڀُص ‪Option > Configuration Properties > :‬‬
‫‪C/C++ > Language > Defualt Char Unsigned > Yes‬‬

‫زٹٍ ؤن و‪ًٙ‬ن بذل ؤن ٌٍي خؼبٹدپ ڄد ٌى بال زًخَص ڀٻ بٌخ ؤَيض ؤن ظربڄؿ ب‪٠‬دٴدض ڀـ ‪.OllyDbg‬‬

‫هبر ؤن ذبًُ بلًي ڀٱدض خڀربؾبص وظٕع٭مٿ ڄځٳ ‪ plugin.hlp‬ڀإلـدزص ‪٬‬ه ؤٔحځعٻ خؼبٕعٹسځُص خؼبع٭ځٹص هبٍخ خؼبى‪٠‬ى‪.٪‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪104‬‬
‫الباب الثاىي‪ :‬التعامل مع احلنايات املتقدمة‬

‫‪105‬‬
AT4RE :‫انفريك انعرتي نههُذسح انعكسيح‬ ‫دًاياخ يرمذيح‬ .‫ خطىج إنى األياو‬:‫انهُذسح انعكسيح‬

‫ بطرق خمتلفة‬ASPROTECT SKE ‫كسر برىامج مصفر بـ‬


ASPROTECT SKE UNPACKING/CRACKING
(several methods ware used)

.Atomic RAR Password Recovery v1.20 : ‫مُص‬١‫خٔڃ خڀربودڄؿ خڀ‬


.َ‫ خحملمُص زٽځمص ڄُو‬rar ‫ ټُٕ ضبدَص ڄځٵدض‬: ً‫ُٵع‬٨‫و‬
.ASProtect 2.1x SKE -> Alexey Solodovnikov : ‫خغبمدَص‬

‫ىَش ڀعممُٿ‬ٝ‫ځً خڀ‬٬ ٣‫ٱ‬٠‫ؤو خ‬ http://www.apasscracker.com :‫مُص ٌى‬١‫ خڀ‬٫‫ڄىٸ‬


.ً‫ ڄُٴٹدظ‬٫‫ځُهد ڄ‬٬ ًَْ‫سُٷ خڀ‬٥‫خڀىٕىص خپيت مت ظ‬

.OllyDbg v1.10
.HideOD+OdbgScript v1.65 
)‫ (يف خؼبُٴٹدض‬.Aspr2.XX_unpacker_v1.14aE.osc 
. PEiD v0.95
.Import REConstructor F v1.6
.aspr crc locator
. DUP v2.19
.Stripper v2.13 beta9 or above
.ASProtect SKE
.Inline Patchinger v0.2
...‫ځً زُټص خهلل‬٬ ‫و ڀىسًؤ‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ 2009 106
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دًاياخ يرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ .1‬أ‪ٚ‬ال ‪ :‬حتً‪ ٌٝ‬ايدلْاَر‬


‫ٌُد زىد وعٵم‪ُ٬ ٛ‬ىذ خڀىٕىص خڀٱًن ڄٕفځص‪.‬‬

‫كبعدؾ بذل ؼالؼص ڄځٵدض ‪ rar‬مت ضبدَعهد زٽځمص ڄُوَ‪:‬‬

‫ز٭ًٌد ٸڃ زٵعك خڀربودڄؿ خڀُجٍُٕ ‪ AtomicRarPasswordRecovery.exe‬وخوٹُ ‪٬‬ځً ‪: Next‬‬

‫مث خوٹُ ‪٬‬ځً ‪ Open RAR File‬وخوعُ ڄځٳ ‪ rar‬خؼبُخي ټُٕي ‪ ،‬مث خوٹُ ‪٬‬ځً ‪: Add to project‬‬

‫‪1‬‬

‫‪2‬‬

‫خؼبځٳخض خؼبُخي ټُٕ ؤَٸدڄهد خڀَُٕص ذبًٌد ٌىد‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪107‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دًاياخ يرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫وخِن ‪٪‬وً ب‪٠‬دٴص خؼبځٳ خڀؽدين – زىٵٓ خڀ‪َُ٥‬ٹص – ظ‪٩‬هُ ٌٍي خڀُٔدڀص خؼبّ‪٬‬فص ‪:‬‬

‫ال زإْ ٔىَّځهد ٴُمد ز٭ً‪ ،‬خوٹُ ‪٬‬ځً ‪ Next‬و‪٬‬ىًٌد ٔع‪٩‬هُ ٌٍي خڀُٔدڀص – ال ‪٬‬ځُٻ ڄىهد –خوٹُ ‪٬‬ځً ‪: OK‬‬

‫مث ؾبًيخً خوٹُ ‪٬‬ځً ‪: NEXT‬‬

‫ز٭ًٌد ٸڃ زدڀىٹُ ‪٬‬ځً ‪ add‬وؤ‪٠‬ٳ ‪ 3‬ڄځٵدض ‪ txt‬هبڃ صبٿ ؤو ټځمدض ؤو ؤٌ ٍ٘ء وخوٹُ ‪٬‬ځً ‪ Next‬ڀع‪ٙ‬دًٌ ٌٍي خڀُٔدڀص خؼبّ‪٬‬فص‬
‫ؤَ‪١‬دً ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪108‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دًاياخ يرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ڄځٳوخلًخً ڄه ڄځٵدض ‪ txt‬وخوٹُ ‪٬‬ځً ‪ Next‬مث خلٵ‪ ٧‬خٔڃ خؼب‪ُٙ‬و‪ ٪‬يف ؤٌ ڄٽدن وخوٹُ ‪٬‬ځً ‪ ، Next‬ز٭ًٌد ٔى‪ٝ‬ٿ بذل ٌىد ‪:‬‬
‫خلٍٲ خً‬

‫ظٹَُسدً ٌٍي ؤزُِ خألڄىَ خؼبّ‪٬‬فص يف خڀربودڄؿ ‪ٌ ،‬ىدڀٻ ؤڄىَ ؤوُي ٔىع٭ُٲ ‪٬‬ځُهد ؤټؽُ ‪٬‬ىً ظىٹُك خڀربودڄؿ‪.‬‬

‫وخِن خوُؾ ڄه خڀربودڄؿ وخٴم‪ ًٝ‬زدٔعىًخڂ ‪:PEiD v0.95‬‬

‫بوً ڄ‪ٙ‬ٵُ زـ ‪ ، ASProtect 2.1x SKE‬وٌىدڀٻ خڀ٭ًًَ ڂن خڀ‪ُ٥‬ٶ ڀٵٻ ٌٍي خغبمدَص و ټُٕ خڀربودڄؿ ‪:‬‬

‫‪ )1‬ٴٻ خڀربودڄؿ زدٔعىًخڂ ‪ : Stripper v2.13 beta 9‬وٌٍخ خڀربودڄؿ َٹىڂ زٵٻ خڀربخڄؿ خؼب‪ٙ‬ٵُش زـ ‪ASProtect 2.1x‬‬
‫‪ ، SKE‬ڀٽىً ال َ٭مٿ ‪٬‬ځً خڀٵُٕعد‪.‬‬

‫‪ )2‬ٴٻ خڀربودڄؿ زدٔعىًخڂ ‪ : OdbgScript v1.65‬يف خِووص خألوًنش خ٘عهُض ٌٍي خأليخش وخڀيت َعڃ ب‪٠‬دٴعهد بذل خؼبىٹك‬
‫‪ OllyDbg‬وٌٍ زبع‪ ُٝ‬خڀ‪َُ٥‬ٷ ڀٵٻ خڀٽؽًن ڄه خڀربخڄؿ‪ ،‬وڄ‪ ASProtect ٫‬زة‪ًٜ‬خَخظً خؼبعىى‪٬‬ص َ‪ٙ‬عهُ ْټٌُزط‬
‫‪ Aspr2.XX_unpacker_v1.14aE.osc‬ڄه زُؾبص ؤلً خڀ‪ُٝ‬ىٌُن‪.‬‬

‫‪٬ )3‬مٿ ‪ : Loader‬وٌٍي ٔعع‪٥‬ځر ڂوٻ بِخڀص ‪ CRC check‬وز٭‪ ٟ‬خڀُٔدجٿ خؼبّ‪٬‬فص‪ ،‬وٌىدڀٻ ز٭‪ ٟ‬خڀربخڄؿ خؼبعى‪ٝٝ‬ص يف‬
‫‪٬‬مٿ ‪ Loaders‬ڀځممدٌخض خؼب‪ٙ‬هىَش‪ ،‬وؤلً ٌٍي خڀربخڄؿ ٌى ‪ ، Advanced Loader Generator‬وټٍڀٻ ٌىدڀٻ‬
‫ٔىَْ ټىي ‪ c++‬ڄه زُؾبً ٴَُٷ ‪ ARTeam‬وىبع‪ ٛ‬ٴٹ‪ ٣‬ز٭مٿ ‪ Loader‬پـ ‪.asprotect‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪109‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دًاياخ يرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪٬ )4‬مٿ ‪ : Inline Patching‬وٌٍي خڀ‪َُ٥‬ٹص ظٹىڂ ‪٬‬ځً ؤٔدْ بهبدي ڄٕدلدض ودڀُص يف خڀربودڄؿ‪ ،‬حبُػ َعڃ و‪ ٫٠‬خڀسدَعدض‬
‫خؼبُخي ظ٭ًَځهد يف خڀربودڄؿ يف ظځٻ خؼبٕدلدض‪ ،‬وٌڀٻ ڄه والپ ‪ method‬ڄ٭ٌن‪ .‬وٌىدڀٻ زُخڄؿ ود‪ٜ‬ص أليخء ٌٍي خؼبهمص ؤو‬
‫ظٕهُځهد ڄؽٿ ‪.ASProtect SKE Inline v0.2‬‬

‫‪ )5‬خپٴٻ خڀًُوٌ ‪ : MUP‬وَعڃ ‪٬‬ځً ؤٔدْ بهبدي ‪ OEP‬و‪٬‬مٿ ‪ Dump‬مث ظ‪ٝ‬مُك ‪ًَ Imports‬وَدً‪ ،‬وٸً َعىځٿ ٌڀٻ ‪ً٬‬ش‬
‫‪٬‬مځُدض ٸً ظٽىن بهبدي خڀسدَعدض خؼبُٕوٸص ؤو ػبس‪٥‬ص يف خپـ ‪ ، Imports‬وَ٭عمً ٌڀٻ ‪٬‬ځً خڀ‪١‬مُص‪ ،‬ڀٽهود ال نو‪ٝ‬ك هبٍخ‬
‫خػبُدَ بال يف خغبدالض خغبُـص‪ٌ ،‬ىدڀٻ ڄؽٿ َٹىپ ‪" :‬آوُ خڀًوخء خڀٽٍ"‪.‬‬

‫‪ .1.1‬ارتط‪ ٠ٛ‬األ‪ٚ‬ىل ‪ :‬ؾو ايدلْاَر ايهش‪١ٝ‬‬

‫‪ .1.1.1‬ايطط‪ٜ‬ك‪ ١‬األ‪ٚ‬ىل ‪ :‬اغتدساّ ‪Stripper v2.13 beta 9‬‬

‫خٴعك زُودڄؿ ‪ Stripper v2.13 beta 9‬مث خوٹُ ‪٬‬ځً ‪Open‬‬

‫مث خوٹُ ‪٬‬ځً‪:‬‬ ‫وخوعُ خؼبځٳ خڀربودڄؿ خڀ‪١‬مُص ‪AtomicRarPasswordRecovery‬‬

‫ْظ‪٩‬هُ ڀٻ ودٴٍش ‪ Imports‬خؼب‪ٝ‬ممص‪ ،‬ڄىهد خوٹُ ‪٬‬ځً ‪: Save‬‬

‫وؤوًنخً ٔعفً خؼبځٳ خؼبٵٽىٺ يف وٵٓ ؾبځً خڀربودڄؿ زدٔڃ ‪. _AtomicRarPasswordRecovery.exe‬‬

‫ڄدٌخ ٴ٭ٿ ‪ Stripper‬ڀٵٻ خڀربودڄؿ ؟‬

‫ڀٹً ٸدڂ ز٭مٿ حبػ ڀٿـ ‪ OEP‬مث ‪ dump victim‬مث ‪ fixing imports‬مث ‪ ، Fixing Dump File‬وٌٍخ خغبدپ َعڃ ڄ‪ ٫‬ؤٌ‬
‫زُودڄؿ ڄ‪ٙ‬ٵُ ز‪َُ٥‬ٹص ‪٬‬ديَص وَُخي ٴٽً‪.‬‬

‫‪ .1.1.2‬ايطط‪ٜ‬ك‪ ١‬ايجاْ‪ : ١ٝ‬اغتدساّ ‪OdbgScript v1.65‬‬

‫ضبٿ خڀربودڄؿ خڀ‪١‬مُص يف ‪ ، OllyDbg‬مث ڄه خڀٹدجمص خٌٌر بذل ‪ Plugins >>>OdbgScript‬مث خٴعك ٔٽَُسط خڀٵٻ‬
‫‪Aspr2.XX_unpacker_v1.14aE.osc‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪110‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دًاياخ يرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ُٔٹىڂ خڀٕٽٌُزط ز٭مٿي‪ ،‬وز٭ً ٸځُٿ ٔع‪٩‬هُ ٌٍي خڀُٔدڀص ‪:‬‬

‫وٌ ‪٬‬ځً ود‪ُٜ‬ص خڀسدَعدض خؼبُٕوٸص يف وُدَخض خڀع‪ٙ‬ٵًن‪ ،‬وٌٍخ ڄه لٕه خغب‪..٧‬‬
‫لٕىدً‪ ،‬بوً َٹىپ‪ :‬بن خڀربودڄؿ خڀ‪١‬مُص ال َكض‬

‫خوٹُ ‪٬‬ځً ‪ OK‬مث خ‪٠‬ٱ‪٬ ٣‬ځً ‪: Alt+L‬‬

‫ن‪٬‬ڃ ٌٍي خڀ٭ىدوَه خػبد‪ٜ‬ص زدپـ ‪ OEP‬وخپـ ‪ Imports‬خؼب٭ًڀص‪.‬‬

‫خِن خٴعك زُودڄؿ ‪ ImpRec‬و‪ RVA of OEP ٫٠‬و‪ RVA of IAT‬و‪ Size of IAT‬يف ؤڄدټىهد خؼبى‪ٝٝ‬ص وخوٹُ ‪٬‬ځً ‪Get‬‬
‫‪Imports‬‬

‫وؤوًنخً خ‪٠‬ٱ‪٬ ٣‬ځً ‪ Fix Dump‬وخوعُ ڄځٳ ‪ de_AtomicRarPasswordRecovery.exe‬وز٭ً ٸځُٿ ٔعفً خؼبځٳ خؼبٵٽىٺ‬
‫زدٔڃ ‪de_AtomicRarPasswordRecovery_.exe‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪111‬‬
AT4RE :‫انفريك انعرتي نههُذسح انعكسيح‬ ‫دًاياخ يرمذيح‬ .‫ خطىج إنى األياو‬:‫انهُذسح انعكسيح‬

‫ح ايدلْاَر‬ٝ‫ تٓك‬: ١ْٝ‫ ايجا‬٠ٛ‫ ارتط‬.1.2

‫ وخزًؤ‬AtomicRarPasswordRecovery_.exe ‫ ؤو‬de_AtomicRarPasswordRecovery_.exe ‫خٴعك خڀربودڄؿ خؼبٵٽىٺ‬


.‫دًٌٌد‬ٙ‫ خڀيت ٘دًٌنخٌد وخڀيت دل و‬nags ‫ه خڀـ‬٬ ‫خڀسمػ‬

‫ځً ټٿ وخلًش ڄىهد‬٬‫ٽٓ خڀٹٵّش خؼبىـىيش ؤ‬٬ ‫َُٷ‬٤ ‫ه‬٬ ‫فص يبٽه بِخڀعهد وٌڀٻ‬٬ّ‫ټٿ ظځٻ خألُ٘دء خؼب‬

ASCII “To find passwords witch have a dynamic part longer than 3 characters in …”

ASCII “To crack more than 2 files simultaneously you must register software”

ASCII “To use more than 2 dictionary files …”

ASCII “Sorry, this file can’t be cracked with already placed ones simultaneously”

ASCII “Fully functional version”

ASCII “Sorry, this file can’t be cracked with already placed ones simultaneously”

Free ‫ بڄد ظ٭ٽٓ خڀٹٵّش خڀيت ٴىٸهد وبڄد ظ٭ٽٓ خڀٹٵّش خڀيت ٴىٶ‬:‫ ٴإوط ـبًن‬Fully Functional version ‫وؤڄد ٌٍي‬
evaluation version

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ 2009 112
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دًاياخ يرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ؤ‪٠‬ٳ ؤَ‪١‬دً ؤوً يبٽىٻ ظٱًُن ؿبعىخٌد ز٭ً ‪٬‬ٽٕهد بذل خظبٻ ڄؽالً ‪by AT4RE/heKCEr Fully :‬‬

‫ؤو ڄسدُ٘ش ظٱًن ؿبعىخٌد ڄه ‪ Free evaluation version‬بذل ‪by AT4RE/heKCEr Fully :‬‬

‫زٹُط ٌىدڀٻ ڄ‪ٙ‬ٽځص وخلًش‪ ،‬وٌٍ‪٬ :‬ىًڄد و‪ُ١‬ٳ ؤټؽُ ڄه ڄځٳ ظ‪٩‬هُ ٌٍي خڀُٔدڀص‪،‬‬

‫وغبٿ ٌٍي خؼب‪ٙ‬ٽځص‪ ،‬خوٹُ ز‪ٙ‬ٽٿٍ ڄّيوؾ ‪٬‬ځً ٌٍي خڀُٔدڀص مث خ‪ٜ‬٭ً ڀأل‪٬‬ځً ٸځُالً بذل ؤن ظ‪ٝ‬ٿ ڀځ٭ىىخن‪ 00404FEF‬و‪٬‬ىًٌد ٸڃ ز٭ٽٓ‬
‫خڀٹٵّش‪،‬‬

‫وهبٍخ ؤ‪ٜ‬سك خڀربودڄؿ ټدڄالً وخڀٽمدپ هلل ظ٭دذل‪.‬‬

‫خِن خلٵ‪ ٧‬خؼبځٳ خؼب٭ًپ زدٔڃ ‪ AtomicRarPasswordRecovery.exe‬وؤَ‪١‬د زدٔڃ ‪ .. rpc.exe‬ؼبدٌخ؟!‬

‫ألن ‪ rpc.exe‬وٕىص ڄه ‪ ، AtomicRarPasswordRecovery.exe‬ويف ز٭‪ ٟ‬خأللُدن ٌمت ٴعك خڀـ ‪ Project‬خڀٌٍ لٵ‪٩‬عً‬
‫ؤوط يف ‪ ، rpc.exe‬وؽبٍخ وـر لٵ‪ ً٩‬هبٍخ خالٔڃ ؤَ‪١‬دً‪.‬‬

‫وزةڄٽدوٻ خڀعإټً ڄه ‪ً٬‬ي خڀسدَعدض ‪:‬‬

‫خِن ٘ٱٿ خڀربودڄؿ وخٔعمع‪ ٫‬دبمُّخض خڀىٕىص خڀٽدڄځص‪.‬‬

‫زةڄٽدوٻ ؤن ظ‪ٝ‬ى‪ ٫‬زدظٗ ؤو ڀىيَ ؤو ظ٭مٿ ‪ Inline Patching‬وټٿ ٌڀٻ ْنظ‪ُ٥‬ٶ بذل ُ٘لً‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪113‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دًاياخ يرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ .2‬عٌُ ‪ crack‬قاحل يًٓؿط‬

‫‪ .2.1‬ايطط‪ٜ‬ك‪ ١‬األ‪ٚ‬ىل ‪ :‬قٓع باتـ باغتدساّ ‪DUP 2.19‬‬

‫خٴعك وخـهص خڀربودڄؿ خڀُجٍُٕ مث خ‪٠‬ٱ‪٬ ٣‬ځً ‪ New Project‬وٸڃ زع٭ًَالظٻ خػبد‪ٜ‬ص‪ ،‬وټدڀ٭ديش خ‪٠‬ٱ‪ ٣‬خڀَّ خأليبه وخوعُ ‪ add‬مث‬
‫‪ Offset Patch‬وڄه خأل‪٬‬ځً يف ‪ Target File Tab‬ٸڃ زدوعُدَ خؼبځٳ خأل‪ٜ‬ځٍ ( خؼب‪ٙ‬ٵُ )‪ ،‬ويف ‪ Compare Files Tab‬و‪٬‬ىً‬
‫‪ Original File‬ٸڃ زدوعُدَ خؼبځٳ خأل‪ٜ‬ځٍ خؼب‪ٙ‬ٵُ ڄُش ؤوُي ‪ ،‬و‪٬‬ىً ‪ Patched File‬خوعُ خؼبځٳ خؼبٵٽىٺ خؼبٽٕىَ‪ ،‬مث خ‪٠‬ٱ‪٬ ٣‬ځً‬
‫٘دًٌ خڀسدَعدض ٸسٿ خٔعىًخڂ زدظ‪ٙ‬ٻ خػبد‪ ٚ‬وز٭ً خٔعىًخڂ زدظ‪ٙ‬ٻ خػبد‪ ،ٚ‬ؤٌ خڀٵُٶ زٌن خڀسدَعدض يف خؼبځٵٌن‪،‬‬
‫‪ Compare‬و‪٬‬ىًٌد ٔط‬
‫خ‪٠‬ٱ‪ save ٣‬ڀځمٵ‪.٧‬‬

‫ٸڃ ز٭مٿ ظځٻ خػب‪٥‬ىخض خڀٕدزٹص ڄُش ڄ‪ rpc.exe ٫‬وخؼبځٳ خؼب٭ًٍپ‪ ،‬وڄُش ڄ‪٫‬‬
‫‪ AtomicRarPasswordRecovery.exe‬وخؼبځٳ خؼب٭ًٍپ‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪114‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دًاياخ يرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ؤوًنخً ٸڃ زدڀ‪١‬ٱ‪٬ ٣‬ځً ‪ Create Patch‬وؤڀٳ ڄسدَٺ ‪ٜ‬ى‪ ٫‬خڀسدظٗ‪.‬‬

‫‪ .2.2‬ايطط‪ٜ‬ك‪ ١‬ايجاْ‪ : ١ٝ‬عٌُ ‪InlinePatch‬‬

‫ٔىٹىڂ ز٭مٿ ‪ Inline Patching‬ڀځربودڄؿ وٌڀٻ زىخٔ‪٥‬ص زُودڄؿ ‪ASProtect SKE Inline Patchinger 0.2‬‬

‫ويبٽىٻ ربمُځً ڄه ٌىد ‪:‬‬

‫ؤَ‪١‬دً ٔىٹىڂ زٽُٕ خڀربودڄؿ ز‪َُ٥‬ٹص ؤوُي‪ ،‬وٌٍ خڀ‪َُ٥‬ٹص خألٴ‪١‬ٿ‪ ،‬وٌڀٻ زعٕفُٿ خڀربودڄؿ ڄه خڀسًخَص يون خغبدـص بذل بِخڀص ټٿ ودٴٍش‬
‫ڄّ‪٬‬فص ‪٬‬ځً لًش‪.‬‬

‫وڀځى‪ٜ‬ىپ بذل ٌٍخ خؼبٽدن خڀٕمٌُ خڀٌٍ ٔىٕفٿ ٴًُ خڀربودڄؿ ظٕفُالً ټدڄالً ٌىدٺ ‪ً٬‬ش ‪ُ٤‬ٶ وؤٔهځهد ٌٍ خڀ‪َُ٥‬ٹص خِظُص ‪:‬‬

‫‪٬‬ىً ؿبدوڀعىد إلِخڀص خڀىدٴٍش خؼبّ‪٬‬فص ڄؽالً ٌٍي ‪“To crack more than 2 files simultaneously you must register :‬‬
‫”‪ٔ the software‬هالل‪ ٧‬وـىي ڄٹدَوص ٌدڄص ـًخً ‪:‬‬

‫ٌٍي خؼبٹدَوص خؼبىـىيش ‪٬‬ىً خڀ٭ىىخن ‪ 00402FBE‬وڀى ټدنض خڀٹُمص خؼبىـىيش يف ‪ 425AA0‬ظٕدوٌ ‪ 1‬ٴةن خڀٹٵّش خؼبىـىيش ز٭ًٌد‬
‫ٔىٲ ظىٵٍ‪ ،‬وزٍڀٻ ٔىعى‪ ً٥‬ټٿ خڀىدٴٍش خؼبّ‪٬‬فص‪ ،‬ؤَ‪١‬دً ٌٍي خؼبٹدَوص ظعٽَُ يف ‪ً٬‬ش ؤڄدټه ڄه خڀربودڄؿ؛ لُػ ىبعرب ٴُهد خڀربودڄؿ‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪115‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دًاياخ يرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫خڀعٕفُٿ ٴةٌخ ټىط ڄٕفالً بٲن خڀٹٵّش ٔععڃ وپن َ٭ُ‪ ٞ‬ڀٻ ؤٌ ودٴٍش ڄّ‪٬‬فص ؤو ‪ Limitation‬ڀٍڀٻ ُٔى‪ٝ‬ر ‪٬‬مځىد ‪٬‬ځً و‪٫٠‬‬
‫خڀٹُمص ‪ 1‬يف خڀ٭ىىخن ‪ 425AA0‬يخجمدً لىت َعڃ ظٕفُٿ خڀربودڄؿ‪.‬‬

‫وڀځى‪ٜ‬ىپ بذل خؼبٽدن خؼبىدٔر ڀ٭مٿ ٌڀٻ خحبػ ‪٬‬ه خپـٔعَُىٯ ‪KEYISNOTCOMPATIBLE‬‬

‫بٌخ ټىط ًٰن ڄٕفٿ َ‪ 0 ٫١‬يف ‪.425AA0‬‬


‫ٔعالل‪ٌ ٧‬ىد ؤن خڀربودڄؿ َٹىڂ زدڀعإټً ڄه خڀعٕفُٿ ‪٬‬ىً زًخَص ظ‪ٙ‬ٱُځً ٲ‬

‫ڀ٭مٿ ‪ٔ InlinePatch‬ىٹىڂ زةَٹدٲ خڀربودڄؿ ‪٬‬ىً خڀ٭ىىخن ‪ 00406C88‬مث وٹىڂ زى‪ 1 ٫٠‬يف ‪٬ 425AA0‬ه ‪َُ٤‬ٷ خألڄُ‪MOV :‬‬
‫‪ DWORD PTR DS:[425AA0],1‬ڀٍڀٻ خلٵ‪ٌٍ ٧‬ي خڀسُدودض ألوىد ٔىٲ وٕعىًڄهد اللٹدً ‪:‬‬
‫‪PATCH = MOV DWORD PTR DS:[425AA0],1‬‬
‫‪RVA = 6C88‬‬
‫‪BYTES = 742E68B4‬‬

‫خِن ـدء يوَ زُودڄؿ ‪: ASProtect SKE Inline Patchinger‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪116‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دًاياخ يرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ٔىًوٿ خڀسُدودض ټمد يف خڀ‪ٝ‬ىَش خڀٕدزٹص مث لبعدَ خؼبځٳ‪ ،‬وٌى ڄځٳ خڀربودڄؿ خحملمٍ زـ ‪ Asprotect‬مث و‪١‬ٱ‪٬ ٣‬ځً ‪: Patch‬‬

‫ٔىٲ قبً وٕىص ـدٌّش ڄه خڀربودڄؿ يبٽه ‪٬‬مٿ ‪ InlinePatch‬ؽبد‪.‬‬

‫ٸڃ زٵعك خؼبځٳ ‪ AtomicRarPasswordRecovery.exe‬زىخٔ‪٥‬ص ‪ OllyDbg‬ؤعفً ؤن زُودڄؿ خڀـ ‪ Patcher‬ٸً ؤ‪٠‬دٲ‬


‫ظ‪ٙ‬ٱُٿ خڀربودڄؿ يف خڀٍخټُش مث بَٹدٴً ‪٬‬ىً خڀ٭ىىخن خڀٌٍ لًيودي ڄه ٸسٿ ‪ 00406C88‬ڀٽٍ وٹىڂ زةيودپ‬
‫ز٭‪ ٟ‬خألټىخي خعبًًَش ڀعٹىڂ ذ‬
‫خڀٽىي ‪ MOV DWORD PTR DS:[425AA0],1 :‬وٌى خڀٌٍ ٔىٲ َٕفٿ خڀربودڄؿ‪.‬‬

‫خوّپ ڀألْٴٿ لىت ذبً ؾبمى‪٬‬ص ڄه خڀـ ‪ NOP‬وٌٍ ـب‪ٝٝ‬ص إليودپ ؤټىخي خڀسدظٗ ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪117‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دًاياخ يرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫مث ٸڃ زةيودپ خألڄُ ‪٬ MOV DWORD PTR DS:[425AA0],1‬ىً ؤوپ ‪: NOP‬‬

‫ز٭ًٌد ٸڃ حبٵ‪ ٧‬خؼبځٳ خعبًًَ وٌى خؼبځٳ خؼبٽٕىَ زـ ‪.InlinePatch‬‬

‫زٽٿ ٔهىڀص ظٕع‪ ٫ُ٥‬خِن ‪٬‬مٿ ‪ Patch‬ڀځربودڄؿ زىخٔ‪٥‬ص زُودڄؿ ‪.Dup‬‬

‫بن ڄُّش ‪َ InlinePatch‬خج٭ص ـًخً؛ لُػ ٔعم‪ٝ‬ٿ ڄه والؽبد ‪٪‬پي زدظٗ ‪ٜ‬ٱًن خغبفڃ ڄٹدَوصً ٴُمد ڀى ٸمط زٵٻ خغبمدَص ‪٬‬ه خؼبځٳ‬
‫وټُٕي‪.‬‬

‫‪ .2.3‬ايطط‪ٜ‬ك‪ ١‬ايجايج‪ : ١‬قٓع ي‪ٛ‬زض باغتدساّ بطْاَر ‪DUP 2.17‬‬

‫ټمد ٴ٭ځىد يف خڀـ ‪ٔ Inline Patching‬ىٹىڂ ز٭مٿ ڀىيَ َٽعر يف خڀٍخټُش ي ٌخ خألڄُ ‪:‬‬

‫‪MOV DWORD PTR DS:[425AA0],1‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪118‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دًاياخ يرمذيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫وٌٍخ خألڄُ ٌى خڀٌٍ ُٕٔفٿ خڀربودڄؿ‪ ،‬ويبٽىٻ ڄ٭ُٴص خڀسدَعدض ڄه والپ خڀ‪ٝ‬ىَش خڀٕدزٹص ز٭ً ټعدزعىد ڀألڄُ ‪:‬‬
‫‪00406CB8‬‬ ‫=‬ ‫‪A1‬‬ ‫>=‬ ‫‪C7‬‬
‫‪00406CB9‬‬ ‫=‬ ‫‪20‬‬ ‫>=‬ ‫‪05‬‬
‫‪00406CBA‬‬ ‫=‬ ‫‪5B‬‬ ‫>=‬ ‫‪A0‬‬
‫‪00406CBB‬‬ ‫=‬ ‫‪42‬‬ ‫>=‬ ‫‪5A‬‬
‫‪00406CBC‬‬ ‫=‬ ‫‪00‬‬ ‫>=‬ ‫‪42‬‬
‫‪00406CBD‬‬ ‫=‬ ‫‪85‬‬ ‫>=‬ ‫‪00‬‬
‫‪00406CBE‬‬ ‫=‬ ‫‪C0‬‬ ‫>=‬ ‫‪01‬‬
‫‪00406CBF‬‬ ‫=‬ ‫‪74‬‬ ‫>=‬ ‫‪00‬‬
‫‪00406CC0‬‬ ‫=‬ ‫‪15‬‬ ‫>=‬ ‫‪00‬‬
‫‪00406CC1‬‬ ‫=‬ ‫‪68‬‬ ‫>=‬ ‫‪00‬‬
‫‪00406CC2‬‬ ‫=‬ ‫‪00‬‬ ‫>=‬ ‫‪90‬‬
‫‪00406CC3‬‬ ‫=‬ ‫‪5A‬‬ ‫>=‬ ‫‪90‬‬
‫‪00406CC4‬‬ ‫=‬ ‫‪42‬‬ ‫>=‬ ‫‪90‬‬
‫‪00406CC5‬‬ ‫=‬ ‫‪00‬‬ ‫>=‬ ‫‪90‬‬

‫خعبًوپ خڀٕدزٷ َسٌن خڀ٭ىىخن ‪ +‬خڀسدَط خڀٹًمي ‪ +‬خڀسدَط خعبًًَ (‪)Patched‬‬

‫خٴعك زُودڄؿ ‪: DUP‬‬

‫ؤيوٿ خڀسُدودض خؼبىـىيش يف خعبًوپ ‪٬‬ه ‪َُ٤‬ٷ ‪ Add and Edit‬وال ظىٓ خوعُدَ ‪ ، VirtualAddress mode‬مث خ‪٠‬ٱ‪٬ ٣‬ځً‬
‫‪ Save‬مث ‪ ، Create loader‬وزٍڀٻ ُٔعڃ بو‪ٙ‬دء خڀځىيَ خڀٌٍ ٔعٹىڂ زى‪٠‬٭ً ـدور ڄځٳ خڀربودڄؿ وڄه مث ظ‪ٙ‬ٱځً ڀُٹىڂ زعممُٿ‬
‫خڀربودڄؿ وبـُخء خڀعٱًُنخض خڀالِڄص ڀُ‪ٝ‬سك خڀربودڄؿ ڄٕفالً ز‪ٙ‬ٽٿٍ ټدڄٿ‪.‬‬

‫ال ظىٓ ‪٬‬مٿ ڀىيَ ؼبځٳ ‪. rpc.exe‬‬

‫ضبٿ ڄه خؼبُٴٹدض ڄځٳ ڄ‪ُٙ‬و‪ dup patcher ٪‬خػبد‪ ٚ‬زدڀربودڄؿ ؼبه ؤَخي ربمُځً‬
‫ڄسدُ٘ش ڀـ ‪.dup‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪119‬‬
‫الباب الثالث‪ :‬اهلاشييغ وخوارزميات التصفري‬

‫‪120‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرشفيـــــــــــــــــــــر‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫مقدمة يف اهلاشييغ وخوارزميات التصفري وملتباتَا‬


‫‪Introduction to Cryptology‬‬

‫ٔىسًؤ دبٹًڄص ‪٬‬ه خؽبدُ٘ىٯ ووىخَِڄُدض خڀع‪ٙ‬ٵًن‪ ,‬مث وٕٹ‪ ٣‬خؼب٭ځىڄدض ‪٬‬ځً ڄؽدپ ‪٬‬مځٍ َٕعىًڂ وىخَِڄُص‪.‬‬

‫و ُٔ‪ٙ‬عمٿ ٌٍخ خڀ‪ُٙ‬ق ‪٬‬ځً خڀىٹد‪ ٢‬خڀعدڀُص ‪:‬‬

‫‪ )1‬حملة عً مكتبات التشفري وكيفية اصتدزامها يف لغات الربدلة‪.‬‬

‫‪ )2‬الترليل العاو للتنزيً‪.‬‬

‫‪ )3‬حتليل الكور مً خالل بزىامخ ‪.OllyDbg‬‬

‫‪ )4‬حتليل خوارسمية ذضاب الضزيال لالصه‪.‬‬

‫‪ )5‬كتابة الكيحً‪.‬‬

‫خؼبځٵدض خڀالِڄص ؼبعدز٭ص خڀًَْ ٌىد‪.‬‬

‫‪ .1‬أ‪ٚ‬الً ‪ :‬حمل‪ ١‬عٔ َهتبات ايتؿؿرل ‪ٚ‬ن‪ٝ‬ؿ‪ ١ٝ‬اغتدساَٗا يف يػات ايدلزت‪١‬‬


‫ظٕعىًڂ وىخَِڄُدض خڀع‪ٙ‬ٵًن ‪٬‬مىڄدً ڀع‪ٙ‬ٵًن خڀسُدودض وٌڀٻ هبًٲ ب‪٠‬دٴص ‪٤‬سٹص ڄه خغبمدَص ‪٬‬ځً ٌٍي خڀسُدودض خڀيت َعڃ خڀع٭دڄٿ ڄ٭هد يخوٿ‬
‫خڀربودڄؿ ؤو ‪٬‬رب خڀىٹٿ خإلڀٽعُوين يف خڀىَر‪.‬‬

‫وٌىد هبر ظى‪ُ٠‬ك خڀٵُٶ زٌن ڄٵهىڄٌن ؤٔدٌُٔن ‪:‬‬

‫‪ .1.3‬املؿٗ‪ ّٛ‬األ‪ : ٍٚ‬خ‪ٛ‬اضظَ‪ ١ٝ‬ايتؿؿرل‬

‫و ٌٍ ‪٬‬سدَش ‪٬‬ه ٔځٕځص ڄه خڀ٭مځُدض ظ‪٥‬سٷ ‪٬‬ځً خڀسُدودض ڀعمىَههد‪ .‬وؤٌڃ ڄد ظعمُّ زً ‪:‬‬

‫ؤهند ٌخض خذبدٌٌن ‪ :‬خذبدي ظ‪ٙ‬ٵًن خڀسُدودض ( ‪ ( Encryption‬وخذبدي ٴٻ ظ‪ٙ‬ٵًن خڀسُدودض ( ‪) Decryption‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪121‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرشفيـــــــــــــــــــــر‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ؤٌ ؤن خػبىخَِڄُص ‪ :‬ظٹىڂ زدڀع‪ٙ‬ٵًن مث يبٽىهد ٴٻ ظ‪ٙ‬ٵًن خڀسُدودض وبَـد‪٬‬هد بذل ؤ‪ٜ‬ځهد‪.‬‬

‫وڄه ؤڄؽځعهد وٍټُ ‪RSA , DES , Mars , Blowfish :‬‬

‫‪ .1.4‬املؿٗ‪ ّٛ‬ايجاْ‪ : ٞ‬اشلاف‬

‫وٌى َٕعىًڂ ڀځع‪ٙ‬ٵًن ٴٹ‪ ،٣‬وڀُٓ ڀً خذبدي كبى ٴٻ خڀع‪ٙ‬ٵًن‪ ،‬وَٕعىًڂ ڀٵٻ ظ‪ٙ‬ٵًن ڄد َ٭ُٲ زـ ‪Brute Force :‬‬

‫لُػ َٕعىًڂ ـًخوپ ود‪ٜ‬ص وَٹىڂ زع‪ٙ‬ٵًن ‪ً٬‬ي ٌدجٿ ڄه خڀ٭سدَخض وَ‪٥‬دزٷ ودظؿ خڀع‪ٙ‬ٵًن ڄ‪ ٫‬خڀٽځمص خؼب‪ٙ‬ٵُش خڀيت نحبػ ‪٬‬ه ٴٻ‬
‫ظ‪ٙ‬ٵًنٌد‪.‬‬

‫و ڄه ؤڄؽځعً ‪MD4 , MD5 , SHA , Haval :‬‬

‫‪ .1.5‬املهتبات املػتدسَ‪ ١‬يف خ‪ٛ‬اضظَ‪ٝ‬ات ايتؿؿرل ‪ٚ‬اشلاؾ‪ٓٝ‬ؼ‬

‫ٸدڂ ‪ً٬‬ي ڄه خؼبربؾبٌن خحملعُٴٌن زةو‪ٙ‬دء ڄٽعسدض ڀٽٿٍ ڄه وىخَِڄُدض خڀع‪ٙ‬ٵًن وخؽبدُ٘ىٯ‪ ،‬وٌڀٻ هبًٲ ظٌُٓٿ خؼبهمص ‪٬‬ځً خؼبربؾبٌن يف‬
‫خٔعىًخڂ ټال خڀىى‪ٌ٬‬ن خڀٕدزٹٌن‪.‬‬

‫و ٸً ظىٴُض ٌٍي خؼبٽعسدض ألٰځر ڀٱدض خڀربؾبص‪ ,‬وَٽٵُٻ ٴٹ‪ ٣‬خٔعً‪٬‬دء خإلـُخء ؤو خڀعدز‪ ٫‬وخؼبٽعسص ظعٽٵٿ زدڀسدٸٍ وظ٭‪ُ٥‬ٻ خڀىدظؿ ‪.‬‬

‫ڄؽالً ‪ :‬ڀى ؤَيض ؤن ؤ٘ٵُ ټځمص ‪ Hello‬زىخٔ‪٥‬ص وىخَِڄُص ‪ ، DES‬ٴإٸىپ ؾبدِخً ‪:‬‬

‫٘ٵُ رل زدٔعىًخڂ وىخَِڄُص ‪ DES‬خڀٽځمص ‪ , Hello‬وخٔعىًڂ يف خڀع‪ٙ‬ٵًن خؼبٵعدق ‪.123‬‬

‫يف خغبٹُٹص ٌٍخ ٌى خڀع٭سًن خجملدٌِ‪ ،‬وإلٔٹد‪٬ ً٤‬ځً خڀٽعدزص خڀربؾبُص وٹىپ ‪:‬‬

‫) ‪EnCryptString (Hello, 123‬‬


‫‪ -‬ٴٽځميت ‪ Hello‬و ‪ 123‬ظً‪ ً٬‬زدڀسدَوڄُعُخض وٌٍ خڀيت وبعدؾ بڀُهد خإلـُخء ‪ EnCryptString‬ڀُىفّ ‪٬‬مځً‪.‬‬

‫‪ .1.6‬املهتبات ‪ٚ‬يػات ايدلزت‪١‬‬

‫‪ .1.6.1‬ن‪ٝ‬ـ تأت‪ٖ ٞ‬ص‪ ٙ‬املهتبات؟‬


‫يف خغبٹُٹص زبعځٳ اللٹص خؼبٽعسص وؿبعىَدهتد لٕر خڀځٱص خڀربؾبُص خؼبٕع٭مځص‪ ،‬و‪٬‬ځً ٔسُٿ خؼبؽدپ وڀُٓ خغب‪ ُٝ‬وڀُٽه ڄٽعسص ‪: RSA‬‬

‫‪ RSA.bas : Visual Basic 6 -‬ؤو ‪RSA.Cls‬‬

‫‪RSA.asm : Assembly -‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪122‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرشفيـــــــــــــــــــــر‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪RSA.pas : Delphi -‬‬

‫‪RSA.inc : C, C++ -‬‬

‫ٌٍخ ٘ٽٿ ڄه ؤ٘ٽدپ خؼبځٵدض ڀٽٿ ڀٱص‪ ،‬وٸً َعڃ ظ‪١‬مٌن خؼبٽعسدض يف ولًخض ‪ DLL‬وَٕعً‪ُ٬‬هد خؼبربڄؿ زىخٔ‪٥‬ص خڀـ‬

‫‪.Export Tables‬‬

‫بن خٔعىًخڂ خؼبٽعسدض وظ‪٥‬ىَ٭هد ىبعځٳ لٕر ڄهدَظٻ خڀربڄؿَص ولًوي خڀځٱص خڀيت ظٕعىًڄهد‪.‬‬

‫بٌخ ٴعمط ٌٍي خؼبٽعسص زدڀځٱص خڀيت ظٕعىًڄهد ٔع٭ؽُ ‪٬‬ځً خإلـُخء ؤو خڀعدز‪ ٫‬خڀٌٍ وبٹٷ ڀٻ ڄد هتًٲ بڀًُ‪.‬‬

‫ڀىإوٍ ‪٬‬ځً ٔسُٿ خؼبؽدپ خؼبٽعسص ‪ DES‬وڀىٵعمهد يف يڀٵٍ‪ٔ ،‬ىفً خإلـُخء خڀعدرل ‪:‬‬
‫;‪Function EncryStr (Str, Key: String): String‬‬

‫‪ : EncryStr‬خٔڃ خڀعدز‪ ،٫‬وخظبً َ‪ًٙ‬ن بذل ‪٬‬مځُص خڀع‪ٙ‬ٵًن ڀٕځٕځص و‪ُٝ‬ص‪.‬‬

‫‪ : Str‬خڀٽځمص خؼبُخي ظ‪ٙ‬ٵًنٌد‪.‬‬

‫‪ : Key String‬ڄٵعدق خڀع‪ٙ‬ٵًن‪ ،‬وَ‪٥‬ځر ڄىٻ خڀعدز‪ ٫‬ؤن َٽىن ڄه خڀىى‪ ٪‬خڀى‪ String ٍٝ‬وال يبٽه ؤن َٽىن َٸمُدً ‪. Integer‬‬

‫‪ : String‬ؤٌ ؤن خڀٹُمص خڀىدذبص ‪٬‬ه ٌٍخ خڀعدز‪ ٌٍ ٫‬ڄه خڀىى‪ ٪‬خپو‪.ٍٝ‬‬

‫ٴةٌخ ؤَيض ظ‪ٙ‬ٵًن خڀٽځمص ‪ Hello‬دبٵعدق خڀع‪ٙ‬ٵًن ‪ RobenEDH56‬وو‪ ٫٠‬خڀىدظؿ يف خؼبُز‪ ٫‬خڀى‪ Text1 ٍٝ‬ٴدټعر ‪:‬‬
‫; ) ‪Text1.Text := EncryStr ( Hello , RobenEDH56‬‬

‫َإيت خڀٕاخپ ٌىد ‪ :‬ټُٳ ؤ‪ُ٬‬ٲ ڄد ٌى خڀعدز‪ ٫‬خڀٌٍ ٔإٔعىًڄً؟ وڄد ٌٍ زدَخڄُعُخظً؟‬

‫‪٬‬ځً ٔسُٿ خؼبؽدپ ٌٍخ خألـُخء ‪:‬‬


‫; (‪Procedure RSAEncrypt (P : String; Var exp, modb : TFGInt; Var E : String‬‬

‫ڄه خڀىخ‪٠‬ك ؤوً ڀع‪ٙ‬ٵًن ‪٬‬سدَش زدٔعىًخڂ ‪ ، RSA‬وڀٽه ټُٳ رل ؤن ؤ‪ُ٬‬ٲ ڄد ٌٍ خڀربخڄُعُخض خڀيت ٔإڄٌَُد ڀً؟‬

‫‪٬‬ځً ٔسُٿ خؼبؽدپ ‪ modb : TFCInt :‬ڄد ٌى؟ وڄد ٌى خڀىى‪ ٪‬خؼب٭ُٲ زً وټُٳ ؤٔعىًڄً؟‬

‫ؤڄدڄٻ ي ود خػبٍخَخض خپظدرلش ‪:‬‬

‫‪ )1‬ٸُخءش خڀع٭ځُمدض ( ‪ ) Help‬خؼبُٴٹص ڄ‪ ٫‬خؼبٽعسص‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪123‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرشفيـــــــــــــــــــــر‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ )2‬خال‪ّ٤‬ال‪٬ ٪‬ځً ڄؽدپ َٕعىًڂ ٌٍي خؼبٽعسص‪.‬‬

‫‪ )3‬ٸُخءش ؼىخزط وڄعٱًنخض وىخَِڄُص خڀع‪ٙ‬ٵًن‪.‬‬

‫‪ )4‬خڀسمػ يف خإلوعُوط ‪٬‬ه ڄ٭ځىڄدض ظٵًُ يف خٔع٭مدپ ٌٍي خؼبٽعسص ز٭ً ؤن ظٽىن ٸً ٸمط زدڀسىً )‪.(3‬‬

‫ب يف املفض‪ ٚ‬ع ايدلَر‪: ٟ‬‬


‫‪ .1.6.2‬اؽتعّاٍ املنت‪٠‬‬
‫هبر ‪٬‬ځُٻ زدوعالٲ ؤوىخ‪ ٪‬ڀٱدض خڀربؾبص ؤن ظُز‪ ٣‬خؼبٽعسص دب‪ُٙ‬و‪٬‬ٻ؛ ڀٽٍ ظٕع‪ ٫ُ٥‬خٔعً‪٬‬دء خڀعدز‪ ٫‬ؤو خإلـُخء ڄىهد‪.‬‬

‫‪٤‬س٭دً ڀه َ‪ٙ‬مٿ لًَؽىد ڄٽعسدض ‪ ، DLL‬وڀه وٕع‪ ٫ُ٥‬ټٍڀٻ خڀعٽځڃ ‪٬‬ه صبُ‪ ٫‬خڀ‪ُ٥‬ٶ‪.‬‬

‫ؤڄؽځص ‪:‬‬

‫‪ : Delphi‬يبٽه ؤن ظ‪ُٝ‬ق ‪٬‬ه خظبهد يف خڀٹٕڃ ‪Uses‬‬

‫ڄؽدپ ظ‪١‬مٌن خؼبٽعسص ‪: Des.pas‬‬


‫‪uses‬‬
‫‪Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,‬‬
‫;‪Dialogs, Des, StdCtrls‬‬

‫‪: Visual Basic 6‬يبٽه ؤن ظٹىڂ زة‪٠‬دٴص خؼبىيَٿ ‪ Des.bas‬ؤو خڀ‪ٝ‬ىٳ ‪ Des.Cls‬بذل ڄ‪ُٙ‬و‪٬‬ٻ‪.‬‬

‫‪ : Assembly‬يبٽه ؤن ظ‪ُٝ‬ق ‪٬‬ىهد ټمد يف خڀ‪ٙ‬ٽٿ خڀعدرل ‪:‬‬


‫‪.386‬‬
‫‪.model flat, stdcall‬‬ ‫‪;32 bit memory model‬‬
‫‪option casemap :none‬‬ ‫‪;case sensitive‬‬
‫‪include Des.asm‬‬
‫…‬
‫…‬
‫‪.code‬‬
‫…‬

‫‪ .2‬ثاْ‪ٝ‬اً ‪ :‬ايتشً‪ ٌٝ‬ايعاّ يٌمتط‪ٜٔ‬‬


‫ڀًي ٴم‪ ٛ‬خڀعمَُه زربودڄؿ ‪ PEID‬وؤلً ب‪٠‬دٴدظً خؼبٕد‪ً٬‬ش‪ ،‬وٌٍ ‪ Kanal‬قبً ‪:‬‬

‫خڀربودڄؿ ڄربڄؿ زځٱص ‪ Delphi‬وٌى ًٰن ڄ‪١‬ٱى‪ ٢‬ؤو ڄ‪ٙ‬ٵُ‪.‬‬


‫خڀربودڄؿ َٕعىًڂ وىخَِڄُدض خڀع‪ٙ‬ٵًن خڀعدڀُص ‪:‬‬
‫‪. DES ‬‬

‫‪. Rijndael ‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪124‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرشفيـــــــــــــــــــــر‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪. BigNumber ‬‬

‫وڀًي خٔعٽ‪ٙ‬دٲ خڀربودڄؿ زربودڄؿ ‪ DEDE‬خػبد‪ ٚ‬زدڀربخڄؿ خؼبربؾبص زدڀًڀٵٍ‪ ،‬وټىن خڀعمَُه ال وبىٌ ‪٬‬ځً ؤَِخَ‪ ،‬ٴهى ٌٸدَن زٌن‬
‫خڀَُٕدپ خؼبًوٿ وخڀَُٕدپ خڀ‪ٝ‬مُك ‪٬‬ىً خغبًغ ‪ ، MKEYChange‬ويوځىد بڀًُ وظإټًود ڄه ٌڀٻ وؤوٍود ‪٬‬ىىخن خڀسًخَص ؽبٍخ خإلـُخء‬
‫‪:‬‬

‫‪OllyDbg‬‬ ‫‪ .3‬ثايجاً ‪ :‬حتً‪ ٌٝ‬ايه‪ٛ‬ز َٔ خالٍ بطْاَر‬


‫‪ -‬كبمٿ خڀعمَُه يخوٿ زُودڄؿ ‪ OllyDbg‬ووًوٿ خؼب٭ځىڄدض ټمد يف خڀ‪ٝ‬ىَش خڀعدڀُص ‪:‬‬

‫‪ -‬مث وٹىڂ زى‪ ٫٠‬وٹ‪٥‬ص ظىٸٳ ‪٬‬ىً زًخَص خإلـُخء ‪٬ MKEYChange‬ىً خڀ٭ىىخن ‪ 00453E7‬وكبدوپ ظٱًُن خڀَُٕدپ ‪:‬‬

‫َعىٸٳ خؼبىٹك ٌىد ‪ ...‬ڀٽه ڀىعدز‪ ٫‬ڄ٭دً ‪٬‬مځُص خڀععس‪: ٫‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪125‬‬
AT4RE :‫انفريك انعرتي نههُذسح انعكسيح‬ ‫انرشفيـــــــــــــــــــــر‬ .‫ خطىج إنى األياو‬:‫انهُذسح انعكسيح‬

00453E74 PUSH EBP ‫ زًخَص خإلـُخء‬MKEYchange


......
......
.......
00453E95 LEA EDX, [LOCAL.9]
00453E98 MOV EAX, DWORD PTR
DS:[EBX+2FC]
00453E9E CALL 0043138C

00453EA3 CMP [LOCAL.9], 0 ُ‫ٵ‬ٝ‫ خڀ‬٫‫ىپ خالٔڃ ڄ‬٤ ‫ڄٹدَوص‬


00453EA7 JE 00453FE2
00453EAD LEA EDX, [LOCAL.10]
00453EB0 MOV EAX, DWORD PTR
DS:[EBX+30C]
00453EB6 CALL 0043138C
00453EBB CMP [LOCAL.10], 0 ُ‫ٵ‬ٝ‫ خڀ‬٫‫ىپ خڀَُٕدپ خؼبًوٿ ڄ‬٤ ‫ڄٹدَوص‬

00453EBF JE 00453FE2
00453EC5 LEA EAX, [LOCAL.7]
00453EC8 CALL 00403E88
00453ECD LEA EAX, [LOCAL.1

DES ‫ٵًن ڀځىىخَِڄُص‬ٙ‫دًٌي ٌىد ٌى ڄٵعدق خڀع‬ٙ‫ خڀٌٍ و‬ٛ‫ٌٍخ خڀى‬


‫دء خػبىخَِڄُص‬٬ً‫ىً خٔع‬٬ ُ‫ َعڃ ظ٭َُٵً ټؽدزط ڀُٕعىًڂ ټسدَوڄُع‬٣‫وٌىد ٴٹ‬
00453ED0 MOV EDX, 454034 ; ASCII "RobenCrackMe1ForElite01"

00453ED5 CALL 00403F20


00453EDA LEA EDX, [LOCAL.11]
00453EDD MOV EAX, DWORD PTR
DS:[EBX+2FC]
00453EE3 CALL 0043138C

00453EE8 MOV EAX, [LOCAL.11] ًْ‫ خالٔڃ ڀځمٽ‬٫‫ٌىد َعڃ يٴ‬


00453EEB LEA EDX, [LOCAL.6]

Hex ‫دڂ‬٩‫ َٹىڂ زعمىَٿ خالٔڃ بذل خڀى‬: ‫دء‬٬ً‫ٌٍخ خالٔع‬

00453EEE CALL 00453CEC


: ‫ ٴٵٍ لدڀعىد‬،‫ًخ خغبُٲ خألوًن‬٬‫ڄد‬
[Roben] = R[52] + o[6F] + b[62] + e[65]
= 526F6265

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ 2009 126
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرشفيـــــــــــــــــــــر‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫بٌخ يوځىد بذل خالٔعً‪٬‬دء والل‪ ٧‬لځٹص خڀعمىَٿ ‪:‬‬

‫‪00453EF3‬‬ ‫‪LEA‬‬ ‫]‪ECX, [LOCAL.5‬‬

‫ٌىد َعڃ يٴ‪ ٫‬خؼبٵعدق‬


‫‪00453EF6‬‬ ‫‪MOV‬‬ ‫]‪EDX, [LOCAL.1‬‬
‫‪00453EF9‬‬ ‫‪MOV‬‬ ‫]‪EAX, [LOCAL.6‬‬ ‫ٌىد يٴ‪ ٫‬ودظؿ ربىَٿ خالٔڃ بذل ‪ hex‬ڄد‪ً٬‬خ خغبُٲ خألوًن‬
‫‪00453EFC‬‬ ‫‪CALL‬‬ ‫‪004527AC‬‬
‫ٌىد َعڃ ظ‪٥‬سُٷ وىخَِڄُص خڀع‪ٙ‬ٵًن ‪DES‬‬

‫هبر خالوعسدي ٌىد بذل ؤن ودظؿ وىخَِڄٍش ظ‪ٙ‬ٵًن ‪َ DES‬ٽىن يف خڀٹد‪ً٬‬ش ‪ (Base 64) 64‬وٌى يف لدڀعىد ‪:‬‬
‫}‪٤ ( ÷?°ŸË-$‬س٭ًد ڄٹځىزص ڄه خڀُمٌن بذل خڀُٕدَ )‬

‫‪00453F01‬‬ ‫‪LEA‬‬ ‫]‪EAX, [LOCAL.5‬‬


‫‪00453F04‬‬ ‫‪MOV‬‬ ‫‪EDX, 454054‬‬
‫‪00453F09‬‬ ‫‪CALL‬‬ ‫‪00404150‬‬
‫‪00453F0E‬‬ ‫‪LEA‬‬ ‫]‪EAX, [LOCAL.2‬‬

‫ڄد و‪ٙ‬دًٌي ٌىد ٌى ڄٵعدق خڀع‪ٙ‬ٵًن خػبد‪ ٚ‬زدػبىخَِڄُص ‪Rijndael‬‬


‫و ٌىد ؤَ‪١‬د ‪َ :‬عڃ يٴ٭ً ټؽدزط ڀُٕعىًڂ ټسدَوڄُعُ ‪٬‬ىً خٔعً‪٬‬دء وىخَِڄُص‬
‫خڀع‪ٙ‬ٵًن‪.‬‬
‫‪; ASCII‬‬
‫‪00453F11‬‬ ‫‪MOV‬‬ ‫‪EDX, 454060‬‬ ‫"‪"6184AE00CD09FA7E73F41D310D1FF48D‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪127‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرشفيـــــــــــــــــــــر‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪00453F16‬‬ ‫‪CALL‬‬ ‫‪00403F20‬‬


‫‪00453F1B‬‬ ‫‪LEA‬‬ ‫]‪EDX, [LOCAL.8‬‬
‫‪00453F1E‬‬ ‫‪MOV‬‬ ‫‪EAX, DWORD PTR‬‬
‫]‪DS:[EBX+30C‬‬
‫‪00453F24‬‬ ‫‪CALL‬‬ ‫‪0043138C‬‬
‫‪00453F29‬‬ ‫‪LEA‬‬ ‫]‪EDX, [LOCAL.14‬‬
‫‪00453F2C‬‬ ‫‪MOV‬‬ ‫]‪EAX, [LOCAL.5‬‬

‫‪ٌ -‬ىد َعڃ يٴ‪ ٫‬ودظؿ وىخَِڄُص ‪ : DES‬ڀعمىَځً ڄه خڀٹد‪ً٬‬ش ‪Base‬‬


‫‪ 64‬بذل خڀى‪٩‬دڂ خڀٕعص ‪ٌُٙ٬‬‬
‫‪00453F2F‬‬ ‫‪CALL‬‬ ‫‪00453CEC‬‬

‫بٌخ يوځىد بذل ٌٍخ خالٔعً‪٬‬دء ٔىالل‪ ٧‬لځٹص خڀعمىَٿ خڀعدڀُص ‪:‬‬
‫و خڀىدظؿ ٌى ‪ 7D242D9FCBB03FF7 :‬ټمد ظالل‪٩‬ىن‪.‬‬

‫ڀځعإټً ‪:‬‬
‫يف زُودڄؿ ‪SND :‬‬ ‫ؤيوٿ خڀٹُمص ‪526F6265 :‬‬
‫‪ Reverser Tool‬يف خغبٹٿ ‪Input‬‬
‫وڄٵعدق خڀع‪ٙ‬ٵًن ‪:‬‬ ‫‪DES‬‬ ‫خوعُ وىخَِڄُص خڀع‪ٙ‬ٵًن‬
‫‪RobenCrackMe1ForElite01‬‬
‫خوعُ ‪ UPPER CASE‬ڄه خڀـ ‪Option‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪128‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرشفيـــــــــــــــــــــر‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪00453F34‬‬ ‫‪MOV‬‬ ‫]‪EAX, [LOCAL.14‬‬ ‫‪:‬‬


‫‪00453F37‬‬ ‫‪LEA‬‬ ‫]‪EDX, [LOCAL.13‬‬
‫‪00453F3A‬‬ ‫‪CALL‬‬ ‫‪0040797C‬‬
‫‪00453F3F‬‬ ‫‪MOV‬‬ ‫]‪EAX, [LOCAL.13‬‬
‫‪00453F42‬‬ ‫‪LEA‬‬ ‫]‪ECX, [LOCAL.12‬‬
‫‪00453F45‬‬ ‫‪MOV‬‬ ‫]‪EDX, [LOCAL.2‬‬

‫خبىخَِڄُص‬ ‫ظ‪ٙ‬ٵًن خڀٹُمص ‪7D242D9FCBB03FF7 :‬‬


‫‪00453F48‬‬ ‫‪CALL‬‬ ‫‪00453828‬‬
‫خڀع‪ٙ‬ٵًن ‪Rijndael‬‬

‫‪00453F4D‬‬ ‫‪MOV‬‬ ‫]‪EAX, [LOCAL.12‬‬


‫‪00453F50‬‬ ‫‪LEA‬‬ ‫]‪EDX, [LOCAL.3‬‬
‫‪00453F53‬‬ ‫‪CALL‬‬ ‫‪004529C8‬‬
‫‪00453F58‬‬ ‫‪LEA‬‬ ‫]‪ECX, [LOCAL.15‬‬
‫‪00453F5B‬‬ ‫‪MOV‬‬ ‫]‪EDX, [LOCAL.2‬‬
‫‪00453F5E‬‬ ‫‪MOV‬‬ ‫]‪EAX, [LOCAL.8‬‬

‫‪00453F61‬‬ ‫‪CALL‬‬ ‫‪00453828‬‬ ‫ظ‪ٙ‬ٵًن خڀٹُمص ‪ :‬خڀَُٕدپ خؼبًوٿ )‪ (1234567890‬خبىخَِڄُص خڀع‪ٙ‬ٵًن ‪Rijndael‬‬

‫‪00453F66‬‬ ‫‪MOV‬‬ ‫]‪EAX, [LOCAL.15‬‬


‫‪00453F69‬‬ ‫‪LEA‬‬ ‫]‪EDX, [LOCAL.4‬‬
‫‪00453F6C‬‬ ‫‪CALL‬‬ ‫‪004529C8‬‬
‫‪00453F71‬‬ ‫‪MOV‬‬ ‫]‪EAX, [LOCAL.3‬‬
‫‪00453F74‬‬ ‫‪MOV‬‬ ‫]‪EDX, [LOCAL.4‬‬

‫‪00453F77‬‬ ‫‪CALL‬‬ ‫‪00404294‬‬ ‫خؼبٹدَوص زٌن ودظؿ خڀع‪ٙ‬ٵًنَه خبىخَِڄُص ‪Rijndeal‬‬

‫ٌىد َٕعىٸٵىد ؤڄُ وٌى ؤوً ‪ :‬بٌخ ټدن خڀَُٕدپ خؼبًوٿ = ودظؿ ‪ Des + Hex‬ڀالٔڃ‬
‫ٴهٍخ َ٭ين ؤن ودظؿ ظ‪ٙ‬ٵًنٌڃ خبىخَِڄُص ‪ُٔ Rijndeal‬ٽىن ڄعٕد ٍو ( ألن خڀٹُمعٌن ڄعٕدوَعٌن وَعڃ ظ‪ٙ‬ٵًننبد زىٵٓ خؼبٵعدق ) ‪.‬‬

‫وزدڀعدرل ٴةن وىخَِڄُص ‪ Rijndael‬و‪٠‬٭ط ٴٹ‪ ٣‬لىت َعڃ سبىًَ خؼبٹدَوص زٌن خڀَُٕدپ خڀ‪ٝ‬مُك وخڀَُٕدپ خؼبًوٿ ‪.‬‬

‫‪00453F7C‬‬ ‫‪JNZ‬‬ ‫‪SHORT 00453FBF‬‬ ‫خڀٹٵّ ؿبٹٷ بذل خڀ٭سدَش خػبد‪٤‬حص ‪٬‬ىً ‪ً٬‬ڂ خڀعٕدوٌ‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪129‬‬
AT4RE :‫انفريك انعرتي نههُذسح انعكسيح‬ ‫انرشفيـــــــــــــــــــــر‬ .‫ خطىج إنى األياو‬:‫انهُذسح انعكسيح‬

00453F7E LEA EDX, [LOCAL.17]


00453F81 MOV EAX, DWORD PTR DS:[EBX+2FC]
00453F87 CALL 0043138C
00453F8C MOV ECX, [LOCAL.17]
00453F8F LEA EAX, [LOCAL.16]
00453F92 MOV EDX, 45408C ; ASCII "Registered To : "
00453F97 CALL 00404194
00453F9C MOV EDX, [LOCAL.16]
00453F9F MOV EAX, DWORD PTR DS:[EBX+308]
00453FA5 CALL 004313BC
00453FAA MOV EAX, DWORD PTR DS:[EBX+308]
00453FB0 MOV EAX, DWORD PTR DS:[EAX+68]
00453FB3 MOV EDX, 8000
00453FB8 CALL 0041C648
00453FBD JMP SHORT 00453FE2
00453FBF MOV EDX, 4540A8 ; ASCII "UnRegistered"

ِ‫اٍ يالغ‬ٜ‫ سػاب ايػط‬١َٝ‫اضظ‬ٛ‫ٌ خ‬ًٝ‫ حت‬: ً‫ ضابعا‬.4


: ‫ىخض خڀعدڀُص‬٥‫بٌن فبد ٔسٷ وٕعىعؿ وىخَِڄُص لٕدذ خڀَُٕدپ وٴٷ خػب‬

.) Hex ‫ىً خڀعمىَٿ بذل‬٬ ‫ىپ خالٔڃ هبر ؤن َٽىن لُٴٌن ؤو ؤټؽُ (ألن خڀربودڄؿ وبٍٲ خغبُٲ خألوًن‬٤ )1

. RobenCrackMe1ForElite01 : ‫ خؼبٵعدق‬٫‫ ڄ‬DES ‫ص وىخَِڄُص‬٥ٔ‫ٵًن خڀىدظؿ زىخ‬ٙ‫) ظ‬2

.Hex ‫ٵًن بذل‬ٙ‫) ربىَٿ ودظؿ خڀع‬3

.Upper Case ‫) ربىَٿ خڀىدظؿ بذل ؤلُٲ ټسًنش‬4

.‫ځً ؤٌ ڀٱص زُؾبص ذبًٌُد‬٬ ‫هد‬٥‫ ويبٽه ؤن ظٕٹ‬،‫مُك‬ٝ‫ٌٍي خػبىخَِڄُص غبٕدذ خڀَُٕدپ خڀ‬

ٔ‫ذ‬ٝ‫ ايه‬١‫ نتاب‬: ً‫ خاَػا‬.5


: ) ‫ُٿ خڀَُٕدپ ( خڀٕىَْ ټىي ڄُٴٷ‬ٝ‫ص زعم‬ٜ‫ُٵُش خػبد‬ٙ‫ ؤىٽعر خڀ‬Delphi 7 ‫ٔىٕعىًڂ ٌىد ڀٱص‬

Procedure TForm1.GetSerialClick(Sender: TObject);


Var
I :Integer ;
UName,HexName, Key, StrDES, StrHEX: String;
begin
StrHEX:='';
UName := TXTName.text ;
If Length(UName ) < 2 Then { ‫} التحكل مً طْل األضه املدخل‬
Begin
TXTSerial.Text := ' Name Must Be >= 2 ';

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ 2009 130
AT4RE :‫انفريك انعرتي نههُذسح انعكسيح‬ ‫انرشفيـــــــــــــــــــــر‬ .‫ خطىج إنى األياو‬:‫انهُذسح انعكسيح‬

Exit;
End;
For I:=1 To ( Length(UName)-1 ) do
Begin
HexName:= HexName + IntToHex(Ord(UName[I]),2); { ‫حتْٓل االضه إىل ىظاو الطت٘ عشسٖ ماعدا احلسف األخري‬
}
End;
Key:= 'RobenCrackMe1ForElite01';
StrDES:= EncryStr( HexName, Key ); { ‫} تشفري الياتج‬
For I:=1 To Length(StrDES) do
Begin
StrHex:= StrHex + IntToHex(Ord(StrDES[I]),2); { ‫} حتْٓل الياتج إىل ٍٔكظ‬
End;
TXTSerial.Text := UpperCase (StrHex); { ٗ‫} حتْٓل إىل أحسف كبري‬
End;

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ 2009 131
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرشفيـــــــــــــــــــــر‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫خوارزمية اجلنل‬
‫‪ElGamal Algorithm‬‬

‫‪َ .1‬كسَ‪١‬‬
‫وٹًڂ ٌىد ُ٘لدً ڄسٕ‪٥‬دً ػبىخَِڄُص خڀع‪ٙ‬ٵًن خعبمٿ ‪ ElGamal‬ڄه والپ ڄؽدپ ‪٬‬مځٍ‪ ،‬مث ٔىع‪ُ٥‬ٶ ڀٽُٵُص ټعدزص ټُفه ڀځعمَُه‪.‬‬

‫ؤُ‪ٙ‬عمٿ ٌٍخ خڀ‪ُٙ‬ق ‪٬‬ځً خڀىٹد‪ ٢‬خڀعدڀُص ‪:‬‬

‫‪ )1‬حملة موجشة عً خوارسمية التشفري ‪.ElGamal‬‬

‫‪ )2‬حملة موجشة عً املكتبة ‪.FGInt‬‬

‫‪ )3‬الترليل العاو للتنزيً‪.‬‬

‫‪ )4‬حتليل الكور مً خالل بزىامخ ‪.OllyDbg‬‬

‫‪ )5‬حتليل الثوابت وإجيار املفتاح اخلاص باخلوارسمية‪.‬‬

‫‪ )6‬كتابة الكيحً‪.‬‬

‫‪ElGamal‬‬ ‫‪ .2‬أ‪ٚ‬الً ‪ :‬حمل‪َٛ ١‬دع‪ ٠‬عٔ خ‪ٛ‬اضظَ‪ ١ٝ‬ايتؿؿرل‬

‫‪َ .2.1‬عً‪َٛ‬ات عاَ‪١‬‬

‫مت ظ‪٥‬ىَُ وىخَِڄُص خعبمٿ ( ‪ ) ElGamal‬يف ڄهظربخض ‪ Hewlett –Packard Labs‬يف ټدڀُٵىَوُد يف خڀىالَدض‬
‫خؼبعمًش خألڄَُٽُص ‪٬‬ځً ًَ خڀ٭ددل خؼب‪٤" ٌُٝ‬دٌُ خعبمٿ" ‪ Taher ElGamal‬وڀٍڀٻ ظبُط خػبىخَِڄُص زدظبً‪.‬‬
‫ظىًَؾ وىخَِڄُص خعبمٿ ربط ‪٬‬ىىخن ټسًن‪َ :‬٭ُٲ زدٔڃ‪ :‬ـب‪ ٣٥‬خڀع‪ٙ‬ٵًن زدؼبٵعدق خڀ٭دڂ ‪Public-Key Encryption‬‬
‫‪ . Scheme‬وظٕعىًڂ ټٹد‪ً٬‬ش ؽبد‪. Discrete algorithm problem & Diffie-Hellman Problem :‬‬
‫و٭عٹً ؤن خؼب‪٥ٝ‬ځمٌن خألوًنَه حبدـص بذل خوع‪ٝ‬د‪ ٍٜ‬يف خڀ٭ځىڂ خڀَُد‪ُ٠‬ص ڀ‪ُٙ‬لهمد‪ ،‬وٌٍخ ڀُٓ ـىٌُ ڄى‪٠‬ى‪٬‬ىد‪.‬‬
‫خألڄُ خؼبهڃ يف ٌٍي خػبىخَِڄُص ٌٍ خٔعىًخڄهد ؼبى‪ ٣٥‬خڀعىٸُ‪ ٫‬خڀُٸمٍ‪ ،‬وخڀٌٍ َ٭ُٲ زدالٔڃ‪Digital Signatures :‬‬
‫‪ . Scheme‬وٌٍي ظٕعىًڂ غبمٿ خڀ‪٥‬دز‪ ٫‬خڀ‪ٙ‬ى‪ ٍٝ‬ڀځ‪ٙ‬ى‪ ٛ‬خڀٌٍ ٸدڂ زدڀع‪ٙ‬ٵًن‪ ،‬وپؼبى‪ ٫‬ڄه خڀ٭سػ زدڀُٔدڀص خؼب‪ٙ‬ٵُش‪.‬‬
‫ٌٍخ خؼب‪٥ٝ‬ځك ز‪ُٙ‬لً خڀٕدزٷ َى‪٥‬سٷ ز‪ٙ‬ٽٿ ؤټرب ‪٬‬ځً ‪٬‬مځُدض خڀىٹٿ خإلڀٽعُوين ‪٬‬رب خڀىَر‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪132‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرشفيـــــــــــــــــــــر‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ .2.2‬ؾطح ث‪ٛ‬ابت ارت‪ٛ‬اضظَ‪ ١ٝ‬ايعاَ‪ٚ ١‬ارتاق‪١‬‬

‫ټمد ٔسٷ وٌټُود ٴةن خػبىخَِڄُص ظىًَؾ ربط زىً‪ :‬وىخَِڄُدض خڀع‪ٙ‬ٵًن زدؼبٵعدق خؼب٭ځه ؤو خڀ٭دڂ‪.‬‬

‫و ٌٍخ َ٭ين ؤن خػبىخَِڄُص ظٕعىًڂ ظىڀُٵص ڄه خؼبٵدظُك خڀ٭دڄص ( ‪ ) Public‬وخػبد‪ٜ‬ص ( ‪.) Private‬‬

‫ڀىسًؤ خِن زع٭َُٳ ؼىخزط خػبىخَِڄُص يون خڀًوىپ يف خؼب٭ديالض خڀَُد‪ُ٠‬ص ‪:‬‬

‫انزيش ( ‪ : ) P‬وٌى ڄٵعدق ‪٬‬دڂ ( ؤٌ ؤوً ڄ٭ځه وڄىـىي يخوٿ خڀربودڄؿ ) وهبر ؤن َٽىن ٌٍخ خؼبٵعدق ‪٬‬سدَش ‪٬‬ه ‪ً٬‬ي ؤورل وټسًن‬
‫وى‪٬‬دً ڄد؛ ڀُمٹٷ ظ‪ٙ‬ٵًن ڄعٌن ڀځسُدودض‪.‬‬

‫انزيش ( ‪ : ) Y‬ڄٵعدق ‪٬‬دڂ ( ؤٌ ؤوً ڄ٭ځه وڄىـىي يخوٿ خڀربودڄؿ ) وًَ‪. Power : ً٬‬‬

‫انزيش ( ‪ : ) G‬ڄٵعدق ‪٬‬دڂ ( ؤٌ ؤوً ڄ٭ځه وڄىـىي يخوٿ خڀربودڄؿ ) وًَ‪. Base : ً٬‬‬

‫انزيش ( ‪ : ) X‬خؼبٵعدق خػبد‪ ( ٚ‬وڀً ؤنبُص زدڀٱص يف ٴٻ خڀع‪ٙ‬ٵًن وڄهڃ ـًخً يف لٕدذ خڀعىخٸُ‪ ٫‬خڀُٸمُص )‪.‬‬

‫انزيشيٍ ( ‪ : ) a , b‬وًَ‪ُ٬‬دن زدڀعىخٸُ‪ ٫‬خڀُٸمُص ونبد خؼبٕاوالن ‪٬‬ه خڀعإټً ڄه خڀُٔدڀص خؼب‪ٙ‬ٵُش‪ ،‬وَعڃ لٕدهبڃ خ‪٪‬سبديخً ‪٬‬ځً‬
‫خؼبٵعدق خػبد‪. ) X ( ٚ‬‬

‫انزيش ( ‪َ : ) K‬ٸڃ ‪ٙ٬‬ىخجٍ ٰدڀسدً وبمٿ خڀٹُمص ‪ 1‬وًَ‪. Passphrase : ً٬‬‬

‫بٌخ ڄه والپ خڀ٭ُ‪ ٞ‬خڀٕدزٷ ڀځؽىخزط ‪ :‬قبً ؤن خڀٹُمص خڀىلًُش خجملهىڀص ٌٍ ‪ :‬خؼبٵعدق خػبد‪ X ٚ‬و‪َ a, b‬عڃ لٕدهبد ڄه‬
‫والڀً‪.‬‬
‫إلهبدي ٌٍخ خؼبٵعدق خ‪٬‬عمديخً ‪٬‬ځً خڀٹُڃ خؼبعىٴُش ڀًَىد كبه حبدـص بذل ظ‪٥‬سُٷ خؼب٭ديڀص خڀعدڀُص وخجملهىپ خڀىلًُ ٴُهد ٌى ‪: X‬‬

‫‪Y = G ^ X Mod P‬‬


‫ٌىدٺ ‪ً٬‬ي ڄه خڀربؾبُدض خڀيت ربٕر ڀٻ ٸُمص ‪ X‬زىدءً ‪٬‬ځً خؼب٭ديڀص خڀٕدزٹص‪ ،‬و‪٤‬س٭دً خألڄُ َٕعٱُٶ وٸعدً ؤټرب ټځمد ټربض‬
‫ٸُمص ٌٍي خڀٹُڃ ( ‪.) P,G,Y‬‬
‫و ڄه ٌٍي خڀربؾبُدض وٍټُ ‪DLP Tool )Discrete Logarithm Problem ( :‬‬

‫وٌىدٺ ظ‪٥‬سُٷ ‪٬‬ځً خإلوعُوط ڄه والپ خؼبىٸ‪ ٫‬خڀعدرل ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪133‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرشفيـــــــــــــــــــــر‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪FGInt‬‬ ‫‪ .3‬ثاْ‪ٝ‬اً ‪ :‬حمل‪َٛ ١‬دع‪ ٠‬عٔ َهتب‪١‬‬

‫‪َ .3.1‬عً‪َٛ‬ات عاَ‪١‬‬

‫ظ٭عرب خؼبٽعسص ‪ FGInt‬وولًخهتد خڀربؾبُص خؼبُٴٹص ڄ٭هد ڄالٌخً ـًُخً ؼبربڄؿٌ يڀٵٍ ڀٽعدزً ظ‪٥‬سُٹدض ظٕعىًڂ ز٭‪ ٟ‬وىخَِڄُدض‬
‫خڀع‪ٙ‬ٵًن وخؽبدُ٘ىٯ‪.‬‬
‫ال َهًٲ ُ٘لىد بذل ظىدوپ خؼبٽعسص جبمُ‪ ٫‬بڄٽدوُدهتد‪ ،‬زٿ ٔىُټّ ‪٬‬ځً خألڄىَ خڀيت زب‪ٝ‬ىد يف ئَىد ٌٍخ‪.‬‬
‫ظإيت خؼبٽعسص ڄ‪ ٫‬خؼبځٵدض خڀعدڀُص ‪:‬‬
‫‪FGInt.pas – FGIntElGamal.pas – FGIntPrimeGeneration.pas‬‬

‫زدإل‪٠‬دٴص بذل خڀ٭ًًَ ڄه خؼبځٵدض خڀيت ال هتمىد ٌىد‪.‬‬

‫يف ئَىد ٌٍخ ٔىٕعىًڂ خؼبځٵٌن خألوپ وخڀؽدين‪ ،‬ؤڄد خڀؽدڀػ (‪ )FGIntPrimeGeneration.pas‬ٴهى َٕعىًڂ ڀعٽىَه‬
‫خؼبٵدظُك خڀ٭دڄص وخػبد‪ٜ‬ص‪ ،‬ڄ‪ ٫‬ؤن ٌىدڀٻ ز٭‪ ٟ‬خڀربؾبُدض خڀيت ظٹىڂ هبٍخ خألڄُ وؤوط ظٕعىًڂ خڀٹُڃ ـدٌّش ( ڄُٴٷ ڄ‪ ٫‬خڀًَْ‬
‫خڀربودڄؿ ‪ ElGamal :‬وخڀٌٍ َىـً ڀٻ خڀٹُڃ خڀٕدزٹص )‬

‫‪ .3.2‬ايتعطف عً‪ ٢‬إدطا‪ٝ٥‬ات اي‪ٛ‬سس‪FGIntElGamal.pas ٠‬‬

‫ڀىٹڃ زٵعك خڀىقيش ڄه والپ زُحص خڀع‪٥‬ىَُ يڀٵٍ ( ڄه ال يبځٻ يڀٵٍ يبٽىً ٴعمهد زإٌ ؿبَُ و‪. ) ٍٝ‬‬
‫ڀىعدز‪ ٫‬خِن خإلـُخجُدض خؼبهمص يف ئَىد ٌٍخ ‪:‬‬

‫‪Procedure‬‬ ‫‪ElGamalEncrypt‬‬ ‫‪(P :‬‬ ‫;‪String‬‬ ‫;)‪Var g, y, k, modp : TFGInt; Var E : String‬‬
‫‪Procedure‬‬ ‫‪ElGamalDecrypt‬‬ ‫‪(E :‬‬ ‫;‪String‬‬ ‫;)‪Var x, p : TFGInt; Var D : String‬‬
‫‪Procedure‬‬ ‫‪ElGamalSign‬‬ ‫‪(M :‬‬ ‫;‪String‬‬ ‫;)‪Var p, g, x, k : TFGInt; Var a, b : String‬‬
‫‪Procedure‬‬ ‫‪ElGamalVerify‬‬ ‫‪(Var‬‬ ‫‪g, y, p‬‬ ‫;)‪: TFGInt; a, b, M : String; Var ok : Boolean‬‬

‫ڄَُه خڀؽدڀػ وخڀُخز‪: ٫‬‬


‫بٌن ٌٍي ٌٍ خإلـُخجُدض خؼبٕعىًڄص يف خؼبٽعسص‪ ،‬و َهمىد ڄىهد يف ٌٍخ خڀط‬
‫‪َٕ o‬عىًڂ خإلـُخء خڀؽدڀػ ‪ ElGamalSign‬يف بهبدي خڀعىخٸُ‪ ٫‬خڀُٸمُص ‪ a,b‬وخجملهىپ خڀىلًُ ٌىد ٌى ‪. X‬‬

‫‪َٕ o‬عىًڂ خإلـُخء خڀُخز‪ ElGamalVerify ٫‬يف خڀعمٹٷ ڄه ‪ٜ‬مص خڀُٔدڀص خؼب‪ٙ‬ٵُش خ‪٬‬عمديخً ‪٬‬ځً خڀعىخٸُ‪ ٫‬خڀُٸمُص‬
‫‪. a,b‬‬

‫ٔىٱى‪ ٚ‬ٸځُالً يف خإلـُخء خڀُخز‪: ElGamalVerify ٫‬‬

‫ڄه ظ٭َُٳ خإلـُخء قبً ؤوً َٕعىًڂ خڀسدَوڄُعُخض خڀعدڀُص ‪:‬‬

‫‪ : G , Y , P‬خڀٍَه ‪ُ٬‬ٴىدٌڃ يف خؼبٹًڄص‪ ،‬وڀٽه خوعسً بذل ؤوً َ٭ُٴهڃ ‪٬‬ځً ؤهنڃ ڄه خڀ‪ٝ‬ىٳ ‪ TFGInt‬وڀٽه ڄدٌى خڀ‪ٝ‬ىٳ‬
‫‪ TFGInt‬؟‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪134‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرشفيـــــــــــــــــــــر‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫يف خغبٹُٹص ٌى ‪ٜ‬ىٳ ظٵهمً وظع٭دڄٿ ڄ٭ً خؼبٽعسص ‪ FGInt‬ٴإوط ظٹًڂ ؽبد خڀُٸڃ ‪ Decimal ٌُٙ٬‬وٌىدٺ ظىخز‪ ٫‬ربىڀً بذل خڀ‪ٝ‬ىٳ‬
‫‪ ، TFGInt‬وڀٵهڃ ؤټؽُ ؽبٍي خڀ٭مځُص ي‪٬‬ىود وځٹٍ و‪ُ٩‬ش ‪٬‬ځً خڀىلًش ‪: FGInt.pas‬‬
‫…‬
‫…‬
‫;)‪Procedure ConvertBase256StringToHexString (Str256 : String; Var HexStr : String‬‬ ‫}‪{1‬‬
‫;)‪Procedure ConvertHexStringToBase256String (HexStr : String; Var Str256 : String‬‬ ‫}‪{2‬‬
‫…‬
‫;)‪Procedure Base10StringToFGInt (Base10 : String; Var FGInt : TFGInt‬‬ ‫}‪{3‬‬

‫و }‪ :{2‬ظٕعىًڂ ڀځعمىَٿ زٌن خڀٹد‪ً٬‬ش ‪ 256‬وخڀٹد‪ً٬‬ش ‪.16‬‬ ‫خإلـُخءخض }‪{1‬‬ ‫‪-‬‬

‫‪ -‬خإلـُخء }‪َٕ :{3‬عىًڂ ڀځعمىَٿ ڄه خڀٹد‪ً٬‬ش خڀ٭‪َُٙ‬ص بذل خڀ‪ٛ‬وٳ ‪ TFGint‬وٌٍ ڄد ٔىٕعىًڄً يف ټعدزص ټُفه ؽبٍخ خڀعمَُه‪.‬‬

‫ڀىعدز‪ ٫‬ڄ‪ ٫‬خإلـُخء ‪: ElGamal Verify‬‬


‫‪ ‬خوعسً ؤن وُؾ ٌٍخ خألـُخء ( ‪ٌ ) OK‬ى ٸُمص ڄى‪٥‬ٹُص ( و٭ڃ وال ) ‪.) True , False ( ،‬‬

‫‪ ‬بٌخ ټدوط خڀعىخٸُ‪ ٫‬خڀُٸمُص ‪ٜ‬مُمص ڄه خـٿ خڀُٔدڀص خؼب‪ٙ‬ٵُش ‪ M‬ٴدڀىدظؿ ٌى و٭ڃ ؤو ‪ True‬ؤو ‪1‬‬

‫‪ ‬بٌخ ټدوط خڀعىخٸُ‪ ٫‬خڀُٸمُص ًٰن ‪ٜ‬مُمص ڄه ؤـٿ خڀُٔدڀص خؼب‪ٙ‬ٵُش ‪ M‬ٴدڀىدظؿ ٌى ال ؤو ‪ False‬ؤو ‪. 0‬‬

‫ڀىىّپ ڀألٔٵٿ ٸځُالً يف خڀىلًش ‪: FGIntElGamal.pas‬‬


‫‪ٔ ‬ىالل‪ ٧‬ظ٭ځُمدض خإلـُخء ‪: ElGamalSign‬‬

‫‪‬‬
‫;)‪Procedure ElGamalSign(M : String; Var p, g, x, k : TFGInt; Var a, b : String‬‬
‫…‬
‫;)‪FGIntToBase256String(temp1, a‬‬
‫…‬
‫;)‪FGIntToBase256String(temp3, b‬‬
‫;‪End‬‬

‫ووالل‪ٌ ٧‬ىد ؤن خڀسدَوڄُعُخض خؼب‪٥‬ځىزص ٌٍ ( ‪ ) P,G,X,K‬وټځهد ڄ٭ځىڄص ڀًَىد ڄد‪ً٬‬خ ‪ X‬ڄ‪٥‬ځىذ لٕدزً‪.‬‬

‫ټمد والل‪ ٧‬ؤن وُؾ ٌٍخ خڀعدز‪َ ٫‬ٽىن يف خڀٹد‪ً٬‬ش ‪.) Base 256 ( 256‬‬

‫‪ .4‬خايجاً ‪ :‬ايتشً‪ ٌٝ‬ايعاّ يًتُط‪ٜٔ‬‬

‫ڀًي ٴم‪ ٛ‬خڀعمَُه زربودڄؿ ‪ PEID‬وؤلً ب‪٠‬دٴعً خؼبٕد‪ً٬‬ش وٌٍ ‪ٔ Kanal‬ىفً ‪:‬‬
‫خڀربودڄؿ ڄربڄؿ زځٱص ‪ Delphi‬وٌى ًٰن ڄ‪١‬ٱى‪ ٢‬ؤو ڄ‪ٙ‬ٵُ‪.‬‬
‫خڀربودڄؿ َٕعىًڂ ظىخز‪ ٫‬ظ‪ٙ‬ٵًن ‪ًًَ٬‬ش‪ ،‬وڄه والپ خؼبٹًڄص خڀٕدزٹص قبً ؤن ؤنبهد ڄد َځٍ ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪135‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرشفيـــــــــــــــــــــر‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪Base 10 To FGInt ‬‬


‫‪FGIntElGamalVerify ‬‬

‫وڀًي خٔعٽ‪ٙ‬دٲ خڀربودڄؿ زربودڄؿ ‪ ، DEDE‬وټىن خڀعمَُه ال وبعىٌ ‪٬‬ځً ؤَِخَ ٴهى َٹدَن زٌن خڀَُٕدپ خؼبًوٿ وخڀَُٕدپ خڀ‪ٝ‬مُك‬
‫‪٬‬ىً خغبًغ ‪ ، MKEYChange‬ويوځىد بڀًُ وظإټًود ڄه ٌڀٻ وؤوٍود ‪٬‬ىىخن خڀسًخَص ؽبٍخ خألـُخء ‪:‬‬

‫‪OllyDbg‬‬ ‫‪ .5‬ضابعا ‪ :‬تحي‪ ٌٝ‬ايه‪ٛ‬ز َٔ خالٍ بطْاَر‬


‫‪ -‬كبمٿ خڀعمَُه يخوٿ زُودڄؿ ‪ OllyDbg‬ووًوٿ خؼب٭ځىڄدض ټمد يف خڀ‪ٝ‬ىَش خڀعدڀُص ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪136‬‬
AT4RE :‫انفريك انعرتي نههُذسح انعكسيح‬ ‫انرشفيـــــــــــــــــــــر‬ .‫ خطىج إنى األياو‬:‫انهُذسح انعكسيح‬

:‫ أكبدوپ ظٱًُن خڀَُٕدپ‬00455A88 ‫ىً خڀ٭ىىخن‬٬ MKEYChange ‫ىً زًخَص خألـُخء‬٬ ‫ص ظىٸٳ‬٥‫ وٹ‬٫٠‫ مث وٹىڂ زى‬-

: ‫ خؽبدڄص‬٢‫ځً خڀىٹد‬٬ ٣‫ُ ٴٹ‬ٝ‫ ووٹع‬٫‫مځُص خڀععس‬٬ ً‫ ڄ٭د‬٫‫ىد وعدز‬٬‫ ڀٽه ي‬،‫َعىٸٳ خؼبىٹك ٌىد‬
00455A88 PUSH EBP ; ‫;زًخَص خإلـُخء‬
….
00455AE9 DEC EAX
00455AEA JGE SHORT 00455B45 ُ‫ٵ‬ٝ‫ خڀ‬٫‫ىپ خالٔڃ ڄ‬٤ ‫; ڄٹدَوص‬
….

00455B5B CMP EAX, 10 16 ٫‫ىپ خڀَُٕدپ ڄ‬٤ ‫; ڄٹدَوص‬


00455B5E JE SHORT 00455BB9

00455BB9 LEA EAX, [LOCAL.7] ; " Parameters : G "
00455BBC MOV EDX, 455DC4 ; ASCII "878977914"
…….
00455BCC CALL 004537FC ; Convert Base 10 to TFGInt
00455BD1 LEA EAX, [LOCAL.8] ; " Parameters : Y "
00455BD4 MOV EDX, 455DD8 ; ASCII "972424840"
……
00455BE4 CALL 004537FC ; Convert Base 10 to TFGInt

00455BE9 LEA EAX, [LOCAL.9] ; "Parameters : P "


00455BEC MOV EDX, 455DEC ; ASCII "4150976723"
…..
00455BFC CALL 004537FC ; Convert Base 10 to TFGInt
….
00455C16 MOV ECX, 8
00455C1B MOV EDX, 1
00455C20 CALL 004043A8
‫ ؤلُٲ ڄه خڀَُٕدپ‬8 ‫ؤوٍ ؤوپ‬
…..
00455C3D CALL 0043242C ; Convert Hex To Base 256
….
00455C45 MOV ECX, 10
00455C4A MOV EDX, 9

00455C4F CALL 004043A8 ‫ ؤلُٲ ڄه خڀَُٕدپ‬8 ُ‫; ؤوٍ آو‬


…..
00455C68 CALL 0043242C
…. ; Convert Hex To Base 256

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ 2009 137
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرشفيـــــــــــــــــــــر‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪00455C7C‬‬ ‫‪PUSH‬‬ ‫‪EAX‬‬ ‫' ‪; Push Name: ' Dr.RobenX‬‬


‫…‬
‫‪….‬‬
‫‪00455C86‬‬ ‫‪CALL‬‬ ‫‪00455584‬‬ ‫‪; ElGamalVerify‬‬
‫‪00455C8B‬‬ ‫‪CMP‬‬ ‫‪BYTE PTR SS:[EBP‬‬ ‫‪; IF ok = True ( 1 ) Then Registered‬‬
‫‪31], 1‬‬
‫‪00455C8F‬‬ ‫‪JNZ‬‬ ‫‪SHORT 00455CEF‬‬
‫‪……..‬‬
‫‪00455CA5‬‬ ‫‪MOV‬‬ ‫‪EDX, 455E00‬‬ ‫" ‪; ASCII " Registered To :‬‬
‫……‬
‫‪00455CEF‬‬ ‫‪MOV‬‬ ‫‪EDX, 455DA4‬‬ ‫"‪; ASCII "Unregistered Version‬‬

‫‪ .6‬خاَػا‪ :‬حتً‪ ٌٝ‬ايج‪ٛ‬ابت ‪ٚ‬إجياز املؿتاح ارتام بارت‪ٛ‬اضظَ‪١ٝ‬‬

‫لىت وٽىن وخٸ٭ٌُن يف خڀعمځُٿ ٴُفر خڀعىسًُ بذل ؤن خڀععس‪ ٫‬يف خؼبىٹك ال َٽٵٍ ڄد دل يبٽه ‪٬‬ىًٺ وځٵُص ـًُش يف ؼىخزط‬
‫خػبىخَِڄُص وبـُخجُدض خؼبٽعسص ‪ FGIntElGamal‬وٸىخ‪ ً٬‬خڀٹُڃ خڀيت ظع٭دڄٿ ڄ٭هد‪.‬‬
‫ٴځى ؤوٍود خألـُخء ‪: ElGamalVerify‬‬

‫‪Procedure ElGamalVerify‬‬ ‫‪(Var g, y,‬‬ ‫‪p‬‬ ‫‪:‬‬ ‫‪TFGInt; a, b, M‬‬ ‫‪:‬‬ ‫‪String; Var ok‬‬ ‫‪:‬‬ ‫;)‪Boolean‬‬

‫و ؤٔٹ‪٥‬ىدي ‪٬‬ځً خؼبىٹك ٔىعى‪ٜ‬ٿ بذل خڀٹُڃ خڀعدڀُص ‪:‬‬

‫‪G = 878977914‬‬
‫‪٤ -‬س٭دً ( ‪ : ) G, Y, P‬زدڀى‪٩‬دڂ خڀ٭‪ ٌُٙ‬وهبر ربىَځهد بذل خڀ‪ٝ‬ىٳ‬ ‫‪Y = 972424840‬‬
‫‪. TFGInt‬‬ ‫‪P = 4150976723‬‬
‫‪ : ) a, b ( -‬زدڀى‪٩‬دڂ خپٔعص ‪ ( ٌُٙ٬‬لٹٿ خڀَُٕدپ ال َٹسٿ بال‬ ‫=‪a‬‬ ‫ڄه‬ ‫ؤوپ ‪ 8‬ؤلُٲ‬
‫و‪٩‬دڂ ‪ , ) hex‬وهبر ربىَځهد بذل خڀٹد‪ً٬‬ش ‪ 256‬الٔعىًخڄهد يف‬ ‫خڀَُٕدپ‬
‫خإلـُخء ‪َ ( ElGamalSign‬خـ‪ ٫‬ظ٭ځُمدض ٌٍخ خإلـُخء‬
‫خين ‪ 8‬ؤلُٲ ڄه خڀَُٕدپ = ‪b‬‬
‫غ‬
‫ؤعالل‪ ٧‬خڀعمىَٿ يف خڀسًخَص ‪ 256‬بذل خڀ‪ٝ‬ىٳ ‪.) TFGInt‬‬
‫خالْڂ = ‪M‬‬

‫بٌن خڀَُٕدپ خڀ‪ٝ‬مُك يبؽٿ صب‪ ٫‬خڀٹُمعٌن ( ‪ ) a , b‬وڀٽه ټُٳ يبٽه خغب‪ٝ‬ىپ ‪٬‬ځً ٌٍي خڀٹُڃ ڄه والپ خالٔڃ ؟‬
‫ٌىد هبر ‪٬‬ځُىد خٔعىًخڂ خإلـُخء ‪ ElGamalSign‬خڀٌٍ َىعؿ ڀىد خڀٹُمعٌن ( ‪ ) a,b‬خڀ‪ٝ‬مُمعٌن ڀالٔڃ‪.‬‬
‫ڀىٕع٭ُ‪ٌٍ ٞ‬خ خإلـُخء وڀى‪ٙ‬دًٌ ڄد َىٹ‪ٝ‬ىد ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪138‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرشفيـــــــــــــــــــــر‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫;)‪Procedure ElGamalSign (M : String; Var p, g, x, k : TFGInt; Var a, b : String‬‬

‫ټٿ خڀٹُڃ ڄعىٴُش ڀًَىد زدٔعؽىدء خڀٹُمص ‪ X‬وإلهبدي ٌٍي خڀٹُمص ڀًَٻ بلًي خڀ‪َُ٥‬ٹعٌن خڀعدڀُعٌن ‪:‬‬

‫‪ .6.1‬ايطط‪ٜ‬ك‪ ١‬األ‪ٚ‬ىل ‪ :‬اغتدساّ بطْاَر ‪DLPTool‬‬

‫ٌٍخ خڀربودڄؿ وبٕر ڀىد ٸُمص ‪ X‬وڀٽىً َ‪٥‬ځر خڀٹُڃ زدڀى‪٩‬دڂ ‪ Hex‬وزعمىَٿ خألَٸدڂ بذل ‪ Hex‬قبً ‪:‬‬

‫‪G = 3464237A , Y = 39F60688 , P = F76AE0D3‬‬


‫وًوٿ ٌٍي خڀٹُڃ ټمد يف خڀ‪ٝ‬ىَش مث و‪١‬ٱ‪ Solve DLP ٣‬وخڀٌٍ َٹىڂ زع‪٥‬سُٷ خؼب٭ديڀص ‪Y = G ^ X Mod P :‬‬

‫ٸُمص ‪X = 81B33F7E ( Hex) = 2176008062 ( Decimal ) :‬‬ ‫و ٌٽٍخ كب‪ٝ‬ٿ ‪٬‬ځً‬

‫‪ .6.2‬ايطط‪ٜ‬ك‪ ١‬ايجاْ‪ : ١ٝ‬اغتدساّ امل‪ٛ‬قع‬

‫وخڀع‪٥‬سُٷ يف ٌٍخ خؼبىٸ‪َ ٫‬ٹسٿ خڀٹُڃ زدڀى‪٩‬دڂ خڀ٭‪: ٌُٙ‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪139‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرشفيـــــــــــــــــــــر‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪٤‬س٭دً خؼبًش خڀيت َٕعٱُٸهد لٿ خؼب٭ديڀص زبعځٳ لٕر ‪٤‬ىپ خؼبٵعدق خؼبٕعىًڂ‪ ،‬وٸً خٔعىًڄىد يف ٌٍخ خڀعمَُه ڄٵعدلدً ‪ٜ‬ٱًنخً وٕسُدً ز‪٥‬ىپ‬
‫‪٬‬ځُڃ‪ ،‬وخألڄُ ُٔٽىن ؤ‪ٜ‬٭ر زٽؽًن يف لدپ ‪. 1024 bits‬‬
‫‪ 32 Bits‬هبًٲ خڀط‬

‫‪ .7‬غازغاً ‪ :‬نتاب‪ ١‬ايه‪ٝ‬ذٔ‬

‫ٔىٕعىًڂ ٌىد ڀٱص ‪ Delphi 7‬ؤىٽعر خڀ‪ُٙ‬ٵُش خػبد‪ٜ‬ص زعم‪ُٝ‬ٿ خڀَُٕدپ ( خڀٕىَْ ټىي ڄُٴٷ ) ‪:‬‬

‫;)‪procedure TForm1.GetSerialClick(Sender: TObject‬‬


‫‪Var‬‬
‫; ‪FGInt_k, FGint_g,FGint_p,FGInt_x : TFGInt‬‬
‫‪str256_a,str256_b,strhex_a,strhex_b, g,p,X‬‬ ‫‪:‬‬ ‫‪String‬‬ ‫;‬
‫‪begin‬‬
‫‪If Length ( Tname.Text) < 1 then‬‬
‫‪begin‬‬
‫;'‪Tpass.text:= 'Name > 0‬‬ ‫} االضه ال جيْش أٌ ٓكٌْ فازغاً {‬
‫;‪Exit‬‬
‫;‪end‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪140‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرشفيـــــــــــــــــــــر‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫;'‪g:='878977914‬‬
‫;)‪Base10StringToFGInt(g,FGInt_g‬‬
‫;'‪p:='4150976723‬‬
‫;)‪Base10StringToFGInt(p,FGInt_p‬‬
‫;'‪X:='2176008062‬‬ ‫} إعداد الثْابت ّحتْٓلَا إىل ‪{ FGInt‬‬
‫‪Base10StringToFGInt(X‬‬ ‫;)‪,FGInt_x‬‬
‫;)‪Base10StringToFGInt('1',FGInt_k‬‬

‫;)‪ElGamalSign(tname.text,FGInt_p,FGInt_g,FGInt_x,FGInt_k,str256_a,str256_b‬‬
‫;)‪ConvertBase256StringToHexString(str256_a,strhex_a‬‬
‫;)‪ConvertBase256StringToHexString(str256_b,strhex_b‬‬
‫;‪Tpass.text:=strhex_a + strhex_b‬‬ ‫} الطسٓال اليَائٕ ‪{a+b‬‬
‫;‪end‬‬

‫‪ .8‬نًُ‪ ١‬ختاَ‪١ٝ‬‬

‫مت خڀع‪ُ٥‬ٶ ٌىد بذل خڀعمٹٷ ڄه خڀعىخٸُ‪ ٫‬خڀُٸمُص خػبد‪ٜ‬ص خبىخَِڄُص ‪ ElGamal‬وٌىدٺ ڄهمعٌن ب‪٠‬دٴُعٌن ظٹىڂ هبمد ٌٍي‬
‫خػبىخَِڄُص‪ ،‬ونبد‪ :‬خڀع‪ٙ‬ٵًن وٴٻ خڀع‪ٙ‬ٵًن‪ ،‬ؤُٽىن خألڄُ ٔهالً ‪٬‬ځُٻ بن ٴهمط خڀ‪ُٙ‬ق خڀٕدزٷ ‪.‬‬
‫ال َٽٵٍ ٌٍخ خڀ‪ُٙ‬ق ولًي إلَ‪ٝ‬دڀٻ بذل ڄٕعىيً ڄعٹًڂٍ‪ .،‬زٿ َىسٱٍ ‪٬‬ځُٻ خال‪٤‬ال‪ ٪‬وخڀٹُخءش ڀًَخٔص خؼبًَّ ڄه خألٔدڀُر‬
‫وخإلـُخجُدض خؼبعس٭ص يف خڀع‪ٙ‬ٵًن وٴٻ خڀع‪ٙ‬ٵًن وڄځمٹدهتد‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪141‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرشفيـــــــــــــــــــــر‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫استغالل خوارزمية‪ RSA‬يف ملتبة ‪RSACrypt‬‬


‫)‪Keygenning an RSA Target (1‬‬

‫‪َ .1‬كسَ‪ٚ ١‬تعاض‪ٜ‬ـ‬

‫حمل‪ ١‬عٔ خ‪ٛ‬اضظَ‪RSA ١ٝ‬‬ ‫‪.1.1‬‬

‫بن وىخَِڄُص ‪ RSA‬ظ٭ً وخلًش ڄه ؤټؽُ وىخَِڄُدض خڀع‪ٙ‬ٵًن خٔع٭مدالً يف ؾبدپ خغبدٔسدض‪ ،‬وٌٍ ‪٬‬سدَش ‪٬‬ه ‪Public_key_cipher‬‬
‫‪ٜ‬ممط يف ڄ٭هً ظٽىىڀىـُد ڄدٔدظ‪ٙ‬ىٔعٓ ‪ MIT‬خڀ‪ٙ‬هًن دبًَىص ټدڄربًَؾ ‪٬‬دڂ ‪. 1978‬‬

‫خالٔڃ ڄٹعسٓ ڄه خأللُٲ خألوذل ؼب‪ٝ‬ممٍ خػبىخَِڄُص خڀؽالغ‪Ron Rivest , Adi Shamir & Les Andleman :‬‬

‫ڄىٍ ظدََه ‪ 2000/9/20‬ؤ‪ٜ‬سمط ٌٍي خػبىخَِڄُص ڄعدلص ڀځفمُ‪ ٫‬ؾبدودً‪ ،‬ودل ظ٭ً لٽُخً ‪٬‬ځً لٽىڄص خڀىالَدض خؼبعمًش‪.‬‬

‫‪ .1.2‬ايتؿؿرل غرل املتْاظط‬

‫َ٭عمً خڀع‪ٙ‬ٵًن ًٰن خؼبعىد‪٬ ُ٨‬ځً ڄٵعدلٌن ال َ‪ٙ‬سً ؤلًنبد خِوُ وَ‪٥‬ځٷ ‪٬‬ځُهمد خٔڃ ‪ Public key‬و‪ Private key‬لُػ ؤن خؼبٵعدق‬
‫خڀ٭دڂ ڄعدق ڀځفمُ‪ ٫‬وزً َعڃ ظ‪ٙ‬ٵًن خڀسُدودض‪ ،‬وؤڄد خؼبٵعدق خخلخ‪ ٚ‬ٴُعڃ زً ٴٻ ظ‪ٙ‬ٵًن ظځٻ خڀسُدودض‪.‬‬

‫بٌن ڄه ‪٬‬مٿ ٌٍخ خألوًن َعسٌن ڀىد ؤوً هبر ‪٬‬ځُىد بوٵدئي‪ ،‬وڄه خظبً ټٍڀٻ ظ‪٩‬هُ ؤنبُعً‪.‬‬

‫وَٕمً خڀـ ‪ Public key‬زـ ‪ N‬وزً َعڃ ظ‪ٙ‬ٵًن خڀسُدودض‪.‬‬

‫وَٕمً خڀـ ‪ Private key‬زـ ‪ D‬وزً َعڃ ٴٻ ظ‪ٙ‬ٵًن خڀسُدودض‪.‬‬

‫‪َ .2‬جاٍ تطب‪ٝ‬ك‪ٞ‬‬


‫ٔى‪ُٙ‬ق ‪٬‬مځهمد دبؽدپٍ َٹُهبمد ڀألٌٌدن‪:‬‬

‫ٸدڂ ټُمي زع‪ٙ‬ٵًن ڄ٭ځىڄدض زدؼبٵعدق ‪ N‬مث ؤَٔځهد بذل ضبّش‪ .‬مث ٸدڂ ضبّش زٵٻ ظ‪ٙ‬ٵًنٌد وٌڀٻ زدؼبٵعدق ‪D‬؛ لُػ ؤن ظځٻ خؼب٭ځىڄدض ال‬
‫يبٽه ٸُخءهتد بال ڄه ٸسٿ ضبّش‪.‬‬

‫ٌٍخ ڄد وبًغ يف خڀربخڄؿ خڀيت ظ٭عمً يف ضبدَعهد ‪٬‬ځً ٌٍي خػبىخَِڄُدض‪ .‬وظ٭عرب ټٍڀٻ ڄه زٌن خػبىخَِڄُدض خألټؽُ ‪ٜ‬٭ىزص يف خڀٽُٕ‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪142‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرشفيـــــــــــــــــــــر‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ RSAencrypt‬وؤڄد خڀًخڀص‬ ‫يف ڄؽدڀىد خڀٌٍ كبه ز‪ًٝ‬ي ُ٘لً ٔىٕع٭مٿ ڄٽعسص خڀـ ‪ RSACrypt‬خڀيت ٔىٕعىًڂ ڄىهد خڀًخڀص‬
‫‪ RSAdecrypt‬ٴهٍ خؼبٕع٭مځص يف خڀربودڄؿ‪.‬‬

‫ػًههًا‪:‬‬

‫‪: RSAencrypt‬‬
‫ؽبٍي خڀًخڀص ؤَز‪ ٫‬زدَخڄعُخض‪ ،‬و‪٬‬مځهد ٌى ټدڀعدرل ‪:‬‬

‫‪C = ME mod N‬‬


‫لُػ ؤن ‪ٌ N‬ى خؼبٵعدق خڀ٭دڂ‪ ،‬و‪ٌ E‬ى خألْ وٸُمعً ٌٍ ‪ 65537‬زدڀًَٕمدپ و‪ 10001‬زدؽبٽٓ‪ ،‬و‪ ٌٍ M‬خڀُٔدڀص خڀيت وًَُ ظ‪ٙ‬ٵًنٌد‪،‬‬
‫وؤڄد ‪ C‬ٴهٍ خڀُٔدڀص ز٭ً خڀع‪ٙ‬ٵًن ‪.‬‬

‫‪: RSAdecrypt‬‬
‫ؽبٍي خڀًخڀص ټٍخڀٻ ؤَز‪ ٫‬زدَخڄعُخض‪ ،‬وڄسًؤٌد يف ٴٻ خڀع‪ٙ‬ٵًن ٌى ټدڀعدرل ‪:‬‬

‫‪M = CD mod N‬‬


‫لُػ ؤن ‪ٌ N‬ى خؼبٵعدق خڀ٭دڂ‪ ،‬و‪ٌ D‬ى خؼبٵعدق خػبد‪ ٚ‬وَٕع٭مٿ ڄٽدن خألْ ‪ ، E‬و‪ ٌٍ C‬خڀُٔدڀص خؼب‪ٙ‬ٵُش‪ ،‬و‪ ٌٍ M‬خڀُٔدڀص ز٭ً ٴٻ‬
‫خڀع‪ٙ‬ٵًن‪.‬‬

‫بٌن‪ :‬خڀًخڀص خألوذل ٌٍ خؼبىـىيش يف ڄؽدڀىد ٌٍخ‪ ،‬وٌٍخ زًَهٍ ألهند ظٕع٭مٿ ٸُمعٌن ڄ٭ُوٴعٌن ونبد ‪ N‬و‪ ، E‬وؤڄد خڀًخڀص خڀؽدوُص ٴهٍ زُط‬
‫خڀٹ‪ ًُٝ‬لُػ ؤهند ظٕع٭مٿ خڀٹُڃ ‪ N‬و‪.D‬‬

‫زدڀىٕسص ڀـ ‪ N‬ٴىمه و٭ُٴهد وؤڄد ‪ D‬ٴال و٭ځڃ ‪٬‬ىهد ُ٘حدً‪ .‬وڀځم‪ٝ‬ىپ ‪٬‬ځً خڀٹُمص ‪ D‬ٴةوىد وٹىڂ ز٭مځُص ‪ Factoring‬ؤٌ خڀعمځُٿ بذل‬
‫‪٬‬ىخڄٿ‪ ،‬وٌڀٻ زدأليخش ‪ Msieve‬ؤو خأليخش ‪.RSA Tool‬‬

‫ٔىسًؤ زع‪٥‬سُٹٍ ‪٬‬مځٍ ؤُٽىن ‪٠‬مُعىد خڀربودڄؿ خڀعفدٌَ‬


‫‪Amor SWF to Video Converter v2.9.9.5‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪143‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرشفيـــــــــــــــــــــر‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ PEiD‬ؤو ‪.AT4RE FastScanner‬‬


‫‪.OllyDbg‬‬
‫‪.QuickUnpack‬‬
‫‪.Msieve‬‬
‫‪.RSA Tool‬‬

‫‪٬‬ىً ٴعمٻ ؼبُز‪ ٫‬خغبىخَ خػبد‪ ٚ‬زدڀعٕفُٿ ُٔ‪٥‬ځر ڄىٻ يف خڀٹٕڃ خألوپ ټعدزص خظبٻ‪ ،‬ويف خڀٹٕڃ خڀؽدين ټعدزص ظ‪ٙ‬ٵًن الظبٻ؛ لُػ ؤوً‬
‫ُٔٹىڂ زٵٻ خڀعٗٴًن خؼبًوٿ وڄٹدَوعً ڄ‪ ٫‬خالٔڃ خؼبًوٿ‪ ،‬وٌڀٻ دبٕد‪ً٬‬ش خؼبٽعسص ‪ ،RSACrypt‬وٌٍي خألوًنش ٌٍ زُط خڀٹ‪ًُٝ‬؛ لُػ‬
‫ؤوٻ بٌخ ؤَيض ٴٻ ظ‪ٙ‬ٵًن و‪ ٛ‬ڄد ٴةوٻ ظٕع٭ٌن زـ ‪:‬‬

‫خألْ ‪ 63357‬زدڀًَٕمدپ‪ 10001 ،‬زدؽبٽٓ‪.‬‬


‫خؼبٵعدق ‪.N‬‬
‫وؤڄد بٌخ ؤَيض ظ‪ٙ‬ٵًن خڀى‪ ٛ‬ٴةوٻ ظٕع٭ٌن زـ ‪:‬‬

‫خؼبٵعدق ‪.N‬‬
‫خؼبٵعدق ‪.D‬‬
‫زدڀىٕسص ڀألْ ٴىمه و٭ُٴً‪ ،‬وخؼبٵعدق ‪ N‬ټٍڀٻ و٭ُٴً‪ ،‬وڀٽه خؼبٵعدق ‪ D‬ال و٭ُٲ ‪٬‬ىً ُ٘حد ٴهى ؾبهىپ!!‬

‫بٌن ڄد خغبٿ ؟ خغبٿ ‪ٌ :‬ى ‪٬‬مځُص ‪ Factoring‬ڀځمٵعدق ‪.N‬‬

‫زًخَص ي‪٬‬ىد وٹىڂ زٵٻ ‪٠‬ٱ‪ ٣‬خڀربودڄؿ زدڀربودڄؿ خڀ‪ٙ‬هًن ‪QuickUnpack‬؛ ألن خڀربودڄؿ خڀ‪١‬مُص ڄ‪١‬ٱى‪ ٢‬ټمد ؤو‪٠‬ك ڀىد زُودڄؿ‬
‫خڀٵم‪.PEiD ٛ‬‬

‫‪Krypto‬‬ ‫ز٭ً ٌڀٻ ڀىٹڃ زٵم‪ ًٝ‬ڄُش ؤوُي زربودڄؿ ‪ PEiD‬ڀى٭ُٲ ؤٌ ڄٽعسدض خڀع‪ٙ‬ٵًن َٕع٭مٿ وٌڀٻ زىخٔ‪٥‬ص خأليخش خؼبٕد‪ً٬‬ش‬
‫‪ ANALyzer‬خؼب‪١‬دٴص ڀربودڄؿ خڀٵم‪ ،PEiD ٛ‬وخڀىعُفص ټمد ظالل‪ : ٧‬بوً َٕع٭مٿ خؼبٽعسص ‪.FGint‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪144‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرشفيـــــــــــــــــــــر‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ْوٹىڂ زىٕه ڄد وُخي وڀ‪ٝ‬ٹً يف خؼبٵٽُش‪ ،‬وٌڀٻ زىخٔ‪٥‬ص خڀَّ ‪ Export‬خڀٌٍ ظُخي يف خڀ‪ٝ‬ىَش خڀٕدزٹص هبٍخ خڀىمى‪:‬‬

‫‪Export... ===> To Clipboard ===> list of items with references‬‬

‫خڀًخڀص خألوذل ‪ : Base10StringToFgint‬ظٹىڂ زدڀعمىَٿ ڄه خڀًَُٕمدپ بذل خڀـ ‪.FGint‬‬

‫وؤڄد خڀًخڀص خڀؽدوُص وخڀؽدڀؽص وخڀُخز٭ص ٴال ؤنبُص ؽبڃ ‪٬‬ىًود يف ًٌخ خڀًَْ‪ ،‬ٴىمه وًَُ ؤن و٭‪ُ٥‬ٻ خػبُ‪ ٣‬وؤوط ظٽمٿ خؼب‪ٙ‬ىخَ‪ ،‬ٴةن ظ٭ځمط‬
‫ُ٘حدً ـًًَخً ٴال ظسىٿ ‪٬‬ځُىد زً‪.‬‬

‫ڀىىٕه خڀ٭ىىخن ‪ 4D61E0‬وخڀ٭ىىخن ‪ 4D8644‬مث وععس٭همد يف ‪ OllyDbg‬خڀٌٍ َٹىيود بذل زًخَص خڀًخڀص ‪Base10StringToFgint‬‬
‫يف خڀ٭ىىخن خألوپ ټمد َ‪٩‬هُ يف خڀ‪ٝ‬ىَش خڀيت ؤڄدڄٻ ‪:‬‬

‫ٌٍي زًخزص خڀُوظٌن خػبد‪ ٚ‬زدڀـ‬

‫‪FGInt‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪145‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرشفيـــــــــــــــــــــر‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫وڀٽه ٌٍخ ڀُٓ ټٿ ٍ٘ء؛ ٴةن زُودؾبىد ڀه َعىٸٳ ‪٬‬ىً وٹ‪٥‬ص خڀعىٸٳ؛ ألوً َٹُؤ ڄ٭ځىڄدض خڀعٕفُٿ خڀيت ؤيوځعهد ٔځٵدً‪ ،‬وٌڀٻ ؤؼىدء ظىٵًُ‬
‫خڀربودڄؿ‪ ،‬وٌٍي خؼب٭ځىڄدض لٵ‪٩‬هد خڀربودڄؿ يف ڄځٳ ‪.swftovideo.ini‬‬

‫بٌن‪ :‬هبر ڄٿء ڄ٭ځىڄدض خڀعٕفُٿ إلو‪ٙ‬دء خؼبځٳ ټٍ َعٕهَّ ڀٻ خڀعىٸٳ ‪٬‬ىً خڀىٹ‪٥‬ص خڀ‪٩‬دٌُش يف خڀ‪ٝ‬ىَش‪.‬‬

‫لٕىد ٔىعىٸٳ ‪٬‬ىً ظځٻ خڀىٹ‪٥‬ص ڀى‪ٙ‬دًٌ وو٭ُٲ ڄه ؤٌ ‪٬‬ىىخن مت خٔعً‪٬‬دء ٌٍخ خڀُوظٌن؟‬

‫وٹ‪٥‬ص خڀعىٸٳ‬

‫و ٌٍخ ٌى خالْ زدڀًَٕمدپ‬

‫ٌىد ُٔعڃ خڀععس‪ ٫‬ټمد ٸځط‬

‫ٔىٌٍر بذل خپـ ‪ Stack‬مث زدڀَّ خأليبه ڀځٵإَش لبعدَ خڀسىً ‪ ، Follow in Disassembler‬وز٭ً خڀ‪١‬ٱ‪٬ ٣‬ځً ٌٍخ خػبُدَ ٔىٽىن ٌىد‬
‫ټمد ٌى وخ‪٠‬ك زدڀ‪ٝ‬ىَش ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪146‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرشفيـــــــــــــــــــــر‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ٌىد‬

‫ڀى‪ ٫١‬وٹ‪٥‬ص ظىٸٳ ‪٬‬ىً خڀ٭ىىخن ‪ 4D90D0‬ټٍ لبُؾ ڄه خڀُوظٌن خڀٌٍ ؤوٍود ٴٽُش ‪٬‬ه ڄدٌُص ‪٬‬مځً‪ ،‬مث ز٭ً ٌڀٻ وٹىڂ زدڀععس‪ ٫‬بذل ؤن‬
‫و‪ٝ‬ٿ بذل خڀ٭ىىخن ‪ 4D90E5‬خڀٌٍ ُٔ‪٩‬هُ ‪٬‬ىًي خؼبٵعدق ‪ N‬ټمد يف خڀ‪ٝ‬ىَش ‪:‬‬

‫ٌٍخ ٌى خؼبٵعدق ‪N‬‬

‫وبٌخ ظعس٭ىد ٸځُالً ٔىفً وًخءً آوُ َٕعً‪ ٍ٬‬خڀًخڀص ‪.Base10StringToFgint‬‬

‫بٌن‪ :‬وٕعىځ‪ ٛ‬فبد ٔسٷ زإن خؼبٵعدق ‪ُٔ N‬مىپ ټٍڀٻ بذل خڀـ ‪َ .FGint‬٭ين َعڃ ذبهُّ خؼبٵعدلٌن ڀ٭مځُص ٴٻ خڀع‪ٙ‬ٵًن‪.‬‬

‫لٕىدً ڀىٽمٿ‪ ...‬ز٭ً خڀععس‪ٔ ٫‬ىفً ؤوٵٕىد ‪٬‬ىً وٹ‪٥‬ص خڀعىٸٳ خػبد‪ٜ‬ص زدڀًخڀص ‪ RSAdecrypt‬ټمد ظ‪ٙ‬دًٌ يف خڀ‪ٝ‬ىَش ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪147‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرشفيـــــــــــــــــــــر‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ٌٍي زًخَص خڀُوظٌن‬


‫ڀځًخڀص‬
‫‪RSAdecrypt‬‬

‫ٔىٵ‪٫‬پ ټمد ٴ٭ځىد ٔدزٹدً؛ لُػ ٔىٹىڂ زدڀُـى‪ ٪‬بذل خڀىًخء خڀٌٍ َٕعً‪ٌٍ ٍ٬‬ي خڀًخڀص وٌڀٻ زىخٔ‪٥‬ص خڀـ ‪ ، Stack‬وز٭ًٌد ٔىٽىن ٌىد‬
‫‪:‬‬

‫ٌٍخ خڀ٭ىىخن َإيت ز٭ً‬


‫خٔعً‪٬‬دء خڀًخڀص‬
‫‪RSAdecrypt‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪148‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرشفيـــــــــــــــــــــر‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫بٌن‪ٌ :‬ىد َعڃ ٴٻ خڀع‪ٙ‬ٵًن‪ ،‬مث ظإيت ز٭ً ٌڀٻ ‪٬‬مځُص خؼبٹدَوص ؤٌ ڄٹدَوص خالٔڃ خؼبًوٿ ڄ‪ ٫‬خڀع‪ٙ‬ٵًن خڀٌٍ مت ٴٽً‪٘ .‬دًٌ خڀ‪ٝ‬ىَش خڀيت ظى‪٠‬ك‬
‫ٌڀٻ ‪:‬‬

‫ٌىد ُٔعڃ خَ٭دِ خإلمي خذل‬


‫‪ EAX‬ڀععڃ خؼبٹدَوص‬

‫ټمد ٌى ‪٨‬دٌُ يف خڀ‪ٝ‬ىَش ٴهىدڀٻ خٔعً‪٬‬دء ڀځمٹدَوص ز٭ًٌد ظإيت ٸٵّش ُ٘‪ُ٤‬ص‪ ،‬ؤٌ خٸٵّ بٌخ دل ظعمٹٷ خؼبٹدَوص وال ظٹٵّ بٌخ ربٹٹط خؼبٹدَوص‪.‬‬

‫بٌن ڄدٌخ ٔىٵ٭ٿ؟‬

‫ڄه والپ ڄد ٌټُودي ٔدزٹدً ‪٬‬ه ‪ RSAdecrypt‬و‪ٔ RSAencrypt‬ىٕع٭مٿ خڀًخڀص خڀؽدوُص‪ ،‬وٌٍ ‪ RSAencrypt‬خڀيت ظٹىڂ زع‪ٙ‬ٵًن‬
‫خالٔڃ‪ ،‬ڄ‪ ٫‬خڀ٭ځڃ ؤهند ظٕعىًڂ خؼبٵعدق ‪ D‬وٌٍخ خؼبٵعدق ؾبهىپ زدڀىٕسص بڀُىد! وٌىد َإيت يوَ خأليخش ‪.Msieve‬‬

‫ٔعٹىپ ‪ :‬ؼبدٌخ ٌٍي خأليخش ‪ Msieve‬؟ وڄد ٴدجًش خأليخش خألوُي ‪ RSA Tool‬؟‬

‫ٔىٹىپ ڀٻ ‪ :‬بن خأليخش خڀيت ٔىٲ وٕع٭مځهد ٔعُٕ‪ ٪‬ٸځُالً ‪٬‬مځُص خڀـ ‪ Factoring‬ؤع٭‪ُ٥‬ىد خڀُٸمٌن ‪ p‬و ‪ q‬ڀُعٕهَّ ڀىد لٕدذ‬
‫خؼبٵعدق ‪٬ D‬رب خأليخش ‪.RSA Tool‬‬

‫و‪ٙ‬ٽُ ڄربڄؿ ٌٍي خأليخش خؼبمُّش ًٰن ؤن ٴُهد ‪ُ٬‬سدً وخلًخً‪ ،‬وٌى ؤهند ال ظٕعٹسٿ بال خأل‪ً٬‬خي خڀ٭‪َُٙ‬ص‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪149‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرشفيـــــــــــــــــــــر‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ٌڀٻ وز‪ُٙ‬قٍ ٴالٍ٘ ټٍڀٻ‪.‬‬


‫ڄه ؤَخي خؼبًَّ ‪٬‬ه ټُٵُص خٔع٭مدپ ٌٍي خأليخش ٴدألن ‪ FoxZom‬ظٽٵٿ ذ‬

‫وٵعك خأليخش ‪ Msieve‬مث وىٕه ٴُهد خؼبٵعدق ‪ N‬خڀٌٍ ل‪ٝ‬ځىد ‪٬‬ځًُ ؤؼىدء خڀعىٹُك‪ ،‬وٌى‪:‬‬

‫=‪N‬‬ ‫‪111111918347621113761551267126198454426053267642844509165651820825173537473218924746426621953200773‬‬

‫خٔعٱُٶ خعبهدِ خڀٌٍ و٭مٿ ‪٬‬ځًُ يف خٔعىُخؾ خڀُٸمٌن ‪ p‬و ‪ q‬لىخرل ‪.11:35:53‬‬

‫بذل خِن ڀًَىد خڀُٸمٌن ‪ p‬و ‪ q‬ټمد َ‪٩‬هُ يف خڀـ ‪: LogFile‬‬

‫وخِن ټُٳ ٔىٕعىُؾ خؼبٵعدق ‪ D‬؟ خعبىخذ ‪٬ :‬رب خأليخش ‪.RSA Tool‬‬

‫٘ٱٿ خأليخش مث ٸڃ زىٕه خڀُٸمٌن ‪ p‬و ‪ q‬وز٭ًٌد خ‪٠‬ٱ‪٬ ٣‬ځً خڀَّ ‪ Calc.D‬ټمد َ‪٩‬هُ يف خڀ‪ٝ‬ىَش ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪150‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرشفيـــــــــــــــــــــر‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ٔى‪ُٙ‬ق ڀٻ ڄد مت ٴ٭ځً ‪:‬‬

‫ؤوالً‪ :‬لًيود خڀٹد‪ً٬‬ش خڀيت ٔىع٭دڄٿ ڄ٭هد‪ ،‬وٌڀٻ زدڀٌٍدذ بذل وُدَ خڀـ ‪ Number Base‬وخوعُدَ‪10‬؛ ألوىد وع٭دڄٿ ڄ‪ ٫‬ؤَٸدڂ زدڀى‪٩‬دڂ‬
‫خڀ٭‪.ٌُٙ‬‬

‫ؼدوُدً‪ :‬وٕىىد ټالً ڄه خڀُٸمٌن ‪ p‬و ‪ q‬يف خؼبٽدن خؼبى‪ ٛٝ‬ؽبمد‪ ،‬مث ‪٠‬ٱ‪٥‬ىد ‪٬‬ځً خڀَّ ‪ Calc.D‬غبٕدذ خؼبٵعدق ‪ D‬وٌٍخ ټٿ ٍ٘ء‪.‬‬

‫بٌن ڀًَىد ‪ N‬و ‪ ، D‬وڄدٌخ ز٭ً؟ خِن ٔعإيت زُؾبص خڀٽُفه‪ ،‬ؤىٹىڂ زربؾبعً زځٱص خڀًڀٵٍ‪ ،‬ؤىٕع٭مٿ ڀٍڀٻ خڀًخڀص ‪RSAencypt‬‬
‫وخؼبٵعدلٌن ‪ N‬و ‪ D‬ټمد ظ‪ٙ‬دًٌ ؤڄدڄٻ يف خڀ‪ٙ‬ٽٿ ‪:‬‬

‫ټمد َ‪٩‬هُ يف خڀ‪ٝ‬ىَش ‪ N ٌٍ N1‬و ‪ ، D ٌٍ D1‬وخڀًخڀص ‪ Base10StringToFGint‬ټمد ٌټُود آوٵدً ظٹىڂ زعمىَٿ خأل‪ً٬‬خي‬
‫‪C = M^D mod N‬‬ ‫خڀ٭‪َُٙ‬ص بذل خڀـ ‪ FGint‬وخڀًخڀص ‪ RSAencrypt‬ظٹىڂ هبٍي خڀ٭مځُص ‪:‬‬

‫‪ٌ M‬ى ‪ test‬وټٍڀٻ ٌى ‪ C‬ودبد ؤن خڀٹُمص ٔععٱًن ڀځمعٱًن ‪ test‬ز٭ً خڀًخڀص ‪ RSAencrypt‬ٴځُٓ ٌىدٺ ؤٌ ڄ‪ٙ‬ٽځص يف‬
‫ظٽُخَي‪.‬‬
‫‪ٌ e‬ى ‪ d1‬ز٭ً يخڀص خڀعمىَٿ بذل خڀـ ‪. FGint‬‬
‫‪ n1 ٌٍ n‬ز٭ً يخڀص خڀعمىَٿ بذل ‪. FGint‬‬
‫‪ test ٌٍ C‬ټمد َ‪٩‬هُ يف خڀ‪ٝ‬ىَش ‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪151‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرشفيـــــــــــــــــــــر‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ڀىٹڃ زعفُزص خڀربودڄؿ ‪:‬‬

‫وهبٍخ وٽىن ٸً خوعهُىد ڄه ُ٘ق ؤټؽُ خػبىخَِڄُدض خٔعىًخڄدً وُ٘ى‪٬‬دً‪ ،‬وڄ‪ ٫‬ڄُوَ خڀىٸط ٔعفً ؤوٻ ٸديَ ‪٬‬ځً ٴهڃ ٌٍي خػبىخَِڄُص‬
‫ؤټؽُ وؤټؽُ‪..‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪152‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرشفيـــــــــــــــــــــر‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ال‪ RSA‬يف ملتبة ‪FGIntRSA‬‬


‫استغالل خوارزمية ـ‬
‫)‪Keygenning an RSA Target (2‬‬

‫‪ .1‬املكسَ‪١‬‬

‫ُ٘ټص ‪Absolute‬‬ ‫ُٔعڃ ظ‪٥‬سُٷ ٌٍخ خڀًَْ ‪٬‬ځً زُخڄؿ‬


‫زُودڄؿ ‪Absolute sound recorder‬‬ ‫وزدڀعمًًَ‬

‫بن ټعدزص ټُفه ؽبٍخ خڀربودڄؿ ٰدَص يف خڀٕهىڀص ود‪ٜ‬ص بٌخ ‪ُ٬‬ٴىد ټُٵُص خڀع٭دڄٿ ڄ‪ ٫‬خڀربخڄؿ خڀيت ظٕعىًڂ وىخَِڄُدض خڀع‪ٙ‬ٵًن وٌٍخ ڄد‬
‫ٔىٹىڂ زعى‪ُ٠‬مً بن ٘دء خهلل‪.‬‬

‫‪ .2‬ؾشل ايدلْاَر‬
‫بن ؤٌڃ و‪٥‬ىش هبر ؤن ظٹىڂ هبد زًخَص ڀځع٭دڄٿ ڄ‪ ٫‬ؤٌ ًٌٲ ظًَُ ټُٕي ٌى يَخٔعً ٸسٿ زًء خڀع٭ٹر (‪ )Tracing‬زـ ‪ F8‬و‪F7‬‬
‫وٌٍي خػب‪٥‬ىش وَٰڃ ؤنبُعهد خڀسدڀٱص َٱٵځهد ټؽًن ڄه خڀىدْ‪.‬‬

‫وٌٍي خؼبُلځص ظعڃ ‪٬‬رب ؼالغ ؤيوخض‪ PEeditor :ٌٍ ،‬و ‪ PEID‬و ‪IDA‬‬

‫ٌٍي خؼبُلځص نٸىڂ هبد يخجمدً ‪٬‬ځمدً ؤهند ًٰن بڀّخڄُص‪ ،‬وڀٽىهد ٰدڀسدً ڄد ظىٴُ ‪٬‬ځُٻ خڀٽؽًن ڄه خعبهً وخڀىٸط‪.‬‬

‫خأليخش خألوذل ‪ : PEeditor‬وڄه والؽبد يبٽىٻ ڄ٭ُٴص ٌٿ خؼبځٳ ڄ‪ٙ‬ٵُ ؤڂ ال ؟ ويف خڀ٭ًًَ ڄه خغبدالض يبٽىٻ ڄ٭ُٴص وى‪٪‬‬
‫خڀع‪ٙ‬ٵًن لىت ٸسٿ زُخڄؿ خڀٵم‪ ٛ‬ټـ ‪ PEiD‬ؤو ‪ AT4RE FastScanner‬ټمد سبٽىٻ ڄه ڄ٭ُٴص خڀًوخپ خؼبٕعىَيش‬
‫خػبدَـص ‪٬‬ه خؼبٽعسدض خؼب٭عديش‪ ،‬وٌٍخ َٕهٿ ربًًَ خؼبٽعسص خڀيت ربعىٌ وىخَِڄُص خڀعمٹٷ ڄه خڀَُٕدپ‪.‬‬
‫سبٽىٻ ٌٍي خؼبُلځص ؤَ‪١‬د ڄه ‪٬‬مٿ ب‪٤‬الڀص ‪٬‬ځً ز٭‪ ٟ‬خڀٹُڃ خؼبهمص يف خڀـ ‪ PE Header‬وخڀيت ٸً ظُمًغ ڀٻ هتىُفًد يف‬
‫خعبهدِ‪ ،‬ټمد ٌى خغبدپ ڄ‪ Private exe Protector ٫‬ڄؽالً؛ ٴدڀُٕٽ‪ٙ‬ه خڀٽسًنش خڀيت َ‪ُ١‬ٵهد هتىؿ خعبهدِ ؤوظىڄدظُٽُدً‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪153‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرشفيـــــــــــــــــــــر‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫خأليخش خڀؽدوُص ‪ : PEiD‬وٌٍ ٰىُص ‪٬‬ه خپظ٭َُٳ‪ ،‬ڀٽه ڄد َهمىد ٌىد ٌى خأليخش خؼبٕد‪ً٬‬ش ‪ Plugin‬خؼب‪١‬دٴص ؽبد‪ ،‬وٌٍ ‪Kanal :‬‬
‫‪ Krypto Analyzer‬وخڀيت ٸً ظ٭‪ُ٥‬ٻ ز٭‪ ٟ‬خؼب٭ځىڄدض خڀيت ذب٭ځٻ ظعٹًڂ زـ ‪ 80‬ؤو ‪ % 90‬يف ټُٕٺ ڀځربودڄؿ لىت‬
‫ٸسٿ خڀى‪ٜ‬ىپ بذل خؼبىٹك‪ ،‬ټمد ٌى خغبدپ ڄ‪ًٌ ٫‬ٴىد خغبدرل ‪: Absolute sound recorder :‬‬

‫وظُصبعهد ؼبه دل َ‪ٝ‬ديٲ ٌٽٍخ ڄؽدپ ڄه ٸسٿ‪ :‬ؤن خڀربودڄؿ َٕعىًڂ ‪ RSA‬ټمد ظًپ ‪٬‬ځً ٌڀٻ خڀٽځمص ‪ RSAEncrypt‬ؤڄد خڀٽځمص‬
‫‪ FGint‬ٴع٭ين ؤن خڀربودڄؿ َٕعىًڂ خؼبٽعسص ‪ FGint‬ؤو ‪ FGintRSA‬ڀځع‪ٙ‬ٵًن‪ ،‬ونبد ڄٽعسعدن ڄ‪ٙ‬هىَظدن ‪٬‬ىً ڄربؾبٍ خڀًڀٵٍ ويبٽه‬
‫خغب‪ٝ‬ىپ ‪٬‬ځًُ ڄد ڄه ـىـٿ‪.‬‬

‫مت بَٴدٶ ڄٽعسص خڀـ ‪ FGint‬وخڀـ ‪ FGintRSA‬ڄ‪ ٫‬ڄُٴٹدض خڀٽعدذ‪.‬‬

‫‪ .3‬نػط ايدلْاَر‬
‫خأليخش خڀؽدڀؽص ‪٤ : IDA‬س٭دً ڀه و‪ ٫ُ١‬خڀىٸط يف زُدن ټُٵُص خڀى‪ٜ‬ىپ بذل خؼبٽدن خؼبهڃ يف وىخَِڄُص خڀعمٹٷ‪ ،‬ٴإټؽُود َٕع‪٫ُ٥‬‬
‫خڀى‪ٜ‬ىپ بڀُهد زٕهىڀص ‪٬‬ه ‪َُ٤‬ٷ ‪ OllyDbg‬ؤو لىت ‪. Dede‬‬
‫وٌٍي ‪ٜ‬ىَش خڀربودڄؿ ز٭ً خڀعمځُٿ خألورل ‪٬‬ىً خڀىٹ‪٥‬ص خؼبهمص وز٭ً ظٕمُص خڀًوخپ خؼبهمص ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪154‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرشفيـــــــــــــــــــــر‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪155‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرشفيـــــــــــــــــــــر‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ظالل‪٩‬ىن ؤن خڀًخڀص ‪ ٌٍ CHECK_SUBROUTINE‬ؤٌڃ ڄىٸ‪ٌ ٫‬ىد ڀٍخ ٔىًوٿ بڀُهد‪ .‬ؤعالل‪٩‬ىن ؤوً ال َىـً ٍ٘ء يبٽه‬
‫خٔعىعدـً ڄه خڀعمځُٿ خالٔعدظُٽٍ (‪ Static Analysis‬وٌى ربځُٿ خڀٻوي يون ظ٭ٹر)‪ ،‬ٴهٿ َعىـر ‪٬‬ځُىد خٔعىًخڂ خؼبىٹك؟ خعبىخذ‪:‬‬
‫ٸ‪٥‬٭دً ًال؛ ألوً ڄدِخپ ٌىدڀٻ خڀٽؽًن ڄه خؼبٵدـأض خڀيت ىبسإٌد ڀىد ‪!! IDA‬‬

‫ٔىٕعىًڂ يف ٌٍخ خڀًَْ ود‪ُٜ‬ص ‪ Flirt signatures‬پټه ٸسٿ ٌڀٻ ٌٍخ ُٔي ػبىخَِڄُدض خڀعمٹٷ ٸسٿ ؤٌ ظٱًُن‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪156‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرشفيـــــــــــــــــــــر‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ټىن خڀربودڄؿ ڄربڄؿ زځٱص خڀًڀٵٍ ٴٕىٕعٱٿ ٌٍي خڀىٹ‪٥‬ص‪ ،‬وخالٔعٱالپ َٽىن ټدڀعدرل ‪:‬‬

‫ٔعىُؾ ڀىد خڀىدٴٍش خڀٕمَُص ‪:‬‬

‫وٌٍخ ڄ‪٩‬هُ خؼبىٸ‪ ٫‬خؼبهڃ ز٭ً ظ‪٥‬سُٷ خإلڄ‪١‬دء ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪157‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرشفيـــــــــــــــــــــر‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫وٌٍخ ڄ‪٩‬هُ وىخَِڄُص خڀعمٹٷ ز٭ً ظ‪٥‬سُٷ خڀعىٸُ‪ ٫‬وٸً ؤ‪ٜ‬سك ؤَ‪١‬د ؤټؽُ و‪٠‬ىلدً ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪158‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرشفيـــــــــــــــــــــر‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫وخِن ٔىٕعٱٿ وٹ‪٥‬ص ؼدوُص‪ ،‬وٌٍ ؤن خڀربودڄؿ َٕعىًڂ خؼبٽعسص ‪ FGIntRSA :‬و ‪ FGInt‬وخالٔعٱالپ زىٵٓ خڀ‪َُ٥‬ٹص ڀٽه ٌٍي خؼبُش‬
‫زدوعُدَ خإلڄ‪١‬دءَه خؼبىخٴٹٌن ڀځمٽعسعٌن خڀٕدزٹعٌن‪.‬‬

‫مت بَٴدٶ صبُ‪ ٫‬خإلڄ‪١‬دءخض خؼب‪٥‬ځىزص يف خڀ‪ُٙ‬ق‬


‫ڄ‪ ٫‬ڄُٴٹدض خڀٽعدذ‪.‬‬

‫وخڀىعُفص ال ظعُٺ ؤٌ ٘ٻ يف بڄٽدوُص ‪٬‬مٿ ټُفه يون ب‪٤‬الٶ خؼبىٹك ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪159‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرشفيـــــــــــــــــــــر‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫*‪:‬‬

‫**‪:‬‬

‫***‪:‬‬
‫;)‪Procedure RSAEncrypt(P : String; Var exp, modb : TFGInt; Var E : String‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪160‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرشفيـــــــــــــــــــــر‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫لُػ ‪:‬‬

‫‪ٌ P‬ى خڀى‪ ٛ‬خؼبُخي ظ‪ٙ‬ٵًني زدپـ ‪ ( RSA‬يف لدڀعىد ٌى ‪ :‬خالٔڃ )‪.‬‬
‫‪ٌ Esp‬ى خألْ (‪ ( ) Exponent‬يف لدڀعىد ٌى ‪.) 65537 :‬‬
‫‪ٌ Modb‬ى زدٸٍ خڀٹٕمص ( ويف لدڀعىد ٌى ‪.) 175717224553016661212919810587:‬‬
‫‪ٌ E‬ى ٌخټُش خڀعىَّه خؼباٸط (‪ )Buffer‬خڀٌٍ ُٔعځٹً خڀىدظؿ خؼبُ‪ٙ‬ٵُ‪ ( :‬يف لدڀعىد ٌى خڀـ ‪ Buffer‬خڀٌٍ ُٔعځٹً خڀَُٕدپ‬
‫)‪.‬‬
‫وټمد ظ٭ځمىن ٴةن خڀع‪ٙ‬ٵًن زـ ‪ RSA‬وبٹٷ خؼب٭ديڀص ‪:‬‬

‫‪Pexp mod modb = E‬‬

‫الطسٓال = االضه ^ ‪ 65537‬مْد‪175717224553016661212919810587‬‬

‫زٹځُٿ ڄه خڀعمځُٿ ُٔعسٌن ڀٻ ؤن خڀًخڀص ‪ ٌٍ sub_49F368‬ڀځعمىَٿ ڄه ‪ String‬بذل ‪ً٬‬ي ټسًن ـًخً (‪ ) TFGInt‬وٌٍ ڄ٭ُٴص يف‬
‫‪ FGInt.pas‬ټدڀعدرل ‪:‬‬
‫;)‪Procedure Base10StringToFGInt(Base10 : String; Var FGInt : TFGInt‬‬

‫ڄىخٴٷ ڀً‪.‬‬
‫خً‬ ‫حبُػ ‪ٌ Base10‬ى ‪ string‬فبؽٿ ڀ٭ًي زدڀى‪٩‬دڂ خڀ٭‪ ٌُٙ‬و‪ٌ FGInt‬ى خڀـ ‪ Buffer‬خڀٌٍ ُٔعځٹً ‪ً٬‬يخً ټسًنخً ـًخً‬

‫****‪:‬‬
‫;)‪Procedure ConvertBase256to64(Const str256 : String; Var str64 : String‬‬

‫لُػ ‪:‬‬

‫‪ٌ Str256‬ى خڀـ ‪ string‬خؼبُخي ربىَځً ( يف لدڀعىد ٌى خڀَُٕدپ خڀىدظؿ ‪٬‬ه ‪.) RSAEncrypt‬‬
‫‪ٌ Str64‬ى ٌخټُش خڀعىَّه خؼباٸط (‪ )Buffer‬خڀٌٍ ُٔعځٹً خڀـ ‪ string‬خحملىپ‪.‬‬

‫وٌٍي ٸ‪٥‬٭ص خڀٽىي خڀٌٍ َىعؿ خڀَُٕدپ خڀ‪ٝ‬مُك (خڀٽُفه) ‪:‬‬


‫;)‪procedure TForm1.Gen(Sender: TObject; var Key: Word; Shift: TShiftState‬‬
‫‪var‬‬
‫;‪P , E , mySerial: string‬‬
‫;‪Modb, Exp : TFGInt‬‬

‫‪begin‬‬
‫;‪P := edName.Text‬‬
‫;)‪Base10StringToFGInt('65537', Exp‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪161‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرشفيـــــــــــــــــــــر‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫;)‪Base10StringToFGInt('175717224553016661212919810587', Modb‬‬
‫;)‪RSAEncrypt(P, Exp, Modb, E‬‬
‫;)‪ConvertBase256to64(E, mySerial‬‬
‫;‪edSerial.Text := mySerial‬‬
‫;‪end‬‬

‫‪ .4‬املطؾكات‬

‫خڀٽُفه وخڀٕىَْ ټىي ڄُٴٷ ڄ‪ ٫‬ڄُٴٹدض خڀٽعدذ‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪162‬‬
‫الباب الرابع‪ :‬أفلار وحلول بردلية يف اهليدسة العلسية‬

‫طريقة بردلة ‪ Patcher‬باألمسبلي‬


‫‪Coding a patcher in Assembly‬‬

‫ًٌخ خڀًَْ ڄٹًڂ بذل خؼبٕعىي خؼبعىٔ‪ ،٣‬و‪٬‬ځً ؤٔدْ ؤوٻ ٸً ٸمط زعى‪ُٝ‬ر‬
‫‪ MASM‬و ‪ RadAsm‬ؤو ‪ WinAsm‬وذبًُ خڀع٭دڄٿ ڄ٭هڃ‪.‬‬

‫‪.MASM + RadAsm or WinAsm‬‬


‫‪.OllyDbg‬‬
‫‪.LordPE‬‬
‫‪.AT4RE FastScanner v2.0‬‬
‫‪ WinHex‬ؤو ‪.HexWorkshop v5‬‬
‫‪.Table Extractor 1.34‬‬

‫ڄه ٌىد ظٕع‪ ٫ُ٥‬ربمُٿ خؼبُٴٹدض‪.‬‬

‫‪َ .1‬كسَ‪١‬‬
‫مت ظ‪٥‬سُٷ خڀًَْ ‪٬‬ځً زُودڄؿ ‪ X-Netstat 5.0‬ويبٽه ظ‪٥‬سُٹً ‪٬‬ځً ؤٌ زُودڄؿ آوُ‪.‬‬

‫‪163‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪َ .2‬طاسٌ ايسضؽ‬

‫لٕدذ ‪. offset‬‬
‫خغب‪ٝ‬ىپ ‪٬‬ځً ٸدڀر وظ٭ًَځً زىخٔ‪٥‬ص ‪. RadAsm‬‬
‫خڀع٭ُٲ ‪٬‬ځً خڀًوخپ خألٔدُٔص خؼبٕع٭مځص يف زُؾبص ‪. Patch‬‬
‫خڀ‪ُٙ‬و‪ ٪‬يف زُؾبص خڀـ ‪. Patch‬‬
‫ذبُزص خپـ ‪. Patch‬‬
‫ب‪٠‬دٴص ربُٕىدض ڀٿـ ‪. Patch‬‬
‫و‪ٝ‬دجك وڄالل‪٩‬دض‪.‬‬

‫‪ .2.1‬سػاب ‪offset‬‬

‫خڀُص ‪:‬‬
‫يبٽه لٕدذ ‪ offset‬زد‪٬‬عمدي خؼب٭ديڀص خڀط‬
‫‪Offset = RVA – Virtual Offset + Row Offset‬‬
‫‪RVA = VA – ImageBase‬‬

‫ز٭ً ظى‪ُٝ‬ر زُودڄؿ ‪ X-Netstat‬ضبځً بذل زُودڄؿ ‪ LordPE‬مث خو‪ ُ٩‬خألٸٕدڂ وٌڀٻ زدڀ‪١‬ٱ‪٬ ٣‬ځً خڀَّ ‪ Sections‬ڀځم‪ٝ‬ىپ ‪٬‬ځً‬
‫ؤٸٕدڂ خڀربودڄؿ‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪164‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ال ظٹځٷ بن دل ظٵهڃ ٴُٕإيت خؼبؽدپ ٴُمد ز٭ً‪.‬‬

‫ڄربڄؿ ذڀٱص خپي ڀٵٍ‪ ,‬ي‪٬‬ىد وٵم‪: ًٝ‬‬


‫ڄه ؤظبدء خألٸٕدڂ وعىٸ‪ ٫‬ؤن َٽىن خً‬

‫خِن ٸڃ زعممُٿ خڀربودڄؿ خڀ‪١‬مُص بذل خؼبىٹك ‪ ، OllyDbg‬وڀه نُ٘ق ‪َُ٤‬ٹص ټُٕي ألوً ڀُٓ ڄى‪٠‬ى‪ ٪‬خڀًَْ‪.‬‬

‫ز٭ً ؤن وـًض خڀٹٵّش خؼبُخي ظٱًُنٌد ټدڀعدرل ‪:‬‬

‫الل‪ ٧‬ڄ٭ٍ ٌدظٌن خڀ‪ٝ‬ىَظٌن ڀځمٹدَوص ٸسٿ خڀع٭ًَٿ وز٭ً خڀع٭ًَٿ ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪165‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ز٭ً خڀعٱًُن والل‪ ٧‬ؤوً مت زعٱًُن زدَط وخلًش ڄه ‪ 75‬بذل ‪٬ 74‬ىً خڀ٭ىىخن ‪ 004A22C7h‬يف خڀٍخټُش‪.‬‬

‫و خِن ڀىٹڃ حبٕدذ خپـ ‪ offset‬خؼبىخٴٷ ڀًٌ خ خڀ٭ىىخن زد‪٬‬عمدي خؼب٭ديڀص خؼبٍټىَش يف ؤوپ خڀًَْ‪:‬‬

‫‪VA = 004A22C7h‬‬
‫‪RVA = VA – ImageBase = 004A22C7h – 00400000h = A22C7h‬‬
‫= ‪Offset = RVA – Virtual Offset + Row Offset = A22C7h – 1000h + 400h‬‬ ‫‪A16C7h‬‬

‫بٌن ‪ offset‬خؼب‪٥‬ځىذ ٌى ‪ ,A16C7h‬ولٌن وعمًغ ‪٬‬ه ‪ offset‬ٴةوىد وعمًغ ‪٬‬ه و‪٠‬٭ُص خؼبځٳ ‪٬‬ځً خڀٹُ‪ ٚ‬خڀ‪ٝ‬ځر وڀُٓ يف‬
‫خڀٍخټُش ‪.‬‬

‫يبٽه خڀعإټً زىخٔ‪٥‬ص ؿبَُ ٌٽٓ ڄؽٿ ‪ WinHex‬ؤو ‪ HexWorkshop v5‬وٌڀٻ زدڀ‪١‬ٱ‪٬ ٣‬ځً ‪ Ctrl + G‬ؤو ڄه والپ خڀٹىخجڃ ‪:‬‬
‫…‪ Edit  Goto‬زدڀىٕسص ڀربودڄؿ ‪: HexWorkshop‬‬

‫ڀىمعٵ‪ ٧‬زدؼب٭ځىڄدض خألٔدُٔص يف ٌٍي خڀٵٹُش ‪:‬‬


‫‪Offset = A16C7h‬‬
‫خڀـ ‪ offset‬ڄه ‪ 75‬بذل ‪74‬‬ ‫خڀسدَط خڀيت مت ظٱًنٌد ‪٬‬ىً ي ٌ خ‬

‫‪ .2.2‬اذتك‪ ٍٛ‬عً‪ ٢‬قايب ‪ٚ‬تعس‪ ًٜ٘‬ب‪ٛ‬اغط‪RadAsm ١‬‬

‫خِن ڀىٵعك زُودڄؿ ‪ RadAsm‬وپوعس‪ ٫‬خؼبُخلٿ خڀعدڀُص ‪:‬‬

‫خٴعك زُودڄؿ ‪ RadAsm‬مث خ‪٠‬ٱ‪ File  New Project ٣‬مث ظدز‪: ٫‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪166‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ز٭ً ٌڀٻ وٹىڂ زعفهُّ خڀٹدڀر وڀُٽه ټدڀعدرل ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪167‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ود‪ ،ًٚ‬وڀُٽه ټدڀعدرل ‪:‬‬


‫خ‬ ‫ڀى٭‪ ٍ٥‬خألَِخَ ‪ID‬‬

‫‪ ID Pacth = 10‬و‪ ID About = 11‬و‪ ID Exit = 12‬و ‪ ID BackUp=13‬و‪ID List=14‬‬

‫‪ .2.3‬ايتعطف عً‪ ٢‬ايس‪ٚ‬اٍ األغاغ‪ ١ٝ‬املػتعًُ‪ ١‬يف بطزت‪Patch ١‬‬

‫يخڀص بو‪ٙ‬دء ڄځٳ ـًًَ ؤو ٸُخءظً وخغب‪ٝ‬ىپ ‪٬‬ځً خؼبٹس‪ ٟ‬خػبد‪ ٚ‬زدؼبځٳ‬
‫( ‪HANDLE CreateFile‬‬
‫وًَٴ‪ٌٍ ٫‬خ خألوًن بذل خؼبٕفٿ ‪EAX‬‬

‫‪LPCTSTR lpFileName‬‬ ‫خٔڃ خؼبځٳ خڀٌٍ ظًَُ بو‪ٙ‬دءي ؤو ٸُخءظً‬


‫‪DWORD dwDesiredAccess‬‬ ‫وى‪ُ٬‬ص خڀع٭دڄٿ ڄ‪ ٫‬خؼبځٳ ‪ :‬ڀځٹُخءش ؤو خڀٽعدزص ؤو ټالنبد ڄ٭د‬
‫‪DWORD dwShareMode‬‬ ‫ال ظّ‪٬‬ؿ وٵٕٻ هبد وخـ٭ځهد ‪ Write‬ؤو ‪Read Write‬‬
‫‪LPSECURITY_ATTRIBUTES lpSecurityAttributes‬‬ ‫‪0‬‬
‫‪ CREATE_NEW‬إلو‪ٙ‬دء ڄځٳ ـًًَ ويف لدڀص ټدن خؼبځٳ ڄىـىي ٴال‬
‫ظٵ٭ٿ ُ٘حدً‪.‬‬
‫‪ CREATE_ALWAYS‬ڄؽٿ خڀٕدزٹص بال ؤهند ظ٭مٿ َٰڃ وـىي خؼبځٳ‪.‬‬
‫‪ OPEN_EXISTING‬ٴعك خؼبځٳ ‪ -‬وڀُٓ ظىٵٍُي ‪ -‬يف لدڀص‬
‫‪DWORD dwCreationDistribution‬‬
‫وـىيي‪.‬‬
‫ڄؽٿ ٔدزٹعهد ڀٽه زدوعالٲ ‪٤‬ٵُٳ‪.‬‬ ‫‪OPEN_ALWAYS‬‬
‫سبٕك ڄ٭ځىڂخض خؼبځٳ وظُـ٭ً بذل‬ ‫‪TRUNCATE_EXISTING‬‬
‫لفڃ ڄى٭ًڂ‪.‬‬
‫‪DWORD dwFlagsAndAttributes‬‬
‫وى‪ ٪‬خؼبځٳ ‪ :‬ـبٵٍ ؤو ‪٬‬ديٌ وظىـً ‪ً٬‬ش و‪ٝ‬دج‪ ،ٛ‬وظٽٵُىد خػبد‪ُٜ‬ص‬
‫‪FILE_ATTRIBUTE_NORMAL‬‬
‫‪HANDLE hTemplateFile‬‬ ‫‪0‬‬
‫;)‬

‫( ‪GetFileSize‬‬ ‫خؼبٕفٿ ‪EAX‬‬‫يخڀص خغب‪ٝ‬ىپ ‪٬‬ځً لفڃ خؼبځٳ ويٴ٭هد بذل‬


‫‪HANDLE hFile‬‬ ‫ڄٹس‪ ٟ‬خؼبځٳ وَعڃ خغب‪ٝ‬ىپ ‪٬‬ځًُ ڄه خڀًخڀص ‪CreateFile‬‬
‫‪LPDWORD lpFileSizeHigh‬‬ ‫‪0‬‬
‫;)‬

‫دانح نردهيش ادلهف يٍ أخم انرخطيط يف انذاكزج ودفغ انميًح ئىل‬


‫( ‪CreateFileMapping‬‬
‫ادلظدم ‪EAX‬‬
‫‪HANDLE hFile‬‬ ‫خڀًخڀص ‪CreateFile‬‬ ‫ڄٹس‪ ٟ‬خؼبځٳ وَعڃ خغب‪ٝ‬ىپ ڄه‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪168‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪LPSECURITY_ATTRIBUTES lpFileMappingAttributes‬‬ ‫‪0‬‬


‫وى‪ُ٬‬ص خڀع٭دڄٿ ڄ‪ ٫‬خؼبځٳ‪ ،‬ڀىف٭ځهد ‪PAGE_READWRITE‬‬
‫‪DWORD flProtect‬‬
‫ظىـً ود‪ُٜ‬عٌن ؤوَُعٌن ڄىهد خڀٹُخءش ٴٹ‪ ٣‬وؤَ‪١‬د بڄٽدوُص خڀىٕه‬
‫‪DWORD dwMaximumSizeHigh‬‬ ‫‪0‬‬
‫‪DWORD dwMaximumSizeLow‬‬ ‫لفڃ خؼبځٳ‬
‫‪LPCTSTR lpName‬‬ ‫‪0‬‬
‫;)‬

‫( ‪MapViewOfFile‬‬ ‫يخڀص خڀعى‪ ٣ُ٥‬يف خڀٍخټُش‬


‫‪HANDLE hFileMappingObject‬‬ ‫ڄٹس‪ ٟ‬خڀعى‪ ٣ُ٥‬خؼبٕعىځ‪ ٛ‬ڄه يخڀص خڀٕدزٹص‬
‫‪DWORD dwDesiredAccess,‬‬ ‫وى‪ُ٬‬ص خڀع٭دڄٿ ڄ‪ ٫‬خؼبځٳ ڀىف٭ځً ڀځٹُخءش وخڀٽعدزص‬
‫‪DWORD dwFileOffsetHigh‬‬ ‫‪0‬‬
‫‪DWORD dwFileOffsetLow‬‬ ‫‪0‬‬
‫‪DWORD dwNumberOfBytesToMap‬‬ ‫‪0‬‬
‫;)‬

‫( ‪WriteFile‬‬ ‫دانح نكراتح انثياَاخ يف يهف‬


‫‪HANDLE hFile‬‬ ‫ڄٹس‪ ٟ‬خؼبځٳ‬
‫‪LPCVOID lpBuffer‬‬ ‫‪٬‬ىىخن خؼبعٱًن خڀٌٍ وبعىٌ خڀسُدودض خؼبُخي ټعدزدٌد‬
‫‪DWORD nNumberOfBytesToWrite‬‬ ‫‪ً٬‬ي خڀسدَعدض خڀيت َعڃ ټعدزعهد‬
‫‪LPDWORD lpNumberOfBytesWritten‬‬ ‫ڄعٱًن الٔعٹسدپ ‪ً٬‬ي خڀسدَعدض خڀيت مت ټعدزعهد‬
‫‪LPOVERLAPPED lpOverlapped‬‬ ‫‪0‬‬
‫;)‬

‫( ‪UnmapViewOfFile‬‬ ‫دانح االَرهاء يٍ انرخطيط‬


‫‪٬‬ىىخن خؼبځٳ خؼبى‪ ٣٥‬يف خڀٍخټُش وخڀٌٍ مت خغب‪ٝ‬ىپ ‪٬‬ځًُ زدڀًخڀص‬
‫‪LPCVOID lpBaseAddress‬‬
‫‪MapViewOfFile‬‬
‫;)‬

‫( ‪CloseHandle‬‬ ‫دانح ئغالق ادلهف‬


‫‪HANDLE hObject‬‬ ‫ڄٹس‪ ٟ‬خؼبځٳ خڀٌٍ مت خغب‪ٝ‬ىپ ‪٬‬ځًُ زدڀًخڀص ‪CreateFile‬‬
‫;)‬

‫أزذ‬ ‫‪EAX‬‬ ‫يؼهى وذذفغ نهًظدم‬ ‫‪BackUp Control‬‬ ‫انرأكذ يٍ أٌ‬


‫( ‪IsDlgButtonChecked‬‬
‫الليًرني ‪ 0‬أو ‪1‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪169‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪HWND hDlg‬‬ ‫ڄٹس‪ ٟ‬خڀىدٴًش‬


‫‪int nIDButton‬‬ ‫‪ ID‬خػبد‪ ٚ‬زدپـ ‪BackUp Control‬‬
‫;)‬

‫اٍ ‪Patch‬‬
‫‪ .2.4‬ايؿط‪ٚ‬ع يف بطزت‪ ١‬ـ‬

‫خِن خوعُ ٸٕڃ خڀٽىي ڄه خؼب‪ُٙ‬و‪ ٪‬پټٍ وسًؤ يف ټعدزص ‪: Patch‬‬

‫وًٌخ ڄٹ‪ ٫٥‬خڀسُدودض ٔىخء زٹُڃ ڄسًجُص ؤو زًووًخ ‪ ،‬وٸً مت ٴُهد ظ٭َُٳ ز٭‪ ٟ‬خڀُٔدجٿ وڄٕدَ خؼبځٳ وڄٕدَ خڀىٕىص وز٭‪ ٟ‬خؼبعٱًنخض خڀيت‬
‫ٔىمعٵ‪ ٧‬هبد ؼب٭ځىڄدض خؼبځٳ ‪:‬‬

‫ٌٍخ خؼبٹ‪ ٫٥‬خؼبىخٴٷ ڀځَّ ‪ Patch‬ؤُعڃ ُ٘لً ٔ‪ُ٥‬خً ٔ‪ُ٥‬خً ټٍ ظٵهڃ خڀٵٽُش وظُٔه يف ٌٌىٻ ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪170‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪invoke CreateFile, addr FileName, GENERIC_READ +‬‬ ‫يخڀص بو‪ٙ‬دء ؤو ٸُخءش ڄځٳ‪ ,‬ويف ٌٍي خغبدڀص ٸً ـهّود ٌٍي‬
‫‪GENERIC_WRITE, FILE_SHARE_WRITE, 0, OPEN_EXISTING,‬‬ ‫خڀًخپ خبد‪ُٜ‬ص ‪ OPEN_EXISTING‬وخڀٕمدق ڀىد زدڀٹُخءش‬‫ش‬
‫‪FILE_ATTRIBUTE_NORMAL, 0‬‬
‫وخڀٽعدزص يف خؼبځٳ ويٴ‪ ٫‬خؼبٹس‪ ٟ‬ڀځمٕفٿ ‪EAX‬‬
‫‪mov [hFile], eax‬‬ ‫زٕسر ظٱًن خؼبٕفالض ٔىٹىڂ حبٵ‪ ٧‬ڄٹس‪ ٟ‬خؼبځٳ يف خؼبعٱًن‬
‫‪ hFile‬خو‪ ُ٩‬ٸٕڃ خڀسُدودض زًون ٸُمص ڄسًجُص ‪? data.‬‬
‫‪cmp eax, -1‬‬ ‫خؼبٹدَوص بن مت ٸُخءش خؼبځٳ ؤڂ ال؟ وٌڀٻ ألن ٌٍي خڀًخڀص‬
‫‪ CreateFile‬ظًٴ‪ ٫‬ڀځمٕفٿ ‪ EAX‬خڀٹُمص ‪ 1 -‬بن دل َعڃ‬
‫ظىٵٍُي‪ ،‬ؤڄد زدڀىٕسص ڀځ٭ٽٓ ٴعٹىڂ زًٴ‪ ٫‬ڄٹس‪ ٟ‬خؼبځٳ‬
‫ڀځمٕفٿ ‪EAX‬‬
‫‪jz Exit‬‬ ‫بن دل ظىٵٍ ٌٍي خڀًخڀص ٴٕىىُؾ زٕالڂ ؤڄد بٌخ وٵٍض ٴعدز‪٫‬‬
‫خألٔ‪ ُ٥‬خڀعدڀُص‬
‫‪invoke GetFileSize, [hFile], 0‬‬ ‫يخڀص ـځر لفڃ خؼبځٳ خو‪٥‬الٸدً ڄه ڄٹس‪ ً١‬خڀٌٍ مت زبَّىً‬
‫يف خؼبعٱًن ‪ hFile‬ويٴ‪ ٫‬لفڃ خؼبځٳ ڀځمٕفٿ ‪EAX‬‬
‫‪mov [sizeF], eax‬‬ ‫خاللعٵد‪ ٦‬حبفڃ خؼبځٳ يف خؼبعٱًن ‪ sizeF‬خو‪ ُ٩‬ٸٕڃ خڀسُدودض‬
‫زًون ٸُمص ڄسًجُص ‪? data.‬‬
‫‪invoke CreateFileMapping, [hFile], 0, PAGE_READWRITE, 0,‬‬ ‫ٌٍي خڀًخڀص ڄه ؤـٿ ؤن هتُث خؼبځٳ ڀځعى‪ ٣ُ٥‬يف خڀٍخټُش‬
‫‪[sizeF], 0‬‬
‫وٌٍ خبد‪ُٜ‬ص خڀٹُخءش وخڀٽعدزص‪ ،‬وظًٴ‪ ٫‬ڄٹس‪ ٟ‬خڀعى‪٣ُ٥‬‬
‫ڀځمٕفٿ ‪EAX‬‬
‫‪invoke MapViewOfFile, eax, FILE_MAP_WRITE+‬‬ ‫يخڀص خڀعى‪ ٣ُ٥‬يف خڀٍخټُش‪ ،‬ؤعًٴ‪ ٫‬ڀځمٕفٿ ‪٬ EAX‬ىىخن‬
‫‪FILE_MAP_READ, 0, 0, 0‬‬
‫خؼبځٳ خؼبى‪ ٣٥‬يف خڀٍخټُش وبن ٸمط زعىٹُك خڀسدظٗ و‪٬‬مٿ‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪171‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ - Follow in Dump‬ز٭ً ذبدوِ ٌٍي خڀًخڀص‪ -‬ڀځمٕفٿ‬


‫‪ٔ EAX‬عفً يف ٸٕڃ ‪ Dump‬يف خؼبىٹك ٘ٽٿ خؼبځٳ وټإوٻ‬
‫ٴعمعً زـ ‪ WinHex‬ؤو ‪HexWorkshop‬‬
‫‪mov [maping], eax‬‬ ‫خاللعٵد‪ ٦‬ز٭ىىخن خؼبځٳ خؼبى‪ ٣٥‬يف خؼبعٱًن ‪ maping‬خو‪ُ٩‬‬
‫ٸٕڃ خڀسُدودض زًون ٸُمص ڄسًجُص ‪? data.‬‬
‫‪invoke IsDlgButtonChecked, hWin, 13‬‬ ‫يخڀص ڀځعإټً ؤن ‪ BackUp Control‬ڄ٭ځمص‬
‫‪test eax, eax‬‬ ‫خڀعإټً ڄه ؤن ‪ EAX‬ٴًُ بلًي خڀٹُمعٌن‪ٜ :‬مُك ؤڂ و‪٥‬إ‬
‫‪jz backupnC‬‬ ‫خٸٵّ بٌخ دل َٽه ‪ BackUp Control‬ڄ٭ځڃ بذل خڀ٭ىىخن‬
‫خڀٌٍ مت خڀُڄّ ڀً زـ ‪backupnC‬‬
‫‪invoke CreateFile, addr BackUpFile, GENERIC_READ+‬‬ ‫يف لدڀص مت ظ٭ځُڃ ‪ٔ BackUp Control‬ىٹىڂ زداللعٵد‪٦‬‬
‫‪GENERIC_WRITE, FILE_SHARE_WRITE, 0, CREATE_NEW,‬‬ ‫زىٕىص ڄه خؼبځٳ وٌڀٻ زةو‪ٙ‬دء ڄځٳ ٴدَٮ هبٍي خڀًخڀص‪،‬‬
‫‪FILE_ATTRIBUTE_NORMAL, 0‬‬
‫وټمد ظُي ٴهٍ خبد‪ُٜ‬ص ‪CREATE_NEW‬‬
‫‪mov edi, eax‬‬ ‫وٹٿ ڄٹس‪ ٟ‬خؼبځٳ خعبًًَ بذل خؼبٕفٿ ‪EDI‬‬
‫‪invoke WriteFile, eax, [maping], [sizeF], addr nBytes, 0‬‬ ‫ټعدزص زُدودض خؼبځٳ خؼبُخي ټُٕي ٸسٿ خڀعٱًُن يف خؼبځٳ‬
‫خعبًًَ‪ ،‬ويبٽه ؤن ظٵ٭ٿ ڄؽٿ ٌٍخ خألڄُ زًخڀص ‪CopyFile‬‬
‫‪invoke CloseHandle, edi‬‬ ‫بٰالٶ خؼبځٳ خعبًًَ‬
‫‪invoke SendDlgItemMessage, hWin, 14, LB_ADDSTRING, 0,‬‬ ‫خڀٽعدزص يف ٸدجمص خڀسُدودض خؼب٭ُٴص يف خؼبعٱًن ‪BackUpText‬‬
‫‪addr BackUpText‬‬
‫يف ٸٕڃ ‪data.‬‬
‫‪backupnC :‬‬ ‫زًون ظ٭ځُٷ‬
‫]‪mov eax, [maping‬‬ ‫و٭ًُ بذل خؼبٕفٿ ‪٬ EAX‬ىىخن خؼبځٳ خؼبى‪ ٣٥‬يف خڀٍخټُش‬
‫ٔدزٹًد‬
‫‪add eax, 0A16C7h‬‬ ‫ټمد ظ٭ځڃ ٴةن ٌٍخ خڀ٭ىىخن ٌى زًخَص خؼبځٳ ؤٌ ‪offset=0‬‬
‫وكبه وًَُ خڀ٭ىىخن خڀٌٍ َىخٴٹً ‪Offset =0A16C7h‬‬
‫ٔىٹىڂ زة‪٠‬دٴص ٌٍخ خألوًن بذل ‪٬‬ىىخن خؼبځٳ خؼبى‪٣٥‬‬
‫‪mov byte ptr [eax], 74h‬‬ ‫ٔىٹىڂ زىٹٿ خڀسدَط ټمد ًٰنودٌد ٔدزٹدً زربودڄؿ ‪OllyDbg‬‬
‫ڄه خڀٹُمص ‪ 75‬بذل ‪ 47‬يف خڀ٭ىىخن خؼبىـىي يف خؼبٕفٿ ‪EAX‬‬
‫يبٽىٻ ب‪٠‬دٴص ڄد ظ‪ٙ‬دء ڄه خڀع٭ًَالض زىٵٓ خڀ‪َُ٥‬ٹص‬

‫‪invoke SendDlgItemMessage, hWin, 14, LB_ADDSTRING, 0,‬‬ ‫خڀٽعدزص يف ٸدجمص خڀى‪ ٛ‬خؼبىـىي يف خؼبعٱًن ‪FilePatched‬‬
‫‪addr FilePatched‬‬ ‫خو‪ ُ٩‬ٸٕڃ خڀسُدودض ‪data.‬‬
‫]‪invoke UnmapViewOfFile, [maping‬‬ ‫بهندء خؼبځٳ ڄه خڀٍخټُش‬
‫]‪invoke CloseHandle, [hFile‬‬ ‫مث بٰالٶ خؼبځٳ‬
‫‪ret‬‬ ‫خػبُوؾ زٕالڂ‬
‫‪Exit :‬‬ ‫يف لدڀص خٔع٭‪ ًٝ‬ٴعك خؼبځٳ ؤو ‪ً٬‬ڂ‪ ،‬ٴُٕعڃ خڀٹٵّ بذل ٌٍخ‬
‫خڀ٭ىىخن ڄه خألڄُ خڀٕدزٷ ‪jz Exit‬‬
‫‪invoke SendDlgItemMessage, hWin, 14, LB_ADDSTRING, 0,‬‬ ‫خڀٽعدزص يف ٸدجمص خڀى‪ ٛ‬خؼبىـىي يف خؼبعٱًن ‪FileNotFound‬‬
‫‪addr FileNotFound‬‬
‫خو‪ ُ٩‬ٸٕڃ خڀسُدودض ‪data.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪172‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫وزًٌخ وٽىن ٸً ؤوًَىد ڄٹ‪ ٫٥‬خڀٽىي خػبد‪ ٚ‬زَّ ‪.Patch‬‬

‫ڀىمُ بذل خعبّء خػبد‪ ٚ‬دبٹ‪ ٫٥‬ټىي ټٿ ڄه ٌَِ ‪ About‬و ‪ .Exit‬ڀه نُ٘لهمد وڀٽه ْنټعٵٍ زى‪ٜ ٫٠‬ىَش ؼبٹ‪ ٫٥‬خڀٽىي؛ ألن‬
‫خألڄُ ٔهٿ ټمد ؤوً َعىـر ‪٬‬ځُٻ ڂ‪ُ٬‬ٴعً ڄه خعبّء خألوپ ڄه خڀٽعدذ‪.‬‬

‫خعبّء خػبد‪ ٚ‬زٹٕڃ خڀسُدودض يف ٘ٽځً خألوًن ‪:‬‬

‫وٌٍخ ڄٹ‪ ٫٥‬خڀٽىي خػبد‪ ٚ‬خذپََِه ‪ About‬و ‪: Exit‬‬

‫اٍ ‪Patch‬‬
‫‪ .2.5‬جتطب‪ ١‬ـ‬

‫ز٭ً بسبدڂ زُؾبص خڀـ ‪ٔ Patch‬ىٹىڂ زعفمُ٭ً وذبُزعً ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪173‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ٸڃ زدڀ‪١‬ٱ‪٬ ٣‬ځً خڀَّ ‪ Patch‬ڀځعفُزص‪ ،‬وؤَ‪١‬دً ‪: BackUp Control‬‬

‫خڀعإټً ڄه ظٕفُٿ خڀربودڄؿ ز٭ً ظ‪٥‬سُٷ خڀـ ‪: Patch‬‬

‫ڄرَٺ ‪٬‬ځُٻ ٴٹً مت ټُٕ خڀربودڄؿ زدڀـ‪ Patch‬خڀٌٍ زُؾبىدي‪.‬‬


‫خ‬

‫يٌ ‪Patch‬‬
‫‪ .2.6‬إناؾ‪ ١‬حتػ‪ٓٝ‬ات ـ‬

‫‪ .2.6.1‬إناؾ‪ٚ XP Style ١‬األ‪ٜ‬ك‪١ْٛ‬‬


‫وٹىڂ زىٕه خألَٹىوص وڄځٳ ‪ XP.xml‬خؼبُٴٷ ڄ‪ ٫‬خڀًَْ بذل ؾبځً خڀٕىَْ ټىي مث ب‪٠‬دٴعً يف خؼب‪ُٙ‬و‪ ٪‬ټدڀعدرل ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪174‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫اٍ ‪ Patch‬ؾؿاف ‪ٚ‬خيطز بؿهٌ غرل عاز‪ٟ‬‬


‫‪ . 2.6.2‬دعٌ ـ‬
‫ٔى‪ُ١‬ٳ بذل ڄٹ‪ ٫٥‬ټىي خپـ ‪ Dialog‬خڀٻوي خڀعدرل ‪:‬‬

‫مث بذل ؤڄُ خػبُوؾ ټدڀعدرل ‪:‬‬

‫اٍ ‪Patch‬‬
‫‪ .2.6.3‬إناؾ‪ْ ١‬ؿ‪ٝ‬س َٔ ْ‪ٛ‬ع ‪ Mid‬إىل ـ‬
‫ٔىمعدؾ زُودڄؿ ‪ Table Extractor 1.34‬ڀعمىَٿ خؼبځٳ بذل زُدودض ڀًؾبً ڄ‪ ٫‬خپـ ‪ patch‬ټدڀعدرل ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪175‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ز٭ً خڀ‪١‬ٱ‪٬ ٣‬ځً َِ !‪ٔ Go‬عم‪ٝ‬ٿ ‪٬‬ٿي خؼبځٳ جبدور خڀربودڄؿ زدٔڃ ‪ ، result.txt‬ٸڃ زعٱًُن خظبً ڄه ؤـٿ خڀعى‪ُ٩‬ڃ ٴٹ‪ ٣‬بذل‬
‫‪Music.inc‬‬
‫مث ؤ‪٠‬ٳ خألټىخي خڀعدڀُص ‪:‬‬

‫ؤڄد يف خڀٹٕڃ ‪ .code‬ٴٹمط زة‪٠‬دٴص ز‪١‬٭ص ؤٔ‪ ُ٥‬ڀًخڀص ٸُخءش خؼبځٵدض ڄه وى‪: Mid ٪‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪176‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫يف ٸٕڃ خڀسُدودض ‪ .data‬وؤَ‪١‬د ?‪ٔ .data‬ع‪ُ١‬ٳ خڀسُدودض خڀعدڀُص ‪:‬‬

‫ـ ‪: Dialog‬‬
‫مث يف ڄٹ‪ ٫٥‬خڀٽىي خػبد‪ ٚ‬ذ‬

‫ؤڄد خڀٹُمص ‪ 8F0h‬ٴهٍ لفڃ ڄځٳ خڀى‪ ًُٙ‬خڀٌٍ ؤ‪٠‬ٵىدي‪ ,‬وخڀٌٍ ټىد ٸً ل‪ٝ‬ځىد ‪٬‬ځًُ زربودڄؿ ‪Table Extractor 1.34‬‬

‫وؤوًنخً ٸڃ زعفمُ‪ ٫‬خڀـ ‪: Patch‬‬

‫صبُٿ ـًخً ؤڀُٓ ټٍڀٻ؟!‬

‫يخ‪٘ ٪‬ٽٿ ـًًَ وو‪ٝ‬دج‪ ٛ‬ـًًَش‪.‬‬


‫ؤَٴٹىد ڄؽدڀٌن ڄ‪ ٫‬خڀًَْ ڀًَخٔعهڃ وبذ‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪177‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫طريقة بردلة ‪ CrackME‬و‪ KeyGenMe‬باألمسبلي واستغالل‬


‫اخلوارزميات‬
‫‪CrackMe, KeygenMe and CryptoMe Coding‬‬

‫ڄى‪٠‬ى‪ٌٍ ٪‬ي خڀٵٹُش َ٭عرب ڄه ؤٔدُٔدض خؽبىًٔص خڀ٭ٽُٕص؛ ٴدؽبًٲ ڄه ٌٍخ خڀ٭ځڃ ڀُٓ ٺُٔ خڀربخڄؿ ٴٹ‪ ،٣‬ٴهىدڀٻ خڀٽؽًن فبد هبر ‪٬‬ځُٻ‬
‫ظ٭ځمً وخال‪ّ٤‬ال‪٬ ٪‬ځًُ‪ ،‬وڄه ٌڀٻ ؤن ظىمٍ وربظٻ يف ؾبدپ ربٌٕن ضبدَص خڀربخڄؿ‪.‬‬

‫ُٔعىدوپ خڀًَْ خؼبُخلٿ خڀعدڀُص ‪:‬‬

‫موجش يف احلناية وذزورها‪.‬‬ ‫‪)1‬‬


‫رراصة ىظزية لـ ‪. CrackMe‬‬ ‫‪)2‬‬
‫رراصة تطبيكية لـ ‪. CrackME‬‬ ‫‪)3‬‬
‫رراصة ىظزية لـ ‪. KeyGenME‬‬ ‫‪)4‬‬
‫رراصة تطبيكية لـ ‪ KeyGenME‬بضيط‪.‬‬ ‫‪)5‬‬
‫مفهوو ‪ KeyFileME‬مع التنثيل‪.‬‬ ‫‪)6‬‬
‫خوارسميات التشفري‬ ‫‪)7‬‬

‫‪.MASM + RadAsm or WinAsm‬‬


‫‪ IDAFicator‬و ‪. OllyDbg‬‬
‫‪ AT4RE FastScanner‬مث ‪ Kanal Plugin‬و ‪. Hasher Plugin‬‬
‫‪.LordPE‬‬

‫ٸً َعسديَ ڀألٌٌدن خڀٕاخپ خڀعدرل‪ :‬دلخٌخ خألظبسځٍ؟‬

‫ال وٹىپ بهند خڀځٱص خڀىلًُش خڀيت يبٽه زُؾبص ‪ CrackMe‬هبد‪ ،‬ڀٽىهد ظسٹً خألٴ‪١‬ٿ و‪ُ٩‬خً ڀٕهىڀص ظىٹُك زُخؾبهد‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪178‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪َٛ .1‬دع يف اذتُا‪ٚ ١ٜ‬سس‪ٚ‬زٖا‬


‫ال وًٌَ ڄه خڀٕسدٶ يف خڀىـىي خڀعىٹُك ڄه ؤـٿ خڀٽُٕ ؤڂ خڀعىٹُك ڄه ؤـٿ ظ‪ٝ‬مُك خألو‪٥‬دء وخغبمدَص ؟! ڀٽه ڄد هبر ؤن ظعإټً‬
‫ڄىً ؤن خالٔعٱالپ خأل‪ٜ‬ك ٌى ڄه ؤـٿ خڀع‪ٝ‬مُك وخغبمدَص‪.‬‬

‫بن خؽبىًٔص خڀ٭ٽُٕص يف ظ‪٥‬ىَ ڄٕعمُ‪ ،‬ويف ټٿ َىڂ قبً ُ٘حدً ـًًَخً وضبدَص ڄ٭ٹًّش‪ ،‬وؼبدٌخ خغبمدَص ؟ خعبىخذ زُٕ‪ٌ :٣‬ى خڀعفدَش‬
‫وخڀُزك وخڀسُ‪ ،٫‬وڀٍڀٻ ذبً صبُ‪ ٫‬خڀربخڄؿ خڀعفدََص ؿبمُص‪ ،‬وظعىى‪ ٪‬لٕر وربش خؼبربڄؿ ولدڀعً خؼبديَص‪ ,‬ٴهىدٺ زُخڄؿ ضبدَص ًٰن ؾبدوُص؛ ڄؽٿ‪:‬‬
‫‪ ExeCryptor‬و‪ Armadillo‬و‪ TheMida‬بذل ًٰن ٌڀٻ ڄه زُخڄؿ خغبمدَص خڀ‪ٙ‬هًنش خڀيت ‪٤‬دؼبد ‪ٜ‬ديٴعىد ڄه ٸسٿ‪.‬‬

‫ٌىدٺ ‪ً٬‬ش ؤ٘ٽدپ ڀځممدَص ‪ :‬ڄؽالً ب‪٠‬دٴص ودٴٍش ڄّ‪٬‬فص زعٕفُٿ ؤو ظ‪ٙ‬ٵًن ڀٹُڃ ‪ PE‬ؤو ‪٠‬ٱ‪ ٣‬خڀٽىي وًٰن ٌڀٻ‪.‬‬

‫ڄى‪٠‬ى‪ ٪‬خڀًَْ ُٔٽىن لىپ ودٴٍش خڀعٕفُٿ وڄىهد مت خٔعٹدء ٴٽُش ‪ ، KeyGenME‬ټمد مت خٔعٹدء ٴٽُش خڀـ ‪ CrackME‬ڄه‬
‫خڀىدٴٍش خؼبّ‪٬‬فص خڀيت ظ‪٩‬هُ ‪٬‬ىً بٸال‪ ٪‬ز٭‪ ٟ‬خڀربخڄؿ‪.‬‬

‫زذود احلًايح ‪:‬‬

‫ؤدل ظعٕدءپ ڄه ٸسٿ‪ :‬ؼبدٌخ ظع٭ًي زُخڄؿ خغبمدَص ز‪ُ٥‬ٶ ـًًَش؟ ٸً ظٹىپ‪ :‬مت ټُٕ خڀٕدزٹص‪ .‬ڀٽه ؼبدٌخ؟‬

‫ٌڀٻ ڄد وًَُ خڀعىىًَ ڀً وٌى لًوي ٌٍي خغبمدَص لىت َعڃ ټٌُٕد‪.‬‬

‫ٌىدٺ ‪ً٬‬ش ؤٔسدذ‪ ،‬ڄىهد خڀربودڄؿ يف خڀٍخټُش ٴهٍخ ٸً ٘ٽٿ ‪٬‬دجٹدً ټسًنخً يف خؼبًُخن‪ ،‬وڄ‪٨ ٫‬هىَ يوخپ خڀع٭ًَٿ يف خڀٍخټُش مت ذبدوِ‬
‫ٌٍخ بذل ٍ٘ء ؤټؽُ ظ‪٥‬ىَخً‪.‬‬

‫ؤدل ظعٕدءپ ڄه ٸسٿ‪ :‬ؼبدٌخ ال َٽىن ٌىدڀٻ ظٕفُالً وخقيخً ڀځربودڄؿ‪ ،‬حبُػ َ‪ٝ‬٭ر لىت ٴعك خڀربودڄؿ ڄه يووً؟ ڀٽه ڄدٌخ ڀى خوع‪ُٙ‬‬
‫خڀعٕفُٿ؟ ؤټًُ ُٔمٿ وُخذ زدڀ‪ُٙ‬ټص‪.‬‬

‫هبر ؤن هبُذ خڀربودڄؿ ٸسٿ ؤن َعڃ خٸعىدئي وڀٍڀٻ ذبً ‪ً٬‬ش زُخڄؿ ‪. Trial‬‬

‫‪CrackMe‬‬ ‫‪ .2‬زضاغ‪ْ ١‬عط‪ ١ٜ‬يـ‬


‫‪٨‬هُ خڀـ ‪ CrackMe‬ڀعمؽُٿ ز٭‪ ٟ‬خغبمدَص خڀيت ال ظ‪٥‬ځر ظٕفُالً‪ ،‬وبمبد ٌىدٺ ز٭‪ ٟ‬خألُ٘دء خؼبّ‪٬‬فص؛ ټدڀىىخٴٍ ڄؽال ؤو ظٵ٭ُٿ ؤَِخَ ؤو‬
‫ٸىخجڃ‪ ،‬ڀٽه ؼبدٌخ وٸً مت ټُٕ خڀٽٿ؟ وٹىپ ڀٻ يف ٌٍخ خڀىٸط‪ :‬و٭ڃ! ڀٽه ٴُمد ٔسٷ ټدوط ٌٍي ظ٭عرب ؤٴٽدَخً ڄع‪٥‬ىَش‪.‬‬

‫لٕىدً ٔىٹىڂ زع‪٥‬سُٷ ز٭‪ ٟ‬خألٴٽدَ خڀى‪َُ٩‬ص ڀربؾبص ‪: CrackMe‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪179‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ ‬خڀٵٽُش خألوذل ‪ ٌٍ :‬خڀىدٴٍش خؼبّ‪٬‬فص‪ ،‬وظعمؽٿ يف ب‪٠‬دٴص ودٴٍش ‪ Window‬ؤو ‪ Dialog‬ٸسٿ ظىٵٍُ خڀربودڄؿ خأل‪ٜ‬ځٍ وٌٍ‬
‫ڄّ‪٬‬فص ٴ٭الً‪.‬‬

‫ڄالل‪٩‬ص ٌدڄص ‪ :‬خڀُٔدجٿ خؼبّ‪٬‬فص ـّء ڄه خڀىىخٴٍ خؼبّ‪٬‬فص ؤَ‪١‬دً‪.‬‬

‫‪ ‬خڀٵٽُش خڀؽدوُص ‪ :‬وٌٍ ‪ً٬‬ڂ ظٵ٭ُٿ ز٭‪ ٟ‬خألَِخَ وخڀٹىخجڃ‪ ،‬وٌٍ ٴٽُش زًخجُص ُ٘حدً ڄد ڀٽه ڄ‪ٌ ٫‬ڀٻ ذبًٌد ٘دج٭ص وظعمؽٿ يف ‪ً٬‬ڂ‬
‫ظٵ٭ُٿ ز٭‪ ٟ‬خألَِخَ ؤو خڀٹىخجڃ غبفر ود‪ُٜ‬ص ـًُش يف خڀربودڄؿ؛ ټدغبٵ‪ ٧‬ڄؽالً‪.‬‬

‫ڄالل‪٩‬ص ٌدڄص ‪ :‬ڀُٓ ُ٘‪٤‬دً ؤن ظٵ٭ٍٿ خڀىىخٴٍ وخڀٹىخجڃ ٴٹ‪ ،٣‬ٴدألڄُ ٸً َ‪ٙ‬مٿ ڄد ٌى ؤټؽُ ڄه‬
‫ٌڀٻ‪.‬‬

‫‪ ‬خڀٵٽُش خڀؽدڀؽص ‪-‬وٌٍ ظ٭َّّ ڀځمى‪٠‬ى‪ ٪‬ٴٹ‪ ٣‬ألن ٌىدٺ خڀٽؽًن ڄه خڀ‪ُ٥‬ٶ‪ : -‬ظعمؽٿ يف ب‪٠‬دٴص ظىٸٍض ڀځربودڄؿ لُػ َ٭مٿ يٸُٹص‬
‫ؤو ؤٸٿ ؤو ؤټؽُ‪.‬‬

‫‪ ‬خڀٵٽُش خڀُخز٭ص ‪ :‬ضبدَص خڀربودڄؿ زَُٕدپ وخلً ال َىـً ڀځربودڄؿ ًٰني‪.‬‬

‫‪ ‬خڀٵٽُش خػبدڄٕص ‪ :‬خڀسدَعدض خؼبُٕوٸص‪.‬‬

‫‪ ‬خڀٵٽُش خڀٕدئص ‪ :‬ضبدَص خڀٽىي زإلً خػبىخَِڄُدض ( ٔىع٭دڄٿ ڄ‪.) CRC ٫‬‬

‫‪CrackME‬‬ ‫‪ .3‬زضاغ‪ ١‬تطب‪ٝ‬ك‪ ١‬يـ‬


‫ظځّڄٻ ز٭‪ ٟ‬خػبربخض خڀٕدزٹص يف يوخپ خڀى‪٩‬دڂ؛ ڀٍڀٻ وى‪ٝ‬مٻ دبُخـ٭ص ز٭‪ ٟ‬خؼبىخ‪ ٫ُ٠‬خؼبعى‪ٝٝ‬ص ؤو خؼبىخٸ‪ ٫‬ڄؽٿ ‪. MSDN‬‬

‫‪ .3.1‬ايؿهط‪ ٠‬األ‪ٚ‬ىل ‪ :‬ايٓاؾص‪ ٠‬املععذ‪١‬‬

‫ٔىٹىڂ زة‪٠‬دٴص ‪ Dialog‬زإلً خحملَُخض ټـ ‪ RadAsm‬ڄؽالً‪ ،‬وخڀٌٍ ٔىٕع٭مځً ‪٤‬ىخپ خڀًَْ‪ ،‬ڀٍڀٻ وى‪ٝ‬مٻ زعممُٿ ز٭‪ٟ‬‬
‫خڀًَوْ خؼبع٭ځٹص زٍڀٻ‪ ،‬وخغبمً هلل ٴهٍ خِن ڄىـىيش يف ڄىعًي خڀٵَُٷ يف يَوْ خڀـ ‪ Keygening‬وٸً و‪٠‬٭ىد خڀربودڄؿ ټدڄالً ڄ‪٫‬‬
‫‪ MASM‬وجبمُ‪ ٫‬خؼبٽعسدض‪ ،‬ذبً َوخز‪ ً٥‬يف زًخَص خڀًَْ‪.‬‬

‫ي‪٬‬ىد وسًؤ ‪َ :‬ٵعُ‪ ٞ‬زٻ ؤوٻ ٸً ـهّض ‪ Template‬ٴدَٮ زـ ‪. Dialog‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪180‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪File  New Project  Win32 App (Project Name : Nag Screen)  DialogApp.tpl‬‬

‫لٕه خِن ڀًَىد ‪ٔ Dialog‬ىٹىڂ زة‪٠‬دٴص آوُ زدٔڃ ‪ Nag‬وٌڀٻ ټدڀعدرل ‪:‬‬
‫خً‬

‫خ‪٠‬ٱ‪ ٣‬خڀَّ خأليبه ‪:‬‬

‫مث خلٵ‪ ً٩‬زدٔڃ ‪. Nag‬‬

‫ٌىدڀٻ ٍ٘ء ٌدڂ هبر ؤن ظعٍټُي‪ ،‬وٌى خڀـ ‪ ID‬خػبد‪ ٚ‬زٽٿ ‪ Control‬ؤ‪٠‬ٵىدي؛ ڄؽالً يف ٌٍي خغبدڀص ذبً ؤن خڀـ ‪ ID‬ڀځـ ‪Dialog‬‬
‫خعبًًَ ٌى ‪. 1000 :‬‬

‫خِن ٔىفهّ خڀـ ‪ Nag‬دبد وًَُ وڀعٽه ٌٽٍخ ‪:‬‬

‫ٍ٘ء ڄ‪١‬مٻ ‪. ‬‬

‫ربٍَُ ‪ :‬ظٍټُ ؤوىد ؤ‪٠‬ٵىد ٌٍخ يف خڀىدٴٍش خعبًًَش خڀيت ؤ‪٠‬ٵىدٌد وڀُٓ يف خڀُجُُٕص‪.‬‬

‫ٔىٱًن ‪ ID‬ڀَّ ‪Trial‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪181‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪Botton Trial ID = 90‬‬

‫ٔىٹىڂ خِن زدالوعٹدپ بذل خڀًخڀص خڀيت ٔع‪٥‬س‪ ٫‬ڀىد خڀىدٴٍش ٸسٿ يوىپ خڀربودڄؿ‪.‬‬

‫خوعٹٿ بذل خڀىدٴٍش خڀُجُُٕص و‪ ٫٠‬ڄد ظًَُ ڀربودؾبٻ ‪-‬كبه ٔىعُټهد ٴدَٰص يف ڄؽدڀىد‪ -‬مث خوعُ ڄځٳ خڀٽىي ‪:‬‬

‫ظ٭َُٳ يخڀص ب‪٨‬هدَ ودٴًش ڄه خڀَُٕىَْ‪ ،‬وٌٍ يخڀص ڄ‪٥‬ىَش ٔهځص خالٔعىًخڂ‪:‬‬

‫(‪DialogBoxParam‬‬ ‫دانح ئظهار َافذج يىخىدج يف انزيظىرص‬


‫‪HINSTANCE hInstance‬‬ ‫ڄٹس‪ ٟ‬خؼبځٳ يف خڀٍخټُش‬
‫‪LPCTSTR lpTemplateName‬‬ ‫خپـ ‪ ID‬خػبد‪ ٚ‬زـ ‪Dialog‬‬
‫‪HWND hWndParent‬‬ ‫يف لدڀعىد ‪ NULL‬ڀه كبعدـً‬
‫‪DLGPROC lpDialogFunc‬‬ ‫خإلـُخجُص خڀعدز٭ص ڀځىدٴٍش خعبًًَش‬
‫‪LPARAM dwInitParam‬‬ ‫يف لدڀعىد ‪ NULL‬ڀه كبعدـً‬
‫;)‬

‫لٕىدً ٔى‪ُ١‬ٵهد يف ‪ WM_INITDIALOG‬خخلخ‪ ٚ‬زدڀىدٴٍش خڀُجُُٕص ټدڀعدرل ‪:‬‬

‫ال ظٕإپ ‪٬‬ه خڀٕهڃ خألوپ خڀٌٍ َ‪ًٙ‬ن ڀـ ‪ 1000‬وبال ٴُفر ‪٬‬ځُٻ ب‪٬‬ديش خڀًَْ ٴإوط ڀٕط ڄعدز٭دً ز‪ٙ‬ٽٿ ـًُ!‬

‫ؤڄد ‪ NagScreen‬خڀيت َ‪ًٙ‬ن ؽبد خڀٕهڃ خأليبه ٴهٍ خإلـُخجُص خڀيت ٔى٭‪ُ٥‬هد ڀځىدٴٍش خؼبّ‪٬‬فص‪ ،‬وٌٍ ٘سُهص زةـُخجُص خڀىدٴًش خڀُجُُٕص‪،‬‬
‫وو٭‪ٌٍ٥‬د ‪ Prototype‬ټدڀُجُُٕص ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪182‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ؤڄد ؤوخڄُ خإلـُخجُص ٴهٍ ټدڀعدرل ‪:‬‬

‫زدڀىٕسص ڀځًخڀص ‪ EndDialog‬ٴهٍ إلهندء خپودٴًش خو‪٥‬الٸد ڄه ڄٹس‪١‬هد‪.‬‬

‫يف خأل‪٬‬ځً ز٭ً ‪Menu bare‬‬ ‫خِن صب‪ ٫‬خؼبځٳ ڄه ٌىد ‪:‬‬

‫ربط ‪[3.1] :‬‬ ‫هبٍخ وٽىن ٸً ؤهنُىد ٴٹُش خڀىدٴٍش خؼبّ‪٬‬فص ؤعفً خؼبؽدپ ڄ‪ ٫‬خڀٕىَْ ټىي يف ‪ pack‬خڀًَْ ٌىد‬

‫‪ .3.2‬ايؿهط‪ ٠‬ايجاْ‪ : ١ٝ‬عسّ تؿع‪ ٌٝ‬األظضاض‬

‫ٌٍي خڀٵٽُش ظ٭عمً ‪٬‬ځً خڀَُٕىَْ ٴٹ‪ ،٣‬ؤىځفإ ڀألَِخَ ٴٹ‪ ٣‬ؤىعُٺ ڀٻ خڀٹىخجڃ‪.‬‬

‫ٸڃ زةو‪ٙ‬دء ڄ‪ُٙ‬و‪ ٪‬ـًًَ زىٵٓ ڄىخ‪ٜ‬ٵدض خؼب‪ُٙ‬و‪ ٪‬خڀٕدزٷ زدٔڃ ‪ ، Enable‬مث ؤ‪٠‬ٳ ڀً ز٭‪ ٟ‬خألَِخَ ؤو ؤٌ ٍ٘ءٍ ظًَُي ڄه خڀـ‬
‫‪ Controls‬وڀُٽه ٌٽٍخ ڄؽال ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪183‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫مث خذبً ڀأليوخض خڀيت ظًَُ بِخڀص ود‪ٜ‬ص خڀعٵ٭ُٿ ‪٬‬ىهد و‪ً٬‬پ و‪ٝ‬دج‪ٝ‬هد هبٍخ خڀىمى ‪:‬‬

‫صب‪ ٫‬خؼبځٳ وؤو‪ ُ٩‬خڀ‪ٙ‬ٽٿ خڀىهدجٍ ‪.‬‬

‫لىت خِن ټٿ ٍ٘ء ‪٬‬ځً ڄد َُخڂ وزُٕ‪ ٣‬ڀٽه ټُٕ ٌٍي خڀٵٽُش ؤڄُ زُٕ‪ ٣‬ـًخً وَعڃ زإلً ؿبَُخض خڀَُٕىَْ ڄه ‪ ResHacker‬ؤو‬
‫ڄد ٘دزً‪.‬‬

‫خِن ڄدٌخ ڀى ؤَيود خڀٹُدڂ زٍڀٻ زُؾبُدً‪ ،‬وٌى خألڄُ خألٌڃ يف ٌٍي خڀٵٹُش‪ .‬ټٿ ڄد كبعدـً ٌى ڄٹس‪ ٟ‬خڀَّ ؤو ؤٌ ‪ Control‬آوُ‬
‫وًَُي‪ ،‬مث قبځسً زىخٔ‪٥‬ص خڀًخڀص ‪ , GetDlgItem‬ربعدؾ ٌٍي خڀًخڀص ڀسدَخڄعَُه‪ :‬خألوپ ٌى ڄٹس‪ ٟ‬خڀىدٴًش خڀيت ربعىٌ خڀـ ‪، Control‬‬
‫وخڀؽدين ٌى خڀـ ‪ ID‬خػبد‪ ٚ‬زدڀـ ‪ . Control‬بن قبمط ٌٍي خڀًخڀص ٴةهند ظُـ‪ ٫‬ڄٹس‪ ٟ‬خڀـ ‪ Contorl‬يف خؼبٕفٿ ‪ ، eax‬مث ڀعٵ٭ُٿ ؤو‬
‫‪ً٬‬ڂ ظٵ٭ُٿ خڀـ ‪ Control‬وٕعً‪ ٍ٬‬خڀًخڀص ‪ EnableWindow‬ؤَ‪١‬دً زسدَخڄعَُه‪ :‬خألوپ ٌى ڄٹس‪ ٟ‬خڀـ ‪ ، Controls‬ؤڄد خڀؽدين ٴهى‬
‫ؤڄُ خڀعٵ٭ُٿ ؤو ‪ً٬‬ڂ خڀعٵ٭ُٿ ‪. FALSE or TRUS‬‬

‫وزدڀعدرل َٽىن خڀٽىي ڀًَىد يف ٌٍخ خؼبؽدپ إلڀٱدء ظٵ٭ُٿ َِ ‪ ID = 1002 ٌٌ TRIAL‬ټدڀعدرل ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪184‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ٸڃ زعفُزص ؤٌ ‪ Control‬ظًَُ‪ ،‬وهبٍخ خڀٽىي خڀ‪ٝ‬ٱًن وىهٍ ٴٹُش ‪ً٬‬ڂ ظٵ٭ُٿ خألَِخَ‪.‬‬

‫ربط ]‪[3.2‬‬ ‫خڀٽىي ڄه ٌىد‬

‫‪ .3.3‬ايؿهط‪ ٠‬ايجايج‪ : ١‬إناؾ‪َ ١‬ؤقت ‪ٜ‬ػًل ايدلْاَر يف ظَٔ َعني‬

‫ٸڃ زةو‪ٙ‬دء ڄ‪ُٙ‬و‪ ٪‬ـًًَ زدٔڃ ‪. Timer‬‬

‫دانح وضغ يإلد يف ادلشزوع يثم يا َفؼم يف ‪ Delphi‬و‪َ VB‬ضيف ‪ Timer‬نكٍ‬


‫( ‪SetTimer‬‬
‫األيز خيرهف هُا فُسٍ َضؼه تزجمياً‬
‫‪HWND hWnd‬‬ ‫ڄٹس‪ ٟ‬خڀىدٴٍش خڀيت ٔى‪ُ١‬ٳ ؽبد خؼباٸط‬
‫‪UINT nIDEvent‬‬ ‫ڀه كبعدـً ڀٍخ ؤ‪ ً٥٬‬خڀٹُمص ‪0‬‬
‫‪UINT uElapse‬‬ ‫ٌٍخ ٌى خؼبهڃ وٌى ڄًش خؼباٸط وربٕر زإـّخء خألڀٳ ڀځؽدوُص‬
‫‪TIMERPROC lpTimerFunc‬‬ ‫ال لدـص ڀىد زً ڀٍخ ؤ‪ ً٥٬‬خڀٹُمص ‪0‬‬
‫;)‬

‫ٔى‪ُ١‬ٳ يف ٌٍخ خؼبؽدپ ڄاٸعدً َٱځٷ خڀربودڄؿ ز٭ً ‪ 5‬ؼىخنٍ ‪:‬‬

‫‪ ٌٍ WM_TIMER‬بـُخجُص خؼباٸط‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪185‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ربط ]‪[3.2‬‬ ‫ذبً ٔىَْ ٘دڄٿ ڀځٵٽُش ٌىد‬

‫‪ .3.4‬ايؿهط‪ ٠‬ايطابع‪ : ١‬محا‪ ١ٜ‬ايػط‪ٜ‬اٍ‬

‫‪ .3.4.1‬محا‪ ١ٜ‬بػط‪ٜ‬اٍ قابٌ يًعهؼ‬


‫ٌٍي ٴٽُش زُٕ‪٥‬ص ظ٭عمً يخڀص خؼبٹدَوص زٌن خڀعٕفُٿ خؼبًوٿ وخڀعٕفُٿ خأل‪ٜ‬ځٍ‪.‬‬

‫ٸڃ زةو‪ٙ‬دء ڄ‪ُٙ‬و‪ ٪‬ـًًَ زدٔڃ ‪ Mono Serial‬وـهّ خڀـ ‪ٌ Template‬ٽٍخ‪:‬‬

‫ڄالل‪٩‬ص ٌدڄص ‪ :‬هبر ؤن ظعٍټُ خپـ ‪ ID‬خػبد‪ ٚ‬زٽٿ ‪. Control‬‬

‫يف ڄؽدڀىد ٌٍخ ٔى٭‪: ٍ٥‬‬

‫‪ID Boutton Register = 1002‬‬


‫‪ID Edit Text = 1001‬‬

‫خڀٵٽُش خڀ٭دڄص ڀځمؽدپ ‪:‬‬

‫ـځر خڀَُٕدپ خؼبًوٿ ڄه خؼبٕعىًڂ‪.‬‬


‫ڄٹدَوعً زدأل‪ٜ‬ځٍ زدڀًخڀص ‪ ، lstrcmp‬وٌٍ ظُـ‪ ٫‬ٸُمعٌن ‪ 0‬لدڀص خڀع‪٥‬دزٷ‪.‬‬
‫بٌخ ل‪ٝ‬ٿ خڀع‪٥‬دزٷ وُـط َٔدڀص خڀ‪ٙ‬ٽُ ‪. Good Boy‬‬
‫بٌخ دل وب‪ٝ‬ٿ خڀع‪٥‬دزٷ وُـط َٔدڀص خػب‪٥‬إ ‪. Bad Boy‬‬

‫ټٿ ڄُلځص ظُخٴٹهد يخڀص مت ُ٘لهد يف خڀىٕىص خڀٕدزٹص ڄه خڀٽعدذ؛ ڀٍڀٻ ال لدـص ڀإل‪٬‬ديش ؤى‪ ٫١‬خڀٽىي ڄسدُ٘ش‪.‬‬

‫ٔىمعدؾ ز٭‪ ٟ‬خؼبعٱًنخض ټدؼبعٱًن خڀٌٍ وبعىٌ خڀَُٕدپ خڀ‪ٝ‬مُك وخؼبعٱًن خڀٌٍ ٔىمٵ‪ ٧‬ٴًُ خڀَُٕدپ خؼبًوٿ مث َٔدڀص خڀ‪ٙ‬ٽُ وخػب‪٥‬إ‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪186‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫يف بـُخجُص خألوخڄُ ٔى‪ُ١‬ٳ ڄٹ‪ ٫٥‬خڀٽىي ڀَّ خڀعٕفُٿ ‪:‬‬

‫ربط ]‪[3.4.1‬‬ ‫خوعهط خڀٵٹُش ؤعفً ٔىَْ ٘دڄٿ ڀځٵٽُش ٌىد‬

‫محا‪ ١ٜ‬بػط‪ٜ‬اٍ غرل قابٌ يًعهؼ‬ ‫‪.3.4.2‬‬


‫ٌٿ ‪ٜ‬ديٴٻ ڄُش زُودڄؿ َإوٍ خڀَُٕدپ وال َٹدَوً زىٵًٕ؛ ڄؽالً َٹدَوً ز‪ٍٙ‬ء ڄُظس‪ ٣‬زً ؟!‬

‫يف ٌٍخ خؼبؽدپ ٔىٕع٭مٿ وىخَِڄُص زُٕ‪٥‬ص ـًخً ڀعى‪ُ٠‬ك خألڄُ‪.‬‬

‫خػبىخَِڄُص ٔع٭عڃي ڄٹدَوص ؾبمى‪ ٪‬ٸُڃ ‪ Hex‬ڀځمُوٲ خؼبًوځص ڄ‪ ٫‬ٸُمص ڄ٭ُىص‪.‬‬

‫خڀ‪ُٝ‬ٱص خڀَُد‪ُ٠‬ص ڀځىىخَِڄُص‪:‬‬

‫‪I : integer‬‬
‫‪X : integer‬‬
‫)‪For I = 0 to Len(Name‬‬
‫)‪X = X + Name(I‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪187‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ڀى‪٥‬سٷ خڀٵٽُش ‪٬‬ځً ټځمص ‪E = 45h ; R = 52h ; 4 = 34h ; T = 54h ; A = 41h : AT4RE‬‬

‫جبم‪ ٫‬خڀٹُڃ قبً ‪Algo ( AT4RE ) = 160h‬‬

‫خِن ڀىٵعُ‪ ٞ‬ؤن خڀَُٕدپ خڀ‪ٝ‬مُك ٌى ‪ AT4RE‬ڄد ُٔٹىڂ زً خڀـ ‪ٌ CrackMe‬ى صب‪ ٫‬ٸُڃ ‪ Hex‬خالٔڃ خؼبًوٿ مث ڄٹدَوعهد ڄ‪٫‬‬
‫‪.160h‬‬

‫ٌىدٺ ُٔ يف خػبىخَِڄُص ٔىٹىڀً ڀٻ ز٭ً ؤن وىعهٍ ڄه خڀٽىي خڀربؾبٍ!!‬

‫ٸڃ زةو‪ٙ‬دء ڄ‪ُٙ‬و‪ ٪‬ـًًَ زدٔڃ ‪ Brute Serial‬زىٵٓ و‪ٝ‬دج‪ ٛ‬خڀـ ‪ CrackME‬خڀٕدزٷ زَّ ‪ Register‬و‪Edit Text‬‬
‫عبځر خڀعٕفُٿ خؼبًوٿ‪ .‬وزىٵٓ خڀـ ‪. ID‬‬

‫خؼبعٱًنخض خڀيت ٔى٭عمً ‪٬‬ځُهد ٌٍ وٵٓ ڄعٱًنخض ڄؽدڀىد خڀٕدزٷ ظٹَُسدً‪.‬‬

‫ټىي وىخَِڄُص خڀعمٹٷ ڀَّ خڀعٕفُٿ ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪188‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ال َٵعُ‪ ٞ‬زىد ؤن و‪ُٙ‬لً ڀٻ بٌخ ټىط ٸً ٸُؤض خڀىٕىص خألوذل ڄه خڀٽعدذ وظدز٭ط يوَش خألظبسځٍ خڀيت ؤٸدڄهد خڀٵَُٷ ٸٍ ڄىٸ٭ً وبال‬
‫ٴىمه وسين يف خڀٵُخٮ‪.‬‬

‫صب‪ ٫‬خؼبځٳ وـُذ‪َ .‬خج‪ !!٫‬ؤڀُٓ ټٍڀٻ؟!‬

‫ڀٽه ٌىدڀٻ ُٔ يف ٌٍي خػبىخَِڄُص‪ ،‬لُػ ؤوً ظىـً هبد خڀ٭ًًَ ڄه خألظبدء خڀيت ؾبمى‪ ٪‬لُوٴهد َٕدوٌ ‪!! 160h‬‬

‫ـُذ ڄؽالً خڀَُٕدپ ‪mo**0 :‬‬

‫ټٿ ڄد يف خألڄُ ٌى ذبُزص خڀ٭ًًَ ڄه خڀٽځمدض وبن ظ‪٥‬دزٹط خؼبٹدَوص ٴٍڀٻ ؤَ‪١‬د َُٔدپ‪.‬‬

‫ڄالل‪٩‬ص ‪ :‬خألڄُ زُٕ‪ ٣‬ڀٽُٕ ٌٍي خػبىخَِڄُص وال وبعدؾ ڀىٸط ‪٤‬ىَٿ ڀٽه ٌىدٺ ز٭‪ٟ‬‬
‫خػبىخَِڄُدض وڀألٔٳ ربعدؾ ألَدڂ ؤو ؤ٘هُ ڀٵٽهد ؤعفً ُ٘حدً ڄه ٌڀٻ يف ‪ُ٤‬دض ٌٍخ‬
‫خڀٽعدذ‪.‬‬

‫ربط ]‪[3.4.2‬‬ ‫وهبٍي خؼبالل‪٩‬ص وىهٍ ٌٍي خڀٵٹُش‪ ،‬ؤعفً ٔىَْ ٘دڄٿ ڀځٵٽُش ٌىد‬

‫‪ .3.5‬ايؿهط‪ ٠‬ارتاَػ‪ : ١‬ايبا‪ٜ‬تات املػط‪ٚ‬ق‪١‬‬

‫ٌٍي ؤٴ‪١‬ٿ ظٹىُص يف خغبمدَص وڀٽه ڀألٔٳ ؽبد ڄٕدوت ٔى٭ُٴهد يف هندَص خڀًَْ‪.‬‬

‫ٌٍي خڀٵٹُش ظع‪٥‬ځر ز٭‪ ٟ‬خػبربخض خألٔدُٔص يف ‪ OP Code‬ؤو خڀعُصبص خؽبٽُٕص ألوخڄُ خألظبسځٍ‪ ،‬بهند ظٕمُعىد ؽبد ٴٹ‪.٣‬‬

‫ڄُخلٿ خڀٵٻَش ‪:‬‬

‫ربًًَ خؼبٽدن خؼبىدٔر ڀځممدَص‪.‬‬


‫ربىَٿ خڀـ ‪ OP Code‬بذل َُٔدپ‪.‬‬
‫ربًًَ لفڃ خػبىخَِڄُص وزبَُر خڀٽىي‪.‬‬
‫وىخَِڄُص بيَخؾ خڀَُٕدپ ټـ ‪ OP Code‬خأل‪ٜ‬ځٍ وـ٭ٿ ٸٕڃ خڀٽىي ٸدزٿ ڀځٽعدزص وخڀٹُخءش‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪189‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫خڀعفُزص‪.‬‬

‫‪ .3.5.1‬حتس‪ٜ‬س املهإ املٓاغب يًشُا‪١ٜ‬‬


‫ٔىٕع٭مٿ خؼبؽدپ خڀٕدزٷ ټع‪٥‬سُٷ ؽبٍي خڀٵٹُش‪ ،‬ڀٍڀٻ وى‪ٝ‬مٻ زإوٍ وٕىص ڄىً ڀع‪٥‬سُٷ ٌٍي خڀٵٹُش زدٔڃ ‪ X-CrackMe‬مث خٴعك خؼب‪ُٙ‬و‪٪‬‬
‫ڀٽٍ وسًؤ‪.‬‬

‫ربًًَ خؼبٽدن خؼبىدٔر ڀځممدَص ڀُٓ زدألڄُ خڀ٭‪ٙ‬ىخجٍ وخڀسُٕ‪ ،٣‬زٿ َع‪٥‬ځر ظىٹُك خڀربخڄؿ ؼب٭ُٴص خؼبىد‪٤‬ٷ خغبٕدٔص هبد‪ ،‬ڀٽىىد يف ٌٍي خڀٵٹُش‬
‫ٔىٹًڂ ڄؽدالً زُٕ‪٥‬دً ظٵهڃ ڄىً ٌڀٻ‪.‬‬

‫ڄالل‪٩‬ص ٌدڄص ‪ :‬بن خڀع٭سًن ‪ xxxxx:‬يف ‪ًَٙ MASM‬ن بذل ‪٬‬ىىخن‪.‬‬

‫ٔىٹىڂ حب‪ ُٝ‬خػبىخَِڄُص زٌن ‪٬‬ىىخوٌن ڀځم‪ٝ‬ىپ ‪٬‬ځً لفڃ خڀـ ‪: OP Code‬‬

‫خو‪ ُ٩‬ڀځ‪َُ٥‬ٹص خڀيت ل‪ُٝ‬ود هبد خػبىخَِڄُص وخغب‪ٝ‬ىپ ‪٬‬ځً لفڃ ‪ , OP Code‬بٌن ڀًَىد يف ‪ sizeOPCode‬لفڃ خڀـ ‪OP Code‬‬
‫خِن ول‪ُٝ‬ود خػبىخَِڄُص زٌن ‪٬‬ىىخوٌن َڄّود ؽبمد زـ ‪ StolenBytes‬و ‪. endStolenBytes‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪190‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫و‪ُ٩‬ش ‪٬‬ه ٸُذ ؼب٭ىن خڀـ ‪ OP Code‬يف زُودڄؿ خڀعىٹُك ‪: OllyDbg‬‬

‫ظځٻ خڀسدَعدض خحملد‪٤‬ص زدڀځىن زدألضبُ ٌٍ ڄد و٭ين‪ .‬بٌن خڀَُٕدپ خڀٌٍ هبر ؤن وًوځً ڄد ٌى بال ؤټىخي زُؾبُص إلټمدپ خڀربودڄؿ ويف لدڀص‬
‫ټدوط و‪٥‬إ ُٔٱځٷ خڀربودڄؿ زدػب‪٥‬إ‪.‬‬

‫اٍ‪ OP Code‬إىل غط‪ٜ‬اٍ‬


‫‪.3.5.2‬حت‪ ٌٜٛ‬ـ‬
‫ال وًٌَ بن ٴدظٻ ٌٍخ‪ ،‬ڀٽىً ؤڄُ ڄهڃ وال وبعدؾ ڀ‪ُٙ‬ق ټؽُٳ‪ ،‬ټٿ ڄد كبعدـً ٌى ؤوىد ٔىٹىڂ زع‪٩‬ځُٿ خػبىخَِڄُص يف زُودڄؿ خڀعىٹُك‬
‫ووٕه زدَعدض خڀٽىي ٌٽٍخ ‪:‬‬

‫وځ‪ٝ‬ٷ خڀسُدودض يف خؼبٵٽُش ڀعٍټُي‪ ,‬ال زإْ ؤن و‪١‬٭هد ٌىد ‪:‬‬

‫‪8B F8 33 F6 33 D2 0F BE 86 20 30 40 00 03 D0 46 3B F7 75 F2 81 FA 60 01 00 00 74 15‬‬

‫صبُٿ ـًخً ؤڀُٓ ټٍڀٻ؟! لٕىدً خِن ٔىمٍٲ خڀٵُخٰدض ‪:‬‬

‫‪8BF833F633D20FBE862030400003D0463BF775F281FA600100007415‬‬

‫و خِن ٌد ٸً ل‪ٝ‬ځىد ‪٬‬ځً خڀَُٕدپ ڀځىىخَِڄُص‪.‬‬

‫‪.3.5.3‬حتس‪ٜ‬س سذِ ارت‪ٛ‬اضظَ‪ٚ ١ٝ‬ختط‪ٜ‬ب ايه‪ٛ‬ز األقً‪ٞ‬‬


‫ټٿ ڄد ٌى ‪ٜ‬٭ر ٔىسٕ‪ ً٥‬ڀٻ‪ ،‬ڀٍخ ال ظٹځٷ ؤزًخً !!‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪191‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫َىـً ‪َُ٤‬ٹعدن ڀعىَُر خڀٽىي‪ :‬بڄد ‪٬‬ه ‪َُ٤‬ٷ ‪ OllyDbg‬وبڄد ‪٬‬ه ‪َُ٤‬ٷ زُؾبص ؤټىخي ـبدڀٵص ‪٬‬ه ‪َُ٤‬ٷ ‪ RadAsm‬ؤو و‪٫٠‬‬
‫ڄٽدن ٴدَٮ حبفڃ خػبىخَِڄُص‪ٔ .‬ىع‪ُ٥‬ٶ ڀألوًنش ٴٹ‪ ٣‬ألوىد وٵ‪١‬ځهد‪.‬‬

‫خؼب‪ٙ‬ٽځص ٌٍ يف خغب‪ٝ‬ىپ ‪٬‬ځً لفڃ خڀـ ‪ OP Code‬ويف لدڀعىد ٔىٕع٭مٿ ب‪٠‬دٴص ڄه زُؾبص خألن ‪ Zool@nder‬ڀعمًًَ لفڃ‬
‫خڀٽىي‪ ...‬و خڀ‪َُ٥‬ٹص ټدڀعدرل ‪ :‬ڄد ‪٬‬ځُٻ بال ظ‪٩‬ځُٿ خػبىخَِڄُص مث َئَص خحلـڃ يف خألٔٵٿ ڄه والپ زُودڄؿ ‪OllyDbg‬‬

‫لفڃ خػبىخَِڄُص ټمد ظ‪ٙ‬دًٌ ٌى ‪ 1Ch‬وڀى ٸمط حبٕدذ ‪٤‬ىپ خڀَُٕدپ ڀىـًظً ‪ٌ 28d‬ٽٓ‪.‬‬

‫خِن ٔىف٭ٿ خؼبٽدن ٴدَٮ زة‪٠‬دٴص ڄعٱًن ٴدَٮ حبفڃ ‪: 1Ch‬‬

‫خ‪ٛ‬اضظَ‪ ١ٝ‬إزضاز ايػط‪ٜ‬اٍ نـ ‪OP Code‬‬ ‫‪.3.5.4‬‬


‫ألن ٔعىخـهىد ڄ‪ٙ‬ٽځص يف ظىٵًُ خؼبځٳ‪ ,‬وڀٽه ال ‪٬‬ځُٻ ٔىًَؾ وىخَِڄُص لٹه خڀَُٕدپ ټـ‬
‫ٌٍخ ٌى خألڄُ خؼبهڃ يف ٌٍي خڀٵٽُش؛ ي‬
‫‪ OP Code‬ڀٍڀٻ ٔىمعدؾ بلًي خڀًوخپ ڀعمىَٿ ‪ String to Hex‬وٌٍ يخڀص ‪ htodw‬خدلوـىيش يف ڄٽعسص خڀـ ‪ masm32‬ڀٍڀٻ‬
‫ٔى‪١‬مهد يف خؼب‪ُٙ‬و‪ ٪‬ټدڀعدرل‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪192‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫مث و‪ ٫١‬وىخَِڄُص لٹه خڀَُٕدپ خؼبًوٿ ټـ ‪: OP Code‬‬

‫ؤڄد خڀسُدودض ٴٽدڀعدرل ‪:‬‬

‫ٌٍخ ٌى خڀٽىي خألوًن غبٹه خڀٽىي‪ ،‬ڀٽه ٔعىخـهىد ڄ‪ٙ‬ٽځعٌن‪:‬‬

‫خألوذل‪ :‬ؤن خػبدوص ال ظٹسٿ ٌڀٻ خڀٽىي زإټمځً ڀٍڀٻ ٔىًَّ ڄه ‪٤‬ىؽبد ټمٿ َُٔ‪ .٫‬وخِن صب‪ ٫‬خؼبځٳ و‪ ٫٠‬خڀَُٕدپ‪ ..‬و‪٥‬إ!! َٰڃ ؤن‬
‫و‪ ٫٠‬خڀَُٕدپ خڀ‪ٝ‬مُك؟‬

‫خوُص ‪ :‬ؤوً ال يبٽىىد خڀع٭ًَٿ يف ٸٕڃ خڀٽىي!! ڀٽه يبٽه ـ٭ځً ڀځٽعدزص ؤَ‪١‬دً زىخٔ‪٥‬ص زُودڄؿ ظ٭ًَٿ ‪ PE‬وكبه ٔىٕع٭مٿ ‪.LordPE‬‬
‫خڀػ‬

‫خٴعك خڀـ ‪ CrackME‬زـ ‪ LordPe‬مث خذبً ڀـ ‪ Section‬مث خ‪٠‬ٱ‪ ٣‬زدڀَّ خأليبه ‪٬‬ځً ٸٕڃ خڀٽىي وخوعُ ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪193‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ .3.5.5‬ايتذطب‪١‬‬
‫ڄد يبُّ ڄؽٿ ٌٍي خػبىخَِڄُص ؤهند ٴ٭دڀص حبُػ ال يبٽه ذبدوٌِد بن خٔعٱځط ز‪ٙ‬ٽٿ ڄؽدرل‪ ،‬ټعىَُر ټىي ود‪ُٜ‬ص خغبٵ‪ ٧‬يف زُودڄؿ‬
‫ڄد‪.‬‬

‫‪َُٔ ٫٠‬دپ ود‪٤‬ث ُٔٱځٷ زدػب‪٥‬إ‪ ،‬ؤڄد خڀَُٕدپ خڀ‪ٝ‬مُك ٴُٕمُ زٕالڂ‪.‬‬

‫ڀٽه ٌىدڀٻ ز٭‪ ٟ‬خؼبٕدوت ؽبٍي خغبمدَص وٌى ؤوً ال يبٽه ذبُزص خڀربودڄؿ بال زدڀَُٕدپ خڀ‪ٝ‬مُك‪ ،‬وبٌخ خوع‪ ُٙ‬خپَُٔدپ ٴال لىپ وال ٸىش بال‬
‫زدهلل‪.‬‬

‫ٌٍي ټدوط ٴٽُش زُودڄؿ خغبمدَص خػبد‪ ٚ‬زدڀٵَُٷ ڀٹً زًؤودٌد ڀٽىهد دل ظٽعمٿ‪ٔ ،‬ىٽمځً يف وٸط اللٷ بن ٘دء خهلل‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪194‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ربط ]‪[3.5.5‬‬ ‫هبٍي خؼبالل‪٩‬ص ظىعهٍ ٌٍي خڀٵٹُش‪ ،‬ؤعفً ٔىَْ ٘دڄٿ ڀځٵٽُش ٌىد‬

‫‪ .3.6‬ايؿهط‪ ٠‬ايػازغ‪ : ١‬محا‪ ١ٜ‬ايه‪ٛ‬ز بأسس ارت‪ٛ‬اضظَ‪ٝ‬ات ( غٓتعاٌَ َع ‪) CRC32‬‬

‫ڀٹً ظ‪ُ٥‬ٸىد ؽبٍخ خألڄُ يف خڀىٕىص خألوذل ڄه خڀٽعدذ وال زإْ ؤن و٭ًٌُد يف ٌٍخ خڀًَْ و‪ُ٩‬خً ألنبُعهد‪.‬‬

‫ؼبدٌخ ‪ CRC‬؟ ٔىٹىپ ڀٻ‪ :‬ال وًٌَ ؼبدٌخ!! ڀٽه ڄد وعإټً ڄىً ؤوً يبٽىٻ ؤن ربمٍ زُودؾبٻ زىٵٓ ود‪ُٜ‬ص ‪ CRC32 Check‬وخبىخَِڄُص‬
‫ڄه زُؾبعٻ‪.‬‬

‫ٌٿ ظعٍټُ ڄؽدپ خڀَُٕدپ خڀٱًن ٸدزٿ ڀځ٭ٽٓ؟ سبدڄدً ڄؽٿ ٌڀٻ ٔىٵ٭ٿ‪ ،‬ڀٽه ٌٍي خؼبُش ڀه و‪٥‬ځر َُٔدپ وال ٌڃ وبّوىن زٿ ٔى‪ُ١‬ٳ ڄاٸعدً‬
‫َعمٹٷ ڄه ؤن ٸُمص ‪ CRC‬ؼدزعص يف ټٿ ـّء ڄه خألڀٳ ڀځؽدوُص‪.‬‬

‫ٌٍي خڀ‪َُ٥‬ٹص ـًُش ؤَ‪١‬د بن خٔعٱځط ز‪ٙ‬ٽٿ ‪ٜ‬مُك‪.‬‬

‫ؤظٍټُ خؼبؽدپ ‪ Mono Serial‬؟ صبُٿ ٸڃ زىٕىً وظبً ‪ CRC32 Check‬ٴٕى٭مٿ ‪٬‬ځًُ‪.‬‬

‫ڄځى‪ ٛ‬ڀځٵٽُش ‪:‬‬

‫ٔىٹىڂ حبٕدذ ٸُمص ‪ CRC32‬ؼبد وًَُي يف زًخَص خڀربودڄؿ ڀٽٍ ظسٹً ؼدزعص‪.‬‬
‫مث و‪ُ١‬ٳ ڄاٸعدً و‪ ٫١‬يف بـُخجُعً لٕدذ ‪ CRC32‬ټٿ ـّء ڄه خألڀٳ ڀځؽدوُص وڄٹدَوعً زدأل‪ٜ‬ځٍ‪.‬‬

‫غبٕدذ ‪ٌ CRC‬ىدٺ ‪ً٬‬ش ڄٽعسدض ظعُك ٌڀٻ‪ ،‬وٌىدٺ ؤَ‪١‬د خڀٽىي خؼب‪ ًٌَٝ‬ؽبد ڄٵعىق‪ ،‬ؤعفً ټٿ ٍ٘ء ڄُٴٷ ڄ‪ ٫‬خڀًَْ‪ٔ .‬ىٕع٭مٿ‬
‫ڄٽعسص ‪٨‬هُض لًَؽدً ٴُهد ؤٰځر وىخَِڄُدض خڀع‪ٙ‬ٵًن وخؽبدٖ‪ ،‬وٌٍ ‪ CryptoHash‬يف خألظبسځٍ‪ ,‬هبد خڀ٭ًًَ ڄه خڀًوخپ ؤى٭‪ُ٥‬ٻ خڀـ‬
‫‪ Prototype‬ػبىخَِڄُص ‪: CRC32‬‬

‫‪CRC32 proto lpBuffer:DWORD,dwBufLen:DWORD,dwCRC:DWORD; init dwCRC = 0‬‬

‫ټٿ ڄد ربعدـً ٌٍي خڀًخڀص ٌى خؼبعٱًن خڀٌٍ ٔىمًي ‪ CRC‬ڀً مث لفمً‪ ،‬ؤڄد خغبٵ‪ ٧‬ٴهٍ ربٵ‪ ً٩‬يف خؼبٕفٿ ‪. eax‬‬

‫ڀى‪١‬مه خؼبٽعسص ټدڀعدرل ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪195‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ .3.6.1‬سػاب ‪ CRC‬إلدطا‪ ١ٝ٥‬ظض ايتػذ‪ٌٝ‬‬


‫ؤوال هبر ؤن كب‪ ُٝ‬خؼبٽدن خڀٌٍ وًَُ ‪٬‬مٿ ‪ CRC Check‬ڀً ټمد ٴ٭ځىد يف خڀٕدزٷ زٌن ‪٬‬ىىخوٌن ؿبًيَه ټدڀعدرل ‪:‬‬

‫مث و‪ُ١‬ٳ خؼباٸط ويخڀص لٕدذ ‪ CRC‬يف ‪ uMsg == WM_INITDIALOG‬ټدڀعدرل ‪:‬‬

‫مث يف بـُخجُص خؼباٸط و‪ُ١‬ٳ ظإټً ڄٕعمُ وؤڄُ خػبُوؾ بٌخ ظٱًن خڀـ ‪ ، CRC‬ڀٽه ٸسٿ ٌڀٻ ال زإْ ؤن وى‪٠‬ك ز٭‪١‬دً ڄه ؤـّخء ٌٍخ‬
‫خڀٽىي خألوًن‪:‬‬

‫– ‪CRCSize equ (EndCRCCheck‬‬ ‫;‬ ‫‪ُ٬‬ٴىد ڄعٱًن زً لفڃ خؼبٽدن خڀٌٍ وًَُ ضبدَعً ڄه خڀع٭ًَٿ‬
‫)‪BeginCRCCheck‬‬
‫‪mov ebx,CRCSize‬‬ ‫;‬ ‫وٹځىد خغبفڃ ڀځمٕفٿ ‪ ebx‬ألن خڀًخڀص ‪ CRC32‬ڀه ظٹسځً بٌخ و‪٠‬٭ىد‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪196‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ CRCSize‬هبد‬
‫‪mov eax,offset BeginCRCCheck‬‬ ‫وٹٿ ‪٬‬ىىخن زًخَص خؼبٽدن خڀٌٍ وًَُ ضبدَعً ڀځمٕفٿ ‪ eax‬ڀىٵٓ خڀٕسر ;‬
‫خڀٕدزٷ‬
‫‪invoke CRC32,eax,ebx,INIT_CRC32‬‬ ‫;‬ ‫خٔعً‪٬‬دء خڀًخڀص غبٕدذ ‪ CRC‬ڀځمٽدن خؼبُخي ضبدَعً ؤڄد‬
‫‪ INIT_CRC32‬ٴهٍ ؼدزعص وظٕدوٌ ‪ٜ‬ٵُ‬
‫‪mov OriginalCRC,eax‬‬ ‫;‬ ‫مث كبٵ‪ ٧‬ٸُمص ‪ CRC‬ڀځمٽدن خؼبُخي ضبدَعً يف ڄعٱًن زدٔڃ‬
‫?‪.data‬‬ ‫;‬
‫‪ OriginalCRC‬وحبفڃ ‪ dword‬ذبًي يف ٸٕڃ خڀسُدودض‬
‫? ‪OriginalCRC dd‬‬
‫‪invoke SetTimer,hWin,0,1,0‬‬ ‫;‬ ‫وؤوًنخً يخڀص و‪ ٫٠‬خؼباٸط يف خؼب‪ُٙ‬و‪٪‬‬

‫ؤڄد ڄد ىب‪ ٛ‬بـُخجُص خؼباٸط ٴهٍ ٴٹ‪ ٣‬لٕدذ ڂظٽَُ پـ ‪ CRC‬ڀىٵٓ خؼبٽدن وڄٹدَوعً ڄ‪ ٫‬خؼبٽدن خأل‪ٜ‬ځٍ ټدڀعدرل ‪:‬‬

‫ڄالل‪٩‬ص ٌدڄص ‪ :‬ټمد و٭ځڃ ٴةن خڀـ )‪ Break Point (BP‬يف خؼبىٹمدض ڄد ٌٍ بال خٔعً‪٬‬دء ڀځمٹد‪٤‬٭ص ‪ ، int3‬وزدڀعدرل ُٔٽىن وعُفص‬
‫خرل ُٔٱځٷ خڀربودڄؿ ‪٬‬ىً و‪.BP ٫٠‬‬
‫و‪ ٫٠‬وٹ‪٥‬ص ظىٸٳ ؤن خڀٽىي ُٔعٱًن يف خؼبٽدن خڀٌٍ ضبُىدي وزدڀط‬

‫ربط ]‪[3.6.1‬‬ ‫ذبً ٔىَْ ٘دڄٿ ڀځٵٽُش ٌىد‬

‫وهبٍي خؼبالل‪٩‬ص وىهٍ ٴٹُش خڀـ ‪ CrackME‬و‪َُ٩‬دً وظ‪٥‬سُٹُدً زإڄؽځص زُٕ‪٥‬ص ٸدزځص ڀځع‪٥‬ىَُ‪ ،‬ؤعفً زةٌن خهلل ز٭‪ ٟ‬خألڄؽځص يف ؤلٕه‬
‫خالٔعٱالپ ڀًَخٔعهد‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪197‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪KeyGenME‬‬ ‫‪ .4‬زضاغ‪ْ ١‬عط‪ ١ٜ‬يـ‬


‫ټُش خڀـ ‪ KeyGenME‬مت خٔعٹدءٌد ڄه ودٴٍش خڀعٕفُٿ ڀربخڄؿ ذبدََص‪ ،‬ڀٍڀٻ ٴځه و٭ٹًّ خألڄُ ؤىٍټُ ز٭‪ٟ‬‬
‫ټمد ٌټُود ڄه ٸسٿ ٴةن ٲ‬
‫خالوعالٴدض زٌن خڀـ ‪ CrackME‬وخڀـ ‪KeyGenME‬‬

‫‪KeyGenME‬‬ ‫‪CrackME‬‬
‫خڀع٭دڄٿ ڄ‪ ٫‬خڀَُٕىَْ ؤَِخَ – ٸىخجڃ – ‪ٜ‬ىَ ڄّ‪٬‬فص ال ‪٬‬الٸص ڀً زدڀَُٕىَْ‬
‫‪ ،‬و ظىٸُط‪.‬‬
‫ال ‪٬‬الٸص ڀً زدألڄُ بال ؼبه ًََُ خٔع٭ُخ‪١٬ ٞ‬الظً‬ ‫ټـ ‪CRC‬‬ ‫خ‪٬‬عمدي ز٭‪ ٟ‬خػبىخَِڄُدض پپظ‪١‬ځُٿ‬
‫ڄى‪٥‬ٷ ََد‪َ ٍ٠‬ٹىڂ ‪٬‬ځً ‪٬‬الٸدض ََد‪ُ٠‬ص ؿب‪١‬ص‬ ‫وٕسص خؼبى‪٥‬ٷ خڀَُد‪ ٍ٠‬زً ظٽدي ظى٭ًڂ وَ٭عمً ٰدڀسدً ‪٬‬ځً‬
‫خڀعفُزص‬
‫فبع‪ ٫‬وَع‪٥‬ځر وربش ََد‪ُ٠‬ص زدإل‪٠‬دٴص بذل خڀعفُزص يف‬ ‫فبٿ ٸځُالً وَع‪٥‬ځر وربش وذبُزص‬
‫خؼبًُخن‬

‫ڄد ميَّ خڀـ ‪ KeyGenMe‬يف خڀٱدڀر يخڀص ظُخز‪ ٣‬زٌن ‪ً٬‬ش ڄعٱًنخض وؾبدٌُٿ ألـٿ ًٌٲ وخلً وٌى ظىڀًُ خڀَُٕدپ‪ ,‬خڀ‪ُٝ‬ٱص خڀَُد‪ُ٠‬ص‬
‫ڀًخڀص خڀـ ‪ KeyGenMe‬ز‪ٝ‬ٵص ‪٬‬دڄص ‪:‬‬
‫)‪Serial = f(x,y,z,….‬‬

‫‪ ً٬‬وال رب‪.ًٝ‬‬
‫ٸً ظًوٿ ‪ً٬‬ش ‪٬‬ىخڄٿ ڄؽٿ ‪ :‬خٔڃ خؼبٕعىًڂ ‪ ,‬خٔڃ خعبهدِ‪ ,‬خڀـ ‪ ... ID‬بذل ًٰن ٌڀٻ ڄه خڀ٭ىخڄٿ وٌٍ ال ض‬

‫‪ .5‬زضاغ‪ ١‬تطب‪ٝ‬ك‪ ١ٝ‬يـ ‪ KeyGenME‬بػ‪ٝ‬ط‬


‫وسًؤ زدڀسُٕ‪ ٣‬ڀسځىٮ خؽبًٲ بن ٘دء خهلل‪ .‬ڄد ٔىٹىڂ زً خِن ٌى زُؾبص ‪ KeyGenME‬زُٕ‪ ٣‬بذل يَـص ربط خڀ‪ٝ‬ٵُ زةڄٽدن ؤٌ ٘ى‪ٛ‬‬
‫ڄسعًت زُؾبص ‪ KeyGen‬ڀً‪.‬‬

‫‪ .5.1‬املجاٍ األ‪ : ٍٚ‬املػت‪ ٣ٛ‬حتت ايكؿط‬

‫ٴٽُش خؼبؽدپ خألوپ ‪:‬‬

‫ودوعٌن وخلًش ڀالٔڃ وخألوُي ڀځعٕفُٿ وَِ خڀعٕفُٿ‪.‬‬


‫ـځر خالٔڃ‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪198‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ـ٭ٿ خالٔڃ ‪ ( Upper‬لُوٲ ټسًنش ) زدڀًخڀص ‪ CharUpper‬وٌٍ ڄسدُ٘ش‪.‬‬


‫ـځر خڀعٕفُٿ‪.‬‬
‫ڄٹدَوعً ڄ‪ ٫‬خالٔڃ ز٭ً ظٽسًن خغبُوٲ‪.‬‬
‫خڀىعُفص‪.‬‬

‫لٕىدً ٔىسًؤ خِن زةو‪ٙ‬دء ڄ‪ُٙ‬و‪ ٪‬ـًًَ زدٔڃ ‪ First KeyGenMe‬ؤو ؤٌ خٔڃ آوُ ظًَُي‪.‬‬

‫ڀىفهّ ‪ Template‬زُٕ‪ ٣‬ټهٍخ ڄؽالً ‪:‬‬

‫خـ٭ٿ خڀـ ‪ ID‬ڀځـ ‪ Controls‬ټدڀعدرل ‪:‬‬

‫‪ID Serial Edit‬‬ ‫‪= 1001‬‬


‫‪ID Name Edit‬‬ ‫‪= 1002‬‬
‫‪ID Register Boutton = 1005‬‬

‫خيوٿ ڄسدُ٘ش ڀى‪ ٫٠‬ټىي َِ خڀعٕفُٿ ‪:‬‬

‫ؤڄد خؼبعٱًنخض ٴهٍ ټدڀعدرل ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪199‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫خألڄُ زُٕ‪ ٣‬بذل خِن‪ ,‬وڄسدَٺ ‪٬‬ځُٻ ؤوپ ‪. KeyGenMe‬‬

‫ربط ]‪[5.1‬‬ ‫ذبً ٔىَْ ٘دڄٿ ڀځٵٽُش ٌىد‬

‫‪ .5.2‬املجاٍ ايجاْ‪ : ٞ‬املػت‪ ٣ٛ‬األ‪ٍٚ‬‬

‫ٔىٹىڂ زربؾبص ‪ KeyGenMe‬دبٕعىيً ًََّ يَخـدض ‪٬‬ه خڀٕدزٷ ڀٽىً َسٹً زُٕ‪٥‬دً‪.‬‬

‫ٴٽُش خؼبؽدپ ‪:‬‬

‫ـځر خالٔڃ‪.‬‬
‫ربىَٿ ټٿ لُٲ ڄىً بذل ٸُمعً زدڀـ ‪ Hex‬وب‪٠‬دٴص ٸُمص ڄ٭ُىص ؽبد‪ ،‬ؤىٕع٭مٿ يخڀص مت ُ٘لهد يف خڀىٕىص خألوذل وٌٍ‬
‫‪.wsprintf‬‬
‫ـځر خڀَُٕدپ‪.‬‬
‫ڄٹدَوص خڀَُٕدپ زىدظؿ خػبىخَِڄُص‪.‬‬
‫خڀىعُفص‪.‬‬

‫ٸڃ زةو‪ٙ‬دء ڄ‪ُٙ‬و‪ ٪‬ـًًَ زدٔڃ ‪KeyGenMe Level 1‬‬

‫مث ـهّ خڀـ ‪ Template‬ټدؼبؽدپ خڀٕدزٷ زىٵٓ خڀـ ‪ ID‬ڀځـ ‪ Controls‬وڀىسًؤ ‪:‬‬

‫وًوٿ ڀٽىي َِ خڀعٕفُٿ ڄسدُ٘ش ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪200‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ڄد ٔى‪ُ١‬ٵً ٌىد ٴٹ‪ ٣‬ؤن خڀٹُمص خڀيت ؤ‪٠‬ٵىدٌد ڀٽٿ لُٲ ٌٍ ‪ 5Ch‬وٌٍ خوعُدََص‪.‬‬

‫ؤڄد خؼبعٱًنخض ٴٽدڀعدرل ‪:‬‬

‫ربط ]‪[5.2‬‬ ‫ذبً ٔىَْ ٘دڄٿ ڀځٵٽُش ٌىد‬

‫‪ .5.3‬املجاٍ ايجايح ‪ :‬اغتعُاٍ اغِ ادتٗاظ يف ت‪ٛ‬ي‪ٝ‬س ايػط‪ٜ‬اٍ‬

‫ڄدِڀىد يف خألڄؽځص خڀسُٕ‪٥‬ص لىت مبُ ‪٬‬ځً خألٔدُٔدض‪ ،‬وڄد ٸًڄعً بذل خِن ڄد ٌى بال ؤٴٽدَ خزعًخجُص لىت ٌظٕهَّ ڀىد خڀٵُ‪ٜ‬ص ؼب٭ُٴص خػبً‪٪‬‬
‫وخألٴٽدَ خؼبعىٔ‪٥‬ص بذل خؼبعٹًڄص يف ضبدَص زُخؾبىد‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪201‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫َځّڄىد يف ٌٍي خڀٵٹُش يخڀص ـځر خٔڃ خعبهدِ وٌٍ يخڀص ڄهمص ڀځم‪ٝ‬ىپ ‪٬‬ځً ؤٴ‪١‬ٿ ضبدَص‪.‬‬

‫( ‪GetComputerName‬‬ ‫خهة اطى اجلهاس‬


‫‪LPTSTR lpBuffer‬‬ ‫ڄعٱًن غبٵ‪ ٧‬خٔڃ خعبهدِ ز٭ً ظىٵٍُ خڀًخڀص‬
‫‪LPDWORD nSize‬‬ ‫َُش وى‪٬‬دً ڄد ربعدـهد خڀًخڀص‬
‫ڄٕدلص ټر‬
‫;)‬

‫ڀه وٕعٱځهد خِن ز‪ٙ‬ٽٿ ـًُ؛ ألوً ڄدِخپ َځّڄىد ز٭‪ ٟ‬خؼب٭‪ُ٥‬دض خڀيت ٔىع‪ُ٥‬ٶ ؽبد يف ٴٹُخض ٸديڄص زةٌن خهلل‪.‬‬

‫ټٿ ڄد ٔىٵ٭ځً ُٔٽىن ‪٬‬ځً ٘ٽٿ خؼبٕعىي خڀعدرل وخڀسُٕ‪: ٣‬‬

‫‪ ‬ـځر خالٔڃ ڄه خؼبٕعىًڂ‪.‬‬

‫‪ ‬ب‪٠‬دٴص خالٔڃ بذل خٔڃ خعبهدِ ز‪َُ٥‬ٷش ڄ٭ُىص‪.‬‬

‫‪ ‬ـځر خڀعٕفُٿ مث ڄٹدَوعً ڄ‪ ٫‬خٔڃ خعبهدِ ز٭ً ب‪٠‬دٴص خٔڃ خؼبٕعىًڂ ڀً‪.‬‬

‫ٸڃ ز٭مٿ ڄ‪ُٙ‬و‪ ٪‬ـًًَ وڀُٽه زدٔڃ ‪ NameCumputer‬وـهّ ‪ Template‬ټدڀٕدزٹص هبد ودوعٌن وخلًش ڀالٔڃ وخألوُي‬
‫ڀځعٕفُٿ‪ ،‬مث َِ خڀعٕفُٿ‪ ،‬وخـ٭ٿ ‪ ID‬ڀځـ ‪ Controls‬ټدڀعدرل ‪:‬‬

‫)‪Name Edit (ID‬‬ ‫‪= 1001‬‬


‫)‪Serial Edit (ID‬‬ ‫‪= 1002‬‬
‫‪Register Boutton (ID) = 1003‬‬

‫ؤڄد خڀٽىي ٴٕى‪١‬٭ً ټٕدزٹً ؤى‪ُٙ‬ق ز٭‪: ً١‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪202‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ال َىـً ٍ٘ء ـًًَ!! بٌخ خٔعٱُزط ڄه ٌٍي خڀًخڀص ‪ RtlZeroMemory‬ٴال يخ‪ ٍ٬‬ڀځٱُخزص‪ ،‬ٴمد ٌٍ بال يخڀص ظٹىڂ زع‪ٝ‬ٵًن‬
‫ڄعٱًن ڄد‪ ،‬وؽبد زدَخڄعَُه‪ :‬خألوپ ٌى خؼبعٱًن‪ ،‬ؤڄد خڀؽدين ٴهى لفڃ خؼبعٱًن‪ ,‬ڀٽه خڀٕاخپ خڀٌٍ َ‪ُ٥‬ق وٵًٕ ‪ :‬ؼبدٌخ وٕع٭مځهد ؟ ٔسر‬
‫خٔع٭مدؽبد ڄع٭ځٷ زدٔع٭مدپ خڀًخڀص ‪ lstrcat‬خڀيت ظځ‪ٝ‬ٷ و‪ ٍٝ‬ڄعٱًنَه‪ ،‬ڀٽه ‪ُ٬‬سهد ؤهند ظ‪ ٫١‬خڀىدظؿ يف خؼبعٱًن خألوپ‪ ،‬ڀٍڀٻ بٌ خٔع٭مځىد خؼبؽدپ‬
‫‪ً٬‬ش ڄُخض ٔىم‪ٝ‬ٿ ‪٬‬ځً ٴُ‪ ٟ‬يف خؼبعٱًنخض‪ ،‬وڀعٵديٌ ٌڀٻ ٸمىد يف ټٿ ڄُش زط‪ٜ‬ٵًن خؼبعٱًن خڀٌٍ وځ‪ٝ‬ٷ خالٔڃ زً‪.‬‬

‫خڀٵٽُش خڀ٭دڄص ڀځمؽدپ ‪ :‬ـځر خٔڃ خعبهدِ مث ڀ‪ٝ‬ٹً زـ ‪ –AT4RE-‬مث ڀ‪ٝ‬ٹً زدالٔڃ خؼبًوٿ ڄه خؼبٕعىًڂ وڄٹدَوص خڀىدظؿ زدڀعٕفُٿ‬
‫خؼبًوٿ ڄه خؼبٕعىًڂ‪.‬‬

‫ؤڄد خڀسُدودض ٴٽدڀعدرل ‪:‬‬

‫وزٍڀٻ وىهٍ خؼبؽدپ‪.‬‬

‫ربط ]‪[5.3‬‬ ‫ذبً ٔىَْ ٘دڄٿ ڀځٵٽُش ٌىد‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪203‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪َ .6‬ؿ٘ ‪َٚ KeyFileME ّٚ‬جاٍ‬


‫ٌٍي خڀٵٹُش َسًوخ ؤوً ال ؤنبُص ؽبد يف ٌٍخ خڀًَْ‪ ،‬ڀٽىىد ؤ‪٠‬ٵىدٌد ڀُٽىن خؼبى‪٠‬ى‪ ٪‬و٘دڄالً ڄه صبُ‪ ٫‬ـىخوسً‪.‬‬

‫‪ٌ : KeyFileME‬ى ټٕدزٹً ڄٕعٹًً ڄه ز٭‪ ٟ‬خغبمدَدض خڀيت ال ظ‪٥‬ځر خظبدً وال َُٔدالً ؤؼىدء ظ‪ٝ‬ٵك خڀربودڄؿ‪ ،‬ڀٽىهد ظعمٹٷ ڄه ٌڀٻ يف‬
‫ڄځٳ ؤو يف خڀُهبٕعٌُ‪.‬‬

‫ظ‪ُ٥‬ٸىد ڀ‪ُٙ‬ق خڀًوخپ خؼبٕع٭مځص يف ٌٍي خڀٵٹُش يف خڀ٭ًًَ ڄه خؼبُخض وڀه و٭ًٌُد‪ ،‬ڀٍڀٻ ٔىًوٿ يف خؼبؽدپ ڄسدُ٘ش‪.‬‬

‫ٔىٹىڂ زربؾبص زُيبؿ ‪ٜ‬ٱًن َ٭مٿ ؼبًش ‪ 10‬يٸدجٷ مث ىبُؾ بٌخ دل هبً خؼبځٳ خؼبٕفٿ جبدوسً‪.‬‬

‫و‪٥‬ىخض خؼبؽدپ ‪:‬‬

‫ب‪٠‬دٴص ڄاٸط ڀځربودڄؿ َ٭مٿ ز٭ً ‪ 10‬يٸدجٷ‪.‬‬


‫ب‪٠‬دٴص وىخَِڄُص خڀسمػ ‪٬‬ه خؼبځٳ وخڀعمٹٷ ڄه ؤوً ڄٕفٿ‪.‬‬

‫ټٿ ڄد ‪٬‬ځُٻ ٴ٭ځً ٌى ؤن ظ‪ ٫١‬ڄ‪ُٙ‬و‪٬‬دُ ـًًَخً زدٔڃ ‪ KeyFileMe‬زً ودٴًش ڄؽالً و هبد ټٿ ڄد ظًَُ ڄد ظًَُ‪.‬‬

‫مث خڀٽىي وٌى زُٕ‪ ٣‬ـًخً ‪:‬‬

‫ؤڄد خڀسُدودض ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪204‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫خؼبؽدپ ڄُٴٷ ڄ‪ ٫‬خڀًَْ‪.‬‬

‫ربط ]‪[6‬‬ ‫ذبً ٔىَْ ٘دڄٿ ڀځٵٽُش ٌىد‬

‫بذل خِن ټٿ ٍ٘ء زُٕ‪ ٣‬وَ٭عمً يخڀص خؼبٹدَوص ز‪ٝ‬ٵص وخ‪٠‬مص ؤهځص خڀٽُٕ‪.‬‬

‫‪ .7‬خ‪ٛ‬اضظَ‪ٝ‬ات ايتؿؿرل ‪ٚ‬اشلاف‬


‫ٌٍي ٌٍ خڀٵٹُش خؼبمُّش يف خڀًَْ وخڀيت ٔىٹىڂ زعٵ‪ُٝ‬ٿ ؤڄؽځعهد ز‪ٙ‬ٽٿ َٕهٿ بيَخټً بن ٘دء خهلل‪.‬‬

‫ٔىٹٕڃ خڀٵٹُش بذل ولًخض يبٽه ظځىُ‪ٝ‬هد ٴُمد َځٍ ‪:‬‬

‫وىخَِڄُدض خڀع‪ٙ‬ٵًن‪.‬‬
‫ڄؽدپ ػبىخَِڄُص خڀع‪ٙ‬ٵًن‪.‬‬
‫وىخَِڄُدض خؽبدٖ‪.‬‬
‫ؤڄؽځص ػبىخَِڄُص خؽبدٖ‪.‬‬
‫خڀىخ‪٠‬ك يف خٔعٱالپ ‪. RSA‬‬

‫‪ .7.1‬خ‪ٛ‬اضظَ‪ٝ‬ات ايتؿؿرل‬

‫ٌىدٺ ‪ً٬‬ش ظ٭دََٳ ػبىخَِڄُدض خڀع‪ٙ‬ٵًن ؤو ‪ CIPHERS‬ڀٽه ٔى٭‪ ٍ٥‬وـهص و‪ُ٩‬ود ٴُهد ز‪َُ٥‬ٹص ڄسٕ‪٥‬ص ‪:‬‬

‫وىخَِڄُدض خڀع‪ٙ‬ٵًن ٌٍ خٔڃ ڄُټر ڄه ‪" :‬وىخَِڄُدض" و"ظ‪ٙ‬ٵًن"‬

‫وىخَِڄُدض ‪ :‬صب‪ ٫‬وىخَِڄُص وٌٍ ټځمص ڄ‪ٙ‬عٹص ڄه خٔڃ خڀ٭ددل خڀَُد‪ ٍ٠‬خڀ٭ُيب خؼبٕځڃ خػبىخَِڄٍ‪ ،‬وٸً ؤ‪٤‬ځٷ خٔڃ وىخَِڄُص ‪٬‬ځً‬
‫خڀ‪َُ٥‬ٹص خڀ٭ٹالوُص يف ظى‪ُ٩‬ڃ ولٿ خؼب‪ٙ‬دټٿ‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪205‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ؤڄد ظ‪ٙ‬ٵًن‪ :‬ٴهٍ ڄ‪ٙ‬عٹص ڄه ټځمص ٘ٵُش وظ٭ين َڄّ‪ ،‬ويبٽه ؤن وٕمُهد ؤَ‪١‬دً ظُڄُّ‪ ،‬ؤڄد خؽبًٲ ڄه خڀع‪ٙ‬ٵًن ٴهى ٸځر ؤو زبَُر خڀُڄىِ‬
‫ز‪ٙ‬ٽٿ ڄىع‪٩‬ڃ ويبٽه ٴٽً‪.‬‬

‫‪َ .7.2‬جاٍ رت‪ٛ‬اضظَ‪ ١ٝ‬ايتؿؿرل‬

‫ٌىدٺ ‪ً٬‬ش وىخَِڄُدض ڀع‪ٙ‬ٵًن خڀسُدودض ڄؽٿ ‪ AES , Caesar‬ؤو ‪ Way-3‬ؤو ‪ .... Mars , DES , Cast‬بذل ًٰنٌد ڄه‬
‫خػبىخَِڄُدض خؼب‪ٙ‬هىَش‪ ،‬ڀٽه ڀه وع‪ُ٥‬ٶ ڀ‪ُٙ‬لهد ألهند ‪٠‬ىمص ـًخً وڄ٭ٹًش ُ٘حدً ڄد‪ ،‬ڀٍڀٻ ٔىٽعٵٍ ز‪ُٙ‬ق ؤزٕ‪٥‬هد‪.‬‬

‫‪Caesar Cipher .7.2.1‬‬


‫ٌٍي خػبىخَِڄُص ٸًيبص وزُٕ‪٥‬ص ڄه خوعُخ‪ Caesar ٪‬ڀٍڀٻ ظبُط زدظبً‪ .‬وٌٍ ظ٭عمً ‪٬‬ځً بِخلص خغبُوٲ دبٵعدق ڄ٭ٌن‪.‬‬

‫خڀ‪ُٝ‬ٱص خڀَُد‪ُ٠‬ص ڀځىىخَِڄُص ‪:‬‬


‫‪Caesar(X) = X + Key Mod N‬‬

‫ؤٌ ؤن ظ‪ٙ‬ٵًن َڄّ ڄد ‪ٌ X‬ى زدٸٍ ٸٕمص خڀُڄّ ‪ X‬زدإل‪٠‬دٴص بذل خؼبٵعدق ‪٬‬ځً ؾبمى‪ ٪‬خڀُڄىِ خڀيت ظع‪١‬مه ‪. X‬‬

‫يثال رياضي ‪:‬‬

‫ٔى٭‪ ٍ٥‬ـًوپ خڀُڄىِ خڀعدرل ڀځمُوٲ خڀالظُىُص ‪:‬‬


‫‪A B C D E F G H I J‬‬ ‫‪K‬‬ ‫‪L‬‬ ‫‪M‬‬ ‫‪N‬‬ ‫‪O‬‬ ‫‪P‬‬ ‫‪Q‬‬ ‫‪R‬‬ ‫‪S‬‬ ‫‪T‬‬ ‫‪U‬‬ ‫‪V‬‬ ‫‪W‬‬ ‫‪X‬‬ ‫‪Y‬‬ ‫‪Z‬‬
‫‪0 1 2 3 4 5 6 7 8 9‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪2‬‬ ‫‪2‬‬ ‫‪2‬‬ ‫‪2‬‬ ‫‪2‬‬ ‫‪2‬‬
‫‪0‬‬ ‫‪1‬‬ ‫‪2‬‬ ‫‪3‬‬ ‫‪4‬‬ ‫‪5‬‬ ‫‪6‬‬ ‫‪7‬‬ ‫‪8‬‬ ‫‪9‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪2‬‬ ‫‪3‬‬ ‫‪4‬‬ ‫‪5‬‬

‫ټمد ظُي ٴٹً خوعُود ٴٹ‪ 26 ٣‬لُٴدً‪ ،‬بٌن ‪N = 26‬‬

‫ٸمىد زة‪٥٬‬دء ټٿ لُٲ َٸمدً ڄ٭ُىدً زدڀعُظُر‪ .‬وڀٽه ي‪٬‬ىد و‪ٙ‬ٵُ ټځمص ‪ ATRE‬ؤىىعدَ خؼبٵعدق ‪ 7‬ڄؽال‪.‬‬

‫ؤوالً هبر ؤن وإوٍ خغبُوٲ ز‪ٙ‬ٵُهتد ‪:‬‬

‫; ‪A=0‬‬ ‫‪T = 19 ; R = 17 ; E = 4‬‬


‫مث وٹىڂ زع‪ٙ‬ٵًن ټٿ لُٲ ‪٬‬ځً لًخ ‪:‬‬

‫)‪Caesar(A‬‬ ‫) ‪= 0 + 7 Mod 26 = 7 ( H‬‬


‫)‪Caesar(T‬‬ ‫) ‪= 19 + 7 Mod 26 = 0 ( A‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪206‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫)‪Caesar(R‬‬ ‫) ‪= 17 + 7 Mod 26 = 24 ( Y‬‬


‫)‪Caesar(E‬‬ ‫) ‪= 4 + 7 Mod 26 = 11 ( L‬‬
‫وزدڀعدرل ٴةن ظ‪ٙ‬ٵًن ټځمص ‪... HAYL ٌٍ ATRE‬‬

‫خألڄُ صبُٿ ؤڀُٓ ټٍڀٻ؟‬

‫بٌخ ؤَيض ٴٻ خڀع‪ٙ‬ٵًن ٴٽٿ ڄد هبر ‪٬‬ځُٻ ڄ٭ُٴعً ٌى خؼبٵعدق ٴٹ‪ ،٣‬ؤڄد خڀ‪ُٝ‬ٱص خڀَُد‪ُ٠‬ص ٴُمٽه خٔعىعدـهد زٕهىڀص‪.‬‬

‫‪ُٜ‬ٱص ٴٻ خڀع‪ٙ‬ٵًن ‪:‬‬

‫‪X = Caesar(X) – Key Mod N‬‬

‫ڀىٹڃ زٵٻ ټځمص ‪: HAYL‬‬

‫ؤوالً و٭‪ ٍ٥‬ڀٽٿ لُٲ ٸُمعً ‪:‬‬

‫; ‪H=7‬‬ ‫‪A = 0 ; Y = 24 ; L = 11‬‬

‫) ‪InversCeasar ( H‬‬ ‫) ‪= 7 – 7 Mod 26 = 0 ( A‬‬


‫) ‪InversCeasar ( A‬‬ ‫) ‪= 0 – 7 Mod 26 = - 7 Mod 26 = 45 Mod 26 = 19 ( T‬‬
‫) ‪InversCeasar ( Y‬‬ ‫) ‪= 24 – 7 Mod 26 = 17 ( R‬‬
‫) ‪InversCeasar ( L‬‬ ‫) ‪= 11 – 7 Mod 26 = 4 ( E‬‬

‫ڄالل‪٩‬ص ‪45 ≡ -7 [26] :‬‬

‫وخِن دل َسٷَ ڀىد بال خٔعٱالپ ٌٍي خخلوخَِڄُص ‪:‬‬

‫ٸڃ زةو‪ٙ‬دء ڄ‪ُٙ‬و‪ ٪‬ـًًَ زدٔڃ ‪ Caesar‬ؤىف٭ځً ‪ KeyFileMe‬ألن ٌٍخ خألوًن دل َىٿ و‪ُٝ‬سً ټدِوَُه‪:‬‬

‫مث خـ٭ٿ ‪ Template‬ټمد َځٍ ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪207‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫مث خـ٭ٿ ‪ ID‬خڀـ ‪ٌ Unregistered Labl‬ى ‪1002‬‬

‫ٔى‪ ٫١‬ټىيخً َى‪٠‬ك وٵٓ خؼبؽدپ خڀٌٍ ُ٘لىدي ََد‪ُ٠‬دً وزىٵٓ خعبًوپ‪:‬‬

‫مث بـُخجُيت ‪ OrginalToTable‬و ‪TableToOrginal‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪208‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ؤڄد خڀسُدودض ٴٽدڀعدرل ‪:‬‬

‫ؼبدٌخ خلعفىد خإلـُخجُعٌن ‪ OrginalToTable‬و ‪ TableToOrginal‬؟‬


‫ٔى٭‪ ٍ٥‬ڀـ ‪ A‬خڀٹُمص ‪0‬‬ ‫ټمد ظ٭ځڃ ٴةن ٸُڃ خغبُوٲ وخڀُڄىِ ڄه ـًوپ ‪ ASCII‬وكبه وًٌَُد ټمد يف خعبًوپ‪ ،‬ؤٌ ؤوىد‬
‫بذل ٸُڃ خعبًوپ‬ ‫خأل‪ٜ‬ځُص ‪ASCII‬‬ ‫و ڀـ ‪ B‬خڀٹُمص ‪ . 1‬ټٿ ڄد ٴ٭ځعً يف خإلـُخجُعٌن ٌى وىخَِڄُص زُٕ‪٥‬ص ڀعمىَٿ خڀٹُمص‬
‫ؤ‪٬‬الي وخڀ٭ٽٓ ؤَ‪١‬دً‪.‬‬

‫وخِن صب‪ ٫‬خؼبځٳ مث لدوپ ټُٕي‪.‬‬

‫ربط ]‪[7.2.1‬‬ ‫ذبً ٔىَْ ٘دڄٿ ڀځٵٽُش ٌىد‬

‫‪ .7.3‬خ‪ٛ‬اضظَ‪ٝ‬ات اشلاف‬

‫ٌٍخ خڀىى‪ ٪‬ڄه خػبىخَِڄُدض ٌى خڀٕدجً خِن ڀځمٵد‪٬ ٦‬ځً خؼب٭ځىڄدض ز‪ٙ‬ٽٿ ؿبمٍ ظٹَُسدً ‪ 100%‬وؤ٘هٌُد ‪ MD5‬ڀ٭ځٻ ظب٭ط ؤو‬
‫ٸُؤض ‪٬‬ىهد‪ ،‬وڀ٭ځٻ ؤَ‪١‬د ظٕدءڀط‪ :‬ؼبدٌخ ال يبٽه ‪٬‬ٽٕهد ڄديخڄط ڄى‪٥‬ٹُص وظ٭عمً ڄ٭ديالض وال ظ٭عمً ‪٬‬ځً ٸُڃ ‪ٙ٬‬ىخجُص ؟!‬

‫خعبىخذ ‪ :‬ال ؤيٌَ ټُٳ مت خوعُخ‪٬‬هد ڀٽه ڄه وـهص و‪ُ٩‬ود يبٽىىد ؤن وٹىڂ زعسُٕ‪٥‬هد ڀٻ زدؼبؽدپ خڀعدرل ‪:‬‬

‫ڀىإوٍ خغبُٲ ‪ A‬ٸُمص ‪ ASCII‬ڀً ٌٍ ‪ 41h‬خِن ٔىفٌُ ‪ً٬‬ش ‪٬‬مځُدض ‪٬‬ځً ٌٍي خڀٹُمص ‪:‬‬

‫‪41h * ABCDh = 2B9F0Dh‬‬


‫وإوٍ ٴٹ‪ ٣‬خڀٹُمص خڀىٔ‪ 9Fh ً٥‬مث قبٌُ ‪٬‬ځُهد ڄؽدالً ڄ‪ٙ‬دهبدً ‪:‬‬

‫‪9Fh * F666h + F9h*123456h = 124DF100 h‬‬


‫مث وإوٍ ڄىهد ٸُمص ڄ٭ُىص ڄؽالً ‪ 4Dh‬وقبٌُ ‪٬‬مځُص ؤوُي وٌٽٍخ‪ ...‬ويف ټٿ ڄُش وإوٍ ٴٹ‪ ٣‬ٸُمص ڄه خڀ٭مځُص ‪:‬‬

‫وكب‪ٝ‬ٿ ؤوًنخً ‪٬‬ځً ٌدٖ هبٍخ خڀ‪ٙ‬ٽٿ ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪209‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪9F4D3996D60790CD11C04F842EBC43C‬‬

‫خِن ڄدٌخ ڀى ؤ‪ُ٥٬‬عٻ ٌٍي خڀٹُمص وٸځط ڀٻ خٔعىعؿ رل خڀى‪ ٛ‬خأل‪ٜ‬ځٍ خڀٌٍ ؤ‪ٌٍ ً٥٬‬خ خؽبدٖ؟ ‪٤‬س٭دً ڀه ظٕع‪ ٫ُ٥‬ؤزًخ بال زدڀعىمٌن ؼبدٌخ؟‬

‫ألوً ڀًَٻ خػبىخَِڄُص ٴٹ‪ ٣‬وڀُٕط ڀًَٻ خڀٹُڃ خحملٍوٴص وْظ‪ ُ٥١‬بذل زبمُىهد‪.‬‬

‫ڀٽه ؼبدٌخ وُي ُ٘ق ٌٍي خػبىخَِڄُص يف خڀٽعر ‪٤‬ىَالً ـًخً وڄ٭ٹًخً ؟ خعبىخذ ‪ :‬ڀعىٵُ‪ ٟ‬وٕسص خغب‪ٝ‬ىپ ‪٬‬ځً وٵٓ خؽبدٖ ڀىٵٓ خڀسُدودض‪.‬‬

‫ټمد ظ٭ځڃ ٴهدٖ وىخَِڄُص ‪َ MD5‬عٽىن ڄه ‪ 32‬لُٴدً‪ ،‬وټٿ لُٲٍ يبٽه ؤن َٽىن ‪ 16‬لُٴدً ـبعځٵدً‪ ،‬بٌخ لٕر خؼبسًؤ خألٔدٍٔ‬
‫ڀځع٭ًخي ٴٕىم‪ٝ‬ٿ ‪٬‬ځً ‪:‬‬

‫‪ٌ 16 ^ 32 = 3,4028236692093846346337460743177e+38‬دٖ!! بوً َٸڃ وُدرل ـًخً!!‬

‫ربط ]‪[7.3‬‬ ‫ٔىَْ خڀٵٽُش ذبًي ٌىد‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪210‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫بردلة ‪ Search and Replace‬بلغة ‪Delphi‬‬


‫)‪SearchNReplace patch coding (Delphi‬‬

‫‪ .1‬املكسَ‪١‬‬
‫زُؾبص ؤيخش ظسمػ ‪٬‬ه ٸُڃ ڄ٭ُىص يف خؼبځٵدض زإوىخ‪٬‬هد مث ظكخوپ ز٭ً ٌڀٻ ظٱًُن ٌٍي خڀٹُڃ ؤڄُ ڀُٓ جبًًَ‪ ،‬ويف ؤَدڄىد ٌٍي َىـً خڀٽؽًن ڄه‬
‫خؼبځٵدض خؼب‪ًََٝ‬ص يف خڀىط زٽٿ خڀځٱدض ظع‪ُ٥‬ٶ بذل ‪٬‬مځُص خڀسمػ وظسًَٿ زدَعدض ٌىد وٌىدٺ‪.‬‬

‫و ڀٽه ؤوٍ خڀٹدَت ڄ٭ُٴص زُؾبص ٌٍي خأليخش َ٭عرب ڄه ؤٔدُٔدض خؽبىًٔص خڀ‪٫‬ټُٕص خڀيت هبر ‪٬‬ځً خؼبسعًجٌن ظ٭ځمهد وخإلؼبدڂ زٽٿ وسدَدٌد‪.‬‬

‫ٔىع‪ُ٥‬ٶ بن ٘دء خهلل بذل ٌٍي خڀ٭مځُص يف ٌٍخ خڀًَْ ز‪ٙ‬ٽٿ ‪٬‬ـــــدڂ ڄ‪ ٫‬و‪ ٫٠‬خػبىخَِڄُدض وخإلـُخءخض خڀيت كبعدـهد إلقبدِ ٌٍي‬
‫خأليخش و‪٬‬مځهد ز‪َُ٥‬ٹص ‪ٜ‬مُمص‪.‬‬

‫‪. OllyDbg‬‬
‫‪. Delphi 7‬‬
‫‪ HexWorkshop v5‬ڀځمٹدَوص‪.‬‬
‫سبَُه ربًٌ خألن ‪ Ahmad_k‬ڄُٴٷ‪.‬‬
‫ربمُٿ ٌٍي خأليوخض ڄه ڄىعًي خڀٵَُٷ خڀ٭ُيب ڀځهىًٔص خڀ٭ٽُٕص‪ ،‬ٸٕڃ خأليوخض‪.‬‬

‫ٌٍخ خڀًَْ ڄىـً بذل خؼبٕعىي خڀ‪ٙ‬سً ڄعىٔ‪ ،٣‬وٌى ڄً‪٬‬ىڂ زدڀ‪ٝ‬ىَ ڀُعٕهَّ ڀٻ خڀٵهڃ‬
‫ؤټؽُ بن ٘دء خهلل‪.‬‬

‫خڀعفُزص ڄ‪ ٫‬خظسد‪ ٪‬ټٿ‬


‫خدلڀٵدض خڀيت ‪٬‬مٿ ‪٬‬ځُهد ٌٍخ خڀًَْ ڄُٴٹص ڀٽٍ ظٹىڂ ؤوٍ خڀٽُمي ذ‬
‫خؼبُخلٿ وخڀى‪ٜ‬ىپ بذل خڀىعُفص خؼبُؾوش‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪211‬‬
AT4RE :‫انفريك انعرتي نههُذسح انعكسيح‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ .‫ خطىج إنى األياو‬:‫انهُذسح انعكسيح‬

‫ات‬٤‫اإلدطا‬ٚ ‫ات‬َٝ‫اضظ‬ٛ‫ ارت‬.1.1

‫ُٶ بذل‬٥‫ يف ئَىد ٔىع‬،‫دض خڀالِڄص خڀيت ربعدـهد خأليخش‬ٜ‫مٿ خڀٵمى‬٬ ً‫ځ‬٬ ‫ًًَ يف زُؾبص ؤٌ ؤيخش ڄهمد ټدن يوٌَد‬ٙ‫ خڀ‬ُٚ‫هبر خغب‬
: ‫دض خڀعدڀُص‬ٜ‫خڀٵمى‬

‫ ؟‬Hexadecimal ‫ ٌٿ ٌٍ ٸُڃ‬،‫ىهد‬٬ ‫مص خڀٹُڃ خڀيت وسمػ‬ٜ


.‫ىپ خڀٹُڃ خڀٹًيبص وخعبًًَش‬٤ ‫دزٷ‬٥‫ظ‬
.‫ُص ڀځمځٳ ٸسٿ خڀعٱًُن يف خڀٹُڃ‬٤‫مٿ وٕىص خلعُد‬٬
.‫خڀعإټً ڄه ؤن خؼبځٳ ٸً مت ظٱًُني ڄه ٸسٿ‬
.‫مځُص‬٬ ‫هدَ َٔدجٿ سبٽه خؼبٕع٭مٿ ٴهڃ ڄُخلٿ ټٿ‬٨‫ب‬

Hexadecimal ِٝ‫ ق‬ٖٞ ٌٖ ‫ِ اييت ْبشح ع ْٗا‬ٝ‫ ايك‬١‫ قش‬.1.2


function TestHexValue(TargetNumber: string; ResultLbl: TLabel; ActionEdt: TEdit;
ActionBtn: TButton): Boolean;
var i: longint;
TmpString: string;
begin
Result := False;

if TargetNumber = '' then Exit;


TmpString := TargetNumber;
TargetNumber := '';
for i := 1 to Length(TmpString) do
TargetNumber := TargetNumber + Upcase(TmpString[i]);

for i := 1 to Length(TargetNumber) do
if ((TargetNumber[i] < '0') or (TargetNumber[i] > '9')) and ((TargetNumber[i]
< 'A') or (TargetNumber[i] > 'F'))
then
begin
ActionEdt.MaxLength := 1;
ResultLbl.Font.Color := ClRed;
ResultLbl.Caption := 'BAD';
ActionBtn.Enabled := False;
Result := False;
Exit;
end else
begin
ActionEdt.MaxLength := 0;
ResultLbl.Font.Color := ClGreen;
ResultLbl.Caption := 'GOOD';
ActionBtn.Enabled := True;
Result := True;
end;
end;

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ 2009 212
AT4RE :‫انفريك انعرتي نههُذسح انعكسيح‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ .‫ خطىج إنى األياو‬:‫انهُذسح انعكسيح‬

َِ ‫ُٿ وظٵ٭ُٿ‬٥‫ وظ٭‬Hexadecimal ‫ًڂ خڀٕمدق زةيودپ ؤٌ ؿبُٲ ًٰن‬٬‫ و‬،‫ٴدجًش ٌٍي خػبىخَِڄُص ٌٍ خڀعمٹٷ ڄه خحملدَٲ خؼبًوځص‬
.‫هدَ َٔدجٿ ظ٭ځمىد زٍڀٻ‬٨‫ ب‬٫‫خڀسمػ ڄ‬

٠‫س‬ٜ‫ادتس‬ٚ ١‫ِ ايكسمي‬ٝ‫ٍ ايك‬ٛ‫ تطابل ط‬.1.3

if Length(OriginalValueEdt.Text) = Length(PatchedValueEdt.Text) then


begin
EqualityReportLbl.Caption := 'GOOD';
EqualityReportLbl.Font.Color := ClGreen;
end else
begin
EqualityReportLbl.Caption := 'BAD';
EqualityReportLbl.Font.Color := ClRed;
end;

.‫ىؽبد ؤڂ ال‬٤ ‫دزٷ‬٥‫هدَ َٔدجٿ ظ٭ځمىد زع‬٨‫ىپ خڀٹُڃ خؼبًوځص وب‬٤ ٛ‫ٌٍخ خعبّء ڄه خإلـُخجُص َٹىڂ زٵم‬

ِٝ‫رل يف ايك‬ٝ‫ يًًُـ قبٌ ايتػ‬١ٝ‫اط‬ٝ‫ است‬١‫ عٌُ ْػد‬.1.4


procedure BackupFile(sFileName: string; ReportMmo: TMemo);
begin
CopyFile(Pchar(sFileName), Pchar(sFileName + '.Bak'), True);
ReportMmo.Lines.Add('Original file backup... OK');
end;

‫ وٌٍ ظٹىڂ زىٕه خؼبځٳ‬،ًُ‫إ يف ټعدزص خڀٹُڃ خجليًَش ٴ‬٥‫ځٍ يف لدڀص لًوغ و‬ٜ‫ خؼبځٳ خأل‬٪‫ُد‬٠ ‫ٌٍي خإلـُخجُص ڄهمص ـًخً ألهند ذبىسىد‬
.‫ش‬٦‫ بذل خڀىٕىص خؼبىٵى‬.Bak ‫يخي‬
‫دٴص خڂض‬٠‫ځٍ وب‬ٜ‫خأل‬

ٌ‫ َٔ قب‬ٙ‫رل‬ٝ‫ ايتأنس َٔ إٔ املًـ قس مت تػ‬.1.5


if Pos(sOriginalByte, Str) > 0 then
begin
…..
…..
…..
…..
end
else
begin
Main.ReportMmo.Lines.Add('Already Patched');
end;;

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ 2009 213
AT4RE :‫انفريك انعرتي نههُذسح انعكسيح‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ .‫ خطىج إنى األياو‬:‫انهُذسح انعكسيح‬

‫ه خڀٹُڃ خؼبُخي ظٱًُنٌد ٌٿ ٌٍ ڄىـىيش ؤڂ ال؟‬٬ ٛ‫ ڄه بـُخجُص خڀعٱًُن وخڀٌٍ يبؽٿ خڀٵم‬ٛ‫ـّء ڄٕعىځ‬

ٌٜٛ‫ ايتش‬١َٝ‫اضظ‬ٛ‫ خ‬.1.6

‫ مث‬FormatByte ‫ خبىخَِڄُص‬Characters ‫ بذل‬Hexadecimal ‫َُٹص خڀسمػ خؼب٭عمًش يف ٌٍخ خڀًَْ ٌٍ خڀٹُدڂ زعمىَٿ ٸُڃ‬٤
.‫ه ٌٍي خڀٹُڃ خألوًنش يف خؼبځٳ خؽبًٲ‬٬ ‫خڀسمػ‬
function FormatByte(sValue: string): string;
var i: cardinal;
sData: Byte;

begin
for i := 0 to (length(sValue) div 2) - 1 do
begin
sData := StrToInt('$' + Copy(sValue, (i * 2 + 1), 2));
Result := Result + Char(sData);
end;
end;

‫ ايبشح‬١َٝ‫اضظ‬ٛ‫ خ‬.1.7

ُ‫ ظسًؤ خڀٹُخءش ڄه ؤوپ ٸُمص يف خؼبځٳ بذل آو‬، Srt ‫ ٸُڃ خؼبځٳ ټدڄالً يف خؼبعٱًن‬٫١‫ مث ظ‬،ًُ‫اللُدض خڀٹُخءش ٴ‬ٝ‫ظٹىڂ زٵعك خؼبځٳ خؽبًٲ ز‬
ً‫ځ‬٬ ‫ وظعىٸٳ‬،‫هُ َٔدڀص ظ٭ځمىد زٍڀٻ‬٩‫دزٷ ظ‬٥‫ ويف لدڀص وـىي ظ‬. i ‫ي يف خؼبعٱًن‬٦‫ځً لفڃ خؼبځٳ خڀٌٍ مت قٲ‬٬ ‫ ڄ٭عمًش يف خڀٹُخءش‬،‫ٸُمص‬
.‫ىىخن خڀٹُمص خڀيت وـًض‬٬
function Search(sFileName, sOriginalByte: string): Boolean;
var
F: file;
Str: string;
I: Integer;
begin

AssignFile(F, sFileName);
Reset(F, 1);
I := FileSize(F);
SetLength(Str, FileSize(F));
BlockRead(F, Str[1], I);

if Pos(sOriginalByte, Str) > 0 then


begin
Main.ReportMmo.Lines.Add('First byte Offset : 0x' +
IntToHex(Pos(sOriginalByte, Str) - 1, 8));
Main.ReportMmo.Lines.Add('');
Result := True;
end
else
begin
Main.ReportMmo.Lines.Add('Nothing found...');
Result := False;

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ 2009 214
AT4RE :‫انفريك انعرتي نههُذسح انعكسيح‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ .‫ خطىج إنى األياو‬:‫انهُذسح انعكسيح‬

end;

CloseFile(F);
end;

‫رل‬ٝ‫ ايتػ‬١َٝ‫اضظ‬ٛ‫ خ‬.1.8

.‫ خبىخَِڄُص خڀسمػ‬ٚ‫ خػبد‬ٛ‫ وظٹىڂ زىٵٓ خڀٵم‬،ًُ‫اللُدض خڀٹُخءش وخڀٽعدزص ٴ‬ٝ‫ظٹىڂ زٵعك خؼبځٳ خؽبًٲ ز‬

.‫إ؛ ألن خڀعإټً ڄٵًُ يخجمدً ٸسٿ خڀعٱًُن يف خؼبځٵدض‬٥‫ًود ټعدزعهد ڀعٵديٌ خػب‬٬‫ؤ‬

.‫ٍ مث ټعدزص خڀٹُڃ خعبًٌيش يف خؼبځٳ‬٤‫مځُص وٕه ڄځٳ خلعُد‬٬ ‫دزٷ ظعڃ‬٥‫ځً ظ‬٬ ‫ىپ‬ٝ‫يف لدڀص خغب‬
procedure Replace(sFileName, sOriginalByte, sPatchedByte: string);
var
BytesWritten: LongWord;
F: file;
Str: string;
I, Y: Integer;
begin

AssignFile(F, sFileName);
Reset(F, 1);
I := FileSize(F);
SetLength(Str, FileSize(F));
BlockRead(F, Str[1], I);

if Pos(sOriginalByte, Str) > 0 then


begin
Seek(F, Pos(sOriginalByte, Str) - 1);

BackupFile(sFileName, Main.ReportMmo);

for y := 1 to Length(sPatchedByte) do
begin
BlockWrite(F, sPatchedByte[y], SizeOf(sPatchedByte[y]), BytesWritten);
if sPatchedByte[y] <> sOriginalByte[y] then
begin
Main.ReportMmo.Lines.Add('Original value : ' +
IntToHex(Ord(sOriginalByte[y]), 2) + ' Patched value : ' +
IntToHex(Ord(sPatchedByte[y]), 2));
end;
end;
end
else
begin
Main.ReportMmo.Lines.Add('Already Patched');
end;
CloseFile(F);
end;

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ 2009 215
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫سبط زُؾبص خػبىخَِڄُدض وخإلـُخءخض زد‪٬‬عمدي خڀسٕد‪٤‬ص يف خڀٽىي ڀععمٽه ؤوٍ خڀٹدَت ڄه‬
‫خڀٵهڃ خڀ٭دڂ ڀ٭مځُص خڀسمػ وخڀٽعدزص‪ ،‬وپيبٽىٻ زب‪ ًُٝٝ‬لٕر خلعُدـٻ زدلعُخڂ خڀٹىخ‪ً٬‬‬
‫خڀ٭دڄص ڀځربؾبص ڀعٵديٌ خػب‪٥‬دء‪.‬‬

‫‪ .2‬تطب‪ٝ‬ل عًُ‪ٞ‬‬

‫‪ .2.1‬ايبشح‬

‫وىٹك خؼبؽدپ خؼبُٴٷ ربًٌ خألن ‪ Ahmad_k‬مث وٹىڂ زدڀععس‪ ٫‬لىت و‪ٝ‬ٿ بذل ‪٬‬ىىخن َٔدڀص خڀـ ‪ Sucess‬ووالل‪ ٧‬خڀُٔدڀص يف خؼبىٹك ‪:‬‬

‫مث خڀٹُڃ خؼبىعدَش ؽبٍخ خڀًَْ ‪C05974156A006850604085 :‬‬

‫‪٬‬مځُص خڀسمػ‪ :‬ربمُٿ خؼبځٳ خؽبًٲ‪ ،‬بيودپ خڀٹُمص خؼبعم‪ٝ‬ٿ ‪٬‬ځُهد ڄه خؼبىٹك يف ڄٽدن ‪ ،Original value‬بيودپ خڀٹُمص خعبًًَش يف‬
‫ڄٽدن ‪ ،Patched Value‬ڄُخ‪٬‬دش َٔدجٿ خڀعىسًُ‪ ،‬مث وٹُ َِ ‪.Search.‬‬

‫ز٭ًٌد َ‪٩‬هُ خڀىدظؿ يف ‪. Report‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪216‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ .2.2‬ايتػ‪ٝ‬رل‬

‫‪Original value‬‬ ‫‪:‬‬ ‫‪85C05974156A0068506040‬‬


‫‪Patched value‬‬ ‫‪:‬‬ ‫‪85C05975156A0068506040‬‬

‫‪٬‬مځُص خڀعٱًُن زُٕ‪٥‬ص وَٽٵٍ ٴٹ‪ ٣‬وٹُ َِ ‪ Replace‬ڀععڃ خڀ٭مځُص زىفدق‪.‬‬

‫‪ .3‬ارتامت‪١‬‬
‫خغبمً هلل مت ٌٍخ خڀًَْ وبن ٘دء خهلل َٽىن ٌو ڄىٵ٭ص ؤهٿ خڀٵهڃ‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪217‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫استعنال ‪ RDTSC‬للصف امليقح‬


‫‪Debugger Detection using RDTSC trick‬‬

‫‪َ .1‬كسَ‪:١‬‬

‫‪ .1.1‬األٖساف‬

‫ټ‪ٙ‬ٳ خؼبىٹك‪.‬‬
‫خٔعٱالپ ‪ RDTSC‬ػبً‪ ٪‬خڀـ ‪ Reverser‬وظىـُهً بذل وىخَِڄُص ظىڀًُ ود‪٤‬حص‪.‬‬

‫‪ .1.2‬تعاض‪ٜ‬ـ ‪َٚ‬تؿطقات‬

‫‪ RDTSC‬خوع‪ٝ‬دَ ڀـ ‪ Read Time Stamp Counter‬وٌى ‪٬‬سدَش ‪٬‬ه ‪ً٬‬خي َ٭مٿ يخوٿ خڀـ ‪ Processor‬وَٹُؤ خڀّڄه‬
‫خؼبىٹ‪ ٍ١‬زٌن ټٿ ‪.Instruction‬‬

‫ڀځمًَّ ڄه خڀٵهڃ خڀًٸُٷ ڀـ ‪ RDTSC‬وى‪ٝ‬مٻ ؤوٍ خڀٹدَت زدال‪٤‬ال‪٬ ٪‬ځً ظ٭َُٵً يف ڄىٔى‪٬‬ص ‪ Wikipedia‬ألن ًٌٴىد ڄه ٌٍخ‬
‫خڀًَْ ٌى ظ٭ځڃ خٔع٭مدؽبد ويؾبهد يف زُودڄؿ ذبَُيب‪ ،‬وڄه مث ٔىٲ كبدوپ ربځُځً بن ٖخء خهلل‪ ،‬خڀربودڄؿ زدٔڃ ‪UnderstandMe‬‬
‫وٌى ڄُٴٷ ڄ‪ٌٍ ٫‬خ خڀًَْ‪.‬‬

‫‪.OllyDbg ‬‬
‫‪.Delphi 7 ‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪218‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫خؼبځٵدض خڀيت ‪٬‬مٿ ‪٬‬ځُهد ٌٍخ خڀًَْ ڄُٴٹص ڀععمٽه ڄه خپذبُزص ڄ‪ ٫‬خظسد‪ ٪‬ټٿ‬
‫خؼبُخلٿ وخڀى‪ٜ‬ىپ بذل خڀىعُفص خؼبُـىش‪.‬‬

‫‪ .1.3‬ايبسا‪١ٜ‬‬

‫ڄ‪ُٙ‬و‪ ٪‬ـًًَخً مث كبٵ‪ ٧‬ټٿ خؼبځٵدض يف ؾبځً ـًًَ وبمٿ خٔڃ خڀعمَُه‪ ،‬وٹىڂ زى‪ ٫٠‬خؼبٽىودض خڀالِڄص‪ ،‬وٸً‬
‫خً‬ ‫و‪ٙ‬ٱٿ يڀٵٍ مث وى‪ٙ‬ث‬
‫خٴعُ‪٠‬ىد ؤوٻ ‪ -‬ؤوٍ خڀ٭َّّ‪ -‬ظ٭ُٲ ٸځُالً ڄه ڄسديت خڀربؾبص زًڀٵٍ ڀٽٍ ال وع‪ُ٥‬ٶ بڀُهد يف ٌٍخ خڀًَْ ولبُؾ ڄه خؼبى‪٠‬ى‪ .٪‬ؤَٴٹىد ڄ‪٫‬‬
‫خڀًَْ خؼبځٵدض خؼب‪ًََٝ‬ص ڀعفىر خػب‪٥‬إ وظٕهُٿ خڀٵهڃ زدڀىٕسص ڀځمسعًجٌن‪.‬‬

‫خؼب‪ُٙ‬و‪ ٪‬يف خڀىهدَص ُٔٽىن هبٍخ خڀ‪ٙ‬ٽٿ‪:‬‬

‫يف خڀَّ خػبد‪ ٚ‬زدڀعٕفُٿ ‪ Register‬وٽعر خڀٽىي خػبد‪ ٚ‬خبىخَِڄُص ڄ٭دعبص خٔڃ خؼبٕعىًڂ ڀعىڀًُ ‪ Serial‬مث ڄٹدَوعً زدڀــ ‪Serial‬‬
‫خؼبًوٿ‪ ،‬وإوٍ ٌٍخ خؼبؽدپ ‪:‬‬

‫وىخَِڄُص ربٕر ٸُڃ خالٔڃ خؼبًوٿ مث ظٹىڂ ز٭مځُدض لٕدزُص زُٕ‪٥‬ص ڀځى‪ٜ‬ىپ بذل ‪ serial‬زُٕ‪: ٣‬‬
‫;)‪Trim(NameEdt.Text‬‬
‫;‪sSerial := 0‬‬
‫;‪sName := NameEdt.Text‬‬
‫‪if NameEdt.Text <> '' then‬‬
‫‪begin‬‬
‫‪for i := 0 to Length(sName) do‬‬
‫‪begin‬‬
‫;)‪sSerial := sSerial + (Ord(sName[i]) * $128‬‬
‫;‪end‬‬
‫‪if a = b then‬‬
‫‪SerialTest := IntToHex(sSerial, 2) + IntToStr(sSerial * $512) else‬‬
‫;)‪SerialTest := IntToHex(sSerial, 16) + IntToStr(sSerial * $16‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪219‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪if SerialEdt.Text = SerialTest then‬‬


‫‪ShowMessage('[Sucess] Good reverser :)') else‬‬
‫;)'‪ShowMessage('[Error] Bad reverser :( Try again...‬‬

‫ٔى‪ُ١‬ٳ ټىيخً وٕعً‪ ٍ٬‬زً ‪ RDTSC‬يف لًغ ‪َ OnCreate‬٭ين ‪٬‬ىً زًخَص ظ‪ٙ‬ٱُٿ خڀعمَُه‪ ،‬وكبٵ‪ ٧‬خڀىدظؿ يف ڄعٱًن ‪٬‬دڂ ‪Global‬‬
‫وٕمًُ "‪ "a‬مث وٽعر خٔعً‪٬‬دءً يف لًغ ‪ OnClick‬خڀعدز‪ ٫‬ڀَّ ‪ Register‬مث كبٵ‪ ٧‬خڀىدظؿ يف ڄعٱًن ‪٬‬دڂ آوُ ‪ Global‬وٕمًُ "‪. "b‬‬
‫ُ٘ق خڀ٭مځُص يف خعبّء خڀع‪٥‬سُٹٍ ‪:‬‬
‫‪var‬‬
‫;‪Main: TMain‬‬
‫;‪a, b integer‬‬
‫‪implementation‬‬

‫يف لدڀص ظ‪ٙ‬ٱُٿ خڀربودڄؿ ودَؾ خؼبىٹك بٲن ڄُوَ خڀـ ‪َْ Instructions‬ٽىن زُٕ‪٬‬ص ټسًنش وْظٽىن خڀٹُڃ‬
‫ٲن خؼبُوَ زٌن ‪instructions‬‬
‫خڀىدذبص خحملٵى‪٨‬ص يف خؼبعٱًنخض ‪ a‬و ‪ b‬ڄعمدؼځص‪ ،‬ؤڄد ‪٬‬ىً ظ‪ٙ‬ٱُٿ خڀعمَُه يخوٿ خؼبىٹك ب‬
‫َعمٽڃ ٴًُ خؼبٕع٭مٿ زُٕ‪٬‬ص ـبعځٵص وز‪ُ٥‬حص‪ ،‬فبد هب٭ٿ خڀٹُڃ خحملٵى‪٨‬ص يف خؼبعٱًنخض خڀٕدزٹص ـبعځٵص‪ ،‬وٌىد َٽمه‬
‫خڀٵم‪ ٛ‬وٌى ڄٹدَوص زٌن ٸُڃ خؼبعٱًنخض ‪ a‬و ‪ b‬ولٕر ‪٤‬سُ٭ص خڀىدظؿ وىـً خؼبٕع٭مٿ بذل وىخَِڄُص خڀعىڀًُ‬
‫خڀ‪ٝ‬مُمص ؤو خػبد‪٤‬حص ڀىًَّ خڀ‪ٌ٥‬ن زځً‪.‬‬

‫‪ .2‬ايعٌُ ايتطب‪ٝ‬ل‪ٟ‬‬

‫‪ .2.1‬بطزت‪ ١‬خ‪ٛ‬اضظَ‪ RDTSC ١ٝ‬يف زيؿ‪ٞ‬‬

‫;‪function GetRDTSC: LongInt‬‬


‫‪var‬‬
‫;‪TimerHi: DWord‬‬
‫;‪TimerLo: Dword‬‬
‫‪begin‬‬
‫;)‪Sleep(10‬‬
‫‪asm‬‬
‫‪dw 310Fh // rdtsc‬‬
‫‪mov TimerLo, eax‬‬
‫‪mov TimerHi, edx‬‬
‫;‪end‬‬
‫;)‪Sleep(500‬‬
‫‪asm‬‬
‫‪dw 310Fh // rdtsc‬‬
‫‪sub eax, TimerLo‬‬
‫‪sbb edx, TimerHi‬‬
‫‪mov TimerLo, eax‬‬
‫‪mov TimerHi, edx‬‬
‫;‪end‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪220‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫;‪Result := TimerLo div 500000‬‬


‫;‪end‬‬

‫ودظؿ خػبىخَِڄُص ز٭ً خؼب٭دعبص َُـ‪ ٫‬يف ‪ result‬ووىٹځً كبه بذل خؼبعٱًنخض خڀٕدڀٵص خڀٍټُ‪ a :‬و ‪.b‬‬

‫ؤوالً يف لًغ ‪ OnCreate‬زًخَص ظ‪ٙ‬ٱُٿ خڀعمَُه ‪:‬‬


‫;)‪procedure TMain.FormCreate(Sender: TObject‬‬
‫‪begin‬‬
‫‪RDTSC‬‬
‫;‪end‬‬

‫ؼدوُدً يف لًغ ‪ OnClick‬خػبد‪ ٚ‬زَّ خڀعٕفُٿ ‪:‬‬


‫;)‪procedure TMain.RegisterBtnClick(Sender: TObject‬‬
‫…‬
‫…‬
‫…‬
‫‪begin‬‬
‫‪RDTSC‬‬
‫…‬
‫…‬
‫…‬
‫;‪end‬‬

‫‪ .2.2‬ايتتبع يف املٓكح‬

‫ٸسٿ خڀسًخَص هبر ظ٭‪ُ٥‬ٿ ڄ‪١‬دي ‪ RDTSC‬خؼبىـىي يف ‪ OllyDbg Advenced Plugin‬ټدڀعدرل ‪:‬‬

‫بڀٱدء ظٵ٭ُٿ ‪ Enable‬خػبد‪ ٚ‬زـ )‪Anti-RDTSC (Driver-based‬‬

‫ز٭ً خالوعهدء ڄه خڀ٭مځُص كبمٿ خڀعمَُه يف خؼبىٹك‪ ،‬مث و‪ ٫١‬وٹ‪٥‬ص ظىٸٳ ‪٬‬ىً ‪٬‬ىدوَه خغبًؼٌن ‪ OnCreate‬و ‪ OnClick‬خڀعدز٭ٌن ڀځَّ‬
‫‪ Register‬ووسًؤ خڀععس‪...٫‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪221‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ .2.2.1‬سسخ ‪OnCreate‬‬

‫يف زًخَص ظ‪ٙ‬ٱُٿ خڀربودڄؿ كب‪ٝ‬ٿ ‪٬‬ځً خڀٹُمص خڀيت ؤَـ٭ط ز٭ً ڄ٭دعبص ‪ RDTSC‬يف ‪ EAX‬مث لٵ‪٩‬ط يف خؼبعٱًن ‪ a‬و‪٬‬ىىخوً يف‬
‫خؼبىٹك ٌى ‪00456C04 :‬‬

‫‪MOV DWORD PTR DS:[456C04],EAX‬‬

‫والل‪ ٧‬ؤَ‪١‬دً ؤن خڀٹُمص خڀىدذبص ظعٱًن زعٱًن ُٔ‪٬‬ص خڀعىٹٿ زٌن ټٿ ظ٭ځُمص‪ ،‬وبٌخ و‪٠‬٭ىد وٹ‪٥‬ص ظىٸٳ يف زًخَص خػبىخَِڄُص مث خوعٹځىد‬
‫بذل آوٌُد ٴُٕٽىن خڀىدظؿ يخجمدً ـبعځٵدً ز٭ً ټٿ ظعس‪.٫‬‬
‫وبٌخ و‪٠‬٭ىد وٹ‪٥‬ص ظىٸٳ يف آوُ خػبىخَِڄُص ٴُٕٽىن خڀىدظؿ يخجڃخً ٌى وٵًٕ ألن خڀعىٹٿ زٌن خڀع٭ځُمدض مت زُٕ‪٬‬ص خڀـ‬
‫‪.Processor‬‬

‫سسخ ‪OnClick‬‬ ‫‪. 2.2.2‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪222‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ز٭ً خڀىٹُ ‪٬‬ځً َِ ‪ Register‬كب‪ٝ‬ٿ ‪٬‬ځً خڀٹُمص خڀيت ؤَـ٭ط ز٭ً ڄ٭دعبص ‪ RDTSC‬يف ‪ EAX‬مث لٵ‪٩‬ط يف خؼبعٱًن ‪ b‬و‪٬‬ىىخوً يف خؼبىٹك‬
‫ٌى ‪00456C08 :‬‬

‫‪ .2.3‬املكاضْ‪ ١‬بني ايٓتا‪٥‬ر‬

‫يف لدڀص ظ‪ٙ‬ٯَٿ خڀعمَُه ودَؾ خؼبىٹك ظٽىن خڀٹُمعٌن خحملٵى‪٨‬عٌن يف خؼبعٱًنخض ‪ a‬و ‪ b‬ڄع‪٥‬دزٹعٌن‪ ،‬وَعڃ خڀٌٍدذ بذل وىخَِڄُص ظىڀًُ َٸڃ‬
‫خڀعٕفُٿ خألوذل‪ ،‬ويف لدڀص ‪ً٬‬ش خڀع‪٥‬دزٷ وٌٍر بذل وىخَِڄُص ظىڀًُ َٸڃ خڀعٕفُٿ خڀؽدوُص‪.‬‬

‫َ٭ين خڀـ ‪َ Reverser‬ععس‪ ٫‬خػبىخَِڄُص ووب‪ٝ‬ٿ ‪٬‬ځً َٸڃ ظٕفُٿ َ٭ڃپ يخوٿ خؼبىٹك ٴٹ‪ ٣‬ويف لدڀص ذبَُسً ودَؾ خؼبىٹك ڀه َ٭مٿ ‪٬‬ىًي‪،‬‬
‫وٌٍخ ٌى خؽبًٲ ڄه خػبً‪٬‬ص‪.‬‬

‫َٽمه ؤَ‪١‬د َِ‪ RDTSC ٪‬يف ؤڄٽىص ټؽًنش ڄه خڀربودڄؿ ولٕر ‪٤‬سُ٭ص خڀىدظؿ َعإؼُ خڀربودڄؿ زُٰسدض خؼبربڄؿ‪ ،‬ڄه ‪ Exceptions‬بذل‬
‫َٔدجٿ ظىسًُ ؤو ًٰنٌد‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪223‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ظ٭مًود يف ٌٍخ خڀًَْ ظٱًُن ـّء ‪ٜ‬ٱًن يف وىخَِڄُدض ظىڀًُ َٸڃ خڀعٕفُٿ وـ٭ځهد ڄعٹدَزص ڀععمٽه ؤوٍ خڀ٭َّّ ڄه خڀٵهڃ زإزٕ‪٣‬‬
‫خألڄؽځص‪ ،‬ويبٽىٻ ؤن ظ٭ٹً خألڄىَ يف خػبىخَِڄُدض خؼبُٴٹص‪ ،‬ٴٹ‪ ٣‬خلُ‪٬ ٚ‬ځً خڀًٸص يف خڀربؾبص إلـسدَ خڀـ ‪ Reverser‬خؼبُوَ خبىخَِڄُص‬
‫‪ًَ RDTSC‬وَدً زـ ‪ F8‬ڀع‪١‬مه ؤن خڀىدظؿ ُٔٽىن ـبعځٵدً زٌن زًخَص ظ‪ٙ‬ٱُٿ خڀربودڄؿ ولًغ ‪ OnClick‬ڄؽالً‪.‬‬

‫‪OllyDbg‬‬ ‫خٔع٭مدپ وً‪٬‬ص ‪ RDTSC‬ظٽ‪ٙ‬ٳ خؼبىٹك‪ ،‬وذبدوِ ٌٍي خػبً‪٬‬ص ٔهٿ وَٽٵٍ ٴٹ‪ ٣‬ظى‪ُٝ‬ر‬
‫‪ Advenced Plugin‬وظٵ٭ُٿ وُدَ ‪.Anti-RDTSC‬‬
‫خؼبٹعُلص يف خڀـ‬ ‫ضبدَص ‪Anti-RDTSC‬‬ ‫ٔىٲ وع‪ُ٥‬ٶ ؤَ‪١‬دً بذل خٔع٭مدؽبد يف يَْ ټ‪ٙ‬ٳ خؼبىٹك زدٔعٱالپ ؼٱُش‬
‫‪.OllyDbg Advenced Plugin‬‬

‫‪ .2.3.1‬ت‪ٛ‬ابع ‪:‬‬
‫خارج ادلُمر‬
‫‪Name‬‬ ‫‪: STRELiTZIA‬‬
‫‪Serial‬‬ ‫‪: 3A9B8311592688‬‬

‫داخم ادلُمر‬
‫‪Name‬‬ ‫‪: STRELiTZIA‬‬
‫‪Serial‬‬ ‫‪: 000000000003A9B85281232‬‬

‫‪ .3‬ارتامت‪١‬‬
‫خغبمً هلل مت ٌٍخ خڀًَْ وبن ٘دء خهلل ذبً ٴًُ خؼبع٭ص وخڀٵدجًش‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪224‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫كصف درايفر ‪ Advanced OllyDbg‬للصف امليقح‬


‫‪Advanced OllyDbg Driver Detection | AODD Trick‬‬

‫خؼبځٵدض خڀيت ‪٬‬مٿ ‪٬‬ځُهد ٌٍخ خڀًَْ ڄُٴٹص ڀُعٕهٍَّّ ڀٻ ؤوٍ خڀٽُمي خڀعفُزص ڂ‪٪‬‬
‫خظسد‪ ٪‬ټٿ خؼبُخلٿ وخڀى‪ٜ‬ىپ بذل خڀىعُفص خؼبُؾوش‪.‬‬

‫‪َ .1‬كسَ‪:١‬‬

‫‪ .1.1‬األٖساف‬

‫ټ‪ٙ‬ٳ خؼبىٹك‪.‬‬

‫‪ .1.2‬تعاض‪ٜ‬ـ‬

‫‪ RDTSC‬خوع‪ٝ‬دَ ڀـ ‪ Read Time Stamp Counter‬وٌى ‪٬‬سدَش ‪٬‬ه ‪ً٬‬خي َ٭مٿ يخوٿ خڀـ ‪ Processor‬وَٹُؤ خڀّڄه‬
‫خؼبىٹ‪ ٍ١‬زٌن ټٿ ‪.Instruction‬‬

‫ڀځمًَّ ڄه خڀٵً ڂ خڀًٸُٷ ڀـ ‪ RDTSC‬وى‪ٝ‬مٻ ؤوٍ خڀٹدَت زدال‪ّ٤‬ال‪٬ ٪‬ځً ظ٭َُٳ ڄىٔى‪٬‬ص ‪ Wikipedia‬وټٍڀٻ خال‪ّ٤‬ال‪٬ ٪‬ځً‬
‫خڀًَْ خڀٕدزٷ ڄ‪ ٫‬خڀعمَُه ڀٵهڃ آڀُص ‪.RDTSC‬‬

‫ًٌٴىد ڄه ٌٍخ خڀًَْ ٌى ټ‪ٙ‬ٳ يَخَٵُ ‪ fakerdtsc.sys‬و‪ anti_rdtsc.sys‬خڀٌٍ خ‪٬‬عمً يف ‪Advenced Plugin‬‬
‫‪ OllyDbg‬ڀًٕ وً‪٪‬ش ‪.RDTSC‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪225‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ٔىٕع٭مٿ وٵٓ ڄؽدپ خڀعمَُه خڀٕدزٷ ‪ UnderstandMe‬خڀٌٍ ٔعفًي ڄُٴٹدً ڄ‪ٌٍ ٫‬خ خڀًَْ‪.‬‬

‫‪. OllyDbg‬‬
‫‪. Delphi 7‬‬

‫‪ .1.3‬ايبسا‪١ٜ‬‬

‫ٸسٿ خڀسًخَص هبر ظٵ٭ُٿ وُدَ ڄ‪١‬دي ‪ RDTSC‬خؼبىـىي يف ‪ Advenced OllyDbg Plugin‬ٺخڀعدرل ‪:‬‬

‫زـ )‪Anti-RDTSC (Driver-based‬‬ ‫ظٵ٭ُٿ ‪ Enable‬خػبد‪ٚ‬‬

‫ز٭ً خالوعهدء ڄه خڀ٭مځُص كبمٿ خڀعمَُه يف خؼبىٹك‪ ،‬وو‪ ٫١‬وٹ‪٥‬ص ظىٸٳ ‪٬‬ىً ‪٬‬ىدوَه خغبًؼٌن ‪ OnCreate‬و ‪ OnClick‬خڀعدز٭ٌن ڀَّ‬
‫‪ Register‬ووسًؤ خڀععس‪...٫‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪226‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ .1.3.1‬سسخ ‪OnCreate‬‬

‫يف زًخَص ظ‪ٙ‬ٱُٿ خڀربودڄؿ كب‪ٝ‬ٿ ‪٬‬ځً خڀٹُمص خڀيت ؤَـ٭ط ز٭ً ڄ٭دعبص ‪ RDTSC‬يف ‪ EAX‬مث لٵ‪٩‬ط يف خؼبعٱًن ‪ a‬و‪٬‬ىىخوً يف خؼبىٹك ٌى ‪:‬‬
‫‪00456C04‬‬
‫‪MOV DWORD PTR DS:[456C04],EAX‬‬

‫والل‪ ٧‬ؤَ‪١‬دً ؤن خڀٹُمص خڀىدذبص ال ظعٱًن زعٱًن ُٔ‪٬‬ص خڀعىٹٿ زٌن ټٿ ظ٭ځُمص‪ ،‬وبٌخ و‪٠‬٭ىد وٹ‪٥‬ص ظىٸٳ يف زًخَص خػبىخَِڄُص مث خوعٹځىد بذل‬
‫آوٌُد ٴُٕٽىن خڀىدظؿ وٵًٕ يخجمدً ز٭ً ټٿ ظعس‪ ٫‬وٌٍخ َخـ‪ ٫‬ڀځًََٵُ خؼبى‪ ٛٝ‬إلز‪٥‬دپ ‪.RDTSC‬‬

‫‪ .1.3.2‬سسخ ‪OnClick‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪227‬‬
AT4RE :‫انفريك انعرتي نههُذسح انعكسيح‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ .‫ خطىج إنى األياو‬:‫انهُذسح انعكسيح‬

‫ىىخوً يف خؼبىٹك‬٬‫ و‬b ‫ط يف خؼبعٱًن‬٩‫ مث لٵ‬EAX ‫ يف‬RDTSC ‫ځً خڀٹُمص خڀيت ؤَـ٭ط ز٭ً ڄ٭دعبص‬٬ ‫ٿ‬ٝ‫ كب‬Register َِ ً‫ځ‬٬ ُ‫ز٭ً خڀىٹ‬
00456C08 : ‫ٌى‬

ً‫ يؾب‬٣‫ وَسٹً ٴٹ‬،ُ‫ٳ خڀًَخَٵ‬ٙ‫ ڀٍخ ٔىمدوپ زُؾبص ټىي َٽ‬،ُٞ‫مڃ ؽبٍخ خڀٱ‬ٜ ً‫سُ٭ٍ ألو‬٤ ُ‫ وٌٍخ ؤڄ‬،‫ص‬٬ً‫ٿ خػب‬٥‫ ؤن َ٭‬٪‫د‬٥‫خڀًَخَٵُ خٔع‬
.RDTSC ‫ٳ‬ٙ‫ ټىي ټ‬٫‫ڄ‬

١ًُٝ‫ َطاسٌ ايع‬.1.3.3


.‫ُٶ بڀًُ يف خڀًَْ خڀٕدزٷ‬٥‫ مت خڀع‬RDTSC : ‫ٳ خؼبىٹك زدٔع٭مدپ‬ٙ‫ټ‬

anti_rdtsc.sys ‫ و‬fakerdtsc.sys ُ‫ٳ يَخَٵ‬ٙ‫َُٷ ټ‬٤ ‫ه‬٬ ‫ٳ خؼبىٹك‬ٙ‫ټ‬

١‫ ايدلزت‬.2

program AdvancedOllyDbg;
uses
windows, SysUtils;
const
DRIVER_INFORMATION = 11;
fakerdtsc = 'fakerdtsc.sys';
anti_rdtsc = 'anti_rdtsc.sys';
type
TPDWord = ^DWORD;
TDriverInfo = packed record
Address: Pointer;
Size: DWORD;
Unknown2: DWORD;
EntryIndex: DWORD;
Unknown4: DWORD;
Name: array[0..MAX_PATH + 3] of Char;
end;
var
ZwQuerySystemInformation: function(infoClass: DWORD;
buffer: Pointer;
bufSize: DWORD;
returnSize: TPDword): DWORD; stdcall = nil;
procedure GetDriverInfo;
var
temp, Index, numBytes, numEntries: DWORD;
buf: TPDword;
driverInfo: ^TDriverInfo;
Result: string;
begin
if @ZwQuerySystemInformation = nil then
ZwQuerySystemInformation := GetProcAddress(GetModuleHandle('ntdll.dll'),
'ZwQuerySystemInformation');
ZwQuerySystemInformation(DRIVER_INFORMATION, @temp, 0, @numBytes);
buf := AllocMem(numBytes * 2);

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ 2009 228
AT4RE :‫انفريك انعرتي نههُذسح انعكسيح‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ .‫ خطىج إنى األياو‬:‫انهُذسح انعكسيح‬

ZwQuerySystemInformation(DRIVER_INFORMATION, buf, numBytes * 2, @numBytes);


numEntries := buf^;
driverInfo := Pointer(DWORD(buf) + 12);
for Index := 1 to numEntries do
begin
Result := ExtractFileName(driverInfo^.Name);
(* _______________________________________ *)
if (Result = fakerdtsc) or (Result = anti_rdtsc) then
MessageBoxA(0, '[Sucess] OllyDbg Detected'#13''#13'STRELiTZIA |
AT4RE'#13'www.at4re.com'#13'OllyDbg Advanced Anti-RDTSC Driver Detection',
'Sucess', MB_OK);
(* _______________________________________ *)

Inc(driverInfo);
end;
Delete(Result, 1, 2);
FreeMem(buf);
end;
begin
GetDriverInfo;
end.

‫خڀيت‬ ntdll.dll ‫خؼبىـىيش يف خؼبٽعسص خڀًَىدڄُٽُص‬ ZwQuerySystemInformation ‫دڂ وٕع٭مٿ يخڀص‬٩‫ص يف خڀى‬٥ٙ‫ځً ٸدجمص خڀًَخَٵُ خڀى‬٬ ‫ىپ‬ٝ‫ڀځم‬
.‫دئٌد‬٬ً‫َعڃ خٔع‬

: MSDN Library ‫ٱًن ڄه ظ٭َُٵهد يف‬ٜ ‫و ٌٍخ ـّء‬

NTSTATUS WINAPI ZwQuerySystemInformation(


__in SYSTEM_INFORMATION_CLASS SystemInformationClass, ‫ُٳ ؽبد خؼباٸط‬١‫ خڀهخٴٍش خڀيت ٔى‬ٟ‫ڄٹس‬
__in_out PVOID SystemInformation, 0 ‫ً خڀٹُمص‬٥٬‫ڀه كبعدـً؛ ڀٍخ ؤ‬
‫ٌٍخ ٌى خؼبهڃ وٌى ڄًش خؼباٸط وربٕر زإـّخء‬
__in ULONG SystemInformationLength,
‫خألڀٳ ڀځؽدوُص‬
__out_opt PULONG ReturnLength 0 ‫ً خڀٹُمص‬٥٬‫ال لدـص ڀىد زً؛ ڀٍخ ؤ‬
);

Remarks
The ZwQuerySystemInformation function and the structures that it returns are internal to the operating system and
subject to change from one release of Windows to another. To maintain the compatibility of your application, it is better
to use the alternate functions previously mentioned instead.
If you do use ZwQuerySystemInformation, access the function through run-time dynamic linking. This gives your code an
opportunity to respond gracefully if the function has been changed or removed from the operating system. Signature
changes, however, may not be detectable.
This function has no associated import library. You must use the LoadLibrary and GetProcAddress functions to
dynamically link to Ntdll.dll.

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ 2009 229
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫يبٽىٻ خال‪٤‬ال‪٬ ٪‬ځً خؼب٭ځىڄدض خڀًٸُٹص خػبد‪ٜ‬ص هبٍي خڀًخڀص يف ڄٽعسص ‪. MSDN‬‬

‫ز٭ً بل‪ٝ‬دء خڀًَخَٵُ خڀى‪٥ٙ‬ص يف خڀى‪٩‬دڂ وٹىڂ دبٹدَوص ؤظبدء خڀًَخَٵُ زـ ‪ anti_rdtsc.sys‬و ‪ fakerdtsc.sys‬ويف لدڀص خڀع‪٥‬دزٷ ظ‪٩‬هُ‬
‫َٔدڀص ظ٭ځمىد زٍڀٻ ‪:‬‬
‫‪if (Result = fakerdtsc) or (Result = anti_rdtsc) then‬‬
‫| ‪MessageBoxA(0, '[Sucess] OllyDbg Detected'#13''#13'STRELiTZIA‬‬
‫‪AT4RE'#13'www.at4re.com'#13'OllyDbg Advanced Anti-RDTSC Driver Detection',‬‬
‫;)‪'Sucess', MB_OK‬‬

‫ظ٭مًود ‪ً٬‬ڂ ظ٭ٹًُ ‪٪‬ڄځُص خڀٵم‪ ،ٛ‬وڀٽه خ‪٬‬ځڃ ؤوٍ خڀٹدَت ؤن زب‪ُ٥‬هد ُٔٽىن ٔهالً ويف ڄعىدوپ خعبمُ‪٫‬؛ ڀٍخ‬ ‫يف خؼبؽدپ خؼبُٴٷ‬
‫َى‪ٝ‬ك زة‪٠‬دٴص ظ‪ٙ‬ٵًن الٔڃ خڀًَخَٵُ ويخڀص خڀٵم‪ ٛ‬وب‪٠‬دٴص وً‪ ٪‬ؤوُي ذب٭ٿ خڀعىٹُك ‪ٜ‬٭سدً وفبالً‪.‬‬

‫‪ .3‬تٓك‪ٝ‬ح ايتُط‪ٜٔ‬‬
‫و‪ ٫١‬وٹ‪٥‬ص ظىٸٳ ‪٬‬ځً خڀ٭ىىخن خڀعدرل ‪ 00407DE0‬مث وٹىڂ زدڀععس‪ ٫‬وٹ‪٥‬صً وٹ‪٥‬صً ڀٵهڃ ڄد هبٌُ ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪230‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫والل‪ ٧‬ٴم‪ ٛ‬ټٿ ؤظبدء خڀًََٵُخض خڀى‪٥ٙ‬ص يف خڀى‪٩‬دڂ وڄٹدَوعهد زدڀًَخَٵَُه خؼبٍټىََه ٔدزٹدً‪ ،‬ويف لدپ ظ‪٥‬دزٷ بلًخنبد ظ‪٩‬هُ َٔدڀص‬
‫ظ٭ځمىد زٍڀٻ‪.‬‬

‫‪ RDTSC‬و ‪Advanced OllyDbg Driver‬‬ ‫يبٽىٻ ؤوٍ خڀٹدَت يڄؿ خػبً‪٬‬عٌن ڄ٭دً‪ ،‬وً‪٬‬ص خڀًَْ خڀٕدزٷ‬
‫ڀٽ‪ٙ‬ٳ خؼبىٹك‪ ،‬وټٿ خغبٹىٶ ؿبٵى‪٨‬ص ڀځٵَُٷ‬ ‫‪AODD‬‬ ‫‪ Detection‬خڀيت ْن‪٤‬ځٷ ‪٬‬ځُهد بن ٘دء خهلل خٔڃ وً‪٬‬ص‬
‫خڀ٭ُيب ڀځهىًٔص خڀ٭ٽُٕص‪.‬‬

‫‪ .4‬ارتامت‪١‬‬
‫خغبمً هلل مت ٌٍخ خڀًَْ وبن ٘دء خهلل ذبً ٴًُ خؼبع٭ص وخڀٵدجًش‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪231‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫كيفية بردلة ‪ Unpacker‬بسيط‬


‫‪Coding unpackers using Apox SDK‬‬

‫‪ .1‬املكسَ‪١‬‬
‫ٔىٹىڂ يف ٌٍخ خڀًَْ زدڀع٭ُٲ ‪٬‬ځً ‪َُ٤‬ٹص زُٕ‪٥‬ص ڀربؾبص ‪ Unpacker‬زځٱص خڀًڀٵٍ وٌڀٻ دبٕد‪ً٬‬ش ڄٽعسص ‪ SDK‬وٌٍ ‪ap0x‬‬
‫‪ unpack engine‬وٌٍ ‪٬‬سدَش ‪٬‬ه ‪ 4‬ڄځٵدض ‪َ Dll‬عڃ ب‪٠‬دٴعهڃ بذل خؼب‪ُٙ‬و‪ ،٪‬وٌٍي خؼبځٵدض ٌٍ ‪:‬‬

‫‪Debugger.dll‬‬
‫‪Importer.dll‬‬
‫‪Dumper.dll‬‬
‫‪REALIGN.DLL‬‬

‫ؤو ٔعفًٌد ڄُٴٹص ٌىد ڄ‪ ٫‬خڀًَْ‬ ‫يبٽىٻ ربمُٿ ٌٍي خؼبٽعسص ڄه خؼبىٸ‪ ٫‬خأل‪ٜ‬ځٍ‬

‫ودبد ؤن ٌٍخ خڀًَْ ٌى يَْ زُؾبٍ ڀٍڀٻ ٔىٲ وٹىڂ زى‪ ٫٠‬ٸ‪ ٫٥‬خڀٽىي وُ٘لهد‪ ،‬ؤُٽىن خڀع‪٥‬سُٷ ‪٬‬ځً ضبدَص خڀـ ‪NsPack v3.x‬‬
‫‪.‬‬

‫‪ .2‬أغاغ‪ٝ‬ات جيب َعطؾتٗا‬


‫خػب‪٥‬ص خڀ٭دڄص خڀيت ٔىعس٭هد ڀٵٻ ؤٌ ضبدَص ٌٍ ‪:‬‬

‫‪ )1‬خڀى‪ٜ‬ىپ بذل خڀـ ‪ OEP JMP‬وٌٍ خڀٹٵّش خألوًنش خڀيت ظ‪ٝ‬ٿ زىد بذل ‪ OEP‬ؤٌ زًخَص خڀربودڄؿ خڀٵ٭ځُص‪.‬‬

‫‪ )2‬و‪ ٫٠‬وٹ‪٥‬ص ظىٸٳ ‪٬‬ځً خڀـ ‪. OEP JMP‬‬

‫‪ )3‬ظ‪ٙ‬ٱُٿ خڀـ ‪ Debugger‬وز٭ً ؤن َعىٸٳ ‪٬‬ځً وٹ‪٥‬ص خڀعىٸٳ ٌٍي وٹىڂ زدغب‪ٝ‬ىپ ‪٬‬ځً خڀـ ‪ OEP‬ټمد ٔعُي ٴُمد ز٭ً‪.‬‬

‫‪ )4‬زدٸٍ خػب‪٥‬ىخض ال ‪٬‬الٸص ڀىد هبد؛ ألوً دبفُي ل‪ٝ‬ىڀىد ‪٬‬ځً خڀـ ‪َ OEP‬ىعهٍ ‪٬‬مځىد وظٹىڂ خؼبٽعسدض زسدٸٍ خڀ٭مځُدض ‪ Dump‬مث‬
‫خڀسمػ ‪٬‬ه خڀـ ‪ IAT‬مث ب‪ٜ‬الق خڀـ ‪ IAT‬مث ب‪٬‬ديش ظُظُر خؼبځٳ‪ ،‬وز٭ً ٌڀٻ لٵ‪ ٧‬خڀىٕىص خڀىهدجُص‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪232‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ .2.1‬اي‪ٛ‬ق‪ ٍٛ‬إىل ايـ ‪OEP JMP‬‬

‫خؼبځٳ خڀٌٍ ُٔ‪٥‬سٷ ‪٬‬ځُص خڀ‪ُٙ‬ق ٌى ڄځٳ ټُفه ڀ‪ُٙ‬ټص ‪ Apex‬وٌى ڄ‪١‬ٱى‪ ٢‬زىخٔ‪٥‬ص ‪. Nspack‬‬

‫ٸڃ زٵعك خؼبځٳ يف ‪: OllyDbg‬‬

‫ٔىٹىڂ زدڀععس‪ ٫‬زىخٔ‪٥‬ص ‪ F8‬لىت وًوٿ يف ؤوپ ‪ loop‬مث ؼدين ‪ loop‬مث ٔى‪ٝ‬ٿ بذل ؤڄُ ‪٬ JMP‬ىً خڀ٭ىىخن ‪00496F26‬‬

‫بٌخ ‪٠‬ٱ‪٥‬ط ‪٬‬ځً ‪ٔ F8‬عفً وٵٕٻ ‪٬‬ىً خڀـ ‪ OEP‬يف خڀ٭ىىخن ‪ ، 0045C578‬بٌن‪ٌٍ :‬ي خڀـ ‪ ٌٍ JMP‬خڀـ ‪OEP JMP‬‬

‫ڄد ‪٬‬ځُىد ٴ٭ځص زُؾبُدً ٌى خڀى‪ٜ‬ىپ بذل ٌٍي خڀٹٵّش‪ .‬ڄه خؼبمٽه ‪٤‬س٭دً خڀى‪ٜ‬ىپ بڀُهد ڄه والپ خڀ٭ىىخن‪ ،‬ڀٽه ظٍټُ‬
‫ؤوىد وربڄؿ ‪ Unpacker‬ؤٌ ؤوىد ڀه وع٭دڄٿ ڄ‪ٌٍ ٫‬خ خؼبځٳ ٴٹ‪ ٣‬زٿ ڄ‪ ٫‬ؤٌ ڄځٳ ؿبمٍ هبٍي خغبمدَص‪ ،‬وټٿ ڄځٳ‬
‫ْىبعځٳ ٴًُ خڀ٭ىىخن ‪٬‬ه خؼبځٳ خِوُ؛ ڀٍڀٻ ٴىمه ٔىسمػ زُؾبُدً ‪٬‬ه خڀسدَعدض ‪ 61 9D E9‬ألهند ٔعٽىن ؼدزعص‬
‫يف ټٿ خڀربخڄؿ خحملمُص زـ ‪. Nspack‬‬

‫‪ٚ .2.2‬نع ْكط‪ ١‬ت‪ٛ‬قـ عً‪ ٢‬ايـ ‪OEP JMP‬‬

‫ـً خڀٕىَْ ټىي ڄ‪ ٫‬ڄُٴٹدض خڀٽعدذ‪.‬‬


‫ٔىځٹٍ و‪ُ٩‬ش ‪٬‬ځً خڀٽىي خؼبٕعىًڂ يف خڀـ ‪٤ ، Unpacker‬س٭دً ٔط‬

‫خڀسًخَص ‪٬‬ىً خإلـُخء ‪:‬‬


‫;)‪procedure TForm1.BitBtn2Click(Sender: TObject‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪233‬‬
AT4RE :‫انفريك انعرتي نههُذسح انعكسيح‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ .‫ خطىج إنى األياو‬:‫انهُذسح انعكسيح‬

٫١‫ وو‬OEP JMP ‫ٿ ڀځـ‬ٝ‫ وڄه والڀً ٔى‬،‫ُق ٌٍخ خإلـُخء‬ٙ‫ ٔىٹىڂ خِن ز‬Unpack َِ ً‫ځ‬٬ ٣‫ٱ‬١‫ىً خڀ‬٬ ٍ‫وٌى خإلـُخء خڀٌٍ َىٵ‬
.ُ‫ٱٿ خڀًَسٱ‬ٙ‫ص ظىٸٳ مث و‬٥‫ځُهد وٹ‬٬

61 9D E9 ‫ه‬٬ ‫ وټمد ٌټُود ٔدزٹدً ٔىٲ وسمػ‬،‫ىهد‬٬ ‫دٴص خڀسدَعدض خڀيت ٔىسمػ‬٠‫زًخَص ٔىٲ وٹىڂ زة‬
procedure TForm1.BitBtn2Click(Sender: TObject);
var
NSPSignature1 :array[1..10] of BYTE;
WildCard : Integer;
FoundPattern,SearchSize:Integer;
begin
if FileExists(Edit1.Text) then begin
ImageBase := 0;
FoundPattern := 0;
WildCard := 0;

NSPSignature1[1] := $61; //NsPack signature


NSPSignature1[2] := $9D;
NSPSignature1[3] := $E9;

‫ يخڀص‬٫‫ وٌٍ ڀُٕط ٌدڄص ٔىٕعىًڄهد ڄ‬Packed OEP ‫ ڀځربودڄؿ و‬ImageBase ‫ځً خڀـ‬٬ ‫ىپ‬ٝ‫ص زدغب‬ٜ‫ز٭ً ٌڀٻ َىـً ـّجُص ود‬
.‫ خعبّجُدض خؼبعٱًنش‬٣‫ُق ٴٹ‬ٙ‫ وكبه و‬،‫ ټٿ خڀربخڄؿ‬٫‫ ڀٍڀٻ ٌٍ ؼدزعص ڄ‬InitDebug

:ُ‫ٱُٿ خڀًَسٱ‬ٙ‫ مث ظ‬OEP JMP ‫ځً خڀـ‬٬ ‫ص ظىٸٳ‬٥‫ وٹ‬٫٠‫ه خڀسدَعدض وو‬٬ ‫خِن ـّجُص خڀسمػ‬

//initialize the debugging by calling the InitDebug API


ProcessInfo :=
InitDebug(PChar(Edit1.Text),'',PChar(ExtractFilePath(Edit1.Text))); 1
ListBox1.Items.Add('Creating process...');
ListBox1.Items.Add('Searching for NsPack pattern...');

FoundPattern := Find(PackedOEP,1000,@NSPSignature1,3,@WildCard); 2

if FoundPattern > 0 then begin


//In this suspended state call SetBpx to set the main
//breakpoint at OEP
SetBpx(FoundPattern+2,bpxSingle,@OEP_JUMP); 3
ListBox1.Items.Add('Setting BPX at: ' + IntToHex(FoundPattern+2,8));
ListBox1.Items.Add(' -> Unpacking NsPack v3.x');
//To get the debugging process to this point you
//must call the DebugLoop API
DebugLoop(); 4
end

else begin
ListBox1.Items.Add('File is not packed with NsPack...');
StopDebug();
DebugLoop();
ListBox1.Items.Add('Unpacking terminated...');
end;

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ 2009 234
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫;‪end‬‬
‫;‪end‬‬

‫‪ .1‬ؤوپ يخڀص ٌٍ ‪ InitDebug‬وٌٍ زدڀ‪١‬س‪ ٣‬ټٵعمىد خڀربخڄؿ زدڀـ ‪ OllyDbg‬وٌٍ ذب٭ٿ خڀـ ‪ Debugger‬يف لدڀص خوع‪٩‬دَ‬
‫‪. suspended state‬‬

‫‪ٌٍ .2‬ي خڀًخڀص و‪ُ٨‬ٵعهد ‪٨‬دٌُش ڄه خظبهد‪ ،‬وٌٍ ڀځسمػ ‪٬‬ه خڀسدَعدض خػبد‪ٜ‬ص زدپ ‪ NsPack‬وټمد ظُي ٴةن ؤوپ زدَخڄُعُ ؽبد ٌى‬
‫وٹ‪٥‬ص خڀسًخَص خڀـ ‪ EP‬مث ز٭ً ٌڀٻ ڄؿخپ خڀسمػ مث خڀسدَعدض خڀيت ٔىسمػ ‪٬‬ىهد مث ‪ً٬‬يٌڃ‪ ،‬ٴةٌخ وـًض خڀًخڀص خڀسدَعدض ٴٕعُـ‪٫‬‬
‫خڀٹُمص ‪ 1‬ؤڄد بن دل ذبًٌڃ ٴٕعُـ‪ ٫‬خڀٹُمص ‪ 0‬ولُىهد ُٔعڃ ظىٵٍُ ټىي خػبُوؾ ‪٬‬ىً خڀـ ‪. else‬‬

‫‪ٌٍ .3‬ي خڀًخڀص ڄه ؤٌڃ خڀًوخپ وو‪ُ٨‬ٵعهد ‪٨‬دٌُش ڄه خظبهد‪ ،‬وٌٍ ود‪ٜ‬ص زى‪ ٫٠‬وٹ‪٥‬ص خڀعىٸٳ وزدَخڄعُخهتد ٺخڀعدرل ‪:‬‬

‫ؤوپ زدَخڄُعُ ٌى خڀ٭ىىخن خڀٌٍ ٔى‪٬ ٫١‬ځُص وٹ‪٥‬ص خڀعىٸٳ‪ ،‬ويف لدڀعىد ٌى ‪٬‬ىىخن خڀـ ‪ OEP JMP‬وخڀٌٍ َٕدوٌ‬
‫‪ 00496F26‬وڀٽه ؼبدٌخ ؤ‪٠‬ٵىد ‪ 2‬؟ خعبىخذ‪ :‬ألن ٸُمص خڀـ ‪ FoundPattern‬ظٕدوٌ ‪ 00496F24‬ڀٍڀٻ و‪ُ١‬ٳ‬
‫‪ 2‬لىت ظٕدوٌ ‪٬‬ىىخن خڀـ ‪JMP‬‬

‫ؼدين زدَخڄُعُ ود‪ ٚ‬زىى‪ ٪‬وٹ‪٥‬ص خڀعىٸٳ‪.‬‬


‫ؼدڀػ زدَخڄُعُ ٌٍخ ٌدڂ وَٕمٍ خڀـ ‪ callback‬ٴٽمد و‪٠‬مىد ٔدزٹد‪ :‬ټإوىد ضبځىد خڀربودڄؿ ٴٹ‪ ٣‬يف خڀـ ‪OllyDbg‬‬
‫و‪٬‬ىًڄد وٹىڂ زع‪ٙ‬ٱُٿ خڀربودڄؿ ٔىٲ َعىٸٳ ‪٬‬ىً وٹ‪٥‬ص خڀعىٸٳ ٌٍي خڀيت و‪٠‬٭ىدٌد‪ٌٍ ،‬خ خڀسدَخڄُعُ وبعىٌ ‪٬‬ځً خإلـُخجُص خڀيت‬
‫ُٔعڃ ظىٵٌٍُد ز٭ً وٸىٲ خڀـ ‪٬ Debugger‬ځً وٷ‪٤‬ص خڀعىٸٳ‪ .‬وٌٍخ خإلـُخء ٌى خػبد‪ ٚ‬زدڀى‪ٜ‬ىپ بذل خڀـ ‪ OEP‬ؤُعڃ‬
‫ُ٘لً اللٹدً بن ٘دء خهلل‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪235‬‬
AT4RE :‫انفريك انعرتي نههُذسح انعكسيح‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ .‫ خطىج إنى األياو‬:‫انهُذسح انعكسيح‬

‫ ز٭ًٌد َعڃ ظىٵٍُ خڀـ‬،‫٭ىدٌد‬٠‫ص خڀعىٸٳ خڀيت و‬٥‫ىً وٹ‬٬ ‫ ؤُٹىڂ خڀًَسٱُ زدڀ٭مٿ لىت َعىٸٳ‬،ُ‫ٱُٿ خڀًَسٱ‬ٙ‫ ٌٍي خڀًخڀص ٌٍ يخڀص ظ‬.4
.‫ص خڀعىٶٲ‬٥‫٭ىد ڀىٹ‬٠‫ ز٭ً و‬F9 ً‫ځ‬٬ ‫ىد‬٥‫ٱ‬٠ ٣‫س‬١‫ ټإوىد زدڀ‬callback

OEP ‫ ايـ‬٢ً‫ٍ ع‬ٛ‫ اذتك‬.2.3


OEP := GetContextData(rEIP);
OEP := OEP + 1;
hProcess := ProcessInfo^;
ReadOk := ReadProcessMemoryFixed(hProcess,OEP,@buffer,4,@NumberOfBytesRead);

if ReadOk = True then begin


OEP := OEP + buffer + 4;
Form1.ListBox1.Items.Add(' -> OEP is: ' + IntToHex(OEP,8));

//dump the debugged process with DumpProcess


DumpProcess(hProcess,ImageBase,PChar(DumpTo),OEP);
Form1.ListBox1.Items.Add(' -> Dumping process');

//ImpREC

ImporterAutoSearchIAT(PChar(DumpTo),ImageBase,FirstSectionVA,NTSizeOfImage,@IATSt
art,@IATSize);
Form1.ListBox1.Items.Add(' -> Searching for IAT');
ImporterAutoFixIAT(hProcess,PChar(DumpTo),ImageBase,IATStart,IATSize,1);
Form1.ListBox1.Items.Add(' -> Fixing IAT');

OEP JMP ‫ىىخن خڀـ‬٬ ‫ ويف لدڀعىد ُٔٽىن ؿبعىخٌد‬GetContextData ‫ص خڀًخڀص‬٥ٔ‫ زىخ‬EIP ٌُ‫ خڀُهبٕع‬n‫ؤوپ ٍ٘ وٹىڂ زٹُخءش ؿبعى‬
:‫ىَش‬ٝ‫ ؟ ٘دًٌ ٌٍي خڀ‬JMP ‫ ولبُـً ڄه والپ ٸُخءش خڀـ‬OEP ‫ىىخن خڀـ‬٬ ‫ ڀٽه ټُٳ ٔىمٕر‬00496F26 ٌ‫وخڀٌٍ َٕدو‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ 2009 236
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ز‪ٙ‬ٽٿ ‪٬‬دڂ َعڃ ڄ٭ُٴص خؼبٽدن خڀٌٍ ٔىٹٵّ بڀًُ وخڀٌٍ َٕمً خڀـ ‪ Jmp Destination‬زىخٔ‪٥‬ص ٌٍخ خڀٹدوىن ‪:‬‬

‫‪Destination = JMP Offset + Program Counter + 4‬‬

‫لُػ ؤن ‪ ٌٍ JMP Offset‬خڀٹُمص ‪ ، FFFC564D‬الل‪ ٧‬ؤوىد ‪٬‬ٽٕىدٌد؛ ڀٍڀٻ ٴىمه و‪ُ١‬ٳ ‪٬ 1‬ځً خڀـ ‪ OEP‬ټمد يف خڀٽىي يف‬
‫خأل‪٬‬ځً‪ ،‬وٌڀٻ ڀٽٍ وٹُؤ خألوٴٕط ‪٬‬ىً خڀ٭ىىخن ‪ ، 00496F27‬وظعڃ خڀٹُخءش زىخٔ‪٥‬ص خڀًخڀص ‪ReadProcessMemoryFixed :‬‬

‫ؤڄد خڀـ ‪ program Counter‬ٴهى خڀ٭ىىخن خغبدرل‪ ،‬ؤٌ ‪٬‬ىىخن خڀـ ‪ OEP JMP‬وٌٍخ ل‪ٝ‬ځىد ‪٬‬ځًُ ڄه ٸُخءش خڀـ ‪ EIP‬و‪٤‬س٭دً خڀـ ‪4‬‬
‫ٌٍخ ؼدزط‪.‬‬

‫خِن بٌخ ‪٤‬سٹىد ٌٍخ خڀٹدوىن ‪:‬‬

‫‪Destination = FFFC564D + 00496F26 + 4 = 10045C574 + 4 = 10045C578‬‬


‫ولٕر ‪٤‬ىپ خڀُهبٕعٌُ ٴُٕٽىن خڀىدظؿ ‪ 0045C578‬وٌى ‪٬‬ىىخن خڀـ ‪OEP‬‬

‫ز٭ً ل‪ٝ‬ىڀىد ‪٬‬ځً خڀـ ‪َ OEP‬ىعهٍ ‪٬‬مځىد ووعُٺ خڀسدٸٍ ‪٬‬ځً خؼبٽعسدض‪ ،‬ٴُٹىڂ خڀربودڄؿ ز٭مٿ ‪ Dump‬ڀځمځٳ ‪٬‬ه ‪َُ٤‬ٷ خڀًخڀص‬
‫‪ DumpProcess‬مث خڀسمػ ‪٬‬ه خڀـ ‪٬ IAT‬ه ‪َُ٤‬ٷ خڀًخڀص ‪ ImporterAutoSearchIAT‬مث ب‪ٜ‬الق خڀـ ‪٬ IAT‬ه ‪َُ٤‬ٷ خڀًخڀص‬
‫‪ ImporterAutoFixIAT‬مث ‪٬‬مٿ ‪ Rebuild‬ڀځمځٳ زىخٔ‪٥‬ص ڄٽعسص ‪ REALIGN.DLL‬وټٿ ٌٍي خػب‪٥‬ىخض ؼدزعص ڄ‪ ٫‬ؤٌ ضبدَص‬
‫ظًَُ ‪٬‬مٿ ‪ Unpacker‬ؽبد‪.‬‬

‫‪ .2.4‬ترَ‪ٝ‬ع ًَؿات ايـ ‪ DLL‬زاخٌ ايـ ‪Unpacker‬‬

‫ؤوًنخً ڀعٹىڂ زعفمُ‪ ٫‬ڄځٵدض خؼبٽعسدض يخوٿ خڀـ ‪َ Unpacker‬ىـً لځٌن‪ :‬لٿ زُؾبٍ ولٿ زىخٔ‪٥‬ص زُودڄؿ ‪ MoleBox‬وٌى َٹىڂ‬
‫جبم‪ ٫‬خؼبٽعسدض يخوٿ خڀـ ‪ Unpacker‬وىبُؾ ڀىد ڄځٵدً هندجُدً ڄًڄؿ زًخوځً خؼبٽعسدض‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪237‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫يبٽىٻ ربمُٿ زُودڄؿ خڀـ ‪ MoleBox‬ڄه امليتدى ؤو ڄه والپ خڀسمػ يف ـىـٿ‪.‬‬


‫ؤعفً ڄ‪ ٫‬خڀٕىَْ ټىي خؼبځٳ خڀىهدجٍ يخوٿ ؾبځً ‪.Release‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪238‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪Handling Debug Registers‬‬

‫وټُٵٍ و‪ ٫٠‬وٹ‪ ٣‬ظىٸٳ‬


‫ش‬ ‫يَْ خڀُىڂ ‪٬‬ه ټُٵُص ټعدزص ‪ Debugger‬ڀځعمٽڃ يف ًٔن خڀربودڄؿ‬
‫‪Hardware Breakpoints‬‬

‫ظٕع‪ ٫ُ٥‬ربمُٿ خؼبُٴٹدض ڄه ٌىد‪.‬‬

‫‪َ .1‬كسَ‪١‬‬
‫ټمد و٭ځڃ ٴةن ؤٸ‪ً٬ ًٝ‬ي ڀځسدَعدض خڀيت يبٽه و‪٠‬٭هد يف خڀـ ( ‪ Hardware Breakpoints‬خوع‪ٝ‬دَخً ڀـ )‪ٌ HWBP‬ى ؤَز‪٫‬‬
‫زدٌظدض‪ ،‬وَعڃ خڀع٭دڄٿ ڄ‪ ٫‬وٹد‪ ٢‬خڀعىٸٳ ‪٬‬رب ڄٕفالض خڀعىٹُك ‪ Debug Registers‬وٌٍ شبدوُص ڄٕفالض‪٤ ،‬ىپ ټٿ وخلًٍ ڄىهڃ‬
‫‪ bit 32‬وو‪ُ٨‬ٵعهڃ ټدڀعدرل ‪:‬‬

‫‪ :Dr0-Dr1-Dr2-Dr3‬يبؽٿ ټٿ ڄٕفٿ ڄىهڃ خڀ٭ىىخن خڀٌٍ ٔى‪٬ ٫١‬ځًُ وٹ‪٥‬ص خڀعىٸٳ‪.‬‬

‫‪ : Dr4-Dr5‬ؿبفىِخن وال يبٽه خٔع٭مدؽبڃ‪.‬‬

‫‪َٕ :Dr6‬مً ؤَ‪١‬دً ‪ Debug Status Register‬وَُمٽىىد ڄه ڄ٭ُٴص ؤٌ ‪ HWBP‬لًغ‪ .‬ؤىع‪ُ٥‬ٶ ڀً زدڀعٵ‪ُٝ‬ٿ اللٹدً‪.‬‬

‫‪َٕ :Dr7‬مً زـ ‪ Debug Control Register‬وٌى خڀٌٍ َعمٽڃ زدڀـ )‪ HWBP‬خڀٽٿ يف خڀٽٿ)‪ ،‬وظُټُسعً ټدڀعدرل‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪239‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ؤوپ ‪ 8‬زعدض ( ‪ ) 7 <- 0‬يبٽه ظٹُٕمهڃ بذل خؼىٌن خؼىٌن‪ ،‬حبُػ ټٿ خؼىٌن ىب‪ٝ‬دن بلًي وٹ‪ ٣‬خڀعىٸٳ‪ ،‬وبٌخ مت و‪ ٫٠‬ؤوپ زط )‪ (L‬ٴةن‬
‫وٹ‪٥‬ص خڀعىٸٳ ظٽىن ‪ local breakpoint‬ؤٌ وبًغ خڀـ ‪Debug exception‬يف خڀـ ‪ٜ Process‬دلر خڀـ ‪ thread‬خڀٌٍ‬
‫ًٰنود ‪ Dr7‬ڀً‪.‬‬

‫ؼدين زط )‪ (G‬ڀى‪ٜ‬ٳ وٹ‪٥‬ص خڀعىٸٳ ‪٬‬ځً ؤهند ‪ global breakpoint‬ؤٌ وبًغ خڀـ ‪ debug exception‬بٌخ ظىخٴُض ُ٘و‪ ً٤‬يف‬
‫صبُ‪ ٫‬خڀـ‪processes .‬‬

‫ڄه ‪ R/W0‬بذل‪R/W3 :‬‬

‫ڀعمًًَ وى‪ ٪‬وٹ‪٥‬ص خڀعىٸٳ خؼب‪٥‬سٹص ‪٬‬ځً خڀ٭ىىخن خحملًي‪ ,‬ٴُمد بٌخ ټدوط ‪٬‬ىً ٸُخءظً ؤو خڀٽعدزص ٴًُ ؤو ظىٵٍُي ټع٭ځُمص‪ ,‬يبٽه و‪ ٫٠‬ٸُمعً‬
‫ټدڀعدرل (زدڀسط‪) :‬‬

‫‪00 :‬ظىٸٳ ‪٬‬ىً ظىٵٍُ خڀع٭ځُمص خڀيت زدڀ٭ىىخن‪.‬‬

‫‪01 :‬ظىٸٳ ‪٬‬ىً خڀٽعدزص ‪٬‬ځً خڀ٭ىىخن‪.‬‬

‫‪10 :‬ال ظٕع٭مٿ بال يف ‪ُ٨‬وٲ ود‪ٜ‬ص (ڀځهدَيوَُ‪).‬‬

‫‪11 :‬ظىٸٳ ‪٬‬ىً خڀٹُخءش ؤو خڀٽعدزص ڄه خڀ٭ىىخن‪.‬‬

‫ڄه ‪ LEN0‬بذل‪LEN3 :‬‬

‫ڀعمًًَ ‪٤‬ىپ خڀسُدودض خڀيت ٔع‪٬ ٫١‬ځُهد وٹ‪٥‬ص خڀعىٸٳ يبٽه و‪ ٫٠‬ٸُمعً ټدڀعدرل (زدڀسط‪) :‬‬

‫‪ 00 :‬ڀعمًًَ ‪٤‬ىپ ‪ 1‬زدَط‪.‬‬

‫‪ 01 :‬ڀعمًًَ ‪٤‬ىپ ‪ 2‬زدَط‪.‬‬

‫‪10 :‬ظٕعىًڂ يف ز٭‪ ٟ‬خؼب٭دعبدض ڀعمًًَ ‪٤‬ىپ ‪ 8‬زدَط‬

‫‪ 11 :‬ڀعمًًَ ‪٤‬ىپ ‪ 4‬زدَط‪.‬‬

‫ڀځمًَّ ڄه خڀعٵد‪ُٜ‬ٿ خٸُؤ خڀـ ‪ documentations‬خػبد‪ٜ‬ص زـ ‪ INTEL‬ؤو )‪) AMD‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪240‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ .2‬ايتطب‪ٝ‬ل ايعًُ‪ٞ‬‬
‫لٕىدً ڀٹً ظ٭ُٴىد دبد ٴًُ خڀٽٵدَص ‪٬‬ځً ڄٕفالض خڀعىٹُك‪ ،‬وخِن ڄد خػب‪٥‬ص خڀيت ٔى٭مٿ ‪٬‬ځُهد ؟‬

‫ټُٳ ٔىٹىڂ زى‪٬ HWBP ٫٠‬مځُدً ‪٬‬ځً ‪ Process‬ڄ٭ٌن ؟‬


‫ټُٳ ٔى٭ُٲ ؤوً مت خڀى‪ٚ‬وپ بذل وٹ‪٥‬ص ظىٸٳ ڄ٭ُىص ؟‬

‫ڀعى‪ُ٠‬ك خڀٵٽُش ز‪ٙ‬ٽٿ ‪٬‬مځٍ ٔىٹىڂ زٽعدزص ‪ٜ debugger‬ٱًن َٹىڂ ز٭مٿ ‪٬ debug‬ځً زُودڄؿ ‪ crackme‬ټمؽدپ وو‪ ٫٠‬وٹ‪٣‬‬
‫ظىٸٳ ٴًُ و‪٬‬مٿ ؤُ٘دء ؤوُي‪.‬‬

‫ڀعىٹُك زُودڄؿ ڄ٭ٌن يبٽه ٴ٭ٿ ٌڀٻ ‪٬‬ه ‪َُ٤‬ٷ بو‪ٙ‬دء خڀ٭مځُص زدڀًخڀص ‪ CreateProcess‬وو‪ ٫٠‬زدَخڄعُ خأل‪٬‬الڂ == ‪flags‬‬
‫‪DEBUG_PROCESS ..‬‬

‫ټٵٽُش ‪٬‬دڄص ڄد خڀٌٍ وبًغ ‪٬‬ىً وٸى‪ ٪‬و‪٥‬إ يف زُودڄؿ ڄ٭ٌن ڀُٓ ربط خڀعىٹُك ؟‬

‫َعڃ ب‪٨‬هدَ خڀـ ‪ exception‬ؤو ټمد َٹدپ ‪ : exception raise‬وَعڃ ظٕځُڃ ؤوپ ‪ SEH handler‬خڀعىٵٍُ (ڀُٓ زًٸّص)‪ ،‬ڀٽه ڄد‬
‫وبًغ ‪٬‬ىً وـىي خڀربودڄؿ ربط خڀعىٹُك ؤن خڀـ ‪ٌ debugger‬ى خڀٌٍ َٕعځڃ خڀـ ‪ execution‬ووى‪ ٪‬خڀـ ‪ exception‬خڀٌٍ‬
‫لًغ وَٹَُ بٌخ ټدن ُٔع٭دڄٿ ڄ‪ٌٍ ٫‬خ خڀـ ‪ exception‬ؤڂ هب٭ٿ خڀربودڄؿ وٵًٕ )‪ٌ (debuggee‬ى خڀٌٍ َع٭دڄٿ ڄ‪ ٫‬خڀـ‬
‫‪exception .‬وُـى ؤن ظٽىن خڀٵٽُش وخ‪٠‬مص‪.‬‬

‫يوخپ ‪ win32api‬ظىٴُ ‪٪‬يش يوخپ ڀځع٭دڄٿ ڄ‪ ٫‬خڀعىٹُك ڄؽٿ‪:‬‬

‫‪WaitForDebugEvent - GetThreadContext - SetThreadContext - Read/WriteProcessMemory‬‬

‫‪ُ٬‬ٲ ‪٬‬ځً ظځٻ خڀًوخپ‪ ،‬يبٽىٻ خال‪٤‬ال‪٬ ٪‬ځُهڃ ؤټؽُ يف ڄٽعسص‪MSDN .‬‬
‫‪٤‬س٭د كبه ٌىد ڀٕىد ز‪ًٝ‬ي خڀط‬

‫‪٬‬ىً لًوغ ‪َ HWBP‬عڃ َٴ‪ exception ٫‬ڄه خڀىى‪ EXCEPTION_SINGLE_STEP ٪‬بذل خؼبىٹك بٌخ ټدن ڄىـىيخً‪ .‬بٌن الزً‬
‫‪٬‬ځُىد ڄه ‪٬‬مٿ ‪ handling‬ؽبٍخ خڀـ‪exception code .‬‬

‫ٔاخپ آوُ‪ :‬ټُٳ و٭ُٲ ؤٌ ‪ HWBP‬ڄه خألَز٭ص ٌى خڀٌٍ لًغ ؟‬

‫خعبىخذ‪ :‬ال ظىـً يوخپ ‪ api‬ڄ٭ُىص ؼب٭ُٴص ٌڀٻ!‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪241‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫كبه دل وعٽځڃ ‪٬‬ه ‪ Dr6‬زدڀعٵ‪ُٝ‬ٿ ز٭ً ټمد و‪ً٬‬ود وٌد ٸً لدن خڀىٸط‪ .‬ظُټُسص ٌٍخ خؼبٕفٿ زُٕ‪٥‬ص ـًخً‪ ،‬ټدڀعدرل‪:‬‬

‫ڄد َهمىد ڄ٭ُٴعً ٌى ؤوپ ‪ bits 4‬وٌٍ سبؽٿ زط ڀٽٿ ‪ ، HWBP‬وبٌخ مت و‪ ٫٠‬ؤلًٌڃ ٴهى ًَپ ‪٬‬ځً ؤن خڀـ ‪ HWBP‬خؼبىد‪ ُ٨‬ڀً ٌى‬
‫خڀٌٍ لًغ‪.‬‬

‫‪ .2.1‬ن‪ٝ‬ـ ْهع ‪ HWBP‬؟‬

‫ٔعٹىپ‪ :‬ڄه ڄٕفالض خڀعىٹُك ‪ Drx‬؟! ڀٽه ؤوط ظ٭ځڃ ؤن خٔعىًخڄهد ‪ privileged‬وال يبٽه ظٱًُنٌد ڄه!! ‪user-mode‬‬

‫ٔىٹىپ ڀٻ‪ :‬ال !! بٌن ؤَه ٌٌسط يخڀص ‪ SetThreadContext‬؟‬

‫(‪BOOL WINAPI SetThreadContext‬‬


‫‪__in HANDLE hThread,‬‬ ‫مقبض ‪ handle‬للثرٌد الذي سنغٌر الـ ‪ context‬له‬
‫‪__in const CONTEXT* lpContext‬‬ ‫‪ lpContext :‬مؤشر إلى ‪ structure‬به الـ ‪ context‬الجدٌد‬
‫;)‬

‫‪َ .2.2‬ا ٖ‪ ٛ‬ايـ ‪ Thread Context‬؟‬

‫ظ٭ځمىن ؤن و‪٩‬دڂ وَىًوِ َعمع‪ ٫‬خبد‪ُٜ‬ص خڀـ ‪ Multithreading‬ؤٌ بڄٽدوُص ‪٬‬مٿ ؤټؽُ ڄه ‪ thread‬يف وٵٓ خڀـ ‪ process .‬ټٿ‬
‫‪ thread‬ڀً ڄٕفالظً خػبد‪ٜ‬ص وخؼبٽًْ وؤُ٘دء ؤوُي‪.‬‬

‫َىـً يف ٸځر خڀى‪٩‬دڂ ڄد َٕمً زدڀـ ‪ Kernel Dispatcher‬وٌى خؼبٕاوپ ‪٬‬ه ظى‪ُ٩‬ڃ خڀـ ‪ threads‬ؤو ‪ThreadScheduling‬‬
‫‪.‬‬
‫‪٬‬ىً ‪٬‬مٿ ‪ swap-out‬ڀـ ‪thread‬الزً ڄه لٵ‪ ٧‬ټٿ ڄد َع٭ځٷ زً (ڄٕفالض ‪ -‬ڄٽًْ ‪ - storage areas ..‬خخل) يف ڄٽدن‬
‫آڄه لىت بٌخ مت ‪٬‬مٿ ‪َ swap-in‬عڃ خٔعُـد‪ ٪‬خڀسُدودض ڄه ٌٍخ خؼبٽدن ڄُش ؤوُي وخڀ٭ٽٓ ‪ .‬ي ٌخ خؼبٽدن ؤو خڀٍخټُش ٌٍ ڄد وٹ‪ًٝ‬ي‬
‫زدڀـ ‪ Thread Context‬ؤو ‪ Context‬ڄسدُ٘ش‪.‬‬

‫ظُټُر خڀـ ‪َ CONTEXT strcuture‬ٽىن ټدڀعدرل‪:‬‬


‫{ ‪struct‬‬
‫;‪DWORD ContextFlags‬‬

‫‪//‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪242‬‬
AT4RE :‫انفريك انعرتي نههُذسح انعكسيح‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ .‫ خطىج إنى األياو‬:‫انهُذسح انعكسيح‬

// This section is specified/returned if CONTEXT_DEBUG_REGISTERS is


// set in ContextFlags. Note that CONTEXT_DEBUG_REGISTERS is NOT
// included in CONTEXT_FULL.
//
DWORD Dr0;
DWORD Dr1;
DWORD Dr2;
DWORD Dr3;
DWORD Dr6;
DWORD Dr7;

//
// This section is specified/returned if the
// ContextFlags word contians the flag CONTEXT_FLOATING_POINT.
//
FLOATING_SAVE_AREA FloatSave;

//
// This section is specified/returned if the
// ContextFlags word contians the flag CONTEXT_SEGMENTS.
//
DWORD SegGs;
DWORD SegFs;
DWORD SegEs;
DWORD SegDs;

//
// This section is specified/returned if the
// ContextFlags word contians the flag CONTEXT_INTEGER.
//
DWORD Edi;
DWORD Esi;
DWORD Ebx;
DWORD Edx;
DWORD Ecx;
DWORD Eax;

//
// This section is specified/returned if the
// ContextFlags word contians the flag CONTEXT_CONTROL.
//
DWORD Ebp;
DWORD Eip;
DWORD SegCs; // MUST BE SANITIZED
DWORD EFlags; // MUST BE SANITIZED
DWORD Esp;
DWORD SegSs;

//
// This section is specified/returned if the ContextFlags word
// contains the flag CONTEXT_EXTENDED_REGISTERS.
// The format and contexts are processor specific
//
BYTE ExtendedRegisters[MAXIMUM_SUPPORTED_EXTENSION];
} CONTEXT;

strcuture .‫ ڄٕفالض خڀعىٹُك يخوٿ خڀـ‬٫ُ‫ټمد ظُون ظىـً صب‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ 2009 243
AT4RE :‫انفريك انعرتي نههُذسح انعكسيح‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ .‫ خطىج إنى األياو‬:‫انهُذسح انعكسيح‬

:‫ڄد ٔىٵ٭ځً ٌى ټدڀعدرل‬

GetThreadContext .‫ عن طرٌق الدالة‬context ‫جلب الـ‬


.‫هد‬٬‫ ووى‬HWBP ‫ىپ خڀـ‬٥‫ص ز‬ٜ‫ خڀسعدض خػبد‬٫٠‫ وو‬Dr7 ‫ظ٭ًَٿ ڄٕفٿ‬
Dr0 -> Dr3 .‫ يف ؤلً خؼبٕفالض خألَز٭ص‬HWBP ‫ىىخن خڀـ‬٬ ٫٠‫و‬
SetThreadContext .‫َُٷ خڀًخڀص‬٤ ‫ه‬٬ ‫ خؼب٭ًڀص‬context ‫ خڀـ‬٪‫بَـد‬

:‫ٌُ خڀٕدزٷ‬٩‫ُق خڀٽالڂ خڀى‬ٙ‫ ڀ‬٣ٕ‫مځٍ ڄس‬٬ ‫ٌٍخ ټىي‬


bool SetHWBP(HANDLE hThread, unsigned int linearAddress, int type, int length,
int count)
{
CONTEXT context = {CONTEXT_ALL|CONTEXT_DEBUG_REGISTERS};
DR7 dr7;

if (GetThreadContext(hThread, &context))
{
dr7 = *(DR7*)&context.Dr7;
switch (count)
{
case 0:
{
context.Dr0 = linearAddress;
dr7.HWBP0_MODE = HWBP_LOCAL;
dr7.HWBP0_LENGTH = length;
dr7.HWBP0_ACCESS = type;
break;
};
case 1:
{
context.Dr1 = linearAddress;
dr7.HWBP1_MODE = HWBP_LOCAL;
dr7.HWBP1_LENGTH = length;
dr7.HWBP1_ACCESS = type;
break;
};
case 2:
{
context.Dr2 = linearAddress;
dr7.HWBP2_MODE = HWBP_LOCAL;
dr7.HWBP2_LENGTH = length;
dr7.HWBP2_ACCESS = type;
break;
};
case 3:
{
context.Dr3 = linearAddress;
dr7.HWBP3_MODE = HWBP_LOCAL;
dr7.HWBP3_LENGTH = length;
dr7.HWBP3_ACCESS = type;
break;
};
default:
return false;

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ 2009 244
AT4RE :‫انفريك انعرتي نههُذسح انعكسيح‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ .‫ خطىج إنى األياو‬:‫انهُذسح انعكسيح‬

};
context.Dr7 = *(PDWORD)&dr7;
return SetThreadContext(hThread, &context);
};
return false;
};

:ً‫ زدڀ٭ىىخن ڀ‬ٚ‫ وخؼبٕفٿ خػبد‬local ‫ زدڀـ‬ٚ‫ خػبد‬bit ‫ٵُّ خڀـ‬ٝ‫ وٵ٭ٿ ټمد ٔسٷ ڀٽه و‬HWBP ‫وغبٍٲ‬
bool RemoveHWBP(HANDLE hThread, int count)
{
CONTEXT context = {CONTEXT_ALL|CONTEXT_DEBUG_REGISTERS};
DR7 dr7;

if (GetThreadContext(hThread, &context))
{
dr7 = *(DR7*)&context.Dr7;
switch (count)
{
case 0:
{
context.Dr0 = 0;
dr7.HWBP0_MODE = 0;
break;
};
case 1:
{
context.Dr1 = 0;
dr7.HWBP1_MODE = 0;
break;
};
case 2:
{
context.Dr2 = 0;
dr7.HWBP2_MODE = 0;
break;
};
case 3:
{
context.Dr3 = 0;
dr7.HWBP3_MODE = 0;
break;
};
default:
return false;
};
context.Dr7 = *(PDWORD)&dr7;
return SetThreadContext(hThread, &context);
};
return false;
};

bit level :‫ وخڀـ‬shifting ‫ ڀعٕهُٿ خألڄُ زًال ڄه بقبدِ ټٿ ٍ٘ء زدڀـ‬structure ‫ ٸمىد ز٭مٿ‬Dr7 ‫ ڄٕفٿ‬٫‫ڀع٭دڄٿ ؤٔهٿ ڄ‬
struct {

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ 2009 245
AT4RE :‫انفريك انعرتي نههُذسح انعكسيح‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ .‫ خطىج إنى األياو‬:‫انهُذسح انعكسيح‬

ULONG HWBP0_MODE :2;


ULONG HWBP1_MODE :2;
ULONG HWBP2_MODE :2;
ULONG HWBP3_MODE :2;
ULONG LE :1;
ULONG GE :1;
ULONG __unused :6;
ULONG HWBP0_ACCESS :2;
ULONG HWBP0_LENGTH :2;
ULONG HWBP1_ACCESS :2;
ULONG HWBP1_LENGTH :2;
ULONG HWBP2_ACCESS :2;
ULONG HWBP2_LENGTH :2;
ULONG HWBP3_ACCESS :2;
ULONG HWBP3_LENGTH :2;
} DR7;

ًُٞ‫ َجاٍ ع‬.3


.‫فص‬٬ّ‫ خؼب‬BadBoy ‫ً َٔدڀص‬٥‫مُك ووعى‬ٝ‫ ڄىً خڀَُٕدپ خڀ‬ٛ‫ وٹعى‬dj-siba ‫ ڀألن‬٣ُٕ‫ ز‬crackme ً‫ځ‬٬ loader ‫ٔىٹىڂ ز٭مٿ ڄؽدپ‬
". ً‫ سبَُه َٸڃ وخل‬- ‫خڀعمًٌ خظبً "لدوپ ؤن ظٽُٕين‬

.‫ڄىـىي زدؼبُٴٹدض‬

:ًُ‫ ڀځعمًٌ بڀُٽڃ خؼبٵ‬٫َُٔ ‫زعمځُٿ‬


00403FE9 CALL 00403E60
00403FEE MOV EDX,dword ptr [ebp - 208] ---------------------> good serial
00403FF4 POP EAX
00403FF5 CALL 00402F58
00403FFA JE SHORT 00404011 ---------------------> magic jump
00403FFC PUSH 0
00403FFE PUSH 00404050
00404003 PUSH 004040DC
00404008 PUSH 0
0040400A CALL <JMP.&user32.MessageBoxA> ---------------------> badboy msg
0040400F JMP SHORT 00404024
00404011 PUSH 0
00404013 PUSH 00404050
00404018 PUSH 00404100
0040401D PUSH 0
0040401F CALL <JMP.&user32.MessageBoxA> ---------------------> goodboy msg
00404024 XOR EAX,EAX

:ً‫ما سنفعله هو كالتال‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ 2009 246
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫و‪ ٫٠‬وٹ‪٥‬ص ظىٸٳ ڀځـ ‪٬ execution‬ىً خڀ٭ىىخن ‪ 0x00403FF4‬وزٍڀٻ و‪١‬مه وـىي خڀَُٕدپ خڀ‪ٝ‬مُك يف خڀ٭ىىخن‬
‫خڀٌٍ َ‪ًٙ‬ن بڀًُ خؼبٕفٿ‪edx .‬‬
‫و‪ ٫٠‬وٹ‪٥‬ص ظىٸٳ ؤوُي ‪٬‬ىً ‪٬‬ىىخن خڀٹٵّش خڀيت ظايٌ بذل ب‪٨‬هدَ َٔدڀص ‪ً٬‬ڂ خڀعٕفُٿ ‪ 0x00403FFA‬يف ؤوپ ‪HWBP‬‬
‫وٹىڂ جبځر ڄٕفٿ ‪٬ edx‬ه ‪َُ٤‬ٷ ‪ GetThreadContext‬مث وٹىڂ زٹُخءش خڀ٭ىىخن خڀٌٍ َ‪ًٙ‬ن بڀًُ خؼبٕفٿ ڄه خڀـ‬
‫‪٬process‬ه ‪َُ٤‬ٷ خڀًخڀص ‪ ReadProcessMemory‬ووٹىڂ زة‪٨‬هدَ خڀَُٕدپ خڀ‪ٝ‬مُك‪.‬‬
‫يف ؼدين ‪ HWBP‬وٹىڂ جبځر ڄٕفٿ خأل‪٬‬الڂ ‪ EFLAGS‬ووٹىڂ زى‪ ٫٠‬خڀ٭ځڃ ‪ ZF‬وٌڀٻ ټٍ ظعڃ خڀٹٵّش خؼب‪ُٙ‬و‪٤‬ص ووعى‪ً٥‬‬
‫خڀُٔدڀص خؼبّ‪٬‬فص‪.‬‬

‫ڄٕفٿ ‪ EFLAGS‬ؤَ‪١‬دً يبٽه خڀع٭دڄٿ ڄ٭ً ‪٬‬ه ‪َُ٤‬ٷ خڀـ ‪ bit level‬ڀٽه ٸمىد ز٭مٿ ‪ structure‬ڀعٕهُٿ خألڄُ‪:‬‬
‫{ ‪struct‬‬
‫‪ULONG‬‬ ‫‪CF‬‬ ‫;‪:1‬‬
‫‪ULONG‬‬ ‫‪__unused0‬‬ ‫;‪:1‬‬
‫‪ULONG‬‬ ‫‪PF‬‬ ‫;‪:1‬‬
‫‪ULONG‬‬ ‫‪__unused1‬‬ ‫;‪:1‬‬
‫‪ULONG‬‬ ‫‪AF‬‬ ‫;‪:1‬‬
‫‪ULONG‬‬ ‫‪__unused2‬‬ ‫;‪:1‬‬
‫‪ULONG‬‬ ‫‪ZF‬‬ ‫;‪:1‬‬
‫‪ULONG‬‬ ‫‪SF‬‬ ‫;‪:1‬‬
‫‪ULONG‬‬ ‫‪TF‬‬ ‫;‪:1‬‬
‫‪ULONG‬‬ ‫‪IF‬‬ ‫;‪:1‬‬
‫‪ULONG‬‬ ‫‪DF‬‬ ‫;‪:1‬‬
‫‪ULONG‬‬ ‫‪OF‬‬ ‫;‪:1‬‬
‫‪ULONG‬‬ ‫‪IOPL‬‬ ‫;‪:2‬‬
‫‪ULONG‬‬ ‫‪__unused3‬‬ ‫;‪:1‬‬
‫‪ULONG‬‬ ‫‪RF‬‬ ‫;‪:1‬‬
‫‪ULONG‬‬ ‫‪VM‬‬ ‫;‪:1‬‬
‫‪ULONG‬‬ ‫‪AC‬‬ ‫;‪:1‬‬
‫‪ULONG‬‬ ‫‪VIF‬‬ ‫;‪:1‬‬
‫‪ULONG‬‬ ‫‪VIP‬‬ ‫;‪:1‬‬
‫‪ULONG‬‬ ‫‪ID‬‬ ‫;‪:1‬‬
‫‪ULONG‬‬ ‫‪__unused4‬‬ ‫;‪:10‬‬
‫;‪}EFLAGS‬‬

‫ٔعفً ټىي خڀځىيَ ڄربڄؿ زدپ ‪ C‬يف خؼبُٴٹدض (مزفكات الكتاب) وٌٍي ‪ٜ‬ىَش ڀً‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪247‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫إجياد السريال بطريقة اهلجوو العصوائي‬


‫‪Finding Serial With Brute Force Attack‬‬

‫ؤَٴٷود ڀال‪٤‬ال‪ ٪‬ؾبمى‪٬‬ص ٔالٔٿ خحملدَٲ خڀيت يبٽه خٔعىًخڄهد يف خؼبځٳ‬


‫خڀى‪.charset ٍٝ‬‬

‫ٔىٹًڂ ٌىد ُ٘لدً ڄسٕ‪٥‬دً ؼبٵهىڂ خؽبفىڂ خڀ٭‪ٙ‬ىخجٍ ‪ Brute Force‬ڄه والپ ڄؽدپ ‪٬‬مځٍ‪ ,‬ؤىٹىڂ زعمځُٿ خڀٽىي وټعدزص ټُفه‬
‫ڀځعمَُه‪.‬‬

‫ُٔعىدوپ خڀ‪ُٙ‬ق خڀىٹد‪ ٢‬خڀُجُُٕص خڀعدڀُص ‪:‬‬

‫مكزمة عً اهلحوو العشوائي‪.‬‬


‫حتليل الكور‪.‬‬
‫حتليل خوارسمية إجيار الضزيال‪.‬‬
‫طزائل التفكري يف كتابة الكيحً‪.‬‬

‫ايعؿ‪ٛ‬ا‪Introduction To Brute Force Attack ٞ٥‬‬ ‫‪ .1‬أ‪ٚ‬الً‪َ :‬كسَ‪ ١‬عٔ اشلذ‪ّٛ‬‬

‫ټىد ٸً ٌټُود ٔدزٹدً ‪ :‬ؤن ڄ‪٥ٝ‬ځك ( خؽبدٖ ) ‪ٌ :‬ى ظ‪ٙ‬ٵًن زدذبدي وخلً ًٰن ٸدزٿ ڀځ٭ٽٓ‪ ،‬وټمؽدپ ‪٬‬ىً يبٽه ٌټُ‪MD5, SHA, :‬‬
‫…‪Haval, Tiger,‬‬

‫‪٬‬ځً ٔسُٿ خؼبؽدپ ‪ :‬ڀى ؤوٍود خڀٽځمص (‪ )AT4RE‬وؤَيود ظ‪ٙ‬ٵًنٌد زىخٔ‪٥‬ص ‪ MD5‬ڀىعفط ڀىد خڀٕځٕځص خؼب‪ٙ‬ٵُش خڀعدڀُص ‪:‬‬

‫‪AFA75974BD93160D55DFC4214655E55A‬‬

‫ٴمدٌخ ڀى ؤ‪٥٬‬دٺ ‪ًَٜ‬ٹٻ خڀٕځٕځص خؼب‪ٙ‬ٵُش خڀٕدزٹص‪ ,‬وٶخپ ڀٻ‪ :‬ڄد ٌٍ خڀٽځمص خڀيت وعفط ‪٬‬ىهد ٌٍي خڀٕځٕځص زىخٔ‪٥‬ص ‪ MD5‬؟ خإلـدزص‬
‫خألوذل ٔعٽىن‪ :‬ال ؤ‪ُ٬‬ٲ !!‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪248‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫مث ٸدپ ڀٻ ؤربًخٺ ؤن ظ٭ُٲ ڄد ٌٍ خڀٽځمص خڀيت وعفط ‪٬‬ىهد ٌٍي خڀٕځٕځص خؼب‪ٙ‬ٵُش‪ ,‬وله ٸځسً ‪٬‬ځُٻ ٸځُالً وٸدپ ڀٻ‪ ٌٍ :‬ڄاڀٵص ڄه ‪5‬‬
‫ودودض‪ ,‬وٌٍي خػبدودض ‪٬‬سدَش ‪٬‬ه ؤَٸدڂ وؤلُٲ‪.‬‬

‫ٴٓؤڀعً َُٔ٭دً‪ :‬ؤٌٍ ؤلُٲ ټسًنش ؤڂ ‪ٜ‬ٱًنش ؟ ٴإـدزٻ ‪٠‬دلٽدً‪ :‬خ‪ُ٬‬ٲ ٌڀٻ زىٵٕٻ!!‬

‫ز٭ًٌد ٌٌسط لدجُخً بذل خؼبىّپ وڄ٭ٻ ٌٍي خڀُٔدڀص خؼب‪ٙ‬ٵُش خؼب‪ٙ‬اوڄص وخألٴٽدَ ظع‪١‬دَذ يف َؤٔٻ‪.‬‬

‫ـځٕط ؤڄدڂ خغبدٔر وزًؤض زعفَُر ز٭‪ ٟ‬خڀٽځمدض خڀيت ظع٭ځٷ ز‪ًَٝ‬ٹٻ و٘ٵُهتد زـ ‪ MD5‬وڀٽه يون ـًوي‪.‬‬

‫ٸځط يف وٵٕٻ‪ٌٍ :‬خ ڀه َىٵ‪ ٫‬هبر ؤن ؤَظر ؤٴٽدٌَ ٴٽعسط ‪:‬‬

‫‪٤‬ىپ خڀٽځمص ‪ 5 :‬ؤلُٲ‬


‫خأللُٲ خؼب‪ٙ‬ٽځص ڄىهد خڀٽځمص ٌٍ ( لُوٲ ‪ٜ‬ٱًنش ‪ +‬ټسًنش ‪ +‬ؤَٸدڂ ) ‪:‬‬
‫‪abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789‬‬

‫ٴُلط ټؽًنخً‪ ،‬وٸځط يف وٵٕٻ‪ :‬بن خؼبٕإڀص ‪٬‬سدَش ‪٬‬ه خلعمدالض ‪.‬‬

‫فمط جية أٌ أشفز مجيغ انكهًاخ ادلإنفح يٍ ‪ 5‬أززف‪ ،‬ويشكهح يٍ األززف انظاتمح وكهًا أشفز كهًح ألارٌ َاذح انرشفري يغ‬
‫انزطانح ادلشفزج انيت أػطاين ئياها صذيمي زىت أزصم ػهى انكهًح انصسيسح‪.‬‬

‫ٸځط يف وٵٕٻ‪ :‬خألڄُ ٔهٿ‪ ،‬وخألڄُ خؼبٵُق ؤوٻ بٌخ ـُزط صبُ‪ ٫‬خڀٽځمدض ٴمه خؼباٺي ‪ % 100‬ؤوٻ ٔعم‪ٝ‬ٿ ‪٬‬ځً خڀٽځمص‬
‫خڀ‪ٝ‬مُمص‪.‬‬

‫ٸځط‪ :‬زٕڃ خهلل ؤإزًؤ خڀعفَُر‪ ،‬وڀٽه هبر ؤن ؤ‪ ٫٠‬ـب‪٥٥‬دً ڀځعفَُر لىت ال ؤو‪٥‬إ يف ټعدزص خڀٽځمدض ؤو ؤ‪ ًُ٬‬ټعدزعهد‪ ،‬و َظبط‬
‫خعبًوپ خڀعدرل ‪:‬‬
‫‪Letter 1‬‬ ‫‪Letter 2‬‬ ‫‪Letter 3‬‬ ‫‪Letter 4‬‬ ‫‪Letter 5‬‬
‫‪a‬‬ ‫‪a‬‬ ‫‪a‬‬ ‫‪a‬‬ ‫‪a‬‬
‫‪b‬‬ ‫‪b‬‬ ‫‪b‬‬ ‫‪b‬‬ ‫‪b‬‬
‫‪....‬‬ ‫‪....‬‬ ‫‪....‬‬ ‫‪....‬‬ ‫‪....‬‬
‫‪A‬‬ ‫‪A‬‬ ‫‪A‬‬ ‫‪A‬‬ ‫‪A‬‬
‫‪B‬‬ ‫‪B‬‬ ‫‪B‬‬ ‫‪B‬‬ ‫‪B‬‬
‫‪....‬‬ ‫‪....‬‬ ‫‪....‬‬ ‫‪....‬‬ ‫‪....‬‬
‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬
‫‪2‬‬ ‫‪2‬‬ ‫‪2‬‬ ‫‪2‬‬ ‫‪2‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪249‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪٬‬ىًڄد ظىعهٍ ؤټىن‬ ‫‪٬‬ىًڄد ظىعهٍ ؤًَِ‬ ‫‪٬‬ىًڄد ظىعهٍ ؤًَِ‬ ‫‪٬‬ىًڄد ظىعهٍ ؤًَِ‬ ‫‪٬‬ىًڄد ظىعهٍ ؤًَِ‬

‫ٸً مشځط صبُ‪٫‬‬ ‫خڀيت ٸسځهد وخلً‬ ‫خڀيت ٸسځهد وخلً‬ ‫خڀيت ٸسځهد وخلً‬ ‫خڀيت ٸسځهد وخلً‬

‫خڀٽځمدض‬

‫وزًؤض زٻظدزص خڀٽځمدض ‪aaaaa , aaaab, aaaac, …… aaaba, aaabb,aaabc, …… :‬‬

‫ؤ‪٨‬ىٻ ظٹىپ‪ٌ :‬ٽٍخ ٔإلعدؾ بذل ٔىص لىت ؤل‪ٝ‬ٿ ‪٬‬ځُهد وؤَي ‪ً٬‬ي خاللعمدالض (‪ً٬‬ي خأللُٲ ‪ 62‬و‪ً٬‬ي لُوٲ خڀٽځمص ‪.) 5‬‬

‫بٌن ‪َ( 916,132,832 = 62^5 :‬ٸڃ ټسًن!! ربعدؾ بذل ‪٬‬مُ ٌو خڀٹُوٌن لىت رب‪ٝ‬ٿ ‪٬‬ځً خڀٽځمص)‪.‬‬

‫ال زً ڄه زُؾبص خڀ٭مځُص وظُٺ خغبدٔر هبُذ ٌڀٻ ‪٬‬ىٻ وَ٭‪ُ٥‬ٻ خڀىعُفص ـدٌّش‪ ،‬ؤو ذبً زُودؾبدً ‪٬‬ځً خڀىط ـب‪ٝٝ‬دً ؽبٍي خڀ٭مځُدض‪.‬‬

‫بٌن ټځمص خؽبفىڂ خڀ٭‪ٙ‬ىخجٍ ـدءض ڄه ذبَُسىد ظ‪ٙ‬ٵًن ټٿ خاللعمدالض خؼبمٽىص لىت كب‪ٝ‬ٿ ‪٬‬ځً َٔدڀص ڄ‪ٙ‬ٵُش ڄٕدوَص ڀځُٔدڀص خؼب‪ٙ‬ٵُش‬
‫خڀيت زٌن ًََىد‪.‬‬

‫‪ٌ -‬ىدٺ زُؾبُدض ـدٌّش ؼبؽٿ ٌٍي خڀ٭مځُدض وٍټُ ڄىهد ‪Cain , RainbowCrack :‬‬

‫‪٤ -‬س٭دً ٌٍي خڀربؾبُدض ‪٤‬ىَض ‪ُ٤‬خجٷ ڀعَُٕ‪ ٫‬خڀسمػ ‪ ,‬زد‪٬‬عمديٌد ‪٬‬ځً زُدودض ڀځسمػ ڄ٭ًش ڄٕسٹدً وٍټُ ڄىهد ‪:‬‬

‫) ‪World List ( Using By Hackers , Name:Pass‬‬


‫) ‪Rainbow Tables ( For Hash‬‬
‫‪ -‬هبًَ زىد ؤن وٍټُ ٌىد ؤن ز٭‪ ٟ‬خعبًخوپ ٸً َ‪ٝ‬ٿ لفمهد بذل ‪ُٰ 4‬ٱد ٴمد ٴىٶ‪.‬‬

‫‪ -‬ټمد ؤوً ټځمد ِخي ‪٤‬ىپ خڀٽځمص خؼب‪ٙ‬ٵُش ِخي خڀّڄه خؼب‪٥‬ځىذ إلهبدي خڀٽځمص وعُفص َِديش ‪ً٬‬ي خاللعمدالض‪.‬‬

‫خڀ٭‪ٙ‬ىخجٍ ( ‪: ) Brute Force Attack‬‬


‫خؽبفىڂ‬
‫ٌى ‪َُ٤‬ٹص ڀځم‪ٝ‬ىپ ‪٬‬ځً خڀٽځمص خأل‪ٜ‬ځُص خؼب‪ٙ‬ٵُش ڂن والپ ڄ٭ُٴص خڀٕځٕځص خؼب‪ٙ‬ٵُش وٌدٖ خڀع‪ٙ‬ٵًن‪,‬‬
‫زعفَُر ظ‪ٙ‬ٵًن صبُ‪ ٫‬خاللعمدالض خڀيت يبٽه ؤن ظعإڀٳ ڄىهد خڀٽځمص‪ ،‬وڄٹدَوص خڀىدظؿ ڄ‪ ٫‬خڀٕځٕځص خؼب‪ٙ‬ٵُش‬
‫خڀيت زٌن ًََىد‪.‬‬

‫‪Code Analysis‬‬ ‫‪ .2‬ثاْ‪ٝ‬اً‪ :‬حتً‪ ٌٝ‬ايه‪ٛ‬ز‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪250‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫خ‪٠‬ٱ‪٬ ٣‬ځً خڀ‪ٝ‬ىَش ڀځم‪ٝ‬ىپ ‪٬‬ځً خؽبًٲ خڀٌٍ ‪٤‬سٷ ‪٬‬ځًُ خڀًَْ‪.‬‬

‫‪ -‬ڀه وًوٿ يف خڀٵم‪ ٛ‬وبهبدي خڀع‪ٙ‬ٵًن وبهبدي ‪٬‬ىىخن زًخَص خإلـُخء ٴٹً ٌټُود ٌڀٻ ڄُخَخً‪.‬‬

‫‪ -‬ڀىًوٿ خڀسُدودض‪ :‬خالٔڃ ‪ ، Roben :‬وخڀَُٕدپ‪ 1234 :‬وڀىعدز‪.٫‬‬

‫زًخَص خإلـُخء ‪:‬‬

‫ڄٹدَودض ٴُمد بٌخ ټدن ‪٤‬ىپ خالٔڃ ؤو خڀَُٕدپ ؤٸٿ ڄه ؤَز٭ص ؤلُٲ ‪:‬‬

‫يف ٌٍخ خالٔعً‪٬‬دء َعڃ ؤوٍ خحملُٲ خألوپ وخڀؽدڀػ ڄه خالٔڃ ومث ذبم‪ ٫‬وظ‪١‬دٲ ؽبد خڀٹُمص وخلً ‪:‬‬

‫بٌخ يوځىد بذل ٌٍخ خالٔعً‪٬‬دء ( ‪ ) F7‬والل‪ٌ ٧‬ڀٻ‪ ,‬ڄ‪ ٫‬خالوعسدي بذل ؤن خؼبىٹك َإوٍ زعُظُر ‪٬‬ٽٍٕ ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪251‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ ---‬خڀىدظؿ خألوپ ‪B5 :‬‬

‫‪Roben > Robe > Rb > R=52 hex , b = 62 hex , + 1 > B5‬‬

‫يف ٌٍخ خالٔعً‪٬‬دء َعڃ ؤوٍ خؼبكَٲ خڀؽدين وخڀُخز‪ ٫‬ڄه خالٔڃ ومث ذبم‪ ٫‬وظ‪١‬دٲ ؽبد خڀٹُمص وخلً ‪:‬‬

‫بٌخ يوځىد بذل ٌٍخ خالٔعً‪٬‬دء ( ‪ ) F7‬والل‪ٌ ٧‬ڀٻ‪ ,‬ڄ‪ ٫‬خالوعسدي بذل ؤن خؼبىٹك َإوٍ زعُظُر ‪٬‬ٽٍٕ ‪:‬‬

‫‪ ---‬خڀىدظؿ خپؼدين ‪D5 :‬‬

‫‪Roben > Robe > oe > o=6F hex , e = 65 hex , + 1 > D5‬‬

‫يف ٌٍخ خالٔعً‪٬‬دء َعڃ ظ‪ٙ‬ٵًن خڀىدظؿ خألوپ زىٔد‪٤‬ص ‪ MD5‬وربىَٿ خڀىدظؿ بذل ؤلُٲ ټسًنش ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪252‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫بٌخ يوځىد بذل ٌٍخ خالٔعً‪٬‬دء ( ‪ ) F7‬والل‪ٌ ٧‬ڀٻ ‪:‬‬

‫يف ٌٍخ خالٔعً‪٬‬دء َعڃ ب‪٠‬دٴص ؤوپ ؤَز٭ص ؤلُٲ ڄه خڀَُٕدپ ڄ‪ ٫‬خڀىدظؿ خڀؽدين ‪:‬‬

‫يف ٌٍخ خالٔعً‪٬‬دء َعڃ ظ‪ٙ‬ٵًن خڀَُٕدپ ڄ‪ ٫‬خڀىدظؿ خڀؽدين ‪: 1234D5‬‬

‫بٌخ يوځىد بذل ٌٍخ خالٔعً‪٬‬دء ( ‪ ) F7‬والل‪ٌ ٧‬ڀٻ ‪:‬‬

‫و ؤوًنخً قبً لځٹص ؼبٹدَوص ټٿ ؿبُٲ ڄ‪ ٫‬ڄد َٹدزځً يف ودظؿ خڀع‪ٙ‬ٵًنَه‪ ،‬ٴةٌخ ټدوط ‪ً٬‬ي خأللُٲ خؼبع‪ٙ‬دهبص ؤټرب ڄه ‪4‬‬
‫‪٨‬هُض ڀىد َٔدڀص خڀىفدق ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪253‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ .3‬ثايجاً‪ :‬حتً‪ ٌٝ‬خ‪ٛ‬اضظَ‪ ١ٝ‬إجياز ايػط‪ٜ‬اٍ‬


‫‪ )1‬ؤوٍ ؤوپ ؤَز٭ص ؤلُٲ ڄه خالٔڃ ( ڄد ٌنبىد ٌٍ ؤوپ ؤَز٭ص ؤلُٲ ڄه خالٔڃ )‪.‬‬

‫‪ )2‬ؤوٍ خحملُٴٌن خألوپ وخڀؽدڀػ وصب٭همد وب‪٠‬دٴص وخلً ؽبمد‪ ،‬وَٽىن خڀىدظؿ زدؽبٽٓ‪.‬‬

‫‪ )3‬ظ‪ٙ‬ٵًن خڀىدظؿ زـ ‪ ( MD5‬خڀع‪ٙ‬ٵًن خألوپ ) وربىَځً أللُٲ ټسًنش ‪.‬‬

‫‪ )4‬ؤوٍ خحملُٴٌن خڀؽدين وخڀُخز‪ ٫‬وصب٭همد وب‪٠‬دٴص وخلً ؽبمد‪ ،‬وَٽىن خڀىدظؿ زدؽبٽٓ ‪.‬‬

‫‪ )5‬ب‪٠‬دٴص خڀهخظؿ خڀٕدزٷ بذل ؤوپ ؤَز‪ ٫‬ؤلُٲ ڄه خڀَُٕدپ ( بٌخ خڀَُٕدپ ڄاڀٳ ڄه ‪ 4‬ؤلُٲ )‪.‬‬

‫‪ )6‬ظ‪ٙ‬ٵًن خڀىدظؿ زـ ‪ ( MD5‬خڀع‪ٙ‬ٵًن خڀؽدين ) وربىَځً أللُٲ ټسًنش ‪.‬‬

‫‪ -‬هبر ؤن ظع‪ٙ‬دزً طبٓ ودودض ٴمد ٴىٶ ڄه خڀع‪ٙ‬ٵًن خألوپ ڄ‪ ٫‬خڀع‪ٙ‬ٵًن خڀؽدين‪.‬‬

‫‪٬ -‬ځُىد ذبَُر خڀٽځمدض خؼباڀٵص ڄه ‪ 4‬ؤلُٲ مث و‪ُ١‬ٳ ڀًخ خڀىدظؿ خڀؽدين وو‪ٙ‬ٵٌُد ووٹدَن ٴُمد بٌخ ټدن ٌىدٺ طبٓ ودودض ڄع‪ٙ‬دهبص‪.‬‬

‫‪ -‬وڄه ٌىد خټعٕر خڀعمَُه ظبص ( ‪.) Brute Force Attack‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪254‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪Brute Forcer‬‬ ‫‪ .4‬ضابعاً‪ :‬ططا‪٥‬ل ايتؿهرل يف نتاب‪ ١‬ايه‪ٝ‬ذٔ‬


‫‪ -‬خڀ‪َُ٥‬ٹص خؼبىهفُص‪ ٌٍ :‬خڀ‪َُ٥‬ٹص خؼبٍټىَش يف خؼبٹًڄص‪ ،‬وٌٍ ‪َُ٤‬ٹص ‪ٙ٬‬ىخجُص ڄى‪٩‬مص‪ ،‬وٌٍ ظٕمك ڀٻ ز‪ٙ‬مىپ ټدٴص خاللعمدالض‬
‫ووعدجفهد ڄ‪١‬مىوص‪ ،‬ڀٽه ڄه ڄٕدوجهد ‪:‬‬

‫ربعدؾ وٸعدً ټسًنخً وٕسُدً ( وٌڀٻ َع٭ځٷ ز‪٥‬ىپ خڀَُٕدپ و‪٤‬ىپ ٔځٕځص خحملدَٲ )‪.‬‬
‫ظعس‪ ٫‬ظُظُر ڄىع‪٩‬ڃ ‪ ,‬وزدڀعدرل ظسٹٍ خأللُٲ خڀس٭ًُش ( ڄؽدپ خڀٽځمص خؼبسعًجص حبُٲ ‪ ) Z‬ڀىٸط ‪٤‬ىَٿ‪.‬‬

‫‪ -‬خڀ‪َُ٥‬ٹص خڀ٭‪ٙ‬ىخجُص‪ :‬وٌٍ ظ٭عمً ‪٬‬ځً خوعُدَ ظُظُر ‪ٙ٬‬ىخجٍ ڀٽٿ لُٲ ڄه خڀَُٕدپ‪ ,‬ٴال ظعٹًُ زدڀعُظُر خؼبعس‪ ،٫‬وڀٽه ؤلُٲ خڀٽځمص‬
‫ظ‪٩‬ٿ ؿب‪ٝ‬ىَش ‪٠‬مه ٔځٕځص خحملدَٲ خؼبىعدَش‪ ،‬وڀٽه ٸً ظعمع‪ ٫‬زُٕ‪٬‬ص ‪٬‬دڀُص يف خڀسمػ‪ ،‬وٌڀٻ ظس٭دً ڀځمدڀص خؼبًَؤص‪ ،‬وڄه ڄٕدوجهد ‪:‬‬

‫‪ً٬‬ڂ مشىپ ټدٴص خاللعمدالض‪.‬‬


‫ظٽُخَ خڀٽځمدض وزدڀعدرل ڄ٭دعبدض ب‪٠‬دٴُص زًون ڄربَ‪.‬‬

‫‪٤ -‬س٭دً هبر ؤن ال وىًٕ خڀربخڄؿ خؼبٍټىَش يف خؼبٹًڄص‪ ,‬ٴهٍ ـب‪ٝٝ‬ص وخلعُخٴُص ڀٽُٕ خؽبد٘دض‪ ،‬وڀٽىهد ڀألٔٳ ال ظىٵ‪ ٫‬يف سبَُىىد ٌٍخ‬
‫ٴهٍ ظىـً ٸُمص ڄ‪٥‬دزٹص ڀځهدٖ وال يبٽىهد خڀسمػ يف خػبدودض خڀٵُ‪ُ٬‬ص‪.‬‬

‫‪ .5‬ارتامت‪١‬‬
‫خِن خؼب٭ځىڄدض ټځهد زٌن ًََٻ ويبٽه ؤن ظربؾبهد زإٌ ‪َُ٤‬ٹص ؤلسسط وزدڀځٱص خڀربؾبُص خڀيت ظعٹىهد‪.‬‬

‫‪ -‬ؤَٴٷود ڄ‪ ٫‬خڀًَْ خڀٕىَْ ټىي ڀٽُفه خڀعمَُه‪ ,‬وٌى ڄٽعىذ زځٱص يڀٵٍ‪ , 7‬وخ‪٬‬عمًود ٴًُ ‪٬‬ځً خڀ‪َُ٥‬ٹص خڀ٭‪ٙ‬ىخجُص ڀُٕ‪٬‬عهد ‪.‬‬

‫ڀال‪ّ٤‬ال‪ ٪‬ؤَٴٷود ؾبمى‪٬‬ص ٔالٔٿ خحملدَٲ خڀيت يبٽه خٔعىًخڄهد يف خدلڀٳ‬


‫خڀى‪.charset ٍٝ‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪255‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫طرق الـ ‪ Anti RCE‬ووسائل التغلب عليَا‬

‫‪َ .1‬كسَ‪١‬‬
‫ٴٻ خڀ‪١‬ٱ‪ ٣‬خڀًُوٌ َ٭عرب ٴُ‪ ٪‬ڄه ؤٌڃ ٴُو‪ ٪‬خؽبىًٔص خڀ٭ٽُٕص وؤټؽٌُد ؤؼدَش‪ ،‬وَع‪٥‬ځر وربش ڄه خڀٽُخټُ وڄ٭ُٴص ـًُش زدڀى‪٩‬دڂ ووسدَدي‪.‬‬
‫ٴٵٍ ز٭‪ ٟ‬خأللُدن وبعدؾ خڀٽُخټُ بذل يَخٔص ڄٵ‪ٝ‬ځص ڄه خڀًخوٿ ڀى‪٩‬دڂ خڀع‪ٙ‬ٱُٿ ڀٽٍ َٕع‪ ٫ُ٥‬لٿ ڄ‪ٙ‬ٽځص ڄ‪ ٫‬ڄ‪١‬ديخض خؽبىًٔص خڀ٭ٽُٕص‬
‫‪ Anti reversing tricks‬ٸدڂ زى‪٠‬٭هد زُودڄؿ خڀ‪١‬ٱ‪ ٣‬ؤو خڀع‪ٙ‬ٵًن يف وـً خڀٽُخټُ ڀُ‪ٝ‬٭ر ‪٬‬مٿي وَ‪ٝ‬٭ر ‪٬‬مځُص ٴٻ خڀ‪١‬ٱ‪.٣‬‬
‫ووالپ ٌٍخ خعبّء ڄه خڀٽعدذ ٔىٲ و٭ُ‪ ٞ‬ؤٌڃ ‪ُ٤‬ٶ خڀـ ‪ Anti Unpacking‬ؤو خڀـ ‪ Anti reversing‬ټمد ٔى٭ُ‪ ٞ‬ڀٽڃ‬
‫خڀ‪ُ٥‬ٶ خؼب‪١‬ديش و‪ُ٤‬ٶ خڀعٱځر ‪٬‬ځُهد ٔىخءً ًَوَدَ ؤو زدٔعىًخڂ زُخڄؿ خؽبىًٔص خڀ٭ٽُٕص خؼبىعځٵص‪.‬‬

‫ٌىدٺ ڄ‪٥ٝ‬ځمدض َ‪ٝ‬٭ر ظُصبعهد بذل خڀځٱص خڀ٭ُزُص ڀٍڀٻ مت ټعدزعهد ټمد ٌٍ‬
‫زدإلقبځَُّص‪.‬‬

‫خ‪٠‬ٱ‪ ٣‬خڀ‪ٝ‬ىَش ڀعممُٿ خؼبُٴٹدض‪.‬‬

‫ؤُعڃ ظٹُٕڃ خڀ٭مٿ بذل ‪ً٬‬ش ؤؾِخء ٺخڀعدرل ‪:‬‬

‫‪ )1‬ؤدجٿ ټ‪ٙ‬ٳ خؼبىٹك ‪. DEBUGGER DETECTION‬‬

‫‪ )2‬ؤدجٿ ټ‪ٙ‬ٳ وٹد‪ ٢‬خڀعىٸٳ وخڀع٭ًَٿ ‪٬‬ځً خڀربودڄؿ ‪. BREAKPOINT AND PATCHING DETECTION‬‬

‫‪ )3‬ؤدجٿ ظ‪ٙ‬ىًَ خڀٽىي وڄى‪ ٫‬ربځُځً ‪. ANTI-ANALYSIS‬‬

‫‪ )4‬ؤدجٿ ؤوُي ڄعٹًڄص ‪. ADVANCED AND OTHER TECHNIQUES‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪256‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪DEBUGGER DETECTION‬‬ ‫‪ٚ .2‬غا‪ ٌ٥‬نؿـ املٓكح‬


‫ٌٍي خعبّجُص َعڃ خٔعىًڄهد ڄه ٸسٿ زُودڄؿ خغبمدَص ؼب٭ُٴص ڄد بٌخ ټدن خڀربؤُٓ ‪ Process‬خغبدڀُص وخؼبُخي ضبدَعهد َعڃ ظىٹُمهد والپ‬
‫يَسٱُ ؤڂ ال ؟ وزبعځٳ ‪ُ٤‬ٶ ټ‪ٙ‬ٳ خؼبىٹك ڄه خڀ‪ُ٥‬ٶ خڀعٹځًَُص بذل ‪ُ٤‬ٶ ڄعٹًڄص ظٕعىًڂ خڀـ ‪ Kernel Mode‬ڀٽ‪ٙ‬ٳ خڀًَسٱُ‪.‬‬

‫‪PEB.BeingDebugged Flag: IsDebuggerPresent)( .2.1‬‬

‫‪ .2.1.1‬ايؿطح‬
‫ڄ٭‪٩‬ڃ زُخڄؿ خغبمدَص ظٕعىًڂ ٌٍي خڀ‪َُ٥‬ٹص ڀٽ‪ٙ‬ٳ خؼبىٹك‪ ،‬وظعڃ ‪٬‬ه ‪َُ٤‬ٷ ٴك‪ ٚ‬خڀـ ‪ BeingDebugged flag‬يف زىُص ڄ٭ُوٴص‬
‫زدٔڃ )‪ Process Environment Block (PEB‬وَىـً يخڀص يخوٿ ڄٽعسص خڀـ ‪ Kernel32‬ظٹىڂ ز٭مٿ ٌٍي خؼبهمص وٌٍ يخڀص‬
‫‪ IsDebuggerPresent‬لُػ ظٹىڂ خڀًخڀص زٵم‪ ٛ‬خڀ٭ى‪ BeingDebugged ُٝ‬ؼب٭ُٴص ڄد بٌخ ټدوط خڀـ ‪َ Process‬عڃ ظىٹُمهد‬
‫زىخٔ‪٥‬ص ‪ user-mode debugger‬ؤڂ ال؟‬

‫‪َ .2.1.2‬جاٍ‬
‫وخڀٽىي خڀعدرل َى‪٠‬ك ‪٬‬مځُص خٔعىًخڂ يخڀص ‪ IsDebuggerPresent‬ؤو خڀٽ‪ٙ‬ٳ ‪٬‬ه خڀ٭ى‪PEB.BeingDebugged flag ُٝ‬‬
‫ڄسدُ٘ش وٌڀٻ ڀٽ‪ٙ‬ٳ خؼبىٹك ‪:‬‬
‫)(‪;call kernel32!IsDebuggerPresent‬‬
‫‪call‬‬ ‫]‪[IsDebuggerPresent‬‬
‫‪test‬‬ ‫‪eax,eax‬‬
‫‪jnz‬‬ ‫‪.debugger_found‬‬

‫‪;check PEB.BeingDebugged directly‬‬


‫‪mov‬‬ ‫]‪eax,dword [fs:0x30‬‬ ‫‪;EAX = TEB.ProcessEnvironmentBlock‬‬
‫‪movzx‬‬ ‫]‪eax,byte [eax+0x02‬‬ ‫‪;AL = PEB.BeingDebugged‬‬
‫‪test‬‬ ‫‪eax,eax‬‬
‫‪jnz‬‬ ‫‪.debugger_found‬‬

‫ومبخ ؤن ٌٍي خألټىخي ظ٭عرب ڄٽ‪ٙ‬ىٴص يف خڀربودڄؿ‪ ،‬ڀٍڀٻ َٹىڂ زُودڄؿ خغبمدَص زع‪ٙ‬ٵًن ٌٍي خعبّجُص وظ‪ٙ‬ىًَ خڀٽىي لىت ال يبٽه خڀع٭ُٲ‬
‫‪ُ٬‬ٲ ‪ُ٤‬ٶ ظ‪ٙ‬ٵًن خڀٽىي اللٹد‪.‬‬
‫‪٬‬ځٍ‪ٔ .‬هض‬
‫ي‬

‫‪ٚ .2.1.3‬غا‪ ٌ٥‬ايتػًب عٌ‪ٖ ٣‬ص‪ ٙ‬ايطط‪ٜ‬ك‪١‬‬


‫َعڃ خڀعٱځر ‪٬‬ځً ٌٍي خڀ‪َُ٥‬ٹص زٕهىڀص ز‪ٙ‬ٽٿ ًَوٌ‪ ،‬وٌڀٻ زع٭ًَٿ ٸُمص خڀـ ‪ PEB.BeingDebugged flag‬بذل ‪ 0‬وإل‪٨‬هدَ ٸُمص‬
‫خڀـ ‪ PEB.BeingDebugged flag‬يف خڀـ ‪ OllyDbg‬خٌٌر بذل ـٌٍ خڀـ ‪ Data‬مث خ‪٠‬ٱ‪ Ctrl + G ٣‬مث خټعر ]‪fs:[30‬‬
‫زدإل‪٠‬دٴص بذل ؤن ٌٍخ خألڄُ يف خڀـ ‪ OdbgScript‬وٌى ‪َ dbh‬ٹىڂ هبٍي خؼبهمص‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪257‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ؤَ‪١‬د يبٽه خڀعٱځر ‪٬‬ځً ٌٍي خڀ‪َُ٥‬ٹص زىخٔ‪٥‬ص ‪ OllyDbg Advanced‬وٌٍ ب‪٠‬دٴص ڄ٭ُوٴص ڀربودڄؿ ‪ OllyDbg‬لُػ ربعىٌ ‪٬‬ځً‬
‫وُدَ َٹىڂ زى‪ 0 ٫٠‬يف ٸُمص خڀـ ‪BeingDebugged field‬‬

‫زدإل‪٠‬دٴص بذل وـىي ‪ Plugin‬ڄىٵ‪ٝ‬ځص ظٹىڂ هبٍي خؼبهمص وٌٍ ‪IsDebuggerPresent Plugin‬‬

‫‪PEB.NtGlobalFlag, Heap Flags .2.2‬‬


‫‪ .2.2.1‬ايؿطح‬
‫ربعىٌ زىُص خڀـ ‪ PEB‬خڀٕدزٷش خڀٍټُ ‪٬‬ځً ‪٬‬ى‪ ُٝ‬آوُ َٕڃي ‪٬ NtGlobalFlag‬ىً خألوٴٕط ‪ offset 0x68‬وٌى ؤَ‪١‬دً َٕعىًڄً‬
‫زُودڄؿ خغبمدَص ڀٽ‪ٙ‬ٳ خڀًَسٱُ‪ .‬ويف خڀ‪٥‬سُ٭ٍ بٌخ ٺخن ڀًَىد ‪ Process‬ظ٭مٿ ز‪ٙ‬ٽٿ ‪٤‬سُ٭ٍ زًون خڀًَسٱُ ظٽىن ٸُمص خڀـ‬
‫‪ NtGlobalFlag‬ظٕدوٌ ‪ 0‬ؤڄد بٌخ ټدوط خڀـ ‪ Process‬ظ٭مٿ ڄه والپ يَسٱُ ظٽىن خڀٹُمص ‪ 70‬زدؽبٽٓ وٌٍي خڀٹُمص ودذبص ڄه‬
‫‪٬‬مځُص ‪ OR‬خؼبى‪٥‬ٹُص ڀځ٭ىد‪ ُٜ‬خڀؽالؼص ‪:‬‬

‫)‪FLG_HEAP_ENABLE_TAIL_CHECK (0x10‬‬
‫)‪FLG_HEAP_ENABLE_FREE_CHECK (0x20‬‬
‫)‪FLG_HEAP_VALIDATE_PARAMETERS (0x40‬‬

‫ؤڄد زدڀىٕسص ڀـ ‪ Heap Flags‬ٴةوً زٕسر خڀُخَدض خڀيت مت ظٱًنٌد يف خڀـ ‪ NtGlobalFlag‬ٴةن ٌٍخ َاؼُ ‪٬‬ځً خڀ٭ًًَ ڄه خأل‪٬‬الڂ يف‬
‫خڀـ ‪ Heap Flags‬وز‪ٝ‬ٵص ‪٬‬دڄص خأل‪٬‬الڂ خڀيت ظعٱًن يف خڀـ ‪ heap‬ڀځربؤُٓ ‪ PEB.ProcessHeap‬ظإوٍ خڀٹُمص ‪ 2‬زدؽبٽٓ‬
‫وخڀٹُمص ‪٬ 0‬ځً خڀعىخرل‪ .‬ؤڄد يف لدڀص وـىي يَسٱُ ٴةن خڀٹُڃ ظٽىن ‪ 50000062‬زدؽبٽٓ‪ ،‬مث ‪ 40000060‬وز‪ٝ‬ٵص ‪٬‬دڄص َعڃ ظ٭ًَٿ‬
‫ٌٍي خأل‪٬‬الڂ ‪٬‬ىً بو‪ٙ‬دء خڀـ ‪ Heap‬يف لدڀص وـىي يَسٱُ‪:‬‬

‫(‪HEAP_TAIL_CHECKING_ENABLED (0x20‬‬
‫(‪HEAP_FREE_CHECKING_ENABLED (0x40‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪258‬‬
AT4RE :‫انفريك انعرتي نههُذسح انعكسيح‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ .‫ خطىج إنى األياو‬:‫انهُذسح انعكسيح‬

ٍ‫َجا‬ . 2.2.2
‫ٵُ ؤڂ ال ؟‬ٜ :ٌ‫ ڀ٭ُٲ ٌٿ ظٕدو‬PEB.NtGlobalFlag ‫ ٸُمص خڀـ‬ٛ‫َُٹص وٌى َٵم‬٥‫ك ټُٳ يبٽه خٔعىًخڂ ٌٍي خڀ‬٠‫خدلؼدپ خڀعدرل َى‬
‫ ؟‬PEB.ProcessHeap ‫الڂ يف خڀـ‬٬‫وٌٿ مت ظ٭ًَٿ ؤٌ ؤ‬
;ebx = PEB
mov ebx,[fs:0x30]

;Check if PEB.NtGlobalFlag != 0
cmp dword [ebx+0x68],0
jne .debugger_found
;eax = PEB.ProcessHeap
mov eax,[ebx+0x18]

;Check PEB.ProcessHeap.Flags
cmp dword [eax+0x0c],2
jne .debugger_found

;Check PEB.ProcessHeap.ForceFlags
cmp dword [eax+0x10],0
jne .debugger_found

١‫ك‬ٜ‫ ايطط‬ٙ‫ٖص‬ًٞ‫ٌ ايتػًب ع‬٥‫غا‬ٚ .2.2.3


‫ًڂ وـىي‬٬ ‫ځُص ؤٌ يف لدپ‬ٜ‫ بذل ٸُمهڃ خأل‬PEB.HeapProcess ‫ وخڀـ‬PEB.NtGlobalFlag ‫ځً ٸُڃ خڀـ‬٬ ‫َعڃ زدڀع٭ًَٿ‬
: ‫ وٌى ٌٸىڂ هبٍي خؼبهمص‬OdbgScript ‫ وخڀٽىي خڀعدرل ٌى ڀـ‬،ُ‫خڀًَسٱ‬
var peb
var patch_addr
var process_heap

//retrieve PEB via a hardcoded TEB address (first thread: 0x7ffde000)


mov peb,[7ffde000+30]

//patch PEB.NtGlobalFlag
lea patch_addr,[peb+68]
mov [patch_addr],0

//patch PEB.ProcessHeap.Flags/ForceFlags
mov process_heap,[peb+18]
lea patch_addr,[process_heap+0c]
mov [patch_addr],2
lea patch_addr,[process_heap+10]
mov [patch_addr],0

: ‫َُٹص‬٥‫ٿي ٌٍي خڀ‬٬ ‫ هبد وُدَخض ڀځعٱځر‬OllyAdvanced ‫دٴص‬٠‫دً ب‬١َ‫ؤ‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ 2009 259
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ؤَ‪١‬دً ب‪٠‬دٴص خڀـ ‪ Poison‬هبد وُدَخض ڀځعٱځر ‪٬‬ٿي ٌٍي خڀ‪َُ٥‬ٹص ‪:‬‬

‫ايؿطح‬ ‫‪. 2.2.4‬‬


‫يف ٌٍي خڀ‪َُ٥‬ٹص ظٕعىًڂ يخڀص ‪ CheckRemoteDebuggerPresent‬خڀعدز٭ص ؼبٽعسص ‪ Kernel32‬ؼب٭ُٴص ڄد بٌخ ټدن خڀربؤُٓ‬
‫ظ٭مٿ ڄه والپ يٌزٱُ ؤڂ ال؟ وٌٍي خڀًخڀص ظٹىڂ يخوځُدً زدٔعً‪٬‬دء يخڀص ؤوُي وٌٍ ‪ NtQueryInformationProcess‬ڄه ڄٽعسص‬
‫خڀـ ‪ ntdll‬وٌٍي خڀًخڀص هبد زدَخڄُعُ وٌى ‪ ProcessInformationClass parameter‬وَعڃ و‪ ٫٠‬خڀٹُمص‬
‫)‪ ProcessDebugPort (7‬ٴًُ‪ .‬ٴةٌخ ټدوط خڀٹُمص يف ‪ DebugPort‬ال ظٕدوٌ ‪ 0‬ٴهٍخ ٌ‪٬‬ين ؤن خڀربؤُٓ خغبدڀُص ظ٭مٿ ڄه‬
‫والپ يَسٱُ‪.‬‬

‫وٌٍخ ُ٘ق ڀځًخڀص ‪: CheckRemoteDebuggerPresent‬‬

‫لُػ ؤوپ زدَخڄُعُ ٌى ڄٹس‪ ٟ‬خڀربؤُٓ وؼدين زدَخڄُعُ ڄه وى‪ Boolean ٪‬وَعڃ ٴًُ و‪ ٫٠‬خڀٹُمص ‪ True‬بٌخ ټدن خڀربؤُٓ َعڃ‬
‫ظىٹُمهد‪.‬‬

‫( ‪BOOL CheckRemoteDebuggerPresent‬‬
‫‪HANDLE hProcess,‬‬
‫‪PBOOL pbDebuggerPresent‬‬
‫;)‬

‫ربعىٌ ‪٬‬ځً ‪ 5‬زدَخڄُعُ وٌڃ ټدِيت‪:‬‬


‫ؤڄد خڀًخڀص ‪ NtQueryInformationProcess‬ٲ‬

‫(‪NTSTATUS NTAPI NtQueryInformationProcess‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪260‬‬
AT4RE :‫انفريك انعرتي نههُذسح انعكسيح‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ .‫ خطىج إنى األياو‬:‫انهُذسح انعكسيح‬

HANDLE ProcessHandle,
PROCESSINFOCLASS ProcessInformationClass,
PVOID ProcessInformation,
ULONG ProcessInformationLength,
PULONG ReturnLength
);

ٍ‫ ّخا‬.2.2.5
: ‫ه وـىي خؼبىٹك‬٬ ‫ٳ‬ٙ‫ك خٔعىًخڂ خڀًخڀعٌن خڀٕدزٹعٌن ڀځٽ‬٠‫خؼبؽدپ خڀعدرل َى‬
.data
krnl db "kernel32.dll",0h
chkrdbg db "CheckRemoteDebuggerPresent",0h

.data?
IsItPresent dd ?

.code
PUSH offset krnl ;kernel32.dll
CALL LoadLibrary

;CheckRemoteDebuggerPresent
PUSH offset chkrdbg
PUSH EAX
CALL GetProcAddress

;IsItPresent variable will store the resault


PUSH offset IsItPresent
PUSH -1
CALL EAX
MOV EAX,DWORD PTR[IsItPresent]
TEST EAX,EAX
jne DebuggerFound

; using ntdll!NtQueryInformationProcess(ProcessDebugPort)
lea eax,[.dwReturnLen]

push eax ;ReturnLength


push 4 ;ProcessInformationLength
lea eax,[.dwDebugPort]
push eax ;ProcessInformation
push ProcessDebugPort ;ProcessInformationClass (7)
push 0xffffffff ;ProcessHandle
call [NtQueryInformationProcess]

cmp dword [.dwDebugPort],0


jne .debugger_found

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ 2009 261
AT4RE :‫انفريك انعرتي نههُذسح انعكسيح‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ .‫ خطىج إنى األياو‬:‫انهُذسح انعكسيح‬

١‫ك‬ٜ‫ ايطط‬ٙ‫ ٖص‬٢ً‫ٌ ايتػًب ع‬٥‫غا‬ٚ . 2.2.6


‫ص خڀعىٸٳ َعڃ ظ٭ًَٿ‬٥‫ځً وٹ‬٬ ‫ىً خڀىٸىٲ‬٬‫ و‬NtQueryInformationProcess ‫ىً خڀًخڀص‬٬ ‫ص ظىٸٳ‬٥‫ وٹ‬٫٠‫ؤوپ ٌٍي خغبځىپ ٌى و‬
: ‫ك ٌٍي خڀ٭مځُص‬٠‫ َى‬OdbgScript ‫ وٌٍخ ڄؽدپ زدپـ‬0 ‫ وـ٭ځهد‬ProcessInformation ‫ٸُمص خڀـ‬
var bp_NtQueryInformationProcess

// set a breakpoint handler


eob bp_handler_NtQueryInformationProcess

// set a breakpoint where NtQueryInformationProcess returns


gpa "NtQueryInformationProcess", "ntdll.dll"
find $RESULT, #C21400# //retn 14
mov bp_NtQueryInformationProcess,$RESULT
bphws bp_NtQueryInformationProcess,"x"
run

bp_handler_NtQueryInformationProcess:
//ProcessInformationClass == ProcessDebugPort?
cmp [esp+8], 7
jne bp_handler_NtQueryInformationProcess_continue

//patch ProcessInformation to 0
mov patch_addr, [esp+c]
mov [patch_addr], 0

//clear breakpoint
bphwc bp_NtQueryInformationProcess

bp_handler_NtQueryInformationProcess_continue:
run

: ‫َُٹص‬٥‫ ٌٍي خڀ‬٫‫ځً وُدَ ڀځع٭دڄٿ ڄ‬٬ ٌ‫ ربعى‬OllyAdvanced ‫دٴص خڀـ‬٠‫ه خغبځىپ خألوظىڄدظُٻَص ٴةن ب‬٬ ‫ؤڄد‬

: ‫ځً وٵٓ خػبُدَخض‬٬ ٌ‫ ربعى‬Poison ‫دٴص خڀـ‬٠‫دً ب‬١َ‫ؤ‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ 2009 262
AT4RE :‫انفريك انعرتي نههُذسح انعكسيح‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ .‫ خطىج إنى األياو‬:‫انهُذسح انعكسيح‬

Debugger Interrupts .2.3


‫ ايؿطح‬.2.3.1
INT1 ‫ وظ٭ځُمص خڀـ‬breakpoint ‫ص زدپـ‬ٜ‫ وٌٍ خػبد‬INT3 Interrupt ‫ىً ظىٵٍُ ظ٭ځُمص خڀـ‬٬ ً‫ځً ؤو‬٬ ً‫َُٹص ظ٭عم‬٥‫ٌٍي خڀ‬
exceptions ‫ ڀٿـ‬ٟ‫ خذل ز٭ً ظٕځُڃ خڀًَسٱُ ڀځمٹس‬exception handler ‫دء خڀـ‬٬ً‫ بٲوً ڀه َعڃ خٔع‬single-step ‫ص زـ‬ٜ‫خػبد‬
‫ وبٌخ دل َعڃ ظ٭ًَٿ ٌٍخ خڀـ‬exception handler ‫ يخوٿ خڀـ‬flags ٫٠‫ ڀٍڀٻ َٹىڂ زُودڄؿ خغبمدَص زى‬.‫خڀىدذبص ڄه ٌٍي خڀع٭ځُمدض‬
.ُ‫ص يَسٱ‬٥ٔ‫ َعڃ ظىٹُمهد زىخ‬process ‫ ٴهٍخ َ٭ين ؤن خڀـ‬Interrupt ‫ش زدپـ‬ٚ‫ خػبد‬INT ‫ ز٭ً ظ٭ځُمدض خڀـ‬flag

ٍ‫َجا‬ .2.3.2
exception ‫ ڀځعإټً ڄه ؤن خڀـ‬exception handler ‫ يخوٿ خڀـ‬EAX ‫ زدؽبٽٓ يف خؼبٕفٿ‬FFFFFFFF ‫ خڀٹُمص‬٫١َ ‫ٌٍخ خؼبؽدپ‬
.‫دئي‬٬ً‫ ٸً مت خٔع‬handler
;set exception handler
push .exception_handler
push dword [fs:0]
mov [fs:0], esp

;reset flag (EAX) invoke int3


xor eax,eax
int3

;restore exception handler


pop dword [fs:0]
add esp,4

;check if the flag had been set


test eax,eax
je .debugger_found
:::
.exception_handler:
;EAX = ContextRecord
mov eax,[esp+0xc]
;set flag (ContextRecord.EAX)
mov dword [eax+0xb0],0xffffffff
;set ContextRecord.EIP
inc dword [eax+0xb8]
xor eax,eax
retn

١‫ك‬ٜ‫ ايطط‬ٙ‫ ٖص‬٢ً‫ٌ ايتػًب ع‬٥‫غا‬ٚ .2.3.3


Shift + F9 ً‫ځ‬٬ ٣‫ٱ‬١‫ زدڀ‬Exception ‫ وٌڀٻ زعمَُُ خڀـ‬OllyDbg ‫ٽځص يف خڀـ‬ٙ‫ځً ٌٍي خؼب‬٬ ‫يبٽه خڀعٱځر زٕهىڀص‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ 2009 263
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ؤَ‪١‬دً َىـً لٿ آوُ ڄه يخوٿ ب‪ً٬‬خيخض ‪ OllyDbg‬وٌڀٻ زدوعُدَ ‪ Debugging Options‬مث خوعُدَ ‪ Exceptions‬وخوعُدَ‬
‫خػبُدَخض خؼبىـىيش يف خڀ‪ٝ‬ىَش ‪:‬‬

‫‪Timing Checks .2.4‬‬


‫‪ .2.4.1‬ايؿطح‬
‫‪٬‬ىًڄد َعڃ ظىٹُك ‪ Process‬ڄ٭ُىص بٲن خڀًَسٱُ َإوٍ خڀ٭ًًَ ڄه خڀـ ‪ CPU cycles‬ڄؽٿ ‪٬‬مځُدض خڀععس‪ ٫‬زىخٔ‪٥‬ص ‪ F8‬وزدڀععس‪ ٫‬ٴةن خڀّڄه‬
‫خڀٌٍ ظإوٍي خڀـ ‪ Process‬ؤؼىدء خڀعىٹُك َٽىن ؤټرب ڄه خڀّڄه خڀٌٍ ظإوٍي ‪٬‬ىً ظ‪ٙ‬ٱُځهد زًون ڄىٹك؛ ألن ‪ً٬‬ي خڀـ ‪CPU cycles‬‬
‫وٸطؤ‪٤‬ىپ ڄه خؼبعىٸ‪٫‬‬
‫َٽىن ؤٸٿ‪ .‬وظٕعٱٿ زُخڄؿ خغبمدَص ٌٍي خؼبُّش‪ ،‬وٌڀٻ حبٕدذ خڀّڄه زٌن ظىٵٍُ خڀع٭ځُمدض‪ ،‬ٴةٌخ ؤوٍض ‪٬‬مځُص خڀعىٵٍُ خً‬
‫(خڀ‪٥‬سُ٭ٍ) ٴهٍخ َ٭ين ؤن ٌٍي خڀـ ‪ Process‬ظ٭مٿ ڄه والپ يَسٱُ‪.‬‬

‫َجاٍ‬ ‫‪. 2.4.2‬‬


‫يف ٌٍخ خؼبؽدپ َٹىڂ خڀربودڄؿ ز٭مٿ لٕدذ ڀځىٸط وٌڀٻ زدٔعىًخڂ خڀـ ‪ RDTSC‬ؤٌ خڀـ ‪ Read Time-Stamp Counter‬ٸسٿ‬
‫وز٭ً ظىٵٍُ خڀ٭ًًَ ڄه خڀع٭ځُمدض وز٭ً ٌڀٻ وبٕر ٸُمص وٌٍ ظٕمٍ يڀعد ‪ delta‬وٌٍ ‪٬‬سدَش ‪٬‬ه ټمُص خڀع٭ځُمدض خڀيت مت ظىٵٌٍُد زٌن‬
‫خڀـ ‪ RDTSC‬خؼبىـىيش ٸسٿ وز٭ً خڀٽىي‪ ،‬وزدڀعدرل خڀّڄه خؼبٕعٱُٶ يف خڀ٭مځُص‪.‬‬
‫‪rdtsc‬‬
‫‪mov‬‬ ‫‪ecx,eax‬‬
‫‪mov‬‬ ‫‪ebx,edx‬‬
‫‪;... more instructions‬‬
‫‪nop‬‬
‫‪push‬‬ ‫‪eax‬‬
‫‪pop‬‬ ‫‪eax‬‬
‫‪nop‬‬
‫‪;... more instructions‬‬
‫‪;compute delta between RDTSC instructions‬‬
‫‪rdtsc‬‬

‫‪;Check high order bits‬‬


‫‪cmp‬‬ ‫‪edx,ebx‬‬
‫‪ja‬‬ ‫‪.debugger_found‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪264‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪;Check low order bits‬‬


‫‪sub‬‬ ‫‪eax,ecx‬‬
‫‪cmp‬‬ ‫‪eax,0x200‬‬
‫‪ja‬‬ ‫‪.debugger_found‬‬

‫وڄه خؼبمٽه خٔعىًخڂ خڀًخڀص ‪ GetTickCount‬خڀعدز٭ص ؼبٽعسص خڀـ ‪ kernel32‬إلقبدِ ٌٍي خؼبهمص‪.‬‬

‫‪ٚ‬غا‪ ٌ٥‬ايتػًب عٌ‪ٖ ٣‬ص‪ ٙ‬ايطط‪ٜ‬ك‪١‬‬ ‫‪.2.4.3‬‬


‫ؤوپ ٌٍي خغبځىپ ٌى ربًًَ ڄٽدن خڀـ ‪ timing checks‬وؿبدوڀص ذبىر خؼبُوَ زٽىي خڀعمٹٷ ؤو و‪ ٫٠‬وٹ‪٥‬ص ظىٸٳ ‪٬‬ځً خڀًخڀص‬
‫‪ GetTickCount‬وؿبدوڀص ظٱًُن ودظؿ خڀًخڀص‪.‬‬

‫ؤَ‪١‬دً ب‪٠‬دٴص خڀـ ‪ OllyAdvanced‬خڀيت ربعىٌ ‪٬‬ځً لٿ ؽبٍي خؼب‪ٙ‬ٽځص‪ ،‬وٌڀٻ ‪٬‬ه ‪َُ٤‬ٷ خٔعىًخڂ يَخَٵُ‪kernel mode driver‬‬
‫وڀٽه يف ز٭‪ ٟ‬خأللُدن َايٌ ٌٍخ خڀًَخَٵُ بذل لًوغ ڄ‪ٙ‬دټٿ؛ ڄؽٿ خڀـ ‪ BSOD‬وٌٍ ٘د٘ص خؼبىض خڀَّٸدء‪.‬‬

‫ؤَ‪١‬د ب‪٠‬دٴص خڀـ ‪ Poison‬هبد‪ ٌٍ ،‬خألوُي وُدَ ڀځع٭دڄٿ ڄ‪ٌٍ ٫‬ي خڀ‪َُ٥‬ٹص ‪:‬‬

‫‪SeDebugPrivilege .2.5‬‬
‫‪ .2.5.1‬ايؿطح‬
‫ز‪ٝ‬ٵص ‪٬‬دڄص ٴةن ؤٌ ‪ Process‬ظ٭مٿ ز‪ٙ‬ٻپ ‪٤‬سُ٭ٍ يف خڀى‪٩‬دڂ َٽىن ڀًَهد ڄُّش خڀـ ‪ًٰ SeDebugPrivilege‬ن ڄٵ٭ځص‪ .‬ؤڄد ‪٬‬ىً‬
‫ظ‪ٙ‬ٱُٿ خڀـ ‪ Process‬ڄه والپ ؤٌ ‪ User Mode Debugger‬ڄؽٿ خڀـ ‪ OllyDbg‬ؤو خڀـ ‪ WinDbg‬ٴةن ڄُّش خڀـ‬
‫‪ SeDebugPrivilege‬ظٽىن ڄٵ٭ځص‪ .‬وڀٍڀٻ ظٕعٱٿ زُخڄؿ خغبمدَص ٌٍي خڀ‪َُ٥‬ٹص‪ ،‬وٌڀٻ زدڀٽ‪ٙ‬ٳ ‪٬‬ه خڀـ ‪SeDebugPrivilege‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪265‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ٌٿ ٌٍ ڄٵ٭ځص ؤڂ ال؟ وٌڀٻ ‪٬‬ه ‪َُ٤‬ٷ ؿبدوڀص ٴعك خڀـ ‪ Process‬خؼبٕمدش ‪ CSRSS.EXE‬ٴةٌخ سبٽه ڄه ٴعك ٌٍي خڀـ ‪CSRSS.EXE‬‬
‫ٴهٍخ َ٭ين ؤن خڀـ ‪ Process‬خؼبُخي ضبدَعهد ڀًَهد خڀـ ‪ SeDebugPrivilege‬ڄٵ٭ځص‪ ،‬فبد َ٭ين ؤوً َعڃ ظىٹُمهد ڄه والپ يَسٱُ‪.‬‬

‫وخڀٕسر يف ٌڀٻ ؤن خڀـ ‪ Process‬خؼبٕمدش ‪ CSRSS.EXE‬ظٕمك ڀځى‪٩‬دڂ زٵعمهد ٴٹ‪ ٣‬بٌخ ټدوط ‪ process‬ڀًَهد خڀـ‬
‫‪. SeDebugPrivilege‬‬

‫‪َ .2.5.2‬جاٍ‬
‫ٌٍخ ڄؽدپ َى‪٠‬ك خڀ‪َُ٥‬ٹص خڀٕدزٹص‪ ،‬وٌى َٹىڂ زدٔعىًخڂ خڀًخڀص ‪ CsrGetProcessId‬ڄه ڄٽعسص ‪ ntdll‬وٌڀٻ ڀځم‪ٝ‬ىپ ‪٬‬ځً خڀـ‬
‫‪ Process ID‬ڀٿـ ‪ CSRSS.EXE‬وڀٽه ڄڃٺن ؤن َٹىڂ زُودڄؿ خغبمدَص زعمًًَ خڀـ ‪ ID‬يون خٔعىًخڂ ٌٍي خڀًخڀص‪ ،‬زٿ َٹىڂ زدؼبهمص‬
‫ز‪ٙ‬ٽٿ ًَوٌ‪ ،‬مث َٕعىًڂ خڀًخڀص ‪ OpenProcess‬ٴةٌخ قبمط خڀًخڀص ٴهٍخ َ٭ين ؤن خڀـ ‪ SeDebugPrivilege‬ڄٵ٭ځص فبد َ٭ين ؤن‬
‫خڀـ ‪َ Process‬عڃ ظىٹُمهد‪.‬‬
‫‪;query for the PID of CSRSS.EXE‬‬
‫‪call‬‬ ‫]‪[CsrGetProcessId‬‬

‫‪;try to open the CSRSS.EXE process‬‬


‫‪push‬‬ ‫‪eax‬‬
‫‪push‬‬ ‫‪FALSE‬‬
‫‪push‬‬ ‫‪PROCESS_QUERY_INFORMATION‬‬
‫‪call‬‬ ‫]‪[OpenProcess‬‬

‫‪;if OpenProcess() was successful,‬‬


‫‪;process is probably being debugged‬‬
‫‪test‬‬ ‫‪eax,eax‬‬
‫‪jnz‬‬ ‫‪.debugger_found‬‬

‫‪ٚ.2.5.3‬غا‪ ٌ٥‬ايتػًب عً‪ٖ ٢‬ص‪ ٙ‬ايطض‪ٜ‬ك‪١‬‬


‫ٌىدٺ لٿ ًَوٌ وٌى و‪ ٫٠‬وٹ‪٥‬ص ظىٸٳ ‪٬‬هي خڀًخڀص ‪ NtOpenProcess‬وظٱًُن ودظؿ خڀًخڀص‪ ،‬ؤٌ خڀـ ‪ EAX‬بذل خڀٹُمص ‪C0000022‬‬
‫ي ټٓ‪ ،‬وٌٍ ظ٭ين ‪ STATUS_ACCESS_DENIED‬ؤٌ ؤن ‪٬‬مځُص ٴعك خڀـ ‪ Process‬ٴ‪ٙ‬ځط‪.‬‬

‫‪Parent Process .2.6‬‬


‫‪ .2.6.1‬ايؿطح‬
‫ز‪ٙ‬ٽٿ ‪٬‬دڂ َٽىن خڀـ ‪ Parent‬ألٌ ‪ Process‬ظ٭مٿ ز‪ٙ‬ٽٿ ‪٤‬سُ٭ٍ يف خڀى‪٩‬دڂ ٌى خڀـ ‪ explorer.exe‬ڀٍڀٻ َٹىڂ زُودڄؿ خغبمدَص‬
‫زدٔعٱالپ ٌٍي خڀىٹ‪٥‬ص وڄ٭ُٴص خڀـ ‪ Parent‬ڀځربؤُٓ خؼبُخي ضبدَعهد‪ ،‬ٴةٌخ ټدن ؤٌ ٌٖء آوُ ًٰن خڀـ ‪ explorer.exe‬ٴهٍخ َ٭ين ؤن‬
‫خڀربؤُٓ َدبد ظٽىن ظ٭مٿ ڄه والپ خڀًَسٱُ‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪266‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫وٌٍي خڀ‪َُ٥‬ٹص َعڃ ‪٬‬مځهد ټدڀعدرل ‪:‬‬

‫ؤوالً َٹىڂ زُودڄؿ خغبمدَص جبځر خڀـ ‪ PID‬ڀځربؤُٓ خغبدڀُص‪ ،‬وٌڀٻ ‪٬‬ه ‪َُ٤‬ٷ خڀسىُص ‪ TEB‬ڄه والپ خڀ٭ى‪ُٝ‬‬
‫‪ TEB.ClientId‬ؤو ڄسدُ٘ش ڄه والپ خڀًخڀص ‪. GetCurrentProcessId‬‬
‫مث َٹىڂ ز٭ُ‪ ٞ‬صبُ‪ ٫‬خڀـ ‪ Processes‬خڀيت ظ٭مٿ يف خڀى‪٩‬دڂ ‪٬‬ه ‪َُ٤‬ٷ خڀًخڀعٌن ‪ Process32First/Next‬مث َإوٍ خڀـ‬
‫‪ PID‬ڀٿـ ‪٬ explorer.exe‬ه ‪َُ٤‬ٷ ‪ PROCESSENTRY32.szExeFile‬مث وٵٓ خڀٌٗء ڄ‪ ٫‬خڀـ ‪parent‬‬
‫‪ process‬ڀځربؤُٓ خڀيت ًََُ ضبدَعهد زىخٔ‪٥‬ص ‪.PROCESSENTRY32.th32ParentProcessID‬‬
‫مث َٹدَن‪ٌ :‬ٿ خڀـ ‪ PID‬ڀٿـ ‪ parent process‬ال ظٕدوٌ خڀـ ‪ PID‬ڀٿـ ‪ explorer.exe‬؟ بٲٌخ ټدوط ال‬
‫ظٕدوَهد ٴهٍخ َ٭ين ؤن خڀربؤُٓ ظ٭مٿ ڄه والپ خڀًَسٱُ‪.‬‬

‫‪ٚ . 2.6.2‬غا‪ ٌ٥‬ايتػًب عً‪ٖٞ‬ص‪ ٙ‬ايطط‪ٜ‬ك‪١‬‬


‫ربعىٌ ب‪٠‬دٴص خڀـ ‪٬ OllyAdvanced‬ځً وُدَ ڀځع٭دڄٿ ڄ‪ٌٍ ٫‬ي خڀ‪َُ٥‬ٹص‪ ،‬وٌى َ٭عمً ‪٬‬ځً بٴ‪ٙ‬دپ خڀـ ‪ Process32Next‬فبد ال‬
‫يبٽه زُودڄؿ خغبمدَص ڄه ڄ٭ُٴص خڀـ ‪: PID‬‬

‫وٌڀٻ زع‪ٝ‬ٵًن خڀـ ‪ EAX‬مث و‪٬ RETN ٫٠‬ىً ڄٽدن ٌٍي خڀًخڀص‪.‬‬

‫ؤَ‪١‬د ب‪٠‬دٴص خڀـ ‪ Poison‬ربعىٌ ‪٬‬ځً وُدَ ڀځع٭دڄٿ ڄ‪ٌٍ ٫‬ي خڀ‪َُ٥‬ٹص ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪267‬‬
AT4RE :‫انفريك انعرتي نههُذسح انعكسيح‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ .‫ خطىج إنى األياو‬:‫انهُذسح انعكسيح‬

DebugObject: NtQueryObject .2.7


‫ ايؿطح‬.2.7.1
‫ځً ڄ٭ُٴص ڄد بٌخ ټدن ٌىدٺ‬٬ ً‫َُٹص ظ٭عم‬٥‫ص يَسٱُ ؤڂ ال؟ ٴةن ٌٍي خڀ‬٥ٔ‫ َعڃ ظىٹُمهد زىخ‬Process ‫زًالً ڄه ڄ٭ُٴص ڄد بٌخ ټدوط خڀـ‬
‫ ؟‬Process ‫ه خڀـ‬٬ ُ٩‫ خڀى‬ٟ‫يَسٯَ َ٭مٿ ؤڂ ال زٱ‬

‫دء‬ٙ‫ىًڄد َعڃ ظىٹُك ؤٌ زُودڄؿ َعڃ بو‬٬ ً‫ ألو‬DebugObject ٪‫ ڄه خڀىى‬kernel objects ‫ًي خڀـ‬٬ ٛ‫َُٷ ٴم‬٤ ‫ه‬٬ ‫وَعڃ ٌڀٻ‬
. DebugObject ‫ ظٕڃي‬kernel ‫ يف خڀٽُوٿ‬object

ٍ‫ زدَخڄُعُ ڀٽ‬5 ‫ وٌٍي خڀًخڀص ظٕعٹسٿ‬ntdll ‫ ڄه ڄٽعسص‬NtQueryObject ‫َُٷ خڀًخڀص‬٤ ‫ه‬٬ DebugObject ‫ًي خڀـ‬٬ ‫وَعڃ ڄ٭ُٴص‬
‫ زـ‬ObjectInformationClass ‫ وخپـ‬NULL ‫ زـ‬ObjectHandle ‫ خڀـ‬٫٠‫ َعڃ و‬objects types ‫وٹىڂ دب٭ُٴص ټٿ خڀـ‬
. ObjectAllTypeInformation

NTSTATUS NTAPI NtQueryObject(


HANDLE ObjectHandle,
OBJECT_INFORMATION_CLASS ObjectInformationClass,
PVOID ObjectInformation,
ULONG Length,
PULONG ResultLength
);

‫ُ خڀـ‬ٝ‫ى‬٬ ً‫ځ‬٬ ٌ‫ وٌٍي خڀسىُص ربعى‬OBJECT_ALL_INFORMATION ‫ خڀسىُص خؼب٭ُوٴص زدٔڃ‬٪‫وٌٍي خڀًخڀص ظٹىڂ زةَـد‬
NumberOfObjectsTypes
typedef struct _OBJECT_ALL_INFORMATION {
ULONG NumberOfObjectsTypes;
OBJECT_TYPE_INFORMATION ObjectTypeInformation[1];
}

: ‫ٵىٴص ؽبد خڀسىُص خڀعدڀُص‬ٝ‫ه ڄ‬٬ ‫سدَش‬٬ ObjectTypeInformation ‫د خڀـ‬١َ‫ؤ‬


typedef struct _OBJECT_TYPE_INFORMATION {
/*[00]*/ UNICODE_STRING TypeName;
/*[08]*/ ULONG TotalNumberOfHandles;
/*[0C]*/ ULONG TotalNumberOfObjects;
//... more fields ...
}

‫ ” وز٭ً ٌڀٻ‬DebugObject“ ‫ىص وٌى‬٬ ‫ خڀٌٍ وسمػ‬UNICODE string ‫ خڀـ‬٫‫ ڄ‬TypeName ُٝ‫ز٭ً ٌڀٻ َعڃ ڄٹدَوص خڀ٭ى‬
.ُ‫ٵ‬ٝ‫ ٸُمص ال ظٕدوٌ خڀ‬٫‫ ڄ‬TotalNumberOfHandles ‫ ؤو‬TotalNumberOfObjects ُٝ‫َعڃ ڄٹدَوص خڀ٭ى‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ 2009 268
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ٚ .2.7.2‬غا‪ ٌ٥‬ايتػًب عٌ‪ٖ ٣‬ص‪ ٙ‬ايطط‪ٜ‬ك‪١‬‬


‫وٵٓ ‪َُ٤‬ٹص لٿ خڀـ ‪ NtQueryInformationProcess‬لُػ وٹىڂ زى‪ ٫٠‬وٹ‪٥‬ص ظىٸٳ ‪٬‬ىً خڀـ ‪ NtQueryObject‬ز٭ً‬
‫ٌڀٻ يبٽه ظٱًُن ٸُمص خڀـ ‪ OBJECT_ALL_INFORMATION‬وو‪ٝ‬ى‪ٜ‬دً خڀ٭ى‪ NumberOfbjectsTypes ُٝ‬لُػ وٹىڂ‬
‫زع٭ًَځً بذل خڀٹُمص ‪0‬‬

‫ؤَ‪١‬د يبٽه ‪٬‬مٿ ‪ OdbgScript‬ڀځٹُدڂ هبٍي خؼبهمص‪.‬‬

‫وؤَ‪١‬دً ب‪٠‬دٴص خڀـ ‪ OllyAdvanced‬ربعىٌ ‪٬‬ځً وُدَ ڀځع٭دڄٿ ڄ‪ ٫‬يخڀص خڀـ ‪: NtQueryObject‬‬

‫وټٍڀٻ ب‪٠‬دٴص خڀـ ‪ Poison‬ربعىٌ ‪٬‬ځً وٵٓ خػبُدَ ‪:‬‬

‫‪Debugger Window .2.8‬‬


‫‪ .2.8.1‬ايؿطح‬
‫ٌٍ ؤُځص ؤوُي ڄه ؤدتپ ټ‪ٙ‬ٳ خؼبىٹك ظ٭عمً ‪٬‬ځً خڀسمػ ‪٬‬ه خٔڃ ودٴٍش خڀًَسٱُ‪ .‬لُػ ؤن ؤٌ يَسٱُ َعڃ ظ‪ٙ‬ٱُځً ظٽىن خڀىدٴٍش‬
‫خػبد‪ٜ‬ص زً ؽبد ‪٬‬ىىخن ؿبًي ڄؽٿ (‪ )WinDbgFrameClass for WinDbg , OLLYDBG for OllyDbg‬وَعڃ خڀع٭ُٲ ‪٬‬ځً‬
‫‪٬‬ىىخن خڀىدٴٍش زٕهىڀص ‪٬‬ه ‪َُ٤‬ٷ خڀًخڀص ‪ FindWindow‬خدلوـىيش يف ڄٽعسص ‪ User32‬ؤو خڀًخڀص ‪ FindWindowEx‬خؼبىـىيش يف‬
‫وٵٓ خؼبٽعسص‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪269‬‬
AT4RE :‫انفريك انعرتي نههُذسح انعكسيح‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ .‫ خطىج إنى األياو‬:‫انهُذسح انعكسيح‬

ٍ‫َجا‬ .2.8.2
‫دڂ ؤڂ ال؟‬٩‫ َ٭مٿ يف خڀى‬WinDbg ‫ ؤو خڀـ‬OllyDbg ‫ ؼب٭ُٴص ڄد بٌخ ټدن خڀـ‬FindWindow ‫ك خٔعىًخڂ خڀًخڀص‬٠‫ َى‬٣ُٕ‫ٌٍخ ڄؽدپ ز‬
.data?
.szWindowClassOllyDbg db "OLLYDBG",0
.szWindowClassWinDbg db "WinDbgFrameClass",0
.code
push NULL
push .szWindowClassOllyDbg
call [FindWindowA]
test eax,eax
jnz .debugger_found
push NULL
push .szWindowClassWinDbg
call [FindWindowA]
test eax,eax
jnz .debugger_found

١‫ك‬ٜ‫ ايطط‬ٙ‫ ٖص‬٣ٌ‫ٌ ايتػًب ع‬٥‫غا‬ٚ .2.8.3


‫ مث ظٱًُن ٸُمص خڀـ‬FindWindowEx‫ و‬FindWindow ‫ىً خڀًخڀص‬٬ ‫ص ظىٸٳ‬٥‫ وٹ‬٫٠‫َُٷ و‬٤ ‫ه‬٬ :‫َُٹص خڀًُوَص‬٥‫خڀ‬
.‫ لىت ال ظعڃ خڀٹٵّش‬EAX ‫ يف خڀـ‬0 ‫ ٸُمص‬٫٠‫ وٌٍ خڀيت ربىٌ خٔڃ خڀًَسٱُ ؤو و‬lpClassName string parameter

: OllyAdvanced ‫دٴص خڀـ‬٠‫َُٷ ب‬٤ ‫ه‬٬ ‫ؤو‬

: poison ‫دٴص خڀـ‬٠‫ؤو ب‬

: OllyDbg ‫ هبد وُدَ إلوٵدء ودٴٍش‬Phantom ‫دٴص خڀـ‬٠‫وب‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ 2009 270
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪Debugger Process .2.9‬‬


‫‪ .2.9.1‬ايؿطح‬
‫ٌٍ ‪َُ٤‬ٹص ؤوُي ؼب٭ُٴص ڄد بٌخ ټدن ٌىدٺ يَسٱُ َ٭مٿ يف خڀى‪٩‬دڂ ؤڂ ال؟ وٌٍ ‪َُ٤‬ٹص ڄ‪ٙ‬دهبص ڀځ‪َُ٥‬ٹص خڀٕدزٹص‪ ،‬لُػ َٷوڂ زُودڄؿ خغبمدَص‬
‫ز٭مٿ ـُي ڀٽٿ خڀـ ‪ Processes‬خڀيت ظ٭مٿ يف خڀى‪٩‬دڂ وَٹدَهنڃ ڄ‪ ٫‬ؤظبدء خڀـ ‪ Processes‬خػبد‪ٜ‬ص زدؼبىٹمدض؛ ڄؽٿ‪e.g. ( :‬‬
‫‪ ). OLLYDBG.EXE, windbg.exe, etc‬وَعڃ ٌڀٻ ‪٬‬ه ‪َُ٤‬ٷ خڀًخڀص ‪ Process32First/Next‬وٴم‪image name ٛ‬‬
‫بٌخ ټدن ڀًَسٱُ ؤڂ ال؟‬

‫يف ز٭‪ ٟ‬زُخڄؿ خغبمدَص َعڃ خٔعىًخڂ ‪َُ٤‬ٹص ؤ‪ٜ‬٭ر ٸځُالً‪ ،‬وٌٍ ‪٬‬ه ‪َُ٤‬ٷ خٔعىًخڂ خڀًخڀص ‪ ReadProcessMemory‬مث خڀسمػ ‪٬‬ه‬
‫ٔعَُىٯ ڄ٭ٌن َٽىن ڄ٭ُوٲ يخوٿ خڀًَسٱُ؛ ڄؽٿ ‪ ” OLLYDBG“ .e.g‬ألين ڀى ٸدڂ خڀًَسٱُ زعٱًُن خٔڃ ڄځٳ خڀـ ‪ exe‬خػبد‪ ٚ‬زدڀًَسٱُ‬
‫ٴٕعٵ‪ٙ‬ٿ خڀ‪َُ٥‬ٹص خألوذل ڀٍڀٻ َعڃ خٔعىًخڂ خڀ‪َُ٥‬ٹص خڀؽدنَص‬

‫‪ٚ .2.9.2‬غا‪ ٌ٥‬ايتػًب عً‪ٖٞ‬ص‪ ٙ‬ايطط‪ٜ‬ك‪١‬‬


‫وٵٓ ‪َُ٤‬ٹص لٿ خڀـ ‪ parent process check‬وٌٍ ڄهدصبص خڀًخڀص ‪ Process32NextW‬ؼبى‪ ٫‬زُودڄؿ خغبمدَص ڄه ـُي خڀـ‬
‫‪. Processes‬‬

‫‪Device Drivers.2.10‬‬
‫ايؿطح‬ ‫‪.2.10.1‬‬
‫ٌٍي خڀ‪َُ٥‬ٹص ٌٍ ‪َُ٤‬ٹص ظٹځًَُص ؼب٭ُٴص ڄد بٌخ ټدن ٌىدٺ ‪َ Kernel Mode Debugger‬٭مٿ يف خپو‪٩‬دڂ ؤڂ ال؟ وؤڄؽځص خڀـ ‪Kernel‬‬
‫‪ Mode Debugger‬زُودڄؿ خڀـ ‪ SoftICE‬وٌٍي خڀ‪َُ٥‬ٹص ٰدَص يف خڀسٕد‪٤‬ص؛ لُػ ظ٭عمً خڀٵٽُش ‪٬‬ځً ؿبدوڀص بَـد‪ ٪‬ڄٹس‪ ٟ‬ؼبځٳ‬
‫خڀًَخَٵُ خػبد‪ ٚ‬زدڀًَسٱُ وٌڀٻ زدٔعىًخڂ خڀًخڀص ‪CreateFile‬‬

‫َجاٍ‬ ‫‪.2.10.2‬‬
‫‪push‬‬ ‫‪NULL‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪271‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪push‬‬ ‫‪0‬‬
‫‪push‬‬ ‫‪OPEN_EXISTING‬‬
‫‪push‬‬ ‫‪NULL‬‬
‫‪push‬‬ ‫‪FILE_SHARE_READ‬‬
‫‪push‬‬ ‫‪GENERIC_READ‬‬
‫‪push‬‬ ‫‪.szDeviceNameNtice‬‬
‫‪call‬‬ ‫]‪[CreateFileA‬‬
‫‪cmp‬‬ ‫‪eax,INVALID_HANDLE_VALUE‬‬
‫‪jne‬‬ ‫‪.debugger_found‬‬

‫‪.szDeviceNameNtice‬‬ ‫‪db "\\.\NTICE",0‬‬

‫ؤَ‪١‬دً ز٭‪ ٟ‬زُخڄؿ خغبمدَص خغبًَؽص ظٕعىًڂ ‪َُ٤‬ٹص خپـ ‪ Device driver detection‬ڀٽ‪ٙ‬ٳ زُخڄؿ ڄُخٸسص خڀى‪٩‬دڂ ؤڄؽدپ خڀـ‬
‫‪. Regmon and Filemon‬‬

‫‪ٚ‬غا‪ ٌ٥‬ايتػًب عٌ‪ٖ ٣‬ص‪ ٙ‬ايطط‪ٜ‬ك‪١‬‬ ‫‪.2.10.3‬‬


‫و‪ ٫٠‬وٹ‪٥‬ص ظىٸٳ ‪٬‬ىً خڀًخڀص ‪ kernel32!CreateFileFileW‬وؿبدوڀص ظٱًُن خڀـ ‪ FileName parameter‬ؤو ظٱًُن َـ‪ ٫‬خڀًخڀص‬
‫بذل ‪ INVALID_HANDLE_VALUE‬لىت َ٭عٹً زُودڄؿ خغبمدَص ؤن ڄځٳ خڀًَخَٵُ ًٰن ڄىـىي‪.‬‬

‫‪OllyDbg: Guard Pages .2.11‬‬


‫‪ .2.11.1‬ايؿطح‬
‫ٌٍي خڀ‪َُ٥‬ٹص ود‪ٜ‬ص ٴٹ‪ ٣‬زدپـ ‪ OllyDbg‬ألهند ظٕعٱٿ ‪َُ٤‬ٹص ‪ OllyDbg‬يف ‪ acess/write‬ڀٿـ ‪Breakpoint memory‬‬

‫ألن ٌٍخ خڀىى‪ ٪‬ڄه خڀـ ‪َٕ breakpoint‬عىًڂ خڀـ ‪ guard pages‬وزسٕد‪٤‬ص خڀـ ‪ guard pages‬سبٽه زُودڄؿ ڄ٭ٌن ڄه ڄ٭ُٴص‬
‫ڄىت َعڃ ‪٬‬مٿ ‪ access‬ڀځٍخټُش‪ .‬وَعڃ و‪ ٫٠‬خڀـ ‪ Guard pages‬زىخٔ‪٥‬ص خڀـ ‪PAGE_GUARD page protection‬‬
‫خڀـ‬ ‫َٴ‪٫‬‬ ‫ٴُٕعڃ‬ ‫‪guard‬‬ ‫‪page‬‬ ‫ڄه‬ ‫ـّءخً‬ ‫بڀًُ‬ ‫خڀًوىپ‬ ‫خؼبُخي‬ ‫خڀ٭ىىخن‬ ‫ټدن‬ ‫ٴةٌخ‬ ‫‪modifier‬‬
‫)‪. STATUS_GUARD_PAGE_VIOLATION (0x80000001‬‬

‫ؤن ‪٬‬ىًڄد ٌټىن ٌىدٺ ‪ Process‬ظ٭مٿ ڄه والپ خڀـ ‪ OllyDbg‬مث بٌخ مت ؿبدوڀً خڀًوىپ بذل ‪guard page‬‬
‫وظٕعٱٿ زُخڄؿ خغبمدَص ي‬
‫يف خڀٍخټُش ٴځه َعڃ سبَُُ ؤٌ ‪ exception‬ؤَ‪١‬د‪ٌٍ ،‬خ خڀًوىپ ‪ُٔ access‬٭دڄٿ ‪٬‬ځً ؤوً ‪. memory breakpoint‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪272‬‬
AT4RE :‫انفريك انعرتي نههُذسح انعكسيح‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ .‫ خطىج إنى األياو‬:‫انهُذسح انعكسيح‬

ٍ‫ َجا‬.2.11.2
‫ُص خڀـ‬ٜ‫ مث ظٵ٭ُٿ ود‬،‫ مث َٹىڂ زٽعدزص ټىي بذل ٌٍخ خعبّء يف خڀٍخټُش‬،‫يف ٌٍخ خؼبؽدپ َٹىڂ خڀٽىي زعمًًَ ـّء ڄه خڀٍخټُش‬
.‫ٱُٿ ٌٍخ خڀٽىي خؼبىـىي يف ٌٍخ خعبّء ڄه خڀٍخټُش‬ٙ‫ مث َٹىڂ زع‬PAGE_GUARD
; set up exception handler
push .exception_handler
push dword [fs:0]
mov [fs:0], esp

; allocate memory
push PAGE_READWRITE
push MEM_COMMIT
push 0x1000
push NULL
call [VirtualAlloc]
test eax,eax
jz .failed
mov [.pAllocatedMem],eax

; store a RETN on the allocated memory


mov byte [eax],0xC3

; then set the PAGE_GUARD attribute of the allocated memory


lea eax,[.dwOldProtect]
push eax
push PAGE_EXECUTE_READ | PAGE_GUARD
push 0x1000
push dword [.pAllocatedMem]
call [VirtualProtect]

; set marker (EAX) as 0


xor eax,eax
; trigger a STATUS_GUARD_PAGE_VIOLATION exception
call [.pAllocatedMem]
; check if marker had not been changed (exception handler not called)
test eax,eax
je .debugger_found
:::

.exception_handler
;EAX = CONTEXT record
mov eax,[esp+0xc]
;set marker (CONTEXT.EAX) to 0xffffffff
; to signal that the exception handler was called
mov dword [eax+0xb0],0xffffffff
xor eax,eax
retn

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ 2009 273
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪Breakpoint & Patching Detection‬‬ ‫‪ٚ .3‬غا‪ ٌ٥‬نؿـ ْكاط ايت‪ٛ‬قـ ‪ٚ‬ايتعس‪ ٌٜ‬عً‪ ٢‬ايدلاَر‬
‫‪Software Breakpoint Detection .3.1‬‬
‫‪ .3.1.1‬ايؿطح‬
‫‪٬‬ځٍ‪ .‬وَعڃ ظٱًُن ټىي خڀربودڄؿ هبٍي‬
‫وٹد‪ ٢‬خڀعىٸٳ ڄه ٌٍخ خڀىى‪٬ ٌٍ ٪‬سدَش ‪٬‬ه ظٱًُن يف ټىي خڀربودڄؿ خؽبًٲ ‪٬‬ىً خڀ٭ىىخن خحملًي ڀځعىٸٳ ي‬
‫خڀع٭ځُمص ‪ INT3 / Breakpoint Interrupt‬ؤٌ خڀسدَط ‪ CC‬زدؽبٽٓ‪ .‬وزدڀ‪٥‬س‪ ٫‬ظٹىڂ زُخڄؿ خغبمدَص زدڀسمػ يخوٿ خعبّء خحملمٍ ڄه‬
‫خڀٽىي ؤو يخوٿ ټىي يوخپ خڀـ ‪٬ API‬ه ٌٍي خڀع٭ځُمص‪.‬‬

‫‪َ .3.1.2‬جاٍ‬
‫ٌٍخ ڄؽدپ زُٕ‪َ ٣‬ى‪٠‬ك ٴم‪ ٛ‬خڀٽىي ڀځسمػ ‪٬‬ه وٹد‪ ٢‬خڀعىٸٳ ‪:‬‬

‫‪cld‬‬
‫‪mov edi,Protected_Code_Start‬‬
‫‪mov ecx,Protected_Code_End - Protected_Code_Start‬‬
‫‪mov al,0xcc‬‬
‫‪repne scasb‬‬
‫‪jz .breakpoint_found‬‬

‫ظٹىڂ ز٭‪ ٟ‬زُخڄؿ خغبمدَص دبمدوڀص نيخ‪ ٪‬خڀٽُخټُ‪ ،‬وٌڀٻ زدٔعسًخپ ٔ‪ ُ٥‬خؼبٹدَوص خڀٕدزٷ هبٍخ خڀٕ‪: ُ٥‬‬
‫‪if(byte XOR 0x55 == 0x99) then breakpoint found‬‬

‫‪// Where: 0x99 == 0xCC XOR 0x55‬‬

‫‪ٚ .3.1.3‬غا‪ ٌ٥‬ايتػًب عٌ‪ٖ ٣‬ص‪ ٙ‬ايطط‪ٜ‬ك‪١‬‬


‫بڄد ؿبدوڀص خڀى‪ٜ‬ىپ بذل ټىي خؼبٹدَوص وظ٭ًَځً وبڄد خٔعىًخڂ خڀـ ‪. hardware breakpoints‬‬

‫‪Hardware Breakpoint Detection .3.2‬‬


‫‪ .3.2.1‬ايؿطح‬
‫وى‪ ٪‬آوُ ڄه ؤوىخ‪ ٪‬وٹد‪ ٢‬خڀعىٸٳ ٌى خڀـ ‪ . hardware breakpoint‬وَعڃ و‪ ٫٠‬خڀـ ‪ hardware breakpoint‬زىخٔ‪٥‬ص‬
‫ڄٕفالض خڀـ ‪ debug registers‬وٌٍي خؼبٕفالض ٌٍ ڄه ‪ Dr0‬بذل ‪ . Dr7‬ڄه ‪ Dr0‬بذل ‪ Dr3‬ربعىٌ ٌٍي خؼبٕفالض ‪٬‬ځً‬
‫‪٬‬ىدوَه ڀـ ‪ 4‬وٹد‪ ٢‬ظىٸٳ‪ ،‬پٌڀٻ ظالل‪ ٧‬يف ‪ OllyDbg‬ؤن آوُ ‪ً٬‬ي ڀٿـ ‪ٌ hardware breakpoint‬ى ‪ 4‬ٴٹ‪ .٣‬ؤڄد خڀـ ‪Dr6‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪274‬‬
AT4RE :‫انفريك انعرتي نههُذسح انعكسيح‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ .‫ خطىج إنى األياو‬:‫انهُذسح انعكسيح‬

enabling/disabling ‫ وڀٽه َعمٽڃ يف خڀـ‬،‫ځڃ‬٬ ‫د‬١َ‫ ٴهى ؤ‬Dr7 ‫ خڀعىٸٳ خألَز٭ص ظ٭مٿ خِن؟ ؤڄد خڀـ‬٢‫ځڃ َسٌن ؤٌ ڄه وٹد‬٬ ‫ٴهى‬
‫ ؟‬read/write ‫ىً خڀـ‬٬ ‫ ُٔعىٸٳ‬٢‫دً ؤٌ ڄه خڀىٹد‬١َ‫ خڀعىٸٳ وؤ‬٢‫ڀىٹد‬

debug ‫ وٌڀٻ ألن ڄٕفالض خڀـ‬،ً‫ ربعدؾ بذل ټىي ټسًن ـّجُد‬hardware breakpoints ‫ خڀعىٸٳ‬٢‫ٳ وٹد‬ٙ‫مٿَص ټ‬٬‫و‬
‫ ڀٍڀٻ ظٹىڂ زُخڄؿ خغبمدَص زعمځُٿ زىُص خڀـ‬User Mode ‫ ؤٌ خڀـ‬Ring 3 ‫ ال يبٽه خڀًوىپ بڀُهد ڄه خڀـ‬registers
‫ َعڃ ٸُخءهتد ڄه‬CONTEXT structure ‫ وخڀـ‬debug registers ‫ځً ٸُڃ خڀـ‬٬ ٌ‫ وٌٍ خڀيت ربعى‬CONTEXT structure
. exception handler ‫ خؼبمَُ بذل خڀـ‬ContextRecord ‫خڀسدَخڄُعُ خؼبٕڃي‬

ٍ‫َجا‬ .3.2.2
: debug registers ‫َُٹص ربځُٿ خڀـ‬٤ ‫ك‬٠‫ٌٍخ ڄؽدپ َى‬
; set up exception handler
push .exception_handler
push dword [fs:0]
mov [fs:0], esp

;eax will be 0xffffffff if hardware breakpoints are identified


xor eax,eax

; throw an exception
mov dword [eax],0

; restore exception handler


pop dword [fs:0]
add esp,4

; test if EAX was updated (breakpoint identified)


test eax,eax
jnz .breakpoint_found

:::

.exception_handler
;EAX = CONTEXT record
mov eax,[esp+0xc]

;check if Debug Registers Context.Dr0-Dr3 is not zero


cmp dword [eax+0x04],0
jne .hardware_bp_found
cmp dword [eax+0x08],0
jne .hardware_bp_found
cmp dword [eax+0x0c],0
jne .hardware_bp_found
cmp dword [eax+0x10],0
jne .hardware_bp_found
jmp .exception_ret

.hardware_bp_found
;set Context.EAX to signal breakpoint found
mov dword [eax+0xb0],0xffffffff

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ 2009 275
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪.exception_ret‬‬
‫‪;set Context.EIP upon return‬‬
‫‪add‬‬ ‫‪dword [eax+0xb8],6‬‬
‫‪xor‬‬ ‫‪eax,eax‬‬
‫‪retn‬‬

‫ز٭‪ ٟ‬زُخڄؿ خغبمدَص ظٕعىًڂ خڀـ ‪ debug registers‬ټؿ ِء ڄه ڄٵدظُك ٴٻ خڀع‪ٙ‬ٵًن ‪ decryption keys‬لُػ َٹىڂ زُودڄؿ‬
‫خغبمدَص دبُٸدزص ٌٍي خؼبٕفالض ڄ‪ ٫‬خ‪٬‬عسدَ ؤهند ڄه خؼبٵعُ‪ ٞ‬ؤن ربعىٌ ‪٬‬ځً خڀٹُڃ ‪ 0‬ٴةٌخ وـً ظٱًُن يف ٸُڃ ٌٍي خؼبٕفالض بٲن ‪٬‬مځُص ٴٻ‬
‫خڀع‪ٙ‬ٵًن ٔىٲ ظٵ‪ٙ‬ٿ‪ ،‬فبد َايٌ بذل بوعدؾ ظ٭ځُمدض ود‪٤‬حص يف ټىي خڀربودڄؿ‪ ،‬فبد َايٌ بذل ‪ً٬‬ڂ ‪٬‬مٿ خڀربودڄؿ‪.‬‬

‫‪ٚ‬غا‪ ٌ٥‬ايتػًب عً‪ٖ ٢‬ص‪ ٙ‬ايطط‪ٜ‬ك‪١‬‬ ‫‪.3.2.3‬‬


‫ؤوپ ‪َُ٤‬ٹص ٌٍ خٔعىًخڂ خڀـ ‪ software breakpoints‬بٌخ ټدن ڀُٓ ٌىدٺ ٴم‪ ٛ‬ڄه زُودڄؿ خغبمدَص ‪٬‬ىهد‪ .‬ؤو ؿبدوڀص خٔعىًخڂ‬
‫وٸٳ خڀٍخټُش وٌٍ ڄىـىيش يف خڀـ ‪OllyDbg‬‬
‫خڀـ ‪ access/write memory breakpoint‬وٹد‪ ٢‬ض‬

‫ؤو يبٽه و‪٬ software breakpoint ٫٠‬ځً يوخپ خڀـ ‪ native APIs‬بٌخ ټدن خألڄُ َع‪٥‬ځر و‪ ٫٠‬وٹد‪ ٢‬ظىٸٳ ‪٬‬ځً ‪API‬‬
‫ڄ٭ُىص‪.‬‬

‫‪Patching Detection via Code Checksum Calculation .3.3‬‬


‫‪ .3.3.1‬ايؿطح‬
‫مت ُ٘ق ٌٍي خعبّجُص زدڀعٵ‪ُٝ‬ٿ يف خإل‪ًٜ‬خَ خألوپ ڄه خڀٽعدذ يف ـّء خڀـ ‪ CRC32‬ڀٍخ ٔىمُ ‪٬‬ځُهد َُٔ٭دً‪.‬‬

‫خغبمدٌ ظٹىڂ هبٍخ خڀٵم‪ٛ‬‬


‫ش‬ ‫ٌٍي خڀ‪َُ٥‬ٹص ظٹىڂ زدڀعمٹٷ ڄه ټىي خڀربودڄؿ خحملمٍ ڀٽ‪ٙ‬ٳ ؤٌ ظ٭ًَٿ ‪٬‬ځً خڀٽىي خأل‪ٜ‬ځٍ‪ .‬ٴمؽالً زُخڄؿ‬
‫ڀځعإټً ڄه ؤوً دل َعڃ خڀعال‪٬‬ر زدڀٽىي؛ ألن ؤٌ ‪٬‬مځُص ظ٭ًَٿ يف خڀٽىي خأل‪ٜ‬ځٍ ڀځربودڄؿ خحملمٍ ظ٭ين ؤوً ٸً مت بَٹدٲ ؤٌ ود‪ُٜ‬ص ڄه‬
‫وىخ‪ ٚ‬خڀـ ‪ anti-debugging‬خؼبىـىيش يف زُودڄؿ خغبمدَص‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪276‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ڀُٕط و‪ُ٨‬ٵص ٌٍي خڀ‪َُ٥‬ٹص ټ‪ٙ‬ٳ خڀع٭ًَٿ يف خڀٽىي ٴٹ‪ ،٣‬زٿ يبٽه خٔعىًڄهد ڀٽ‪ٙ‬ٳ خڀـ ‪ software breakpoints‬ألوىد ټمد‬
‫ظٽځمىد ڄه ٸسٿ بٲن وٹد‪ ٢‬خڀعىٸٳ ڄد ٌٍ بال ظ٭ًَٿ يف ټىي خڀربودڄؿ‪.‬‬

‫َجاٍ‬ ‫‪.3.3.2‬‬
‫‪mov‬‬ ‫‪esi,Protected_Code_Start‬‬
‫‪mov‬‬ ‫‪ecx,Protected_Code_End - Protected_Code_Start‬‬
‫‪xor‬‬ ‫‪eax,eax‬‬

‫‪.checksum_loop‬‬
‫‪movzx‬‬ ‫]‪ebx,byte [esi‬‬
‫‪add‬‬ ‫‪eax,ebx‬‬
‫‪rol‬‬ ‫‪eax,1‬‬
‫‪inc‬‬ ‫‪esi‬‬
‫‪loop‬‬ ‫‪.checksum_loop‬‬

‫‪cmp‬‬ ‫]‪eax,dword [.dwCorrectChecksum‬‬


‫‪jne‬‬ ‫‪.patch_found‬‬

‫‪ٚ‬غا‪ ٌ٥‬ايتػًب عً‪ٖ ٢‬ص‪ ٙ‬ايطط‪ٜ‬ك‪١‬‬ ‫‪.3.3.3‬‬


‫بٌخ ټدن خٔعىًخڂ خڀـ ‪ code checksum‬ڄه ؤـٿ ټ‪ٙ‬ٳ وٹد‪ ٢‬خڀعىٸٳ ٴُمٽىٻ خٔعىًخڂ خڀـ ‪hardware breakpoints‬‬
‫ؤڄد بٌخ ټدن خٔعىًخڂ خڀـ ‪ code checksum‬ڄه ؤـٿ ټ‪ٙ‬ٳ ؤٌ ظ٭ًَٿ يف ټىي خڀربودڄؿ ٴدغبٿ ٌى ڄ٭ُٴص ‪٬‬ىىخن خڀـ‬
‫‪ checksum routine‬وظ٭ًَځهد‪ ،‬وَعڃ ڄ٭ُٴص ‪٬‬ىىخن خڀـ ‪٬ checksum‬ه ‪َُ٤‬ٷ زُخڄؿ ٴم‪ ٛ‬خڀع‪ٙ‬ٵًن ؤڄؽدپ ب‪٠‬دٴص خڀـ ‪Kanal‬‬
‫خؼبىـىيش يف خڀـ ‪ PEiD‬ؤو زُودڄؿ ‪. HCD‬‬

‫‪ANTI-ANALYSIS‬‬ ‫‪ٚ .4‬غا‪ ٌ٥‬تؿ‪ ٜ٘ٛ‬ايه‪ٛ‬ز ‪َٓٚ‬ع حتً‪ً٘ٝ‬‬


‫خؽبًٲ ڄه ٌٍي خڀ‪ُ٥‬ٶ بز‪٥‬دء ‪٬‬مٿ خڀٽُخټُ ‪٬‬ه ‪َُ٤‬ٷ ـ٭ٿ ټىي خڀربودڄؿ خحملمٍ ًٰن ڄٵهىڂ وڄ‪ٙ‬ىي‪ .‬وٌٍي خڀ‪ُ٥‬ٶ ظع‪٥‬ځر ڄه خڀٻَخټُ‬
‫خڀ‪ٝ‬رب وخؼبهدَش ڀځعٱځر ‪٬‬ځُهد‪.‬‬

‫‪Encryption and Compression .4.1‬‬


‫‪ .4.1.1‬ايؿطح‬
‫ي ٌي ٌٍ خػب‪٥‬ىش خألوذل وخألٔدُٔص يف ضبدَص خڀٽىي‪ ،‬وًٌٴهد ڄى‪ ٫‬خڀٽُخټُ ڄه ربمُٿ خڀربودڄؿ خحملمٍ يف ؤٌ ‪ disassembler‬ب‪٠‬دٴص بذل‬
‫خڀ‪ٝ‬٭ىزص يف ربځُٿ خڀربودڄؿ‪ ،‬ٴهٍ ظ٭عرب ؿب‪٥‬ص خڀًٴد‪ ٪‬خألوذل‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪277‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫وظٹىڂ زُخڄؿ خغبمدَص ‪٬‬ديش زع‪ٙ‬ٵًن ټىي زُودڄؿ خغبمدَص وٵًٕ وټىي خڀربودڄؿ خؼبُخي ضبدَعً‪ .‬ؤَ‪١‬دً ‪َُ٤‬ٹص خڀع‪ٙ‬ٵًن ‪encryption‬‬
‫خوعالٲټسًنخً زدوعالٲ زُخڄؿ خغبمدَص؛ ٴس٭‪١‬هد َٽىن ‪٬‬سدَش ‪٬‬ه ټىي ‪ٜ‬ٱًن غبځٹص ‪ XOR‬وز٭‪١‬هد َٽىن خڀٽؽًن‬
‫خً‬ ‫‪ algorithm‬زبعځٳ‬
‫ڄه خغبځٹدض خؼب٭ٹًش خڀيت ظٹىڂ زدڀٽؽًن ڄه خڀ٭مځُدض خغبٕدزُص‪ .‬ؤَ‪١‬دً ڄه ٴىخجً ظ‪ٙ‬ٵًن خڀٽىي ظ‪١‬ځُٿ زُخڄؿ خڀٵم‪ ٛ‬ڄؽٿ خڀـ ‪ PEiD‬وخڀـ‬
‫‪. FastScanner‬‬

‫‪َ .4.1.2‬جاٍ‬
‫ؤڄد ‪٬‬ه بـُخجُدض ٴٻ خڀع‪ٙ‬ٵًن ٴعٽىن ‪٬‬سدَش ‪٬‬ه لځٹدض ظٹىڂ ز٭مځُدض خڀعٹد‪ fetch ٢‬ولٕدذ وزبَّه ڀځع٭ځُمص ز٭ً ٴٻ ظ‪ٙ‬ٵًنٌد‪،‬‬
‫وخؼبؽدپ خڀعدرل َى‪٠‬ك بـُخجُص ٴٻ ظ‪ٙ‬ٵًن زُٕ‪٥‬ص ظٕعىًڂ خڀ٭ًًَ ڄه ‪٬‬مځُدض خڀـ ‪: XOR‬‬
‫‪0040A07C‬‬ ‫]‪LODS DWORD PTR DS:[ESI‬‬
‫‪0040A07D‬‬ ‫‪XOR EAX,EBX‬‬
‫‪0040A07F‬‬ ‫‪SUB EAX,12338CC3‬‬
‫‪0040A084‬‬ ‫‪ROL EAX,10‬‬
‫‪0040A087‬‬ ‫‪XOR EAX,799F82D0‬‬
‫‪0040A08C‬‬ ‫]‪STOS DWORD PTR ES:[EDI‬‬
‫‪0040A08D‬‬ ‫‪INC EBX‬‬
‫‪0040A08E‬‬ ‫‪LOOPD SHORT 0040A07C ;decryption loop‬‬

‫وٌٍخ ڄؽدپ آوُ ؤټؽُ ظ٭ٹًُخً ‪:‬‬


‫]‪00476056 MOV BH,BYTE PTR DS:[EAX‬‬
‫‪00476058 INC ESI‬‬
‫‪00476059 ADD BH,0BD‬‬
‫‪0047605C XOR BH,CL‬‬
‫‪0047605E INC ESI‬‬
‫‪0047605F DEC EDX‬‬
‫‪00476060 MOV BYTE PTR DS:[EAX],BH‬‬
‫‪00476062 CLC‬‬
‫‪00476063 SHL EDI,CL‬‬
‫‪::: More garbage code‬‬
‫‪00476079 INC EDX‬‬
‫‪0047607A DEC EDX‬‬
‫‪0047607B DEC EAX‬‬
‫‪0047607C JMP SHORT 0047607E‬‬
‫‪0047607E DEC ECX‬‬
‫‪0047607F JNZ 00476056‬‬ ‫‪;decryption loop‬‬

‫خألٔ‪ ُ٥‬خڀ‪٩‬دٌُش ٌٍ خڀع٭ځُمدض خؼبٕاوڀص ‪٬‬ه ٴٻ خڀع‪ٙ‬ٵًن‪ ،‬ؤڄد زدٸٍ خألٔ‪ ُ٥‬ٴهٍ ڀع‪١‬ځُٿ خڀٽُخټُ ٴٹ‪.٣‬‬

‫ؤڄد ‪٬‬مځُص خڀ‪١‬ٱ‪ ٣‬ٴهًٴهد خألٔدٍٔ ظٹځُٿ لفڃ خڀربودڄؿ ‪٬‬ه ‪َُ٤‬ٷ ظٹځُٿ لفڃ خڀٽىي وخڀسُدودض ‪ Data‬وڄه ؤڄؽځص وىخَِڄُدض خڀ‪١‬ٱ‪٣‬‬
‫خڀيت ظٕعىًڂ ڄه ٸسٿ زُخڄؿ خغبمدَص وىخَِڄُدض خڀـ )‪ NRV (Not Really Vanished‬وخڀـ ‪ LZMA‬وٌٍ خوع‪ٝ‬دَ ڀـ‬
‫(‪ )Lempel-Ziv-Markov chain-Algorithm‬وظٕعىًڂ يف زُودڄؿ خڀـ ‪ UPX‬ووىخَِڄُص خڀـ ‪ aPLib‬وظٕعىًڂ يف زُودڄؿ‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪278‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫خڀـ ‪ FSG‬ووىخَِڄُص خڀـ ‪ LZMA‬وظٕعىًڂ يف زُودڄؿ خڀـ ‪ Upack‬ووىخَِڄُص خڀـ ‪ LZO‬وظٕعىًڂ يف زُودڄؿ ‪yoda’s‬‬
‫‪. Protector‬‬

‫‪ٚ .4.1.3‬غا‪ ٌ٥‬ايتػًب عٌ‪ٖ ٣‬ص‪ ٙ‬ايطط‪ٜ‬ك‪١‬‬


‫‪٬‬مځُص زب‪ ٍ٥‬لځٹدض ٴٻ خڀع‪ٙ‬ٵًن وخڀ‪١‬ٱ‪ٔ ٣‬هځص وَٽٵٍ ڄ٭ُٴص ڄٽدن خغبځٹص مث و‪ ٫٠‬وٹ‪٥‬ص ظىٸٳ ودَؾ ٌٍي خغبځٹص لىت َعىٸٳ‬
‫خڀربودڄؿ ‪٬‬ىًٌد ز٭ً خوعهدء خغبځٹص‪.‬‬

‫‪Garbage Code and Code Permutation .4.2‬‬


‫‪ .4.2.1‬ايؿطح‬
‫خغبٹُٹص دل قبً ظُصبص ڄىدٔسص ڀٽځمص ‪ Garbage‬بال ټځمص وٵدَدض‪ ،‬ؤٌ ڄٿء خڀٽىي خأل‪ٜ‬ځٍ خؼبُخي ضبدَعً زٽىي آوُ ًٰن ڄٵهىڂ وال ڄ٭ىن‬
‫ڀً؛ ألـٿ ظ‪١‬ځُٿ خڀٽُخټُ‪ .‬وَعڃ و‪ ٫٠‬خڀـ ‪ garbage code‬يف بـُخجُدض ٴٻ خڀ‪١‬ٱ‪ ٣‬ؤو بـُخجُدض ټ‪ٙ‬ٳ خؼبىٹك هبًٲ ضبدَص ټىي‬
‫زٕهىپ‪ .‬وټځمد ټدن خڀـ ‪َ garbage code‬٭‪ ٍ٥‬بوبدء زإن ڀً ڄ٭ىن ؤو ڄٵًُ‬
‫ش‬ ‫خڀٽ‪ٙ‬ٳ وبوٵدجً لىت ال َٕع‪ ٫ُ٥‬خڀٽُخټُ خڀى‪ٜ‬ىپ بڀًُ‬
‫ټځمد ټدن ؤټؽُ ظإؼًنخً وٴد‪٬‬ځُص‪.‬‬

‫َجاٍ‬ ‫‪. 4.2.2‬‬


‫خؼبؽدپ خڀعدرل َى‪٠‬ك ‪٬‬مځُص ٴٻ ظ‪ٙ‬ٵًن ڀٽىي مت و‪ ٫٠‬خڀ٭ًًَ ڄه خڀـ ‪ garbage code‬زٌن خألٔ‪ ُ٥‬خڀٵ٭دڀص ؽبٍخ خإلـُخء ‪:‬‬
‫‪0044A21A‬‬ ‫‪JMP SHORT sample.0044A21F‬‬
‫‪0044A21C‬‬ ‫‪XOR DWORD PTR SS:[EBP],6E4858D‬‬
‫‪0044A223‬‬ ‫‪INT 23‬‬
‫‪0044A225‬‬ ‫]‪MOV ESI,DWORD PTR SS:[ESP‬‬
‫‪0044A228‬‬ ‫‪MOV EBX,2C322FF0‬‬
‫‪0044A22D‬‬ ‫]‪LEA EAX,DWORD PTR SS:[EBP+6EE5B321‬‬
‫‪0044A233‬‬ ‫]‪LEA ECX,DWORD PTR DS:[ESI+543D583E‬‬
‫‪0044A239‬‬ ‫‪ADD EBP,742C0F15‬‬
‫‪0044A23F‬‬ ‫‪ADD DWORD PTR DS:[ESI],3CB3AA25‬‬
‫‪0044A245‬‬ ‫‪XOR EDI,7DAC77F3‬‬
‫‪0044A24B‬‬ ‫‪CMP EAX,ECX‬‬
‫‪0044A24D‬‬ ‫‪MOV EAX,5ACAC514‬‬
‫‪0044A252‬‬ ‫‪JMP SHORT sample.0044A257‬‬
‫‪0044A254‬‬ ‫‪XOR DWORD PTR SS:[EBP],AAE47425‬‬
‫‪0044A25B‬‬ ‫‪PUSH ES‬‬
‫‪0044A25C‬‬ ‫‪ADD EBP,5BAC5C22‬‬
‫‪0044A262‬‬ ‫‪ADC ECX,3D71198C‬‬
‫‪0044A268‬‬ ‫‪SUB ESI,-4‬‬
‫‪0044A26B‬‬ ‫‪ADC ECX,3795A210‬‬
‫‪0044A271‬‬ ‫‪DEC EDI‬‬
‫‪0044A272‬‬ ‫‪MOV EAX,2F57113F‬‬
‫‪0044A277‬‬ ‫‪PUSH ECX‬‬
‫‪0044A278‬‬ ‫‪POP ECX‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪279‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪0044A279‬‬ ‫‪LEA‬‬ ‫]‪EAX,DWORD PTR SS:[EBP+3402713D‬‬


‫‪0044A27F‬‬ ‫‪DEC‬‬ ‫‪EDI‬‬
‫‪0044A280‬‬ ‫‪XOR‬‬ ‫‪DWORD PTR DS:[ESI],33B568E3‬‬
‫‪0044A286‬‬ ‫‪LEA‬‬ ‫]‪EBX,DWORD PTR DS:[EDI+57DEFEE2‬‬
‫‪0044A28C‬‬ ‫‪DEC‬‬ ‫‪EDI‬‬
‫‪0044A28D‬‬ ‫‪SUB‬‬ ‫‪EBX,7ECDAE21‬‬
‫‪0044A293‬‬ ‫‪MOV‬‬ ‫‪EDI,185C5C6C‬‬
‫‪0044A298‬‬ ‫‪MOV‬‬ ‫‪EAX,4713E635‬‬
‫‪0044A29D‬‬ ‫‪MOV‬‬ ‫‪EAX,4‬‬
‫‪0044A2A2‬‬ ‫‪ADD‬‬ ‫‪ESI,EAX‬‬
‫‪0044A2A4‬‬ ‫‪MOV‬‬ ‫‪ECX,1010272F‬‬
‫‪0044A2A9‬‬ ‫‪MOV‬‬ ‫‪ECX,7A49B614‬‬
‫‪0044A2AE‬‬ ‫‪CMP‬‬ ‫‪EAX,ECX‬‬
‫‪0044A2B0‬‬ ‫‪NOT‬‬ ‫]‪DWORD PTR DS:[ESI‬‬

‫خڀٽىي خؽبدڂ وخؼبٕاوپ ‪٬‬ه ‪٬‬مځُص ٴٻ خڀع‪ٙ‬ٵًن يف خڀٽىي خڀٕدزٷ ٌى ‪:‬‬


‫‪0044A225‬‬ ‫‪MOV‬‬ ‫‪ESI,DWORD‬‬ ‫]‪PTR SS:[ESP‬‬
‫‪0044A23F‬‬ ‫‪ADD‬‬ ‫‪DWORD PTR‬‬ ‫‪DS:[ESI],3CB3AA25‬‬
‫‪0044A268‬‬ ‫‪SUB‬‬ ‫‪ESI,-4‬‬
‫‪0044A280‬‬ ‫‪XOR‬‬ ‫‪DWORD PTR‬‬ ‫‪DS:[ESI],33B568E3‬‬
‫‪0044A29D‬‬ ‫‪MOV‬‬ ‫‪EAX,4‬‬
‫‪0044A2A2‬‬ ‫‪ADD‬‬ ‫‪ESI,EAX‬‬
‫‪0044A2B0‬‬ ‫‪NOT‬‬ ‫‪DWORD PTR‬‬ ‫]‪DS:[ESI‬‬

‫ؤڄد خڀ٭مځُص خڀؽدوُص وٌٍ خڀـ ‪ Code Permutation‬ٴع٭ين خٔعسًخپ خڀع٭ځُمدض خڀسُٕ‪٥‬ص زإوُي ؤټؽُ ظ٭ٹًُخً‪ .‬وٌٍخ خڀعٽعُٻ ڄٕعىًڂ‬
‫ڄه ٸسٿ زُخڄؿ خغبمدَص خغبًَؽص‪ .‬وٌٍخ َع‪٥‬ځر ڄه زُودڄؿ خغبمدَص ٸُخءش خڀع٭ٿيبص خأل‪ٜ‬ځُص مث ظىڀًُ ‪ً٬‬ي ڄه خڀع٭ځُمدض خؼب٭ٹًش خڀيت ظٹىڂ‬
‫زىٵٓ خڀى‪ُ٨‬ٵص‪.‬‬

‫وٌٍخ ڄؽدپ زُٕ‪: ٣‬‬

‫‪mov eax,ebx‬‬
‫‪test eax,eax‬‬

‫وَعڃ ربىَځً بذل ظ٭ځُمدض ؤوُي ظٹىڂ زىٵٓ خؼبهمص ‪:‬‬

‫‪push ebx‬‬
‫‪pop eax‬‬
‫‪or eax,eax‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪280‬‬
AT4RE :‫انفريك انعرتي نههُذسح انعكسيح‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ .‫ خطىج إنى األياو‬:‫انهُذسح انعكسيح‬

‫دء‬٥‫ غبمدَص ټىي ڄ٭ٌن ُٔٽىن ڀً يوَ ټسًن يف بز‬Code Permutation ‫ وخپـ‬garbage code ‫مٿ ظىڀُٵص ڄه خڀـ‬٬ ‫ويف خڀىهدَص‬
garbage ‫ ڀٽه خٔعىًڄىد ٴُهد ظٹىُص خڀـ‬،‫ص‬٥ُٕ‫ٳ ڄىٹك ز‬ٙ‫مځُص ټ‬٬ ‫ځً ٌڀٻ ٘دًٌ خڀٽىي خڀعدرل ڄد ٌى بال‬٬ ‫ وټمؽدپ‬.ُ‫مٿ خڀٽُخټ‬٬
: Code Permutation ‫ خڀـ‬٫‫ ڄ‬code
004018A3 MOV EBX,A104B3FA
004018A8 MOV ECX,A104B412
004018AD PUSH 004018C1
004018B2 RETN
004018B3 SHR EDX,5
004018B6 ADD ESI,EDX
004018B8 JMP SHORT 004018BA
004018BA XOR EDX,EDX
004018BC MOV EAX,DWORD PTR DS:[ESI]
004018BE STC
004018BF JB SHORT 004018DE
004018C1 SUB ECX,EBX
004018C3 MOV EDX,9A01AB1F
004018C8 MOV ESI,DWORD PTR FS:[ECX]
004018CB LEA ECX,DWORD PTR DS:[EDX+FFFF7FF7]
004018D1 MOV EDX,600
004018D6 TEST ECX,2B73
004018DC JMP SHORT 004018B3
004018DE MOV ESI,EAX
004018E0 MOV EAX,A35ABDE4
004018E5 MOV ECX,FAD1203A
004018EA MOV EBX,51AD5EF2
004018EF DIV EBX
004018F1 ADD BX,44A5
004018F6 ADD ESI,EAX
004018F8 MOVZX EDI,BYTE PTR DS:[ESI]
004018FB OR EDI,EDI
004018FD JNZ SHORT 00401906

: ‫ُٱص ڄ٭ٹًش ڄه ٌٍخ خإلـُخء‬ٜ ‫وٌٍخ خؼبؽدپ خڀٕدزٷ ڄد ٌى بال‬


00401081 MOV EAX,DWORD PTR FS:[18]
00401087 MOV EAX,DWORD PTR DS:[EAX+30]
0040108A MOVZX EAX,BYTE PTR DS:[EAX+2]
0040108E TEST EAX,EAX
00401090 JNZ SHORT 00401099

١‫ك‬ٜ‫ ايطط‬ٙ‫ ٖص‬٣ٌ‫ٌ ايتػًب ع‬٥‫غا‬ٚ .4.2.3


.‫ص وٸعً وـهًي‬٬‫د‬٠‫دزص خڀٽُخټُ زدؼبځٿ وب‬ٜ‫ٌٍي خڀعٹىُص ڄد ٌٍ بال ؤُځص إل‬

‫ڄؽٿ‬ ‫خغبمدَص‬ ‫زُخڄؿ‬ ‫ڄه‬ ‫دئٌد‬٬ً‫خٔع‬ ُ‫َٽؽ‬ ‫خڀيت‬ API ‫خڀـ‬ ‫يوخپ‬ ‫خٔعىًڂ‬ ٫‫دج‬١‫خڀ‬ ‫خڀىٸط‬ ‫وڀعٹځُٿ‬
.‫ځُهد‬٬ ‫ ظىٸٳ‬٢‫ وٹد‬٫٠‫) وو‬VirtualAlloc/VirtualProtect/LoadLibrary/GetProcAddress)

.‫ ڄه زُودڄؿ خغبمدَص‬ٛ‫ ڀعفىر ؤٌ ٴم‬access/write breakpoints ٪‫ خڀعىٸٳ ڄه وى‬٢‫دً خٔعىًڂ وٹد‬١َ‫ؤ‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ 2009 281
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪Anti-Disassembly .4.3‬‬
‫‪ .4.3.1‬ايؿطح‬
‫ٌٍ ‪َُ٤‬ٹص ؤوُي ڀع‪ٝ‬٭ُر ڄهمص خڀٽُخټُ ڄه والپ ـ٭ٿ زُخڄؿ خڀعىٹُك ظٵ‪ٙ‬ٿ يف ربځُٿ ټىي خڀربودڄؿ‪ ،‬وزدڀعدرل َ‪٩‬هُ ټىي َُٰر ًٰن‬
‫ڄٵهىڂ‪ .‬وٌٍ ‪َُ٤‬ٹص ٴ٭دڀص ـًخً ود‪ٜ‬ص بٌخ ڄد مت ب‪٠‬دٴص ز٭‪ ٟ‬خڀـ ‪ garbage code‬وخڀـ ‪. permutation‬‬

‫وڄه ؤڄؽځص ظٹىُص خڀـ ‪ Anti-Disassembly‬ب‪٠‬دٴص زدَط ‪ garbage‬وز٭ً ٌڀٻ ب‪٠‬دٴص ٸٵّش ڄ‪ُٙ‬و‪٤‬ص ‪conditional branch‬‬
‫وخڀيت ٔىٲ ظىٹٿ ًٔن خڀربودڄؿ بذل خڀسدَط خڀـ ‪ garbage‬ويف لدڀص خڀع‪ٙ‬ٱُٿ خڀ‪٥‬سُ٭ٍ ڀځربودڄؿ ال ظعڃ ٌٍي خڀٹٵّش‪ ،‬ڀٍڀٻ ال َعڃ وٹٿ‬
‫ًٔن خڀربودڄؿ بذل خڀـ ‪ garbage‬وڀٽه يف لدپ ؿبدوڀص ظ‪ٙ‬ٱُٿ خڀربودڄؿ يف ڄىٹك ٴةن ٌٍي خڀٹٵّش ظعڃ وَعڃ وٹٿ ًٔن خڀربودڄؿ بذل خڀـ‬
‫‪ garbage‬فبد َايٌ بذل بوعدؾ ټىي ود‪٤‬ث ‪. incorrect disassembly‬‬

‫َجاٍ‬ ‫‪.4.3.2‬‬
‫ٌٍخ ڄؽدپ زُٕ‪ ٣‬ڀُوظٌن ټ‪ٙ‬ٳ خؼبىٹك ‪٬‬ه ‪َُ٤‬ٷ ظٹىُص خڀـ ‪ PEB.BeingDebugged flag check‬خڀٕدزٷ ٌټٌُد‪ ،‬ومت ضبدَص ٌٍخ‬
‫خڀُوظٌن زىخٔ‪٥‬ص خڀـ ‪. anti-disassembly‬‬

‫خڀٽىي خڀ‪٩‬دٌُ ٌى ټىي خڀُوظٌن خأل‪ٜ‬ځٍ ؤڄد زدٸٍ خڀٽىي ٴهى ټىي خڀـ ‪ anti-disassembly‬وٌى َٕعىًڂ زدَط خڀـ ‪garbage‬‬
‫‪ byte 0xff‬مث ب‪٠‬دٴص خڀٹٵّش خؼب‪ُٙ‬و‪٤‬ص ‪ fake conditional jump‬وٌڀٻ إلٴ‪ٙ‬دپ ‪٬‬مځُص خڀعمځُٿ ڀځٽىي‪.‬‬
‫‪;Anti-disassembly sequence #1‬‬
‫‪push‬‬ ‫‪.jmp_real_01‬‬
‫‪stc‬‬
‫‪jnc‬‬ ‫‪.jmp_fake_01‬‬
‫‪retn‬‬
‫‪.jmp_fake_01:‬‬
‫‪db‬‬ ‫‪0xff‬‬
‫‪.jmp_real_01:‬‬
‫‪;--------------------------‬‬
‫‪mov‬‬ ‫]‪eax,dword [fs:0x18‬‬

‫‪;Anti-disassembly sequence #2‬‬


‫‪push‬‬ ‫‪.jmp_real_02‬‬
‫‪clc‬‬
‫‪jc‬‬ ‫‪.jmp_fake_02‬‬
‫‪retn‬‬
‫‪.jmp_fake_02:‬‬
‫‪db‬‬ ‫‪0xff‬‬
‫‪.jmp_real_02:‬‬
‫‪;--------------------------‬‬
‫‪mov‬‬ ‫]‪eax,dword [eax+0x30‬‬
‫‪movzx‬‬ ‫]‪eax,byte [eax+0x02‬‬
‫‪test‬‬ ‫‪eax,eax‬‬
‫‪jnz‬‬ ‫‪.debugger_found‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪282‬‬
AT4RE :‫انفريك انعرتي نههُذسح انعكسيح‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ .‫ خطىج إنى األياو‬:‫انهُذسح انعكسيح‬

: WinDbg ‫وخڀٽىي خڀعدرل َسٌن ڀىد خڀىدظؿ يف زُودڄؿ خڀـ‬


0040194A 6854194000 push 0x401954
0040194F f9 stc
00401950 7301 jnb image00400000+0x1953 (00401953)
00401952 c3 ret
00401953 ff64a118 jmp dword ptr [ecx+0x18]
00401957 0000 add [eax],al
00401959 006864 add [eax+0x64],ch
0040195C 194000 sbb [eax],eax
0040195F f8 clc
00401960 7201 jb image00400000+0x1963 (00401963)
00401962 c3 ret
00401963 ff8b40300fb6 dec dword ptr [ebx+0xb60f3040]
00401969 40 inc eax
0040196A 0285c0750731 add al,[ebp+0x310775c0]

: OllyDbg ‫ؤڄد خڀٽىي خڀعدرل ٴهى خڀىدظؿ يف زُودڄؿ خڀـ‬


0040194A 68 54194000 PUSH 00401954
0040194F F9 STC
00401950 73 01 JNB SHORT 00401953
00401952 C3 RETN
00401953 FF64A1 18 JMP DWORD PTR DS:[ECX+18]
00401957 0000 ADD BYTE PTR DS:[EAX],AL
00401959 0068 64 ADD BYTE PTR DS:[EAX+64],CH
0040195C 1940 00 SBB DWORD PTR DS:[EAX],EAX
0040195F F8 CLC
00401960 72 01 JB SHORT 00401963
00401962 C3 RETN
00401963 FF8B 40300FB6 DEC DWORD PTR DS:[EBX+B60F3040]
00401969 40 INC EAX
0040196A 0285 C0750731 ADD AL,BYTE PTR SS:[EBP+310775C0]

: IDAPro ‫ويف خڀىهدَص ٌٍخ ٌى خڀىدظؿ يف زُودڄؿ خڀـ‬


0040194A push (offset loc_401953+1)
0040194F stc
00401950 jnb short loc_401953
00401952 retn
00401953 ; --------------------------------------------------------------
00401953
00401953 loc_401953: ; CODE XREF: sub_401946+A
00401953 ; DATA XREF: sub_401946+4
00401953 jmp dword ptr [ecx+18h]
00401953 sub_401946 endp
00401953
00401953 ; --------------------------------------------------------------
00401957 db 0
00401958 db 0
00401959 db 0
0040195A db 68h ; h

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ 2009 283
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪0040195B‬‬ ‫‪dd offset unk_401964‬‬


‫‪0040195F‬‬ ‫‪db 0F8h ; °‬‬
‫‪00401960‬‬ ‫‪db 72h ; r‬‬
‫‪00401961‬‬ ‫‪db‬‬ ‫‪1‬‬
‫‪00401962‬‬ ‫‪db 0C3h ; +‬‬
‫‪00401963‬‬ ‫‪db 0FFh‬‬
‫‪00401964 unk_401964 db 8Bh ; ï‬‬ ‫‪; DATA XREF: text:0040195B‬‬
‫‪00401965‬‬ ‫@ ; ‪db 40h‬‬
‫‪00401966‬‬ ‫‪db 30h ; 0‬‬
‫‪00401967‬‬ ‫‪db 0Fh‬‬
‫‪00401968‬‬ ‫; ‪db 0B6h‬‬
‫‪00401969‬‬ ‫@ ; ‪db 40h‬‬
‫‪0040196A‬‬ ‫‪db‬‬ ‫‪2‬‬
‫‪0040196B‬‬ ‫‪db 85h ; à‬‬
‫‪0040196C‬‬ ‫‪db 0C0h ; +‬‬
‫‪0040196D‬‬ ‫‪db 75h ; u‬‬

‫ؤعالل‪ ٧‬ټُٳ ٴ‪ٙ‬ځط خڀربخڄؿ خڀؽالؼص يف ربځُٿ خڀٽىي‪ ،‬وټٿ زُودڄؿ ؤ‪٨‬هُ ودظؿ ىبعځٳ ‪٬‬ه خِوُ‪.‬‬

‫ٌٍي خڀعٹىُص ڄّ‪٬‬فص ـًخ ڀځٽُخټُ‪ .‬ؤَ‪١‬دً َىـً خڀ٭ًًَ ڄه خڀ‪ُ٥‬ٶ خڀيت ظٕعىًڄهد ظٹىُص خڀـ ‪ anti-disassembly‬وڄد مت ٌټُي ٌىد ٌى‬
‫‪ٌُ٤‬ٸص وخلًش ٴٹ‪ .٣‬ؤَ‪١‬دً يبٽه ب‪٠‬دٴص ظٹىُص خڀـ ‪ anti-disassembly‬ڀٕىَْ ټىي خڀربودڄؿ ټمدټُو ‪ macro‬وزدڀعدرل َٽىن‬
‫خڀٕىَْ ټىي وخ‪٠‬مدً ڀځمربڄؿ‪.‬‬

‫‪ADVANCED AND OTHER TECHNIQUES‬‬ ‫‪ٚ .5‬غا‪ ٌ٥‬أخط‪َ ٟ‬تكسَ‪١‬‬


‫ٌىد ُٔعڃ ٌټُ ز٭‪ ٟ‬خڀ‪ُ٥‬ٶ خؼبعٹًڄص وخعبًًَش وٕسُدً وخڀيت دل َعڃ ٌټٌُد يف خألـّخء خڀٕدزٹص‪.‬‬

‫‪Process Injection .5.1‬‬


‫‪ .5.1.1‬ايؿطح‬
‫‪٬‬مځُص لٹه خڀربؤُٓ ؤ‪ٜ‬سمط وُدَخً يف ز٭‪ ٟ‬زُخڄؿ خغبمدَص خغبًَؽص‪ ،‬وڄه ؤ٘هٌُد ‪ Armadillo‬وڄه خؼب٭ُوٲ ؤن زُودڄؿ خغبمدَص‬
‫َٹىڂ زٵٻ ‪٠‬ٱ‪ ٣‬خڀربودڄؿ خحملمٍ يف خڀٍخټُش‪ ،‬وظ٭عمً ٌٍي خڀ‪َُ٥‬ٹص ‪٬‬ځً خوعُدَ زُؤُٓ ظ٭مٿ يف خڀى‪٩‬دڂ مث لٹه خڀربودڂؾ خحملمٍ ز٭ً ٴٻ‬
‫خڀ‪١‬ٱ‪٬ ٣‬ىً يف ٌٍخ خڀربؤُٓ خڀٌٍ مت خوعُدَي زٱُ‪ ٞ‬ضبدَعً وبوٵدجً‪ .‬وڄه ؤڄؽځص خڀربؤُٓ خڀيت َعڃ خغبٹه ٴُهد ‪explorer.exe‬‬
‫و‪: iexplorer.exe‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪284‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ؤَ‪١‬دً خڀ‪ٝ‬ىَش خڀعدڀُص ظسٌن زُودڄؿ ضبدَص (زُودڄؿ ڀع‪ٙ‬ٵًن خڀًٕنٴُخض) ًَ‪٬‬ڃ ٌٍي خػبد‪ُٜ‬ص ‪:‬‬

‫وزدڀعدرل ظٕعىًڂ خڀًٕنٴُخض وخڀٵًنؤدض ٌٍي خڀ‪َُ٥‬ٹص ڀځعىٵٍ ڄه خعبًَخن خڀىدََص؛ ألن خعبًخَ خڀىدٌَ َٽىن ڀًًَ ٸدجمص زدڀربخڄؿ‬
‫خؼبٕمىق ؽبد زدڀ٭مٿ وخالظ‪ٝ‬دپ زدالوعُوط‪ ،‬و‪٬‬ىً لٹه خڀًٕنٴُ يخوٿ زُؤُٓ ود‪ٜ‬ص زربودڄؿ ڄه خڀربخڄؿ خؼبٕمىق ؽبد ٴځه َٕع‪٫ُ٥‬‬
‫خعبًخَ خڀىدٌَ ټ‪ٙ‬ٵص وبَٹدٲ ‪٬‬مځً‪.‬‬

‫ڄه خعبًَُ زدڀٍټُ ؤن ظ٭ځڃ ؤن ٌىدپٺ زُودڄؿ ضبدَص ‪ُ٬‬يب َٕعىًڂ ٌٍي خڀعٹىُص وٌى زُودڄؿ‬
‫‪ MPack‬ڄه زُؾبص ‪ dj-siba‬ڄًَُ خڀٵَُٷ‪.‬‬

‫‪ٚ .5.1.2‬غا‪ ٌ٥‬ايتػًب عً‪ٖ ٢‬ص‪ ٙ‬ايطط‪ٜ‬ك‪١‬‬


‫لىت ظٹىڂ زعىٹُك ‪ child process‬خزعًخءً ڄه وٹ‪٥‬ص خڀسًخَص ‪َ entry point‬عڃ ٌڀٻ ‪٬‬ه ‪َُ٤‬ٷ و‪ ٫٠‬وٹ‪٥‬ص ظىٸٳ ‪٬‬ځً خڀًخڀص‬
‫‪ WriteProcessMemory‬وٌٍ خؼبٕاوڀص ‪٬‬ه ټعدزص خڀٽىي خػبد‪ ٚ‬زدپـ ‪ child process‬مث وٹىڂ زع٭ًَٿ خڀٽىي وو‪ ٫٠‬لځٹص‬
‫ًٰن ڄىعهُص ‪٬‬ىً وٹ‪٥‬ص خڀسًخَص ‪ jump to self‬وٴدجًش ٌٍي خغبځٹص خإلزٹدء ‪٬‬ځً خڀربؤُٓ خالزه ز٭ً بَٹدٲ خڀـ ‪parent process‬‬
‫وزدڀعدرل ٔىعمٽه ڄه ظىٹُمهد و‪٬‬مٿ ‪ dump‬ؽبد ڄه خڀٍخټُش‪.‬‬

‫وٌٍخ ڄؽدپ ڀربودڄؿ َٕعىًڂ ٌٍي خڀعٹىُص ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪285‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫وٌىدٺ زُودڄؿ َٕهٿ ‪٬‬ځُىد ‪٬‬مځُص و‪ ٫٠‬خغبځٹص خڀٱًن ڄىعهُص يف زًخَص خڀـ ‪: PUPE 2002 ٍ٬ًَ child process‬‬

‫‪Debugger Blocker .5.2‬‬


‫‪ .5.2.1‬ايؿطح‬
‫ٌٍ ‪َُ٤‬ٹص ـًًَش وٕسُدً مت خْزبًڄهد ڄه ٸسٿ زُودڄؿ خغبمدَص خڀ‪ٙ‬هًن ‪ Armadillo‬وظ٭عمً ‪٬‬ځً ڄى‪ ٫‬خڀٽُخټُ ڄه ‪٬‬مٿ ‪attaching‬‬
‫ڀځربؤُٓ خحملمُص‪ .‬وظٕعىًڂ ٌٍي خڀ‪َُ٥‬ٹص يوخپ خڀعىٹُك خؼبىـىيش يف خڀىَىًوِ ‪. debugging functions‬‬

‫ظٹىڂ ٴٽُهتد ‪٬‬ځً ‪٬‬مٿ ‪ٌٍ parent process‬ي خڀربؤُٓ ظٹىڂ زعىٹُك زُؤُٓ ؤوُي ‪ child process‬خؼبُخي ضبدَعهد ڀٍڀٻ خڀـ‬
‫‪َ parent process‬ٽىن ؽبد ‪ٜ‬اللُدض خڀـ ‪: debugs/controls‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪286‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ودبد ؤن خڀـ ‪ child process‬خحملمُص َعڃ ظىٹُمهد ٴةن ؤٌ ؿبدوڀص ڀ٭مٿ ‪ Attach‬ؽبٍي خڀربؤُٓ يف خڀًَسٱُ ٔىٲ ظٵ‪ٙ‬ٿ زٕسر ٴ‪ٙ‬ٿ‬
‫خڀًخڀص ‪ DebugActiveProcess‬خؼبىـىيش يف ڄٽعسص خڀـ ‪ kernel32‬ؤَ‪١‬دً زٕسر بَـد‪ ٪‬خڀًخڀص خڀـ ‪ native‬خؼبٕمدش‬
‫‪ NtDebugActiveProcess‬ڀځٹُمص ‪. STATUS_PORT_ALREADY_SET‬‬

‫‪ٚ .5.2.2‬غا‪ ٌ٥‬ايتػًب عٌ‪ٖ ٣‬ص‪ ٙ‬ايطط‪ٜ‬ك‪١‬‬


‫ٌىدڀٻ ‪َُ٤‬ٹص زُٕ‪٥‬ص ڀځعٱځر ‪٬‬ځُهد‪ ،‬وظ٭عمً ‪٬‬ځً ؿبدوڀص خٔعً‪٬‬دء خڀًخڀص ‪ DebugActiveProcessStop‬يف خڀـ ‪ context‬خػبد‪ٚ‬‬
‫زدڀـ ‪ parent process‬وٌٍي خڀًخڀص ٔىٲ ظىٸٳ ‪٬‬مځُص خڀعىٹُك ڀځـ ‪ child process‬ز٭ً ٌڀٻ وعمٽه ڄه ‪٬‬مٿ ‪ Attach‬ؽبد‬
‫يف ؤٌ يَسٱُ‪.‬‬

‫وَعڃ ٌڀٻ زىخٔ‪٥‬ص ‪٬‬مٿ ‪ Attach‬ڀځـ ‪ parent process‬مث و‪ ٫٠‬وٹ‪٥‬ص ظىٸٳ ‪٬‬ځً خڀًخڀص ‪ WaitForDebugEvent‬و‪٬‬ىً‬
‫خڀعىٸٳ وٹىڂ حبٹه خڀًخڀص ‪ ) DebugActiveProcessStop(ChildProcessPID‬وز٭ً قبدق خڀ٭مځُص ٔىٲ وعمٽه ڄه ‪٬‬مٿ‬
‫‪ Attach‬ڀځربؤُٓ خحملمُص ‪. child process‬‬

‫‪TLS Callbacks .5.3‬‬


‫‪ .5.3.1‬ايؿطح‬
‫ٌٍ ؤُځص ؤوُي ظٕعىًڂ ڄه ٸسٿ زُخڄؿ خغبمدَص‪ ،‬وظ٭عمً ‪٬‬ځً ظ‪ٙ‬ٱُٿ ټىي ٸسٿ وٷ‪٤‬ص خڀسًخَص خأل‪ٜ‬ځُص ڀځربودڄؿ ‪actual entry‬‬
‫‪ point‬وَعڃ ربٹُٷ ٌڀٻ ‪٬‬ه ‪َُ٤‬ٷ خڀـ ‪ . )Thread Local Storage (TLS‬وظٕعٱٿ زُخڄؿ خغبمدَص ٌڀٻ يف و‪ ٫٠‬ؤټىخي خڀعمٹٷ‬
‫ڄه خؼبىٹمدض وؤټىخي ٴٻ خڀع‪ٙ‬ٵًن ‪ decryption routines‬وزٍڀٻ ڀه َٽىن خڀٽُخټُ ٸديَخً ‪٬‬ځً ظىٹُك ٌٍي خألټىخي‪.‬‬

‫وَعڃ ټ‪ٙ‬ٳ خڀـ ‪ TLS callbacks‬زىخٔ‪٥‬ص زُخڄؿ خڀـ ‪ PE Editor‬لُػ ظٵم‪ ٛ‬زىُص خڀـ ‪ Data Directory entries‬وخڀيت‬
‫ربعىٌ ‪٬‬ځً خڀ٭ى‪. TLS directory ُٝ‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪287‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ٔعفً يف خڀ‪ٝ‬ىَش خڀٕدزٹص ؤن خڀـ ‪ RVA‬ڀځـ ‪٬ TLS‬ىً ‪ 001E9110‬ولفمً َٕدوٌ ‪18‬‬

‫ؤَ‪١‬دً يبٽه ‪ ُٞ٬‬زُدودض ؤټؽُ يٸص لىپ خڀـ ‪: TLS directory‬‬

‫‪TLS directory:‬‬
‫‪StartAddressOfRawData: 00000000‬‬
‫‪EndAddressOfRawData: 00000000‬‬
‫‪AddressOfIndex:‬‬ ‫‪004610F8‬‬
‫‪AddressOfCallBacks: 004610FC‬‬
‫‪SizeOfZeroFill:‬‬ ‫‪00000000‬‬
‫‪Characteristics:‬‬ ‫‪00000000‬‬

‫‪ٚ.5.3.2‬غا‪ ٌ٥‬ايتػًب عٌ‪ٖ ٣‬ص‪ ٙ‬ايطط‪ٜ‬ك‪١‬‬


‫‪٬‬ىًڄد ظٽىن خإل‪ً٬‬خيخض ‪٤‬سُ٭ُص يف زُودڄؿ ‪ OllyDbg‬ٴةوً ُٔٹىڂ زدڀعىٸٳ ‪٬‬ىً خڀـ ‪ OEP‬ڀځربودڄؿ خؼبُخي ظىٹُمً‪ .‬ڀٽه يف لدڀص وـىي‬
‫خڀـ ‪ TLS‬ٴةن خڀٽىي خؼبىـىي ٌىدٺ ُٔعڃ ظىٵٍُي ٸسٿ ظىٸٳ ‪٬ OllyDbg‬ىً خڀـ ‪ OEP‬ڀٍڀٻ َعڃ خڀع٭ًَٿ ‪٬‬ځً وُدَخض خڀربودڄؿ‬
‫ڀُعىٸٳ ‪٬‬ىً خپـ ‪ actual loader‬ؤٌ ٸسٿ ظىٵٍُ خڀـ ‪: TLS callbacks‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪288‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫وزٍڀٻ ٔىٲ َعىٶٲ ‪٬ OllyDbg‬ځً خڀـ ‪ actual loader‬ؤٌ يخوٿ ڄٽعسص خڀـ ‪ ntdll.dll‬وزٍڀٻ ٔىعمٽه ڄه و‪ ٫٠‬وٹ‪٥‬ص‬
‫ظىٸٳ ‪٬‬ځً خڀـ ‪ callback routines‬وڄه مث خڀععس‪ ٫‬وخڀعىٹُك‪.‬‬

‫ذشٌ خؼبځٵدض ‪ PE‬نو‪ٝ‬ك زٹُخءش ٌٍي خؼبٹدالض ‪:‬‬


‫ؼبًَّ ڄه خؼب٭ځىڄدض لىپ ن‬
‫‪An In-Depth Look into the Win32 Portable Executable File Format by Matt Pietrek‬‬

‫‪An In-Depth Look into the Win32 Portable Executable File Format, Part 2 by Matt Pietrek‬‬

‫‪Stolen Bytes .5.4‬‬


‫‪ .5.4.1‬ايؿطح‬
‫ٌٍ ‪٬‬مځُص بِخڀص ز٭‪ ٟ‬خألټىخي خؽبدڄص ڄه خڀربؤُٓ خؼبُخي ضبدَعهد‪ ،‬و‪٬‬ديش ڄد ظٽىن ٌٍي خألټىخي يف خڀـ ‪ EP‬ڀځربؤُٓ وخؽبًٲ ٌى ضبدَص‬
‫خڀربؤُٓ ‪٬‬ىً ‪٬‬مٿ ‪ Dump‬ؽبد ڄه خؼبُمىٌَ‪ ،‬ٴةن خڀربودڄؿ خڀىدظؿ ڀه َ٭مٿ‪ .‬وَعڃ وٕه ٌٍي خألټىخي يف ڄٽدن ڄد يف خڀٍخټُش وَعڃ‬
‫ظىٵٌٍُڃ ؤَ‪١‬دً ڄه ٌٍخ خؼبٽدن‪ ،‬ڀٍڀٻ ‪٬‬ىً ‪٬‬مٿ ‪ Dump‬ڀځربؤُٓ ٴځه َعڃ خٔعُـد‪ٌٍ ٪‬ي خألټىخي‪ ،‬ڀٍڀٻ ظٵ‪ٙ‬ٿ ‪٬‬مځُص خڀع‪ٙ‬ٱُٿ‪.‬‬

‫املجاٍ‬ ‫‪.5.4.2‬‬
‫َودڄؿ ڄد ‪:‬‬
‫خؼبؽدپ خڀعدرل َى‪٠‬ك خڀٽىي خڀٽدڄٿ ڀسًخَص ذ‬
‫‪004011CB‬‬ ‫]‪MOV EAX,DWORD PTR FS:[0‬‬
‫‪004011D1‬‬ ‫‪PUSH EBP‬‬
‫‪004011D2‬‬ ‫‪MOV EBP,ESP‬‬
‫‪004011D4‬‬ ‫‪PUSH -1‬‬
‫‪004011D6‬‬ ‫‪PUSH 0047401C‬‬
‫‪004011DB‬‬ ‫‪PUSH 0040109A‬‬
‫‪004011E0‬‬ ‫‪PUSH EAX‬‬
‫‪004011E1‬‬ ‫‪MOV DWORD PTR FS:[0],ESP‬‬
‫‪004011E8‬‬ ‫‪SUB ESP,10‬‬
‫‪004011EB‬‬ ‫‪PUSH EBX‬‬
‫‪004011EC‬‬ ‫‪PUSH ESI‬‬
‫‪004011ED‬‬ ‫‪PUSH EDI‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪289‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫خؼبؽدپ خڀعدرل ٌى وٵٓ خڀٽىي ڀٽه ز٭ً ضبدَعً زـ ‪ Enigma Protector‬ؤُٸص ؤوپ ظ٭ځُمعٌن يف خڀربودڄؿ ‪:‬‬
‫‪004011CB‬‬ ‫‪POP EBX‬‬
‫‪004011CC‬‬ ‫‪CMP EBX,EBX‬‬
‫‪004011CE‬‬ ‫‪DEC ESP‬‬
‫‪004011CF‬‬ ‫‪POP ES‬‬
‫‪004011D0‬‬ ‫‪JECXZ SHORT 00401169‬‬
‫‪004011D2‬‬ ‫‪MOV EBP,ESP‬‬
‫‪004011D4‬‬ ‫‪PUSH -1‬‬
‫‪004011D6‬‬ ‫‪PUSH 0047401C‬‬
‫‪004011DB‬‬ ‫‪PUSH 0040109A‬‬
‫‪004011E0‬‬ ‫‪PUSH EAX‬‬
‫‪004011E1‬‬ ‫‪MOV DWORD PTR FS:[0],ESP‬‬
‫‪004011E8‬‬ ‫‪SUB ESP,10‬‬
‫‪004011EB‬‬ ‫‪PUSH EBX‬‬
‫‪004011EC‬‬ ‫‪PUSH ESI‬‬
‫‪004011ED‬‬ ‫‪PUSH EDI‬‬

‫وٌٍخ ؤَ‪١‬دً ڄؽدپ ڀربودڂؾ ؿبمٍ زىخٔ‪٥‬ص خڀـ ‪ ASProtect‬لُػ َٹىڂ زة‪٠‬دٴص ‪ JUMP‬بذل ڄٽدن ڄد ڀعىٵٍُ خڀـ ‪stolen‬‬
‫‪ instructions‬و‪٤‬س٭دً َعڃ ضبدَص خڀـ ‪ stolen instructions‬زى‪ garbage code ٫٠‬والؽبد‪.‬‬
‫‪004011CB‬‬ ‫‪JMP 00B70361‬‬
‫‪004011D0‬‬ ‫‪JNO SHORT 00401198‬‬
‫‪004011D3‬‬ ‫‪INC EBX‬‬
‫‪004011D4‬‬ ‫‪ADC AL,0B3‬‬
‫‪004011D6‬‬ ‫‪JL SHORT 00401196‬‬
‫‪004011D8‬‬ ‫‪INT1‬‬
‫‪004011D9‬‬ ‫‪LAHF‬‬
‫‪004011DA‬‬ ‫‪PUSHFD‬‬
‫‪004011DB‬‬ ‫‪MOV EBX,1D0F0294‬‬
‫‪004011E0‬‬ ‫‪PUSH ES‬‬
‫‪004011E1‬‬ ‫‪MOV EBX,A732F973‬‬
‫‪004011E6‬‬ ‫‪ADC BYTE PTR DS:[EDX-E],CH‬‬
‫‪004011E9‬‬ ‫‪MOV ECX,EBP‬‬
‫‪004011EB‬‬ ‫‪DAS‬‬
‫‪004011EC‬‬ ‫‪DAA‬‬
‫‪004011ED‬‬ ‫‪AND DWORD PTR DS:[EBX+58BA76D7],ECX‬‬

‫‪ٚ‬غا‪ ٌ٥‬ايتػًب عٌ‪ٖ ٣‬ص‪ ٙ‬ايطط‪ٜ‬ك‪١‬‬ ‫‪.5.4.3‬‬


‫يخجمدً ظٽىن خألټىخي خؼبُٕوٸص ڄه خڀربودڄؿ ٌٍ ؤټىي يف خڀـ ‪ OEP‬ڀځربودڄؿ‪ ،‬وٌٍخ َٕهٿ ‪٬‬مځُص خالٔعُـد‪ ،٪‬وٌڀٻ دبٹدَوص خڀربودڄؿ ڄ‪٫‬‬
‫زُودڄؿ آوُ ڄه وٵٓ خڀٽىڄسُځُ‪ ،‬وزٍڀٻ وٕع‪ ٫ُ٥‬ڄ٭ُٴص خألټىخي خؼبُٕوٸص ڄه خپزُودڄؿ وب‪٬‬ديش ټعدزعهد‪.‬‬

‫وٌىدٺ ؤيخش ‪٬‬سدَش ‪٬‬ه ‪ Plugin‬ڀربودڄؿ ‪ OllyDbg‬ڄه زُؾبص ‪ٔ Zool@nder‬هځط ‪٬‬مځُص خٔعُـد‪ ٪‬خڀٽىي ټؽًنخً وٌٍ‬
‫‪: IDAFicator‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪290‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ز٭ً خوعُدَ خڀٽىڄسُځُ ُٔعڃ ټعدزص خڀٽىي خػبد‪ ٚ‬زً‪ ،‬ز٭ً ٌڀٻ ظٕع‪ ٫ُ٥‬بيودڀً بذل خڀربودڄؿ ز‪١‬ٱ‪٥‬ص َِ وخلًش ‪:‬‬

‫‪API Redirection .5.5‬‬


‫‪ .5.5.1‬ايؿطح‬
‫ڄه ؤ٘هُ ‪ُ٤‬ٶ ضبدَص خڀربخڄؿ وٌٍ سبى‪ ٫‬خڀٽُخټُ ڄه خٔع٭ديش ـًوپ خڀًوخپ خؼبٕعىَيش خػبد‪ٜ‬ص زدڀربودڄؿ زٕهىڀص ‪rebuilding the‬‬
‫‪. import table‬‬

‫َعڃ يف ٌٍي خڀ‪َُ٥‬ٹص ظًڄًن ـًوپ خڀًوخپ وخالٔعً‪٬‬دءخض ڀځًوخپ خأل‪ٜ‬ځُص‪ ،‬لُػ َعڃ ‪٬‬مٿ ب‪٬‬ديش ظىـًُ بذل َوظٌن يف خڀٍخټُش‪ ،‬وٌٍخ‬
‫خڀُوظٌن َٽىن ڄٕاوالً ٴُمد ز٭ً ‪٬‬ه خٔعً‪٬‬دء خڀًخڀص خأل‪ٜ‬ځُص‪.‬‬

‫ٌٍخ خؼبؽدپ َى‪٠‬ك ټىي الٔعً‪٬‬دء خڀًخڀص ‪: CopyFileA‬‬


‫‪00404F05‬‬ ‫]‪LEA EDI,DWORD PTR SS:[EBP-20C‬‬
‫‪00404F0B‬‬ ‫‪PUSH EDI‬‬
‫‪00404F0C‬‬ ‫]‪PUSH DWORD PTR SS:[EBP-210‬‬
‫‪00404F12‬‬ ‫>‪CALL <JMP.&KERNEL32.CopyFileA‬‬

‫ؤڄُ خڀىًخء ٌٍخ ڄد ٌى بال ؤڄُ ٸٵّ بذل ‪٬‬ىىخن خڀًخڀص يف خڀـ ‪: Import Table‬‬
‫‪004056B8‬‬ ‫]>‪JMP DWORD PTR DS:[<&KERNEL32.CopyFileA‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪291‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫و‪٬‬ىً ؤوٍ ڄؽدپ غبمدَص ‪ٔ Asprotect‬عفً ؤن ؤڄُ خڀىًخء يف خؼبؽدپ خڀٕدزٷ ربىپ بذل آڄُ وًخء بذل َوظٌن يف خڀٍخټُش ‪allocated‬‬
‫‪ memory‬وٌٍخ خڀُوظٌن وبعىٌ ‪٬‬ځً ظ٭ځُمدض ڄُٕوٸص ڄه خڀـ ‪: kernel32!CopyFileA‬‬
‫‪004056B8‬‬ ‫‪CALL 00D90000‬‬

‫وخڀ‪ٝ‬ىَش خڀعدڀُص ظسٌن و‪٥‬ىخض ټعدزص خڀع٭ځُمدض خؼبُٕوٸص‪ ،‬ٴةٌخ و‪ُ٩‬ود ڀځمؽدپ خڀٕدزٷ ٔىفً ؤن ؤوپ ‪ 7‬ظ٭ځُمدض ڄه خڀًخڀص‬
‫‪ kernel!CopyFileA‬ٸً مت ؤوٌٍد زدإل‪٠‬دٴص بذل ؤڄُ خڀىًخء ‪٬‬ىً خڀ٭ىىخن ‪ 7C83005E‬ز٭ً ٌڀٻ َعڃ وٹٿ ًٔن خڀربودڄؿ بذل يخوٿ‬
‫ڄٽعسص خڀـ ‪ kernel32.dll‬زدڀعمًًَ يف ڄىع‪ٝ‬ٳ خڀًخڀص ‪٬ CopyFileA‬ه ‪َُ٤‬ٷ ‪: RETN to 0x7C830063‬‬

‫‪ٚ .5.5.2‬غا‪ ٌ٥‬ايتػًب عٌ‪ٖ ٣‬ص‪ ٙ‬ايطط‪ٜ‬ك‪١‬‬


‫ٴُ‪١‬ص ڀربودڄؿ خغبمدَص ؼب٭ُٴص ڄىت وؤَه َٹىڂ ز٭مٿ ‪ Redirecting‬ڀځًوخپ؟ ؤَ‪١‬دً ٌىدٺ‬
‫ٌٍي خڀ‪َُ٥‬ٹص زدڀعمًًَ ربعدؾ بذل يَخٔص ڄٕط‬
‫ز٭‪ ٟ‬خڀربخڄؿ خڀيت ظٕعىًڂ إل‪ٜ‬الق خڀًوخپ وظ‪ٝ‬ځُك ـًوپ خڀـ ‪ Import Table‬ڄؽٿ زُودڄؿ خڀـ ‪: UIF‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪292‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪Multi-Threaded Packers .5.6‬‬


‫‪ .5.6.1‬ايؿطح‬
‫ٌٍي خڀ‪َُ٥‬ٹص ظ٭عمً ‪٬‬ځً بوعدؾ ؼًَُ آوُ ڄه زُؤُٓ خػبد‪ٜ‬ص زربنخڄؿ خغبمدَص‪ٌٍ ،‬خ خڀؽًَُ َعڃ ٴًُ ‪٬‬مٿ خڀ٭مځُدض خؽبدڄص؛ ڄؽٿ ‪٬‬مځُدض‬
‫ٴٻ خڀع‪ٙ‬ٵًن‪.‬‬

‫ڄؽدپ ‪٬‬ځً ٌڀٻ زُودڄؿ ‪ PECrypt‬لُػ َٹىڂ زدٔعىًخڂ ؼًَُ ؼدوُص ڀځٹُدڂ ز٭مځُص ٴٻ خڀع‪ٙ‬ٵًن ‪٬‬ه خڀٽىي خڀٌٍ مت خٔعىُخـً ڄه خڀؽًَُ‬
‫خڀُجُُٕص ‪: fetched by the main thread‬‬

‫‪Virtual Machines .5.7‬‬


‫‪ .5.7.1‬ايؿطح‬
‫ٔسر خٔعىًخڂ ٌٍي خڀعٹىُص زُٕ‪ ٣‬وٌى ؤن خڀٽُخټُ يخجمدً ڄد َعٱځسىن ‪٬‬ځً ‪ُ٤‬ٶ خڀـ ‪ anti-debugging‬و‪ُ٤‬ٶ خڀـ ‪Anti‬‬
‫‪ reversing‬وٌٍ خڀ‪ُ٥‬ٶ خڀيت ٌټُودٌد ٔدزٹدً‪ ،‬ٴٽمد الل‪٩‬عڃ ؤوً ز٭ً ټٿ ‪َُ٤‬ٹص َعڃ و‪ ٫٠‬ؤُځص ڀځعٱځر ‪٬‬ځُهد‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪293‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ڀٍڀٻ ٸدڄط ُ٘ټدض ضبدَص خڀربخڂؾ خڀٽربي زدزعٽدَ ٌٍي خڀ‪َُ٥‬ٹص‪ ،‬وخڀيت ظ٭عمً ‪٬‬ځً ظُصبص خألـّخء خحملمُص ڄه خڀٽىي بذل ‪p-codes‬‬
‫وخڀٌٍ َعڃ ظُصبعً ز٭ً ٌڀٻ بذل ڀٱص خِڀص ‪ machine code‬ڀُعڃ ظىٵٍُي‪ .‬وزٍڀٻ مت ڄ‪١‬د‪٬‬ٵص ضبدَص خڀٽىي وـ٭ٿ ‪٬‬مځُص ٴهڃ ڄد َٹىڂ زً‬
‫ټىي خڀربودڄؿ ؤڄُخً ‪ٜ‬٭سدً ـًخً‪.‬‬

‫وظٕعىًڂ زُخڄؿ خغبمدَص خڀٽربي ؤڄؽدپ ‪ Oreans technologies’ CodeVirtualizer‬و ‪ StarForce‬و ‪ Execrypt‬ظٹىُص‬
‫خڀـ ‪. Virtual Machines‬‬

‫‪ٚ .5.7.2‬غا‪ ٌ٥‬ايتػًب عٌ‪ٖ ٣‬ص‪ ٙ‬ايطط‪ٜ‬ك‪١‬‬


‫خڀعٱځر ‪٬‬ځً ٌٍي خڀعٹىُص ڀُٓ زدألڄُ خڀٕهٿ‪ ،‬زٿ َعىـر ‪٬‬ځً خڀٽُخټُ يَخٔص ټُٵُص ظىڀًُ خڀـ ‪ p-code‬وټُٵُص ظُصبعً زىخٔ‪٥‬ص خڀـ‬
‫‪ virtual machine‬وزىخٔ‪٥‬ص خؼب٭ځىڄدض خڀيت وب‪ٝ‬ٿ ‪٬‬ځُهد خڀٽُخټُ يبٽه ظ‪٥‬ىَُ خڀـ ‪ disassemble‬خڀٌٍ َٹىڂ ز٭مځُص خڀعمىَٿ‬
‫وخڀعُصبص‪.‬‬

‫‪virtual‬‬ ‫وؼبًَّ ڄه خؼب٭ځىڄدض لىپ ظ‪٥‬ىَُ خڀـ ‪ p-code disassemble‬وټُٵُص ‪٬‬مٿ خڀـ‬
‫‪َُ machines‬ؾي ٸُخءش ٌٍخ خؼبٹدپ ‪:‬‬
‫‪Defeating HyperUnpackMe2 With an IDA‬‬

‫ڄه خعبًَُ زدڀٍټُ ؤن ټٿ خڀربخڄؿ خڀيت خٔعىًڄط ظٹىُص خڀـ ‪ virtual machine‬ٸً مت ټٌُٕد وَىـً يف خالوعُوط ڄحدض خؼبٹدالض‬
‫وزُخڄؿ ٴٻ خڀ‪١‬ٱ‪ ٣‬وخالٔٽَُر خڀيت سبٽىىد ڄه ټُٕ ؤٌ زُودڄؿ لڃخَص ‪٬‬ځً وـً خألَ‪.ٞ‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪294‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪Anti-Dumping .5.8‬‬
‫‪ .5.8.1‬ايؿطح‬
‫ټمد ربًؼىد ڄه ٸسٿ ٴةن زُخڄؿ خغبمدَص ظٹىڂ زٵٻ ظ‪ٙ‬ٵًن ټىي خڀربودڄؿ خؼبُخي ضبدَعً يف خڀٍخټُش‪ ،‬وٌڀٻ ڀٽٍ َ٭مٿ خڀربودڄؿ خحملمٍ‪ .‬ڀٍڀٻ‬
‫ټدن هبر خزعٽدَ ؤدجٿ سبى‪ ٫‬خڀٽُخټُ ڄه ظىٵٍُ ٌٍي خڀ٭مځُص‪ ،‬وٌٍ ‪٬‬مځُص خڀـ ‪ Dump‬ؤٌ ؤوٍ وٕىص ڄه خڀربودڄؿ ز٭ً ٴٻ ظ‪ٙ‬ٵًني يف‬
‫خڀٍخټُش ولٵ‪ٌٍ ٧‬ي خڀىٕىص ‪٬‬ځً خؽبدَي يَٕٻ‪.‬‬

‫ٌىدٺ ‪ُ٤‬ٶ ٔسٷ ٌټٌُد فبٽه ؤن ظًوٿ ربط و‪٩‬دڂ خڀـ ‪ Anti-Dumping‬ڄؽٿ خڀـ ‪ Virtual Machines‬وخڀـ ‪Stolen‬‬
‫‪ Bytes‬ؤىٲ و٭ُ‪َُٔ ٞ‬٭دُ ز٭‪ ٟ‬خڀ‪ُ٥‬ٶ خألوُي ‪:‬‬

‫‪َُ٤‬ٹص ظٕڃي ‪ Nanomites‬وٌٍ ‪٬‬سدَش ‪٬‬ه خٔعسًخپ خڀ٭ًًَ ڄه ؤوخڄُ خڀٹٵّ يف خڀربودڄؿ ‪ branch instructions‬زإوخڄُ ؤوُي‬
‫ود‪ٜ‬ص زىٹد‪ ٢‬خڀعىٸٳ ‪ INT 3‬مث لٵ‪ ٧‬خڄدټه ٌٍي خڀٹٵّخض يف ـًوپ َعڃ ظ‪ٙ‬ٵًني ـًُخً‪ .‬ونٸ‪ ًٝ‬حبٵ‪ ٧‬ؤڄدټه خڀٹٵّخض ؤٌ لٵ‪ ٧‬خؼبٽدن‬
‫خڀٌٍ ټدوط ٔعٹٵّ بڀًُ ‪ destination of the jump‬وټٍڀٻ َخَدض خؼب٭دجل و‪٤‬ىپ خڀع٭ځُمص ‪ size of the jump‬ز٭ً ٌڀٻ‬
‫َٹىڂ زُودڄؿ خغبمدَص ز٭مٿ ‪٬‬مځُص ظىٹُك ٌخيت‪ ،‬و‪٬‬ىً لًوغ ؤٌ وٹ‪٥‬ص ظىٸٳ ڄه خڀىٹد‪ ٢‬خڀيت ظٽىوط وعُفص خٔعسًخپ خڀع٭ځُمدض زـ ‪INT‬‬
‫‪َ 3‬ٹىڂ خڀربودڄؿ زدڀُـى‪ ٪‬بذل خعبًوپ وبَـد‪ ٪‬ظ٭ځُمص خڀٹٵّ خأل‪ٜ‬ځُص‪ .‬وڀَّديش خڀع٭ٹًُ َعڃ و‪ ٫٠‬وٹد‪ ٢‬ظىٸٳ ز‪ٙ‬ٽٿ ‪ٙ٬‬ىخجٍ‪ ،‬وٌٍي‬
‫خڀىٹد‪ ٢‬ال ‪٬‬الٸص ؽبد زدڀٹٵّخض‪ ،‬ڀٽهٌد ڀع‪١‬ځُٿ خڀٽُخټُ‪ .‬وؤ٘هُ زُخڄؿ خغبمدَص خڀيت ظٕعىًڂ ٌٍي خڀ‪َُ٥‬ٹص زُودڄؿ خڀـ ‪. Armadillo‬‬

‫شٓادٗ حجه الـ ‪ ٍّْ SizeOfImage‬عيصس داخل بئ٘ ‪ IMAGE_OPTION_HEADER‬اخلاص٘ ببئ٘ امللفات ‪ PE‬اليت تعنل‬
‫عىل الْٓيدّش ّبصٓادٗ ٍرِ الكٔن٘ يف الـ ‪ PEB‬يف الـ ‪ٓ runtime‬ؤدٖ إىل حدّث مشاكل مع الربامج اليت مل تضع حالً لتفادٖ ذلك ‪:‬‬
‫‪mov‬‬ ‫‪eax, fs:[0x30] ;PEB‬‬
‫‪mov‬‬ ‫‪eax, [eax + 0x0c] ;PEB_LDR_DATA‬‬
‫‪mov‬‬ ‫‪eax, [eax + 0x0c] ;InOrderModuleList‬‬
‫‪mov‬‬ ‫‪dword ptr [eax + 0x20], NewSize ;SizeOfImage‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪295‬‬
AT4RE :‫انفريك انعرتي نههُذسح انعكسيح‬ ‫دهىل تريجيح في انهُذسح انعكسيح‬ .‫ خطىج إنى األياو‬:‫انهُذسح انعكسيح‬

ً‫ وزٍڀٻ ُٔٵٹ‬Portable Executable Header ‫ ؤٌ لٍٲ خڀـ‬PE ‫َُٹص خڀٕدزٹص ٴةوً يبٽه لٍٲ ټٿ زُدودض خڀـ‬٥‫خبالٲ خڀ‬
‫ىىخن‬٬ ‫دً لٍٲ‬١َ‫ ؤ‬Reloc, Import, Export ‫ ڀځٽؽًن ڄه خعبًخوپ خؽبدڄص؛ ڄؽٿ‬RVA ‫خڀربودڄؿ خڀٽؽًن ڄه خؼب٭ځىڄدض خؽبدڄص؛ ڄؽٿ خڀـ‬
Dump ‫مٿ‬٬ ً‫ وزدڀعدرل ٴ٭ى‬.‫ٱُٿ خؼبځٳ‬ٙ‫دً خڀٽؽًن ڄه خڀسُدودض خڀيت وبعدـهد ڀىيَ خڀىَىًوِ ڀٽٍ َٹىڂ زع‬١َ‫ وؤ‬entry point ‫خڀـ‬
: PE Header ‫َُٹص لٍٲ خڀـ‬٤ ‫ وٌٍخ ټىي َسٌن‬.‫ڀځمځٳ خحملمٍ ڄه خڀٍخټُش ُٕٔعمُٿ ؤن َ٭مٿ‬
// This function will erase the current images
// PE header from memory preventing a successful image
// if dumped
inline void ErasePEHeaderFromMemory()
{
DWORD OldProtect = 0;
// Get base address of module
char *pBaseAddr = (char*)GetModuleHandle(NULL);
// Change memory protection
VirtualProtect(pBaseAddr, 4096, // Assume x86 page size
PAGE_READWRITE, &OldProtect);
// Erase the header
ZeroMemory(pBaseAddr, 4096);
}

١َ‫ َطادع ٖا‬.6

1) An Anti-Reverse Engineering Guide (By Josh_Jackson)

2) The Art of Unpacking by Mark Vincent Yason

3) Peter Ferrie collection:


Anti-Unpacker Tricks 2 Part Six
Anti-Unpacker Tricks 2 Part Five
Anti-Unpacker Tricks 2 Part Four
Anti-Unpacker Tricks 2 Part Three
Anti-Unpacker Tricks 2 Part Two
Anti-Unpacker Tricks 2 Part One

4) Reversing: Secrets of Reverse Engineering. E.Eilam. Wiley, 2005

5) OpenRCE Anti Reverse Engineering Techniques Database

6) http://www.datasecurity-event.com/uploads/unpackers.pdf

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ 2009 296
‫الباب اخلامس‪ :‬حتليل بردليات دوت ىت‬

‫‪297‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫حتليل تطبيقات الدوت ىت (‪)1‬‬


‫)‪.Net Applications Analysis (1‬‬

‫ذبًَ خإل٘دَش بذل ؤن ٌىدٺ ذبمُ٭ص عبمُ‪ ٫‬ڄد وبعدـً خحملځٿ خڀ٭ٽٍٕ ڄه ؤيوخض ڀځع٭دڄٿ ڄ‪٫‬‬
‫خڀًووظىُط ـ٭ځهد ؤوىود ‪ RobenhoodArab‬يف ‪ pack‬ذبًي يف ٌٍي املشاركة و بال‬
‫ټدٲ ڀع‪٥‬سُٷ يَوْ ٌٍخ خڀٽعدذ‪.‬‬
‫ٴُمٽىٻ خإلټعٵدء دبُٴٹدض خڀًَوْ ألهند َص‬

‫خڀًَْ ُٔٽىن ‪٬‬ځً خڀ‪ٙ‬ٽٿ خڀعدرل ‪:‬‬

‫‪ )1‬مكزمة عً تطبيكات الزوت ىت‬

‫‪ )2‬تلنيرات عً بزىامخ ‪Reflector‬‬

‫‪ )3‬مكزمة عً اإلضافة ‪Deblector‬‬

‫‪ )4‬حتليل الربىامخ اهلزف وإجيار الضزيال‪.‬‬

‫‪ )5‬اذتناالت الضزياالت ضنً الكيحً‪.‬‬

‫‪Reflector‬‬ ‫‪‬‬
‫‪Deblector‬‬ ‫‪‬‬

‫‪DotNet EXPERT 2.exe‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪298‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪Introduction to .net applications‬‬ ‫‪ .1‬أ‪ٚ‬الً‪َ :‬كسَ‪ ١‬عٔ تطب‪ٝ‬كات ايس‪ٚ‬ت ْت‬


‫ظ٭عمً ڀٱدض خڀربؾبص ڄؽٿ ‪ Visual Basic‬و ‪٬ C++‬ځً ڄعُـڃ ود‪ Compiler ٚ‬و‪ُ٨‬ٵعً ربىَٿ خڀ‪ٙ‬ٵُش خدل‪ًََٜ‬ص بذل ڄځٵدض‬
‫ظىٵٍَُص‪ .‬وڀع‪ٙ‬ٱُٿ ٌٍي خؼبځٵدض كبعدؾ بذل زُحص ظ‪ٙ‬ٱُٿ ‪ Runtime‬ود‪ ٚ‬زدڀځٱص خڀربؾبُص خڀيت ؤوعفعهد‪ .‬وٌٍي خڀسُحص زبعځٳ زدوعالٲ وى‪٪‬‬
‫خڀځٱص خڀربؾبُص‪.‬‬

‫ؤڄد ڄ‪ ٫‬خغبّڄص خعبًًَش ڄه ڀٱدض خڀربؾبص خڀيت ظ٭مٿ ‪٠‬مه زُحص خڀًوض وط‪ ,‬ٴٹً ؤ‪ٜ‬سك خألڄُ ـبعځٵدً‪ ,‬ٴهٍ ظعس‪ ٫‬خؼبىهؿ خڀعدرل يف بوعدؾ‬
‫وظ‪ٙ‬ٱُٿ ظ‪٥‬سُٹدض خڀًوض وط ‪:‬‬

‫‪ )1‬وبىپ خؼبعُـڃ خػبد‪ ٚ‬زًوض وط ‪ Compiler‬خڀ‪ُٙ‬ٵُش خؼب‪ًََٝ‬ص بذل ڀٱص ؤُ‪٥‬ص ‪ Intermediate Language‬وَُڄّ ؽبد‬
‫خوع‪ٝ‬دَخً زـ ( ‪ ) IL‬وَىعؿ ‪٬‬ىً ڄځٳ ظىٵٌٍُ وبعىٌ ‪٬‬ځً ظ٭ځُمدض خڀځٱص خڀىُٔ‪٥‬ص‪.‬‬

‫‪٬ )2‬ىً ظ‪ٙ‬ٱُٿ خؼبځٳ خڀعىٵٌٍُ خڀٕدزٷ‪ ,‬ظعىذل ڄى‪ٝ‬ص خڀع‪ٙ‬ٱُٿ خڀ٭دڄص ‪ Common Language Runtime‬وخڀيت َُڄّ ؽبد‬
‫خوع‪ٝ‬دَخً (‪ )CLR‬وخؼب‪١‬مىص ‪٠‬مه ب‪٤‬دَ ‪٬‬مٿ يوض وط ‪ net framework‬ربىَٿ ظ٭ځُمدض خڀځٱص خڀىُٔ‪٥‬ص بذل ڀٱص خِڀص‬
‫‪. Machine Code‬‬

‫زـ ‪Just In Time Compile‬‬ ‫‪ -‬الل‪ٌ ٧‬ىد ؤن خڀربودڄؿ بذل خِن دل َىعٹٿ بذل ڄُلٿش خڀعىٵٍُ‪ ،‬وظ٭ُٲ خؼبُلځص خڀٕدزٹص‬
‫وخوع‪ٝ‬دَخً ( ‪. ) JIT Compiler‬‬

‫‪ )3‬ز٭ً ٌڀٻ َعٕځڃ خڀى‪٩‬دڂ ظ٭ځُمدض ڀٱص خِڀص وَىٵٌٍد‪ ،‬وزدڀعدرل َعڃ ظ‪ٙ‬ٱُٿ خڀربودڄؿ ‪٬‬ځً ڄُلځعٌن‪:‬‬

‫خؼبُلځص خألوذل ‪ :‬ربىَٿ ظ٭ځُمدض خڀځٱص خڀىُٔ‪٥‬ص بذل ڀٱص خِڀص‪.‬‬


‫خؼبُلځص خڀؽدوُص ‪ :‬ظىٵٍُ ظ٭ځُمدض ڀٱص خِڀص‪.‬‬

‫و ٌٍخ ڄد َٵُٕ ظإوُ ظىٵٍُ خڀع‪٥‬سُٹدض خؼبربؾبص زًوض وط‪.‬‬

‫بٌنً ڄد ٌٍ ظ٭ځُمدض خڀځٱص خڀىُٔ‪٥‬ص ‪ IL‬؟‬

‫ؤَٴٹىد ڄ‪ٌٍ ٫‬خ خڀًَْ ڄٹدڀص ڀألن ‪َُٕ kurapica‬ي ٴُهد ظ٭ځُمدض ٌٍي خڀځٱص ‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪299‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫بطْاَر ‪Reflector‬‬ ‫‪ .2‬ثاْ‪ٝ‬اً‪ :‬تًُ‪ٝ‬شات عٔ‬


‫َ٭عرب زُودڄؿ ‪ Reflector‬ڄه ؤٴ‪١‬ٿ خڀربخڄؿ خڀيت ظٵٽٻ وظ٭ُ‪ ٞ‬ڀٻ ؿبعىَدض ظ‪٥‬سُٹدض خڀًوض وط‪ ,‬ولٹُٹص َ٭عرب ‪ ُٞ٬‬خڀٽىي ز٭ًش‬
‫ڀٱدض زُؾبُص ڄُّش َخج٭ص َعمع‪ ٫‬هبد ٌٍخ خؼبٵٽٻ‪ ,‬وظًَّ ڄه ٸىظً ‪ً٬‬ي ڄه خإل‪٠‬دٴدض خڀربؾبُص ؤزٌُِد ‪ Deblector :‬و ‪ Reflexil‬خڀيت‬
‫َىع‪ٌُ٩‬د ڄٕعٹسالً ڄ‪ُٙ‬ٸدً يف ؾبدؽبد‪.‬‬

‫ؤىځٹٍ و‪ُ٩‬ش ‪٬‬ځً ؤٌڃ خڀىٹد‪ ٢‬وخؼبُّخض خڀيت َعمع‪ ٫‬هبد خڀربودڄؿ‪.‬‬

‫‪ .2.1‬اخت‪ٝ‬اض يػ‪ ١‬ايدلزت‪١‬‬

‫ظٕمك ڀٻ خڀٹدجمص خؼبىًٕڀص يف خأل‪٬‬ځً زدوعُدَ خڀځٱص خڀربؾبُص خڀيت ظعٹىهد ڀُٕهٿ ‪٬‬ځُٻ ٴهڃ خڀٽىي‪.‬‬

‫وڀٽه ‪٬‬ىً خوعُدَٺ ڀځه َدَ ( ‪ٔ ) IL‬ع‪ٙ‬دًٌ ظځمُمدض ظ‪ُٙ‬ق ‪٬‬مٿ ټٿ ظ٭ځُمص يف خڀځٱص خڀىُٔ‪٥‬ص وٌٍخ خألڄُ َ٭عرب ڄٕد‪ً٬‬ش ـًُش‬
‫ڀځمسعًجٌن يف ظ٭ځڃ ظ٭ځُمدض خڀځٱص خڀىُٔ‪٥‬ص ( ‪. ) IL‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪300‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ .2.2‬خ‪ٝ‬اضات ايبشح‬

‫ُٔ‪٩‬هُ ڀٻ ڄُز‪ ٫‬خڀسمػ ووبعىٌ جبدوسً ‪٬‬ځً ؤَز‪ ٫‬ؤَِخَ ظٹىڂ ز٭مځُص ظىـًُ وٴځعُش خڀسمػ‪.‬‬ ‫‪٬‬ىً خڀ‪١‬ٱ‪٬ ٣‬ځً َِ خڀسمػ‬

‫‪َ :‬ٵًُ ٌٍخ خػبُدَ يف خڀسمػ ‪٬‬ه وى‪ ٪‬ټدجه ‪ Object‬ڄ٭ٌن وٴ‪١‬دءخض خألظبدء خڀيت ربعىًَ‪ ,‬ڄؽالً ‪ :‬خحبػ ‪٬‬ه (‬
‫‪. ) progressbar‬‬

‫‪َ :‬ٵًُ ٌٍخ خػبُدَ زدڀسمػ ‪٬‬ه خٔڃ ‪٬‬ى‪ ُٝ‬ڄ٭ٌن؛ ڄؽالًَ‪ :‬يف زُودؾبىد خؽبًٲ ‪ :‬خحبػ ‪٬‬ه ( ‪. ) BTR‬‬

‫‪َ :‬ٹًُ ٌٍخ خػبُدَ يف خڀسمػ ‪٬‬ه ٔځٕځص و‪ُٝ‬ص ‪٠‬مه خڀٽىي ‪ ,‬ڄؽالً ‪ :‬خحبػ ‪٬‬ه ( ‪. ) NameSpace‬‬

‫‪َٕ :‬عىًڂ ٌٍخ خػبُدَ ڄعُخٴٹدً ڄ‪ ٫‬خػبُدَخض خڀؽالغ خڀٕدزٹص‪ ،‬وَٕعىًڂ ڀځسمػ ‪٬‬ه خڀى‪ ٛ‬خؼب‪٥‬دزٷ سبدڄدً‪ ،‬وَٕعس٭ً خڀى‪ٝ‬ى‪ ٚ‬خڀيت‬
‫ربىٌ ٌٍي خڀٽځمص ـّجُدً؛ ڄؽالً ‪٬ :‬ىً خڀسمػ ‪٬‬ه ‪ُٔ BTR‬ىُؾ ڀٻ ‪ً٬‬يخً ټسًنخً ڄه خڀىعدجؿ‪ ،‬وڀٽه ‪٬‬ىً خٔعىًخڂ ٌٍخ خػبُدَ ٔععٹځ‪ٛ‬‬
‫خڀىعدجؿ بذل وعُفص وخلًش ٴٹ‪.٣‬‬

‫‪ .2.3‬خ‪ٝ‬اضات ايدلْاَر‬

‫زبُؾ ڀىد ودٴٍش ـًًَش ربعىٌ ‪٬‬ځً ؾبمى‪٬‬ص ڄه خڀ‪ٝ‬ٵمدض ‪:‬‬ ‫‪٬‬ىً خڀ‪١‬ٱ‪٬ ٣‬ځً َِ خػبُدَخض ‪Options‬‬

‫‪ .2.3.1‬ايكؿش‪Disassembler ١‬‬

‫ب‪ً٬‬خيخض ‪٬‬دڄص ووُدَ ‪ Number Format‬خڀٌٍ َعُك ‪ ُٞ٬‬خألَٸدڂ زدڀى‪٧‬خڂ خڀ٭‪ ٌُٙ‬ؤو خڀٕعص ‪.ٌُٙ٬‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪301‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ايكؿش‪Browser ١‬‬ ‫‪.2.3.2‬‬


‫يبٽىىد ظٹځُٿ ‪ً٬‬ي خڀ٭ىد‪ ُٜ‬خڀ‪٩‬دٌُش زعٱًُن خػبُدَ ‪ Visibility‬بذل ‪: Public Items Only‬‬

‫‪ .2.4‬امل‪ٝ‬ع‪Analyze .. Used By .. Go to Member ٠‬‬

‫ظ٭عرب ٌٍي خڀعٕځٕځُص ڄه خڀع٭ځُمدض خؼبٵًُش ـًخً يف ڄ٭ُٴص ڄٽدن خٔعىًخڂ خڀ٭ى‪ ُٝ‬وڄٽدن بٔىدي خڀٹُڃ ڀً‪ .‬ڀىُي ڄؽدالً ‪٬‬ځً ٌڀٻ ؤٔٹ‪٣‬‬
‫خڀربودڄؿ خؽبًٲ ‪٠‬مه زُودڄؿ ‪: Reflector‬‬

‫‪ٔ -‬ىمدوپ ٌىد ڄ٭ُٴص ؤَه َعڃ خٔعىًخڂ خؼبُز‪ ٫‬خڀى‪ TS ٍٝ‬وؤَه َعڃ بٔىدي ٸُمص ؤو ود‪ُٜ‬ص ڀً؟ ‪٬‬ىً خڀ‪١‬ٱ‪ ٣‬زدڀَّ خأليبه ڀځٵإَش ‪٬‬ځًُ لبعدَ‬
‫ڄه خڀٹدجمص ‪: Analyze‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪302‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ٔع‪٩‬هُ ‪٬‬ځً خڀٵىَ ودٴٍش ـًًَش ز٭ىىخن‪ Analyzer :‬ربىٌ ‪٠‬مىهد ڄٽدن خٔعىًخڂ خڀ٭ى‪ ُٝ‬و‪٬‬ىً ظىُٔ‪ ٫‬خڀٹدجمص ( ‪ٔ ) +‬ىفً خڀٹدجمص‬
‫خڀٵُ‪ُ٬‬ص ( ‪ ) Used By‬ووالل‪ ٧‬ؤن خڀ٭ى‪َٕ ُٝ‬عىًڂ يف خغبًغ ‪ BTRCLICK‬وڀځٌٍدذ بذل ٌٍخ خغبًغ و‪ ُٞ٬‬خڀٽىي لبعدَ خألڄُ‬
‫‪ Go To Member‬ڄه خڀٹدجمص خؼبىسؽٹص ( ‪ ) Popup Menu‬ؤىٌٍر بذل خڀ٭ى‪٠ ُٝ‬مه خڀځىلص ‪: Browse‬‬

‫‪٬‬ىً خڀ‪١‬ٱ‪ ٣‬خؼبّيوؾ ‪٬‬ځًُ ُٔىُؾ ڀىد خڀٽىي خؼبىخٴٷ ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪303‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪Deblector‬‬ ‫‪ .3‬ثايجاً‪َ :‬كسَ‪ ١‬عٔ اإلناؾ‪١‬‬


‫ظ٭عرب ٌٍي خإل‪٠‬دٴص دبؽدزص ڄىٹك ڀع‪٥‬سُٹدض خڀًوض وط‪ ،‬وڀٽىهد دل ظ‪ٝ‬ٿ بذل لً ڄه خڀع‪٥‬ىَ ڀع‪ٝ‬ٿ ؼبٕعىي ‪ OllyDbg‬وڀٽىهد وُدَ َخج‪٫‬‬
‫ڀعىٹُك زُؾبُدض خڀًوض وط‪ .‬وخڀ‪ٍٙ‬ء خؼبهڃ إلظٹدن خڀع٭دڄٿ ڄ٭هد ٌٍ خؼب٭ُٴص خعبًُش زع٭ځُمدض خڀځٱص خڀىُٔ‪٥‬ص ‪. IL‬‬

‫‪ -‬يبٽىىد خڀى‪ٜ‬ىپ ؽبٍي خإل‪٠‬دٴص ڄه والپ خڀٹدجمص ‪: Tools‬‬

‫‪ -‬ز٭ً خوعُدٌَد ٔعٵعك ڀٻ وىخٴٍ خؼبىٹك وَ‪١‬دٲ بذل ٸىخجڃ خڀربودڄؿ ‪ Reflector‬خڀٹدجمص ‪ Debug‬ټمد ٔع‪١‬دٲ ؾبمى‪٬‬ص ڄه خألَِخَ ‪:‬‬

‫‪ :‬ظ‪ٙ‬ٱُٿ خڀربودڄؿ ز٭ً ربمُځً ‪٠‬مه خؼبىٹك وخوع‪ٝ‬دَي [ ‪.] F7‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪304‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ :‬بڀٱدء ربمُٿ خڀربودڄؿ ‪٠‬مه خؼبىٹك وبٰالٶ خؼبځٳ خڀعىٵٌٍُ‪.‬‬

‫‪ :‬بَٹدٲ ڄاٸط ڀعىٵٍُ خڀربودڄؿ‪ ،‬وَٵًُ يف و‪ ٫٠‬وٹد‪ ٢‬خڀعىٸٳ‪.‬‬

‫‪ :‬خڀًوىپ ‪٠‬مه خالٔعً‪٬‬دءخض ( ‪ ) Step Into‬والپ خڀععس‪ ٫‬وخوع‪ٝ‬دَي [ ‪.] F11‬‬

‫‪ :‬خػبُوؾ ڄه خالٔعً‪٬‬دء خغبدرل ( ‪ ) Step Out‬والپ خڀععس‪.٫‬‬

‫‪ :‬ظىٵٍُ خالٔعً‪٬‬دءخض يون خڀًوىپ بڀُهد ( ‪ ) Step Over‬والپ خڀععس‪ ٫‬وخوع‪ٝ‬دَي [ ‪.] F10‬‬

‫‪ :‬ربمُٿ خؼبځٵدض خڀعىٵٍَُص خؼب‪ٙ‬ٱځص ( خحملمځص يف خڀٍخټُش ) ‪٠‬مه خؼبىٹك ( ‪ ) Attach‬وٌى خؼبُلځص خألوذل ڀځسًء زدڀعىٹُك ‪.‬‬

‫‪٬‬ىً خوعُدَي ظٵعك ڀٻ ودٴٍش ظٕمك ڀٻ زدوعُدَ خؼبځٳ خڀٌٍ ظًَُ ظىٹُمً ‪:‬‬

‫‪ :‬ظٕد‪ ً٬‬يف و‪ ٫٠‬وٹد‪ ٢‬خڀعىٸٳ يف ڄٽدن خؼباُ٘ ‪٠‬مه خڀىدٴٍش ‪ IL View‬وخوع‪ٝ‬دَي [ ‪.] F9‬‬

‫‪.‬‬ ‫و هبر خالوعسدي بذل ؤوً ال يبٽه و‪ ٫٠‬وٹ‪٥‬ص ظىٸٳ بال بٌخ ټدن خؼبىٹك يف لدپ ظىٸٳ ڄاٸط‬

‫‪ .3.1‬ايٓاؾص‪IL View ٠‬‬

‫ظ٭ُ‪ ٞ‬ظ٭ځُمدض خڀربودڄؿ زدڀځٱص خڀىُٔ‪٥‬ص ‪ IL‬ويبؽٿ خڀعُظُر ‪َ : L_0000 … L_0001‬ٸڃ خڀٕ‪ ،ُ٥‬ټمد َالل‪ ٧‬وـىي ٌٍي خڀعُظُر‬
‫وځٳ ظ٭ځُمدض خڀٹٵّ وَ‪ًٙ‬ن بذل خؼبىٸ‪ ٫‬خڀٌٍ ُٔعڃ وٹٿ خڀعىٵٍُ بڀًُ‪.‬‬

‫ٌه ‪ :‬بٌخ ټدوط خڀٹُمعٌن ًٰن ڄعٕدوَعٌن ( ‪ُٔ ) bne‬عڃ خڀٹٵّ بذل خڀٕ‪: L_0077 ُ٥‬‬
‫ٴمؽالً خ‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪305‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ .3.2‬ايٓاؾص‪Disassembly ٙ‬‬

‫ظ٭ُ‪ ٞ‬خڀٽىي خؼب‪ ًٌَٝ‬خؼبىخٴٷ ؼبد َىـً ڄه ظ٭ځُمدض خڀځٱص خڀىُٔ‪٥‬ص خؼبىـىيش يف خڀىدٴٍش ‪. IL View‬‬

‫‪ .3.3‬ايٓاؾص‪Auto ٠‬‬

‫ظ٭عرب ودٴٍش ڄهمص ـًخً وَعڃ ٴُهد ‪ ُٞ٬‬ٸُڃ خؼبعمىالض وخڀٷمي خؼبٕىًش ڀځ٭ىد‪ ُٜ‬ؤؼىدء خڀعىٹُك‪.‬‬

‫‪ .3.4‬ايٓاؾص‪Moduels ٙ‬‬

‫ربعىٌ ‪٬‬ځً خؼبځٵدض خحملمځص خڀالِڄص ڀع‪ٙ‬ٱُٿ خڀربودڄؿ‪ .‬ټمد ظ‪٩‬هُ خؼبځٵدض خڀيت َٹىڂ زعممُځهد خڀربودڄؿ ټمځٵدض ‪ DLL‬وٌٍ ڄٵًُش يف لدپ‬
‫ؤَيود ڄ٭ُٴص ڄىخَي خڀربودڄؿ‪.‬‬

‫‪ .4‬ضابعاً‪ :‬حتً‪ ٌٝ‬ايدلْاَر اشلسف ‪ٚ‬إجياز ايػط‪ٜ‬اٍ‬


‫بٌخ ظ‪ٝ‬ٵك ود ټىي خإلـُخء ‪ BTRCLICK‬خڀٌٍ يبؽٿ خڀ‪١‬ٱ‪٬ ٣‬ځً خڀَّ ‪: Register‬‬

‫خؼبعٱًن ‪ : Text‬ڄعٱًن و‪َٕ ,String ٍٝ‬ىً ڀً خڀى‪ ٛ‬خؼبًوٿ خؼبىـىي يف خؼبُز‪ ٫‬خڀى‪. TS ٍٝ‬‬
‫‪َ : Text.Length > 16‬عڃ خڀعإټً ڄه ؤن خڀى‪ ٛ‬خؼبًوٿ ؤټرب ڄه ‪ 16‬لُٴدً‪ ،‬ؤٌ ‪ 17‬ؤو ؤټؽُ‪.‬‬
‫)‪ : Mid( text, 1, 9‬ؤوٍ ؤوپ ‪ 9‬ؿبدَٲ ڄه خڀَُٕدپ خؼبًوٿ‪.‬‬
‫)‪ : Mid( text, 10, 8‬ؤوٍ ‪ 8‬ؿبدَٲ ڄه خڀَُٕدپ خؼبًوٿ خ‪٬‬عسدَخ ڄه خحملُٲ خڀ٭دُ٘‪.‬‬
‫‪ GetValue : RHA.GetValue‬و‪ُ٨‬ٵص ‪ Function‬ڄىـىيش يف خڀىلًش خڀربؾبُص ‪.RHA‬‬
‫‪ : Ts.text‬بٔىدي ٸُمص و‪ُٝ‬ص ڀځمُز‪ ٫‬خڀى‪.Ts ٍٝ‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪306‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ .4.1‬ايتشً‪ ٌٝ‬األ‪ٚ‬ي‪ٞ‬‬

‫َعڃ ؤوٍ خڀَُٕدپ خؼبًوٿ‪.‬‬

‫َعڃ خڀعإټً ڄه ؤن خڀَُٕدپ خؼبًوٿ ڄاڀٳ ڄه ؤټؽُ ڄه ‪ 16‬لُٲ‪.‬‬

‫َعڃ سبَُُ ؤوپ ‪ 9‬لُوٲ ڄه خڀَُٕدپ بذل خڀًخڀص ‪ GetValue‬وڄٹدَوص ڄد ظ٭ًُي خڀًخڀص ڄ‪ ٫‬خڀُٸڃ ( ‪.) 112244617383124392‬‬

‫بٌخ ربٹٹط خؼبٕدوخش وىعٹٿ بذل خؼبٕدوخش خڀعدڀُص‪.‬‬

‫َعڃ سبَُُ خڀؽمدوُص ؤَٸدڂ خڀعدڀُص ڄه خڀَُٕدپ بذل خڀًخڀص ‪ GetValue‬وڄٹدَوص ڄد ظ٭ًُي خڀًخڀص ڄ‪ ٫‬خڀُٸڃ ( ‪.) 4157‬‬

‫بٌخ ټدوط خؼبٕدوخش ‪ٜ‬مُمص َعڃ بٔىدي ٸُمص و‪ُٝ‬ص ڀځمُز‪ TS ٫‬دبٕد‪ً٬‬ش خڀًخڀص ‪. SetStr‬‬

‫‪ .4.2‬حتً‪ ٌٝ‬ايساي‪GetValue ١‬‬

‫والل‪ ٧‬يف خڀسًخَص ظ٭َُٳ خڀًخڀص ووالل‪ ٧‬ؤن ڄد ًَوٿ بذل خڀًخڀص ( ‪ ) Parameter‬هبر ؤن َٽىن ڄه خڀىى‪ ٪‬خڀى‪ String ٍٝ‬وَُڄّ ڀً‬
‫زـ ‪ StrIn‬وخڀٹُمص خڀيت ظ٭ًٌُد خڀًخڀص ٌٍ ڄه خڀىى‪ ٪‬خڀى‪ ،ٍٝ‬ؤَ‪١‬دً وَعڃ خڀع‪َُٝ‬ك ‪٬‬ىهد زـ ‪..… = GetValue‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪307‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ -‬ټمد ظالل‪ ٧‬ٴهىدڀٻ صبځص ڄه خؼبعٱًنخض خڀى‪ُٝ‬ص ‪:‬‬

‫‪ : Str9‬يبؽٿ ڄعٱًن و‪ ٍٝ‬ؼدزط خڀٹُمص ( ڄاڀٳ ڄه ‪ 72‬ؿبُٴدً )‪.‬‬

‫‪ : Str4, Str5, Str6, Str7‬ڄعٱًنخض و‪ُٝ‬ص‪.‬‬

‫‪ -‬الل‪ ٧‬ؤن ٌٍي خؼبعمىالض خڀى‪ُٝ‬ص َعڃ بٔىدي خڀٹُڃ ؽبد ڄه والپ خغبځٹص خڀ‪٩‬دٌُش يف خأل‪٬‬ځً ‪ Do … Loop‬وَځ٭ر خؼبعمىپ خڀُٸمٍ‬
‫‪ num‬يوَ خڀ٭ًخي ؽبٍي خغبځٹص ٴهى َسًؤ زدڀٹُمص (‪ )0‬وظىعهٍ خغبځٹص ‪٬‬ىًڄد ظ‪ٝ‬سك ٸُمعً ( ‪ ) 71‬ؤٌ ُٔعڃ ظٽُخَ ٌٍي خغبځٹص ( ‪) 72‬‬
‫ڄُش‪.‬‬

‫‪ -‬ټمد والل‪ ٧‬ؤن ٌىدٺ ؤَز‪ ٫‬صبٿ ُ٘‪ُ٤‬ص ‪:‬‬

‫‪ .... If ( num Mod 4 ) = 0 Then‬وٌٍي ظ٭ين ؤوً بٌخ ټدن زدٸٍ ٸٕمص خڀ٭ًي ‪٬ num‬ځً ‪َٕ 4‬دوٌ ( ‪٬ ) 0‬ىًجٍٍ = ‪Str4‬‬
‫‪ ]num[ Str4 + Str9‬وٌٍخ َ٭ين ؤن ٸُمص خؼبعٱًن ‪ Str4‬ظٕدوٌ ٸُمعً خغبدڀُص ڄ‪١‬دٲ بڀُهد خغبُٲ خڀٌٍ ظُظُسً ٸُمص ‪٠ num‬مه‬
‫خڀٕځٕځص خڀى‪ُٝ‬ص ‪: Str9‬‬

‫‪Num = 0  0 Mod 4 = 0  Str4 = Str4 + Str9(0)  Str4 = a‬‬


‫‪Num = 1  1 Mod 4 = 1  St5 = Str5 + Str9(1)  Str5 = b‬‬

‫‪ -‬ووعُفص ظٽُخَ ٌٍي خغبځٹص ‪ 72‬ڄُش ُٔىعؿ ڀًَىد ؤَز‪ٔ ٫‬الٔٿ و‪ُٝ‬ص (‪ ) Str4, Str5, Str6, Str7‬وڀٽه ټُٳ ٔى٭ُٲ ٸُمهڃ ؟‬

‫ٔىٕعىًڂ خؼبىٹك ڀععس‪ ٫‬ٸُڃ ٌٍي خڀٕالٔٿ‪ ،‬وڀىعس‪ ٫‬خػب‪٥‬ىخض خڀعدڀُص ‪:‬‬

‫خٴعك خإل‪٠‬دٴص ‪.Deblector‬‬ ‫‪)1‬‬

‫٘ٱٿ خڀربودڄؿ خؽبًٲ ( ‪.) DotNet Expert 2.exe‬‬ ‫‪)2‬‬

‫‪.‬‬ ‫خ‪٠‬ٱ‪٬ ٣‬ځً َِ ‪Attach‬‬ ‫‪)3‬‬

‫خوعُ خڀربودڄؿ خؽبًٲ ڄه خڀىدٴٍش مث خ‪٠‬ٱ‪.Attach ٣‬‬ ‫‪)4‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪308‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ظىـً بذل ټىي خڀًخڀص ‪ GetValue‬خؼبىـىيش يف خڀىلًش ‪. RHA‬‬ ‫‪)5‬‬

‫‪ ٫٠‬وٹ‪٥‬ص ظىٸٳ ‪٬‬ىً خڀٕ‪ ( L_0000 : nop ُ٥‬زى‪ ٫٠‬خؼباُ٘ ‪٬‬ىًٌد وخڀ‪١‬ٱ‪٬ ٣‬ځً ‪ F9‬ؤو خڀَّ ) ُٔعمىپ ڀىن خڀٕ‪ ُ٥‬بذل‬ ‫‪)6‬‬
‫خڀځىن خألضبُ‪.‬‬

‫‪.‬‬ ‫٘ٱٿ خڀربودڄؿ زدڀ‪١‬ٱ‪٬ ٣‬ځً ‪ F7‬ؤو ؤ‪٠‬ٱ‪٬ ٣‬ځً خڀَّ‬ ‫‪)7‬‬

‫خرل ( ‪٤‬ىڀً ؤټؽُ ڄه ‪112233445566778899 : ) 16‬‬


‫ؤيوٿ َٸڃ خڀعٕفُٿ خڀط‬ ‫‪)8‬‬

‫خ‪٠‬ٱ‪ Register ٣‬ؤُعىٸٳ خؼبىٹك ‪٬‬ىً وٹ‪٥‬ص خڀعىٸٳ خڀيت و‪٠‬٭ىدٌد ٔدزٹدً‪.‬‬ ‫‪)9‬‬

‫و‪ ٫١‬وٹ‪٥‬ص ظىٸٳ ؼدوُص ‪٬‬ىً خڀٕ‪ ( L_00C0 : ُ٥‬و‪٠‬٭ىدٌد ٌىد؛ ألهند خڀٕ‪ ُ٥‬خڀعدرل الوعهدء خغبځٹص ) ‪.‬‬

‫ؤُعىٸٳ خؼبىٹك ‪٬‬ىً وٹ‪٥‬ص خڀعىٸٳ ‪. L_00C0‬‬ ‫و‪١‬ٱ‪ ٣‬خؼبٵعدق ‪ F7‬ؤو خڀَّ‬

‫وى‪ ُ٩‬بذل خڀځىلص ‪ Auto‬ووالل‪ ٧‬خڀٹُڃ خألَز‪ ٫‬ڀځٕالٔٿ خڀى‪ُٝ‬ص (‪. ) Str4, Str5, Str6, Str7‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪309‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪Str4‬‬ ‫"‪="aeimquyCGKOSW-4826‬‬
‫‪Str5‬‬ ‫"‪="bfjnrvzDHLPTX15937‬‬
‫‪Str6‬‬ ‫"‪="cgkoswAEIMQUY26048‬‬
‫‪Str7‬‬ ‫"‪="dhlptxBFJNRVZ37159‬‬

‫خِن ‪ُ٬‬ٴىد نخظؿ خغبځٹص خڀٕدزٹص وڄد ٌٍ خؼبعٱًنخض خألَز‪ ٫‬خڀىدذبص ‪٬‬ىهد؟ ڀٍخ ٔىىعٹٿ بذل خڀٕ‪ ُ٥‬خڀعدرل ‪:‬‬

‫خِن خڀربودڄؿ َٹىڂ جبم‪ ٫‬خڀٕالٔٿ خألَز‪ ٫‬خڀٕدزٹص يف ڄعٱًن ڄٕعٹٿ ‪ Str8‬بٌن ٔعٽىن ٸُمعً ٌٍ ‪:‬‬
‫‪Str8‬‬ ‫"‪= "aeimquyCGKOSW-4826bfjnrvzDHLPTX15937cgkoswAEIMQUY26048 dhlptxBFJNRVZ37159‬‬

‫ز٭ًٌد َٽعٵٍ خڀربودڄؿ زإوٍ ؤوپ ‪ 9‬ؿبدَٲ ڄه ټٿ ٔځٕځص ڄه خڀٕالٔٿ خألَز‪: ٫‬‬

‫ٴع‪ٝ‬سك خڀٕالٔٿ خألَز‪ ٫‬ټدڀعدرل‪ ،‬وٌٍ خڀيت ٔى٭عمًٌد يف زٹُص لًَؽىد ‪:‬‬

‫‪Str4‬‬ ‫‪= aeimquyCG‬‬


‫‪Str5‬‬ ‫‪= bfjnrvzDH‬‬
‫‪Str6‬‬ ‫‪= cgkoswAEI‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪310‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪Str7‬‬ ‫‪= dhlptxBFJ‬‬

‫َٰڃ ظ٭ٹًُ خغبځٹص خڀعدڀُص بال ؤن ڂزًؤٌد زُٕ‪ ٣‬ـًخً ‪:‬‬

‫‪٤ -‬ىپ خغبځٹص َٕدوٌ ‪٤‬ىپ خڀٕځٕځص خؼبمَُش ؽبد ( ظٍټُ ؤن خڀربودڄؿ يبَُ ؤوالً ؤوپ ‪ 9‬ؤلُٲ ڄه خڀَُٕدپ خؼبًوٿ )‪.‬‬

‫‪ً٬ -‬ي ڄُخض ظٽُخَ خغبځٹص ( ‪ ) 9‬ڄُخض‪ ،‬وَعڃ يف ټٿ ڄُش ؤوٍ لُٲ ڄه خأللُٲ خڀعٕ٭ص‪.‬‬

‫‪ -‬خڀًخڀص ‪ : InStr‬ظسمػ ‪٬‬ه خغبُٲ‪ٌ ،‬ٿ ٌى ڄىـىي ‪٠‬مه خڀٕځٓڀص خڀى‪ُٝ‬ص ؟‬

‫بٌخ ټدن ڄىـىيخً ‪ :‬ظ٭ًُ ڄىٸ٭ً ‪٠‬مه خڀٕځٕځص؛ ڄؽالً‪ٔ ) "InStr ( Str4, "a :‬عسمػ ‪٬‬ه خغبُٲ ‪ a‬يف خڀٕځٕځص ‪ Str4‬والل‪ ٧‬ؤن‬
‫ڄىٸ٭ً = ‪ 1‬بٌن ‪.InStr(Str4,"a") = 1‬‬

‫بٌخ دل َٽه ڄىـىيخً ‪ :‬ظ٭ًُ خڀٹُمص ‪0‬‬

‫‪ --‬ٴدڀربودڄؿ َعإټً ‪:‬‬

‫ٌٿ خغبُٲ ڄىـىي يف خڀٕځٕځص ‪ ::: Str4‬بٌن ‪ :‬ؤ‪٠‬ٳ ڄىٸ٭ً ‪ +‬خڀُٸڃ ‪1‬‬
‫ٌٿ خغبُٲ ڄىـىي يف خڀٕځٕځص ‪ ::: Str5‬بٌن‪ :‬ؤ‪٠‬ٳ ڄىٸ٭ً ‪ +‬خڀُٸڃ ‪2‬‬
‫ٌٿ خغبُٲ ڄىـىي يف خڀٕځٕځص ‪ ::: Str6‬بٌن‪ :‬ؤ‪٠‬ٳ ڄىٸ٭ً ‪ +‬خڀُٸڃ ‪3‬‬
‫ٌٿ خغبُٲ ڄىـىي يف خڀٕځٕځص ‪ ::: Str7‬بٌن‪ :‬ؤ‪٠‬ٳ ڄىٸ٭ً ‪ +‬خڀُٸڃ ‪4‬‬

‫‪ --‬وڀٽه الل‪ : ٧‬ؤن خڀربودڄؿ يف خغبًغ ‪َ BTRCLick‬ٹدَن ودظؿ ؤوپ ‪ 9‬ؤلُٲ ڄ‪ ٫‬خڀُٸڃ ( ‪.) 112244617383124392‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪311‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫و خغبځٹص خڀٕدزٹص ظ٭‪ ٍ٥‬ؼىدجُدض زدڀ‪ُٝ‬ٱص خڀعدڀُص ‪:‬‬

‫ڄىٸ‪ ٫‬خحملُٲ يف خڀٕځٕځص ‪ 1 ( +‬ؤو ‪ 2‬ؤو ‪ 3‬ؤو ‪ ... 4‬لٕر خڀٕځٕځص خڀيت ربعىًَ )‪.‬‬

‫ڀىمځٿ خڀُٸڃ ( ‪: )112244617383124392‬‬

‫‪Str4‬‬ ‫‪= aeimquyCG‬‬


‫‪Str5‬‬ ‫‪= bfjnrvzDH‬‬
‫‪Str6‬‬ ‫‪= cgkoswAEI‬‬
‫‪Str7‬‬ ‫‪= dhlptxBFJ‬‬

‫‪1‬‬ ‫‪2‬‬ ‫‪4‬‬ ‫‪1‬‬ ‫‪3‬‬ ‫‪3‬‬ ‫‪2‬‬ ‫‪3‬‬ ‫‪2‬‬


‫‪1‬‬ ‫‪2‬‬ ‫‪4‬‬ ‫‪6‬‬ ‫‪7‬‬ ‫‪8‬‬ ‫‪1‬‬ ‫‪4‬‬ ‫‪9‬‬
‫‪Str4‬‬ ‫‪Str5‬‬ ‫‪Str7‬‬ ‫‪Str4‬‬ ‫‪Str6‬‬ ‫‪Str6‬‬ ‫‪Str5‬‬ ‫‪Str6‬‬ ‫‪Str5‬‬
‫‪a‬‬ ‫‪f‬‬ ‫‪p‬‬ ‫‪u‬‬ ‫‪A‬‬ ‫‪E‬‬ ‫‪b‬‬ ‫‪o‬‬ ‫‪H‬‬
‫‪afpuAEboH‬‬

‫‪ -‬بٌن ؤوپ ‪ 9‬ؤلُٲ ڄه خڀَُٕدپ ٌٍ ‪afpuAEboH :‬‬

‫‪ -‬ټُٳ ٔىعإټً ڄه ؤن ٌٍي خأللُٲ ‪ٜ‬مُمص؟ ڀى‪ٙ‬ٱٿ خڀربودڄؿ وڀىٹڃ زةيودپ خڀَُٕدپ‪afpuAEboH112233445566 :‬‬
‫وڀى‪ ٫١‬وٹ‪٥‬ص ظىٸٳ ‪٠‬مه خإلـُخء ‪٬ BTRCLICK‬ىً خڀٕ‪: L_0031 ُ٥‬‬

‫ُٔعىٸٳ خڀربودڄؿ ‪٬‬ىًٌد ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪312‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ -‬و‪١‬ٱ‪ ٣‬خِن ‪ F10‬ڄُظٌن ووالل‪٨ ٧‬هىَ ودظؿ خڀًخڀص ‪ GetValue‬ڀأللُٲ خڀعٕ٭ص خألوذل ‪:‬‬

‫‪ -‬وڄه مث خؼبٹدَوص (زىخٔ‪٣‬ش ‪ F11‬يبٽىٻ خڀًوىپ بذل يخڀص خؼبٹدَوص ) ووالل‪ ٧‬ظ‪٥‬دزٷ خڀٹُمعٌن‪ ،‬بٌن ربځُځىد ټدن ‪ٜ‬مُمدً‪ ،‬وخأللُٲ‬
‫خڀعٕ٭ص ڄه خڀَُٕدپ ٌٍ ‪afpuAEboH :‬‬

‫‪ -‬والل‪ ٧‬يف خإلـُخء ‪ BTRClick‬ؤن خڀربودڄؿ ًَٴ‪ ٫‬خأللُٲ خڀؽمدوُص خڀعدڀُص ڀځًخڀص ‪ GetValue‬وَٹدَن خڀىدظؿ ڄ‪. 4157 ٫‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪313‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ -‬ڀىمځٿ خڀُٸڃ ‪: 4157‬‬

‫‪ : 4‬ؤوٍ خحملُٲ خڀُخز‪٫‬‬

‫‪ : 1‬ڄه خڀٕځٕځص خڀى‪ُٝ‬ص ‪Str4‬‬

‫‪ : 5‬ؤوٍ خحملُٲ خػبدڄٓ‬

‫‪ : 7‬ڄه خڀٕځٕځص خڀى‪ُٝ‬ص ؟ (ټُٳ ‪ 7‬وكبه ڀًَىد بڄد ‪ 1‬ؤو ‪ 2‬ؤو ‪ 3‬ؤو ‪ 4‬وٌٍ ظًڀىد ‪٬‬ځً خڀٕځٕځص خڀيت وإوٍ ڄىهد؟)‬

‫‪ -‬لٹُٹص ٌٍي ٌٍ خغبُټص خڀيت ٔسسط ‪ٜ‬٭ىزص خغبٿ‪ ،‬ڀىُخـ‪ ٫‬خڀًخڀص ‪ GetValue‬ووىّپ بذل خألٔٵٿ و‪٬‬ىًٌد ٔىُي ‪:‬‬

‫‪ -‬بٌن خڀًخڀص ظٹدَن خڀٹُمص خڀًخوځص ؽبد‪ ،‬ٴةٌخ دل ظٽه ؤَٸدڄدً ‪ Not IsNumeric‬ٴةهند ظ٭ًُ ودظؿ خغبځٹص خڀيت ربًؼىد ‪٬‬ىهد ڄىٍ ٸځُٿ‪.‬‬

‫‪ -‬ؤڄد بٌخ ټدوط خڀٹُمص خؼبًوځص ؽبد ؤَٸدڄدً ٴٹ‪ ( ٣‬ال َىـً لُوٲ ) ٴةهند ظٹىڂ حبځٹص ـبعځٵص وظ٭ًُ ودظؿ ي ٌي خغبځٹص ‪. Str3‬‬

‫أوالً ‪ :‬خعبّء خڀؽدين ڄه خڀَُٕدپ ڄاڀٳ ؤَٸدڂ ‪.‬‬

‫ثاَياً‪ :‬خغبځٹص ؤ‪ٜ‬ٱُ ڄه ‪ ( 9‬وٌٍخ َعىخٴٷ ڄ‪ ٫‬ټىن خعبّء خڀؽدين ڄه خڀَُٕدپ ڄاڀٳ ڄه ‪ 8‬ؤَٸدڂ )‪.‬‬

‫ثانثاً‪َ :‬عڃ َِديش ‪ً٬‬خي خغبځٹص ‪ 2‬يف ټٿ يوَش ) ‪. Start = Start + 2 ( 0 , 2 , 4 ,‬‬

‫راتؼاً‪َ :‬عڃ ؤوٍ ؿبُٴٌن يف ټٿ يوَش )‪. Mid(StrIn,Start,2‬‬

‫)‪ : Mid(StrIn,0,2‬ؤوپ َٸمٌن‬


‫)‪ : Mid(StrIn,2,2‬ؼدين َٸمٌن‬
‫)‪ : Mid(StrIn,4,2‬ؼدڀػ َٸمٌن‬
‫)‪َ : Mid(StrIn,6,2‬خز‪َ ٫‬ٸمٌن‬

‫خايظاً‪َ :‬عڃ يف ټٿ يوَش بهبدي خحملُٲ ڄه خڀٕځٕځص خڀى‪ُٝ‬ص ‪ Str8‬خڀٌٍ ڄىٸ٭ً ٸُمص خڀُٸمٌن‪ ،‬وَ‪١‬دٲ بذل خڀىدظؿ‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪314‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫وو٭ځڃ ؤن خڀىدظؿ هبر ؤن َٽىن ‪4157‬‬

‫و خڀٕځٕځص خڀى‪ُٝ‬ص ‪: Str8‬‬


‫"‪Str8 = "aeimquyCGKOSW-4826 bfjnrvzDHLPTX15937cgkoswAEIMQUY26048 dhlptxBFJNRVZ37159‬‬

‫ڀىمځٿ خڀُٸڃ‪ :‬بٌن الل‪ ٧‬ظُظُر خألَٸدڂ خؼب٭ځمص زدألَِٶ ( َسًؤ خڀعُٸُڃ زدڀُٸڃ ‪ 0‬وڀُٓ ‪: ) 1‬‬

‫‪ : 4‬ظُظُسً ( ‪ ) 14‬يف خڀٕځٕځص ‪Str8‬‬


‫‪ : 1‬ظُظُسً ( ‪ ) 31‬يف خڀٕځٕځص ‪Str8‬‬
‫‪ :5‬ظُظُسً (‪ ) 32‬يف خڀٕځٕځص ‪Str8‬‬
‫‪ :7‬ظُظُسً ( ‪ ) 35‬يف خڀٕځٕځص ‪Str8‬‬

‫بٌن ٴدعبّء خڀؽدين ڄه خڀَُٕدپ ‪ -‬خؼباڀٳ ڄه ‪ 8‬ؤَٸدڂ وخڀٌٍ َىعؿ خڀُٸڃ ( ‪ ) 4157‬ڄه والپ خڀًخڀص ‪ٌ -GetValue‬ى ‪:‬‬
‫‪14313235‬‬

‫ٴُٽىن خڀَُٕدپ خڀىهدجٍ ‪afpuAEboH14313235 :‬‬

‫ڀىٹڃ زةيودپ ٌٍخ خڀَُٕدپ وو‪١‬ٱ‪ٔ Register ٣‬ع‪٩‬هُ ڀىد خڀ٭سدَش ‪ Registered‬يف خؼبُز‪ ٫‬خڀى‪RegCode ٍٝ‬‬

‫ٌٿ ظٕع‪ ٫ُ٥‬ؤن ظ٭ُٲ ڄه ؤَه ؤظط ‪ Registered‬؟‬

‫‪ .5‬خاَػا‪ :‬استُاالت ايػط‪ٜ‬االت نُٔ ايه‪ٝ‬ذٔ‬


‫خٔع‪٥‬د‪ ٪‬خإلوىش خڀ٭ؽىَ ‪٬‬ځً ‪َُٔ 8‬دالض ټمً ؤٸ‪ ،ًٝ‬وٌٍي ٌٍ خڀ‪َُ٥‬ٹص خؼبىهفُص إلل‪ٝ‬دء خلعمدالض خڀَُٕدالض خڀسدڀٱص ‪َُٔ 16‬دالً ‪:‬‬
‫‪Str8‬‬ ‫"‪= "aeimquyCGKOSW-4826bfjnrvzDHLPTX15937cgkoswAEIMQUY26048dhlptxBFJNRVZ37159‬‬

‫خڀُٸڃ خألوپ هبر ؤن َٽىن ‪ :4‬وٌى يبځٻ خؼبىٸ٭ٌن ( ‪) 52 - 14‬‬


‫خڀُٸڃ خڀؽدين هبر ؤن َٽىن ‪ :1‬وٌى يبځٻ خؼبىٸ٭ٌن ( ‪) 69 - 31‬‬
‫خڀُٸڃ خڀؽدڀػ هبر ؤن َٽىن ‪ :5‬وٌى يبځٻ خؼبىٸ٭ٌن ( ‪) 70 - 32‬‬
‫خڀُٸڃ خڀُخز‪ ٫‬هبر ؤن َٽىن ‪ :7‬وٌى يبځٻ خؼبىٸ٭ٌن ( ‪) 68 - 35‬‬

‫‪[ 4 ] Location‬‬ ‫‪[ 1 ] Location‬‬ ‫‪[ 5 ] Location‬‬ ‫‪[ 7 ] Location‬‬ ‫‪Serials‬‬


‫‪35‬‬ ‫‪14313235‬‬
‫‪32‬‬
‫‪68‬‬ ‫‪14313268‬‬
‫‪14‬‬ ‫‪31‬‬
‫‪35‬‬ ‫‪14317035‬‬
‫‪70‬‬
‫‪68‬‬ ‫‪14317068‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪315‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪35‬‬ ‫‪14693235‬‬
‫‪32‬‬
‫‪68‬‬ ‫‪14693268‬‬
‫‪69‬‬
‫‪35‬‬ ‫‪14697035‬‬
‫‪70‬‬
‫‪68‬‬ ‫‪14697068‬‬
‫‪35‬‬ ‫‪52313235‬‬
‫‪32‬‬
‫‪68‬‬ ‫‪52313268‬‬
‫‪31‬‬
‫‪35‬‬ ‫‪52317035‬‬
‫‪70‬‬
‫‪68‬‬ ‫‪52317068‬‬
‫‪52‬‬
‫‪35‬‬ ‫‪52693235‬‬
‫‪32‬‬
‫‪68‬‬ ‫‪52693268‬‬
‫‪69‬‬
‫‪35‬‬ ‫‪52697035‬‬
‫‪70‬‬
‫‪68‬‬ ‫‪52697068‬‬

‫يبٽه ټعدزص ټُفه ڀځربودڄؿ خؽبًٲ زىخٔ‪٥‬ص يڀٵٍ ڄٕعىًڄدً ڄ‪ٝ‬ٵىٴص ربعىٌ ‪٬‬ځً خلعمدالض خعبّء خڀؽدين ڄه خڀَُٕدپ ( َٕعىًڂ‬
‫‪٬‬ىد‪ٌُٜ‬د ز‪ٙ‬ٽٿ ‪ٙ٬‬ىخجٍ ) وَ‪١‬دٲ ؽبد خعبّء خألوپ ڄه خڀَُٕدپ‪ ,‬ؤو يبٽه خ‪٬‬عمدي خؼبىهؿ خڀعُظُيب‪ ,‬وَ٭عرب خؼبسًؤ خڀ٭‪ٙ‬ىخجٍ ٌى خألټؽُ‬
‫خٔعىًخڄدً يف ټعدزص ڄؽٿ ٌٍي خڀٽُفىدض‪ .‬و يبٽه ټعدزص خڀٽىي زدڀ‪ٙ‬ٽٿ خڀعدرل ‪:‬‬
‫‪var‬‬
‫;‪Form1: TForm1‬‬
‫;‪I: Integer = 0‬‬
‫‪Const‬‬
‫'‪Array2S : Array[0..15] of String =('14313235‬‬
‫'‪,'14313268‬‬
‫'‪,'14317035‬‬
‫'‪,'14317068‬‬
‫'‪,'14693235‬‬
‫'‪,'14693268‬‬
‫'‪,'14697035‬‬
‫'‪,'14697068‬‬
‫'‪,'52313235‬‬
‫'‪,'52313268‬‬
‫'‪,'52317035‬‬
‫'‪,'52317068‬‬
‫'‪,'52693235‬‬
‫'‪,'52693268‬‬
‫'‪,'52697035‬‬
‫;)'‪,'52697068‬‬

‫‪implementation‬‬
‫}‪{$R *.dfm‬‬
‫;)‪procedure TForm1.BTGenClick(Sender: TObject‬‬
‫‪begin‬‬
‫‪//Method #1 ===> Random‬‬
‫;‪Randomize‬‬
‫;])‪TReg.Text := 'afpuAEboH' + Array2S[Random(15‬‬
‫‪//Method #2 ===> Ordinal‬‬
‫;‪if I > 15 Then I := 0‬‬
‫;]‪TReg.Text := 'afpuAEboH' + Array2S[I‬‬
‫;‪I:= I + 1‬‬
‫;‪end‬‬

‫نسبىن ؤن ظٽىوىخ ٸً خٔعمع٭عڃ وخٔعٵًمت ڄه ٸُخءش ٌٍخ خڀًَْ‪ ،‬ټمد وُـى ڄه خهلل ظ٭دذل ؤن َٽىن ‪٬‬مځىد ودڀ‪ٝ‬دً ڀىـهً خڀٽُمي ‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪316‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫حتليل تطبيقات الدوت ىت (‪)2‬‬


‫)‪.Net Applications Analysis (2‬‬

‫‪َ .1‬كسَ‪ ٚ ١‬ا‪ٜ‬هاسات‬


‫ربًؼه يف خعبّء خألوپ ‪٬‬ه خإلڄٽدوُدض خؼبعٹًڄص خڀيت ظٹًڄهد ڀىد خأليخش ‪ Reflector ,‬وٌټُود ؤن خإل‪٠‬دٴدض خؼب‪ٝ‬م‪ٝ‬ص ؽبٍي خأليخش ظًَّ ڄه‬
‫خ‬
‫ٸىش ٌٍي خأليخش‪ ،‬وڀ٭ٿ ؤٌڃ ٌٍي خإل‪٠‬دٴدض ‪ : Deblector‬و‪Reflexil .‬‬

‫ظٌن ‪ Deblector‬و ‪ Reflexil‬ؼىدجُدً َخج٭دً وڄعٽدڄالً ڀعمځُٿ وظ٭ًَٿ ظ‪٥‬سُٹدض خڀًوض وط‪.‬‬
‫ؤؼىدء ‪٬‬مځُدض خڀسدظ‪ُٙ‬ىٯ ظ‪ٙ‬ٽٿ خإل‪٠‬دٲ‬

‫َځ٭ر ‪ Deblector :‬يوَ ڄىٹك وبځٿ خڀٽىي ؤؼىدء خڀعىٵٍُ ؤَُڃ ‪ٜ‬ىَش وخ‪٠‬مص ؼبد يبٽه بقبدِي ڄه والپ خأليخش‪Reflexil .‬‬

‫وَٿ‪٬‬ر ‪ Reflexil :‬خڀًوَ خڀىهدجٍ يف خڀع٭ًَٿ ‪٬‬ځً خڀع‪٥‬سُٷ ولٵ‪ ٧‬خؼبځٳ خؼب٭ًپ ز٭ً خڀٵهڃ خڀعدڂ ؼبد هبٌُ‪.‬‬

‫‪ -‬مت ظ‪ٝ‬مُڃ خڀعمَُه ‪ DotNet Expert 3‬ڀ‪ُٙ‬ق بڄٽدوُدض خأليخش ‪ Reflixel‬وټُٵُص خڀع٭دڄٿ ڄ٭هد‪.‬‬

‫‪Reflector‬‬
‫‪Reflexil‬‬

‫‪DotNet EXPERT 3.exe‬‬

‫‪ .1.1‬أ‪ٚ‬الً‪ :‬تعس‪ٚ Assembly Name ٌٜ‬سؿغ املًـ املعسٍ‬

‫‪ -‬ڀىٕٹ‪ ٣‬خڀعمَُه يف ‪ Reflector‬و‪٬‬ىًٌد ٔىالل‪٨ ٧‬هىَ خٔڃ خڀعمَُه ‪٬‬ځً خڀٹدجمص خڀُُٕي‪ٌٍ ،‬خ خالٔڃ َ٭ُٲ زـ ‪: Assembly‬‬
‫‪Name‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪317‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫و ټىوىد ٔىٹىڂ ز٭ًي ڄه خڀع٭ًَالض ٴةٌخ ‪٨‬هُ ڀىد خڀعمَُه زىٵٓ خالٔڃ يوڄدً ٴُٕعڃ خٔعسًخپ خؼبځٳ خعبًًَ خؼب٭ًپ زدؼبځٳ خڀٹًمي ؤىٵٹً‬
‫بڄٽدوُص خؼبٹدَوص ڄ‪ ٫‬خڀعمَُه خأل‪ٜ‬ځٍ ؤىٵٹً ڄعدز٭ص خڀعٱًُنخض خڀيت قبَُهد‪.‬‬

‫ڀىٵعك خِن خأليخش ‪ Reflexil‬وبٌخ ټدن خڀـ ‪ Assembly Name‬ڄ٭ځڃ ٴ٭ىًٌد ٔعٽىن خڀىدٴٍش ٌٍ ‪Assembly Definition‬‬

‫ڀىىعٹٿ بذل خڀ‪ٝ‬ٵمص ‪ Name definition‬ووٱًن خڀـ ‪Assembly Name :‬‬

‫ٔىٱًني بذل ‪ Patched_1‬ڀعٻون خؼبځٵدض خڀعدڀُص ڄُظسص …‪ Patched_2 … Patched_3‬وٌٍخ َٵًُود يف ڄعدز٭ص خڀعٱًُنخض‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪318‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ڀىٹىڂ خِن حبٵ‪ ٧‬خڀع٭ًَٿ يف ڄځٳ ـًًَ‪.‬‬

‫وىٔ‪ ٫‬خڀٹدجمص ( ‪ ) +‬خجملدوَش ڀځـ ‪ Assembly Name‬ؤىالل‪٨ ٧‬هىَ ‪ Exe Name‬وجبىخَي ؤَٹىوص ‪٬‬سدَش ‪٬‬ه ټعر‪ ،‬و‪٬‬ىً‬
‫ًٰن ودٴٍش خإل‪٠‬دٴص ‪ Reflexil‬بذل خڀىدٴٍش‪Module definition :‬‬
‫خڀ‪١‬ٱ‪٬ ٣‬ځً خٔڃ خؼبځٳ خڀعىٵٌٍُ ظط‬

‫ټمد ظالل‪٨ ٧‬هُ ڀًَىد ََِه نبد ‪:‬‬

‫‪َٕ : Save as‬مك ڀىد حبٵ‪ ٧‬خڀىٕىص خؼب٭ًڀص ڄه خڀربودڄؿ‪.‬‬

‫‪َٕ :Reload‬مك ڀىد زة‪٬‬ديش ربمُٿ خؼبځٳ خأل‪ٜ‬ځٍ وڄٕك صبُ‪ ٫‬خڀعٱًنخض خڀيت ؤـَُىدٌد‪.‬‬

‫ڀى‪١‬ٱ‪ Save as ٣‬وكبٵ‪ ٧‬خؼبځٳ زدٔڃ‪Patched_1 :‬‬

‫ز٭ً لٵ‪ ٧‬خؼبځٳ وعىـً بذل ڄٽدن خغبٵ‪ , ٧‬وٕٹ‪ ٣‬خؼبځٳ ‪ Patched_1.exe‬يف ‪ Reflector‬ووالل‪٨ ٧‬هىَ خٔڃ ـًًَ‬
‫‪Patched_1 :‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪319‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ .1.2‬ثاْ‪ٝ‬اً‪ :‬إعسازات األزا‪Reflexil٠‬‬

‫والل‪ ٧‬ؤٔٵٿ وىخٴٍ ‪ Reflexil‬خَظسد‪٤‬دً و‪ُٝ‬دً وبمٿ خالٔڃ [ ‪ ] .. Configure Reflexil‬و‪٪‬وً خڀ‪١‬ٱ‪٬ ٣‬ځًُ ظٵعك ودٴٍش ـًًَش‬
‫ؤىمدوپ ؤن لبعدَ خغبٹىپ ټمد يف خڀ‪ٝ‬ىَش خڀعدڀُص‪ ،‬ويبٽىٻ خڀع٭ًَٿ هبد دبد َىدٔسٻ‪:‬‬

‫‪ .1.3‬ثايجاً ‪ :‬ايٓاؾص‪Method definition٠‬‬

‫ظ٭عرب ٌٍي خڀىدٴٍش خڀٹځر خڀىدز‪ ٟ‬ڀأليخش ‪ Reflexil ,‬وڄُټّ خڀ٭مځُدض ؤؼىدء خڀع٭ًَٿ ‪٬‬ځً ظ‪٥‬سُٹدض خڀًوض وط‪.‬‬

‫ظعإڀٳ ٌٍي خڀىدٴٍش ڄه ‪ٜ‬ٵمدض ـّجُص ٌدڄص وظ‪٩‬هُ ‪٬‬ىً خٔع٭ُخ‪٠‬ٻ أللً خإلـُخجُدض يف خڀربودڄؿ ‪ Reflector‬وٌٍ‪:‬‬

‫‪ .1.4‬ايكؿش‪Instructions :١‬‬

‫ظٹىڂ ز٭ُ‪َ ٞ‬ٸڃ ٔ‪ ُ٥‬خڀٽىي ‪ +‬خؼبىٸ‪ ( Offset ) + ٫‬ظ٭ځُمدض خڀځٱص خڀىُٔ‪٥‬ص خؼبىخٴٹص ‪٬ ( IL ) +‬ىخڄٿ خڀعُٰٗٿ خڀعدز٭ص ؽبٍخ خڀٕ‪.ُ٥‬‬

‫‪ .1.5‬ايكؿش‪Variables :١‬‬

‫ظ٭ُ‪ ٞ‬ڀٻ ؤظبدء خؼبعٱًنخض وؤوىخ‪٬‬هد‪ ،‬وڀٽه زإظبدء ظُظُسُص ‪ V_0, V_1,‬وٌڀٻ لٕر ظٕځٕٿ وَويٌد ‪٠‬مه و‪ ٛ‬خڀٽىي خؼبىخٴٷ‪.‬‬

‫ايكؿشتني ‪Instructions & Variables :‬‬ ‫‪ .2‬متط‪ ٜٔ‬تطب‪ٝ‬ك‪ ٞ‬الغتػالٍ‬


‫ٔىعىدوپ ٌىد زب‪ ٍ٥‬خإلـُخء ‪ BRVClick‬وٌى يبؽٿ خڀ‪١‬ٱ‪٬ ٣‬ځً خڀَّ‪Register Version .‬‬

‫زًخَص ټُٳ ‪ُ٬‬ٴط ؤن خغبًغ ‪ BRVClick‬يبؽٿ خڀ‪١‬ٱ‪٬ ٣‬ځً خڀَّ ‪ Register Version‬؟‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪320‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫بٌخ و‪ُ٩‬ود بذل خڀ٭ىد‪ ُٜ‬خػبد‪ٜ‬ص زـ ‪ MainForm‬قبً يف خأل‪٬‬ځً )(‪ ctor‬وٌى خوع‪ٝ‬دَ ڀـ ‪ Constructor‬ؤٌ ‪٬‬مځُدض زىدء‬
‫خڀىمىٌؾ‪.‬‬

‫‪٬‬ىً خڀًوىپ بڀًُ ٔىالل‪ ٧‬ظ٭َُٵدض ڂ‪ ٪‬ٸُڃ زًخجُص ڀځمعمىالض خڀ٭دڄص خؼبٕعىًڄص يف خڀىمىٌؾ‪ ,‬وبـُخء ؤ‪ً٬‬خي خؼبٽىودض خػبد‪ٜ‬ص زدڀىمىٌؾ‬
‫‪Me.InitializeComponent‬‬

‫‪٬‬ىً خڀًوىپ ؽبٍخ خإلـُخء ٔىالل‪ ٧‬ظ٭َُٳ خؼبٽىودض ڄه لُػ خڀىى‪ ( Button, PicutreBox, RadioButton … ) ٪‬وخڀعٕمُص‬
‫وًٰنٌد‪.‬‬

‫ووالل‪ٌ ٧‬ىد خإل‪ً٬‬خيخض خخلخ‪ٜ‬ص زدڀَّ‪Register Version :‬‬

‫ڄه زدذ خڀعٕځُص ‪ :‬ي‪٬‬ىود وٹىڂ زعٱًُن ڀىن خػبځٵُص بذل خألو‪ ُ١‬وخڀٽعدزص بذل‪My First Button :‬‬

‫يف خڀځىلص ‪ Instruction‬لبعدَ خڀٕ‪ 546 ُ٥‬خڀٌٍ وبعىٌ ‪٬‬ځً خڀًخڀص ‪ GetGray‬وو‪١‬ٱ‪ ٣‬زَّ خڀٵإَش خأليبه ولبعدَ‪Edit :‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪321‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ٔعىُؾ ڀىد ودٴٍش خڀعمَُُ‪:‬‬

‫و‪١‬ٱ‪٬ ٣‬ځً ‪ Get_Gray‬ڀعىُؾ ودٴٍش ـًًَش لبعدَ ڄىهد ( ‪ Get_Green‬خڀٕ‪ ُ٥‬خڀعدرل‪) :‬‬

‫مث و‪١‬ٱ‪٬ ٣‬ځً خڀَّ ‪ Update‬غبٵ‪ ٧‬خڀعٱًُنخض‪ ،‬ٴعٱځٷ خڀىدٴٍش‪ ،‬ووالل‪ ٧‬ؤن خڀع٭ًَٿ ٸً مت ‪٬‬ځً خڀٕ‪:546 ُ٥‬‬

‫وٽَُ خڀ٭ځمُص ڄه ؤـٿ خڀٕ‪ 586 ُ٥‬وخڀٌٍ وبعىٌ ‪٬‬ځً خڀ٭سدَش ‪ Register Vesion‬وڀٻن ٌىد وٽعر زًپ خڀى‪My First ٛ‬‬
‫‪Button :‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪322‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫خِن كبٵ‪ ٧‬خؼبځٳ زدڀ‪١‬ٱ‪٬ ٣‬ځً ‪ Exe Name‬مث لبعدَ ‪ Save as‬ووٕمٍ خؼبځٳ‪For Fun :‬‬

‫و‪ٙ‬ٱٿ خؼبځٳ خڀىدظؿ ) ‪ ( For Fun.exe‬وو‪ٙ‬دًٌ خڀعٱًُنخض‪:‬‬

‫‪-‬و٭ىي بذل ڄى‪٠‬ى‪٬‬ىد وزب‪ ٍ٥‬خغبًغ‪BRVClick :‬‬

‫زًخَص لبعدَ ‪ Exe name‬ؤٔٵٿ خؼبىيَٿ ‪ : Patched_1‬وو‪١‬ٱ‪ ٣‬ڄه ‪ Reflixel‬خڀَّ ‪ Reload‬إلِخڀص خڀعٱًنخض خڀيت ؤـَُىدٌد ڄىٍ‬
‫ٸځُٿ‪.‬‬

‫وع‪ٝ‬ٵك خِن خڀٽىي خؼبىخٴٷ وكبدوپ ٴهڃ ڄد هبٌُ إلـُخء خڀع٭ًَالض خؼب‪٥‬ځىزص زًٸص‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪323‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫يف خڀسًخَص ‪َ :‬عإټً خڀربودڄؿ ڄه ؤن خالٔڃ ڀُٓ ٴدَٰدً وؤن ‪٤‬ىپ خڀَُٕدپ ڀُٓ ؤٸٿ ڄه ‪ 5‬ؤلُٲ‪.‬‬

‫يف لدپ ‪ً٬‬ڂ ربٹٷ خڀ‪ ٢ُٙ‬خڀٕدزٷ ُٔىٵٍ خإلـُخء ‪ MacroMe‬ويبَُ ڀً خؼب٭دڄالض ( خڀربڄُعُخض ‪2 – 3 – 0 ) Parameters‬‬
‫زدڀعُظُر‪.‬‬

‫ڀىًوٿ بذل خإلـُخء ‪ MacroMe‬ووُي ڄدٌخ َٵ٭ٿ؟‬

‫‪٤‬س٭دً بٌخ ټىط ظٍټُ ٴدؼب‪ٝ‬ٵىٴص ‪ StrArr‬ڄىـىيش ‪٬‬ىً ‪ ctor‬و‪٬‬ىد‪ٌُٜ‬د زدڀعُظُر‪:‬‬

‫خڀى‪ٛ‬‬ ‫َٸڃ خڀ٭ى‪ُٝ‬‬


‫‪Failure‬‬ ‫‪0‬‬
‫‪Success‬‬ ‫‪1‬‬
‫‪Failure‬‬ ‫‪2‬‬
‫‪Maybe Incorrect Input‬‬ ‫‪3‬‬
‫‪Standard Edition‬‬ ‫‪4‬‬
‫‪Professional Edition‬‬ ‫‪5‬‬
‫‪What is Upper Text .. This Is Result ..‬‬ ‫‪6‬‬

‫ڄ٭ىن خإلـُخء ‪ MacroMe( 2, 3, 0 ) :‬ؤ‪٨‬هُ خڀى‪ Failure ( 2 ) – ٛ‬وخڀى‪ Maybe ( 3 ) – ٛ‬وخألَٹىوص ( ‪ ) 0‬خػب‪٥‬إ‪.‬‬

‫وڀٽه خوعسً ‪ُ٠‬ذ خألوپ وخڀؽدڀػ زٹُمص خؼبعمىپ ‪ : IntT‬وټمد الل‪٩‬ط ؤن ٸُمعً خڀسًخجُص ٌٍ ( ‪).0‬‬

‫و زدڀعدرل ظعمىپ خڀٹُمص بذل )‪ : MacroMe ( 2,3,0‬بذل‪MacroMe ( 0,3,0 ) .‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪324‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫وڀٽه بٌخ ټدوط ٸُمص ٌٍخ خؼبعمىپ (‪ : )1‬ٴٕعسٹً خڀٹُڃ ټمد ڄَُض ڀإلـُخء ‪ .‬ټدن خؽبًٲ ڄه ٌٍي خڀ٭مځُص ‪٨‬هىَ وعُفص خػب‪٣‬ؤ يوڄدً يف‬
‫لدپ مت خڀعال‪٬‬ر زٹٵّخض ( خعبمٿ خڀ‪ُ٤ُٙ‬ص ) ڀځربودڄؿ‪.‬‬

‫‪-‬الل‪ ٧‬يف زٹُص خإلـُخء ) ‪ ( BRVClick‬ټُٳ َعڃ ب‪٥٬‬دء خؼبعمىپ ‪ IntT‬خڀٹُمص ‪٬ 1‬ىً خڀعٕفُٿ خڀ‪ٝ‬مُك‪.‬‬

‫‪ -‬ڀىمٿ صبُ‪ ٫‬ب٘ٽدڀُدض خؼبعمىپ ‪ IntT‬كبعدؾ ٴٹ‪ ٣‬بذل ب‪٥٬‬دء ٌٍخ خؼبعمىپ خڀٹُمص ‪٬ 1‬ىً زًخَص خإلـُخء ‪ MacroMe‬ڀىٹڃ زٍڀٻ‪.‬‬

‫وٵعك خإلـُخء ‪ MacroMe‬ووعىـً بذل خڀځىلص ‪ Instructions‬وواُ٘ ‪٬‬ځً خڀٕ‪ ُ٥‬خألوپ ولبعدَ خألڄُ‪Create New‬‬

‫ڄه خڀٹدجمص خؼبىسؽٹص زدڀ‪١‬ٱ‪ ٣‬زدڀَّ خأليبه‪:‬‬

‫ٔعىُؾ ڀىد ودٴٍش ـًًَش ( ڄ‪ٙ‬دهبص ڀىدٴٍش خڀعمَُُ ) ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪325‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫خِن ‪٬‬ځُىد ب‪٠‬دٴص خڀع٭ځُمدض خڀالِڄص إل‪٥٬‬دء خدلربىپ ‪ IntT‬خڀٹُمص ‪ 1‬وڀٽه والل‪ ٧‬ؤن خؼبعمىپ ‪ٌ IntT‬ى ڄعمىپ ‪٬‬دڂ بٌن‪:‬‬

‫ب‪٠‬دٴص ڄُـ٭ُص ڀځمعمىپ ) ‪ ( Me‬ڄه والپ خڀع٭ځُمص‪ldarg.0.‬‬

‫يٴ‪ ٫‬خڀٹُمص ( ‪ ) 1‬بذل ٸمص خؼبٽًْ ڄه والپ خڀع٭ځُمص‪ldc.i4.1.‬‬

‫بٔىدي ٌٍي خڀٹُمص ڀځمعمىپ ‪ IntT‬ڄه والپ خڀع٭ځُمص ‪stfld.‬‬

‫خڀع٭ځُمص خألوذل‪:‬‬

‫خڀ‪ُٙ‬ق‬ ‫‪Operand Operand Type OpCode‬‬


‫ربمُٿ خؼبُـ٭ُص ‪0‬‬ ‫‪None‬‬ ‫‪None‬‬ ‫‪Ldarg.0‬‬

‫خڀع٭ځُمص خڀؽدوُص‪:‬‬

‫خڀ‪ُٙ‬ق‬ ‫‪Operand Operand Type OpCode‬‬


‫يٴ‪ ٫‬خڀٹُمص ‪ 1‬بذل ٸمص خؼبٽًْ‬ ‫‪None‬‬ ‫‪None Ldc.i4.1‬‬

‫خڀع٭ځُمص خڀؽدڀؽص‪:‬‬

‫خڀ‪ُٙ‬ق‬ ‫‪Operand‬‬ ‫‪Operand Type‬‬ ‫‪OpCode‬‬


‫بْودي خڀٹُمص يف خؼبٽًْ ڀځمعمىپ‪IntT‬‬ ‫‪intT Field reference‬‬ ‫‪Stfld‬‬

‫ڀعُټُر خڀع٭ځُمص خألوذل ‪ :‬ٴٹ‪ ٣‬وٽعر خڀع٭ځُمص‪ ldarg.0‬و و‪١‬ٱ‪ ٣‬خڀَّ‪Insert before Selection :‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪326‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ڀعُټُر خڀع٭ځُمص خڀؽدوُص ‪ :‬لبعدَ خڀع٭ځُمص خألوذل مث ‪ Create New‬ووٽعر خڀع٭ځُمص ‪ ldc.i4.1‬وو‪١‬ٱ‪ ٣‬خڀَّ ‪Insert before‬‬
‫‪Selection :‬‬

‫ڀعُټُر خڀع٭ځُمص خڀؽدڀؽص ‪ :‬لبعدَ خڀع٭ځُمص خڀؽدوُص ‪ create new‬وَعڃ خوعُدَ خغبٹىپ ټمد يف خڀ‪ٝ‬ىَش مث‪Insert after Selection :‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪327‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫خِن وٱًن خڀـ ‪ Assembly Name‬بذل ‪ Patched_2‬وكبٵ‪ ٧‬خؼبځٳ زدالٔڃ‪Patched_2 .‬‬

‫كبمٿ خؼبځٳ خعبًًَ يف خڀربودڄؿ ‪ Reflector‬ووعىـً بذل خإلـُخء ‪ MacroMe‬ڀىالل‪ ٧‬خڀعٱًنخض خڀيت ؤـَُىدٌد‪:‬‬

‫والل‪ ٧‬ؤوً مت بٔىدي خڀٹُمص ‪ 1‬ڀځمعمىپ ‪ IntT‬وزدڀعدرل زبځ‪ٝ‬ىد ڄه ب٘ٽدڀُدض ٌٍخ خؼبعمىپ هندجُدً‪.‬‬

‫و٭ىي ڄُش ؤوُي ڀإلـُخء ) ‪ ( BRVClick‬وكبدوپ زب‪ ٍ٥‬ؿبًويَص خالٔڃ خڀٵدَٮ‪ ،‬و‪٤‬ىپ خڀَُٕدپ ؤٸٿ ڄه ‪ 5‬لُوٲ‪:‬‬

‫ڄه خػب‪٥‬إ ٌىد ؤن و٭ٽٓ خڀٹٵّش ( ألوً يف ٌٍي خغبدڀص ٔع‪٩‬هُ َٔدڀص خػب‪٥‬إ بٌخ دل َٽه خالٔڃ ٴدَٰدً وخڀَُٕدپ ؤ‪٤‬ىپ ڄه ‪ 5‬لُوٲ )‬
‫ڀٍڀٻ ٔىىـً خڀٹٵّش بذل خڀٕ‪ ُ٥‬خڀعدرل وټإن خڀ‪ًٰ ٢ُٙ‬ن ڄىـىي ڄه والپ‪:‬‬

‫ظٱًُن خڀع٭ځُمص ‪٬ brfalse.s‬ىً خڀٕ‪ 20 ُ٥‬بذل خڀع٭ځُمص ‪ br.s‬وَعڃ ظىـًُ خپٸٵّ بذل خڀٕ‪ 27 ُ٥‬خڀعدرل ڀع٭ځُمص‪ret :‬‬

‫لبعدَ خڀٕ‪ 20 ُ٥‬مث ‪ Edit‬وكبَُ خػب‪ٝ‬دج‪ ٛ‬ټمد يف خڀ‪ٝ‬ىَش خڀعدڀُص‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪328‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫و‪ٙ‬دًٌ يف خڀ‪ٝ‬ىَش ؤن خڀربودڄؿ يبَُ خغبُوٲ خػبمٕص ڄه خڀَُٕدپ بذل خڀًخڀص‪FirstServ :‬‬

‫َعمٹٷ خڀربودڄؿ ٌٿ َِ خڀُخيَى ‪ٌ Standard Edition‬ى خؼبىعدَ؟‬

‫َعمٹٷ ڄه ؤوپ لُٴٌن خڀىدذبٌن ‪٬‬ه خڀًخڀص‪FirstServ :‬‬

‫بٌخ ټدوط ٸُمعهڃ ‪ُٔ 31‬مَُ خغبُٴٌن بذل خڀًخڀص ‪ SecondServ‬وَعدز‪.٫‬‬

‫ؤڄد بٌخ ٸُمعهڃ ‪ 41‬ٴُٕ‪٩‬هُ َٔدڀص خػب‪٥‬إ وىبُؾ ڄه خإلـُخء‪:‬‬

‫ټځمص وعدڄُص‪:‬‬

‫وعمىن ؤن ظٽىوىخ ٸً خٔعمع٭عڃ وخٔعٵًمت ڄه ٸُخءش ٌٍخ خڀًَْ‪ ،‬ووُـى ڄه خهلل ؤن َٽىن ‪٬‬مځىد ودڀ‪ٝ‬دً‬
‫ڀىـهً خڀٽُمي‪.‬‬

‫ټمد ٌټُود آوٵدً‪ :‬ڀه و٭ًُ ؤٌ ټځمص فبد ٌټُ يف ٌٍخ خڀًَْ‪ ,‬ؤُٹع‪ ُٝ‬لًَؽىد يف خڀًَوْ خؼبٹسځص ‪٬‬ځً‬
‫َئوْ خألٸالڂ ٴٹ‪٣‬؛ ڀٍخ وُـى ٸُخءش ٌٍخ خڀًَْ زعم٭هٍ وظًزُ‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪329‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫حتليل تطبيقات الدوت ىت (‪)3‬‬


‫)‪.Net Applications Analysis (3‬‬

‫خڀٵهُْ‪:‬‬

‫‪ )1‬تفعيل الشر ‪. Enable Me‬‬


‫‪ )2‬جتاوس ذزث الشر ‪. Enable Me‬‬
‫‪ )3‬جتاوس املزذلة ‪. Step 2‬‬
‫‪ )4‬جتاوس املزذلة ‪. Step 3‬‬
‫‪ )5‬جتاوس احلزث ‪. Timer‬‬
‫‪ )6‬إجيار الضزيال للكضه ‪. Serial Fishing‬‬
‫‪ )7‬عنل كيحً للكضه ‪ Advanced‬وشزح الـ ‪Brute Force‬‬

‫‪Reflector‬‬
‫‪Reflexil‬‬
‫‪Deblector‬‬

‫‪DotNet EXPERT 4.exe‬‬

‫‪ -‬بٌخ دل ظٹُؤ خعبّجٌن خڀٕدزٹٌن ٴىى‪ٝ‬مٻ زٹُخءهتمد ٸسٿ خڀسًء زٹُخءش ٌٍخ خڀًَْ ټٍ‬
‫ظٕعى‪٬‬ر خػب‪٥‬ىخض ز‪ٙ‬ٽٿ ـًُ‪.‬‬

‫‪٬ -‬ىًڄد وٹىڂ حبٵ‪ ٧‬خڀع٭ًَالض يف ڄځٳ ـًًَ َعڃ يف خػب‪٥‬ىش خڀعدڀُص ربمُٿ خؼبځٳ خعبًًَ‬
‫خؼب٭ًپ خڀٌٍ لٵ‪٩‬عً ڀځعى‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪330‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪Enable Me‬‬ ‫‪ .1‬أ‪ٚ‬الً‪ :‬تؿع‪ ٌٝ‬ايعض‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪331‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪Enable Me‬‬ ‫‪ .2‬ثاْ‪ٝ‬اً‪ :‬جتا‪ٚ‬ظ سسخ ايعض‬


‫ٌٍخ خڀَّ ڄٕاوپ ‪٬‬ه ب‪٨‬هدَ خؼبُز‪ ٫‬خڀى‪ ٍٝ‬وخڀَّ خػبد‪ ٚ‬زدؼبُلځص ‪ , Step2‬ؤىف٭ځً َ‪٩‬هُ خڀ٭ى‪َُٝ‬ه يف ټٿ خحلخالض‪ ،‬ووعفدوِ صبُ‪٫‬‬
‫خغبدالض خڀ‪ُ٤ُٙ‬ص‪ .‬ؤڄد ٴُمد َع٭ځٷ زدؼبعمىپ ‪ MasterID‬ٴٕى٭دعبً يف خغبًغ ‪ Timer‬اللٹدً‪ .‬ظدز‪ ٫‬خػب‪٥‬ىخض ‪:‬‬

‫خِن ٔىٹٵّ ڄسدُ٘ش بذل خڀٽىي خػبد‪ ٚ‬زة‪٨‬هدَ خڀ٭ى‪َُٝ‬ه ‪:‬‬

‫ٔىٕعىًڂ ظ٭ځُمص خڀٹٵّ ًٰن خڀ‪ُ٤ُٙ‬ص ‪ br.s‬ڀځعىـً بذل خڀٕ‪: 30 ُ٥‬‬

‫‪Step 2‬‬ ‫‪ .3‬ثايجاً‪ :‬جتا‪ٚ‬ظ املضسً‪١‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪332‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪٬‬ىً خڀًوىپ ڀإلـُخء خڀٕدزٷ والل‪ ٧‬ڄٹدَوص زٌن ودظؿ ربىَٿ ٸُمعىد خؼبًوځص بذل ‪ Hex‬ڄ‪ ٫‬خڀٹُمص (‪: ) AT4RE = 4154345245‬‬

‫يبٽه ٌىد خٔعىًخڂ ظ٭ځُمص ٸٵّ ًٰن ُ٘‪ُ٤‬ص ‪ br.s‬بذل خڀٕ‪ 38 ُ٥‬وڀٽىىد ٔىٕعىًڂ ‪َُ٤‬ٹص ؤوُي؛ لُػ ٔى‪ ٫١‬خؼبعمىپ ‪ Str‬زًپ خڀٹُمص‬
‫‪ ، 4154345245‬ٴع‪ٝ‬سك خؼبٹدَوص ‪ If Str = Str Then :‬وٌٍ ؿبٹٹص ‪٬‬ځً خڀًوخڂ‪.‬‬

‫الل‪ ٧‬خؼبعٱًن ‪ loc.1‬يبؽٿ خڀٹُمص ‪ Str‬وَعڃ خٔعً‪٬‬دءٌد زدألڄُ ‪: Ldloc.1‬‬

‫كبمٿ خؼبځٳ خڀٌٍ لٵ‪٩‬ىدٌد ووالل‪ ٧‬خڀعٱًُن ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪333‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪Step 3‬‬ ‫‪ .4‬ضابعاً‪ :‬جتا‪ٚ‬ظ املطسً‪١‬‬

‫ٌىد خؼبٹدَوص هتًٲ بذل ب‪٨‬هدَ خڀ٭سدَش ‪ Registered Version‬ٴٹ‪.٣‬‬

‫ټمد ظالل‪ : ٧‬هبر ؤن َٽىن خڀى‪ ٛ‬خؼبًوٿ خټرب ڄه ‪ 10‬ؤَٸدڂ ( ‪ ) 11‬وخؼبعمىپ ‪َٕ MasterID‬دوٌ ‪ ، 2‬و‪٬‬ىًٌد َعڃ ؤوٍ خحملُٲ‬
‫ٌو خڀعُظُر ( ‪ ) 3‬وهبر ؤن َٕدوٌ ( ‪ ،) 1‬و خحملُٲ ٌو خڀعُظُر ( ‪ ) 7‬وهبر ؤن َٕدوٌ ( ‪ ( ، ) 5‬بٌخ و‪٠‬٭ىدٌڃ ـدور ز٭‪١‬هڃ‬
‫َىعؿ ‪.) 15‬‬

‫خحلپ ‪:‬‬

‫ٔى‪ ٫١‬خڀٹُمص ( ‪ ) 1‬زًپ ( ‪ ... ) 2‬ؤىٱًن خؼبٕدوخش بذل ( ؤټرب ڄه ؤو َٕدوٌ )‪.‬‬

‫ٔىٕىً ٸُمص ڀځمُز‪ ٫‬خڀى‪ Txt3 ٍٝ‬سبؽٿ َُٔدپ ‪ٜ‬مُك وٌٍ [ ‪ ( ] 00100050000‬خڀ‪٥‬ىپ = ‪ - 11‬خڀؽدڀػ = ‪ – 1‬خڀٕدز‪5 = ٫‬‬
‫)‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪334‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫خِن بٔىدي ٸُمص ڀځمُز‪ ٫‬خڀى‪ ( Txt3 ٍٝ‬خؼبُـ٭ُص ( ‪ + ) Ldarg.0‬ربمُٿ خؼبُز‪ ٫‬خڀى‪ + ) Ldfld ( ٍٝ‬ربمُٿ خڀى‪+ ) LdStr ( ٛ‬‬
‫بٔىدي خڀى‪ ٛ‬ڀځمُز‪ ٫‬خڀى‪: ) Set_Text ( ٍٝ‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪335‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫خڀ‪ٙ‬ٽٿ خڀىهدجٍ ڀإل‪٠‬دٴدض ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪336‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ضبٿ خؼبځٳ خڀٌٍ لٵ‪٩‬عً و٘دًٌ خڀع٭ًَالض ‪:‬‬

‫‪Timer‬‬ ‫‪ .5‬خاَػاً‪ :‬جتا‪ٚ‬ظ اذتسخ‬


‫ؤٴ‪١‬ٿ خڀ‪ُ٥‬ٶ ڀځعإټً ڄه ‪٬‬مٿ خإلـُخءخض خڀٕدزٹص ز‪ٙ‬ٽٿ ‪ٜ‬مُك ٌٍ بڀٱدء يوَ خغبًغ ‪ Timer‬ڄه والپ ب‪٠‬دٴص خڀع٭ځُمص ‪ Ret‬بذل‬
‫زًخَص خألـُخء‪.‬‬

‫‪Serial Fishing‬‬ ‫‪ .6‬غازغاً‪ :‬إجياز ايػط‪ٜ‬اٍ يًكػِ‬


‫بٌخ ٴعمىد خغبًغ ‪ٔ Btn3Click‬ىفً ٔځٕځص ‪٤‬ىَځص ڄه خڀع٭ځُمدض‪ ،‬وٌٍ ال هتمىد‪ ،‬ٴمد َهمىد ٌٍ ٌٍي خألٔ‪:ُ٥‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪337‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ٌىد وبدوپ خڀربودڄؿ ؤوٍ لُوٲ خالٔڃ‪ ,‬وهبم‪ ٫‬ٸُمص ڄىخٸ٭هد يف خؼبعمىپ ( ‪ ) Str‬بٌنً هبر خالوعسدي بذل ؤن َٽىن خالٔڃ ؿبعىَدً ‪٬‬ځً‬
‫لُٲ وخلً ڄه خڀٕځٕځص ( ‪٬ ) Str‬ځً خألٸٿ؛ ألوً بٌ دل َٽه ؤلً لُوٲ خالٔڃ ڄىـىيخً يف خڀٕځٕځص ‪ Str‬ٴ٭ىًٌد ٔعُـ‪ ٫‬خڀًخڀص‬
‫‪ InStr‬خڀٹُمص ‪ 0‬وزبُؾ َٔدڀص خػب‪٥‬إ ‪:‬‬

‫ټمد ظالل‪ ٧‬يف خڀ‪ٝ‬ىَش ‪ :‬خپَُٔدپ خڀ‪ٝ‬مُك = خڀٹُمص خڀؽدزعص ( ‪ + ) D41543452452‬ٸُمص خؼبعمىپ ‪Str4‬‬

‫ڀىمځٿ خڀٹُمص خڀؽدزعص ‪:‬‬

‫‪Hex 41 54 34 52 45 D2‬‬
‫‪Ascii A T 4 R E -‬‬

‫بٌنً ‪ :‬خڀٽځمص خڀؽدزعص = ( ‪) AT4RE-‬‬

‫وخِن ڀىمدوپ بهبدي خڀَُٕدپ ڀالٔڃ ( ‪ ) Roben‬زدٔعىًخڂ خؼبىٹك ‪ Deblector‬وإلهبدي ٸُمص خؼبعمىپ ‪: Str4‬‬

‫كبمٿ خڀربودڄؿ زدؼبىٹك ټمد ظ٭ځمىد‪ ،‬وو‪ ٫١‬وٹ‪٥‬ص ظىٸٳ ‪٬‬ىً خڀٕ‪ , L_016b ُ٥‬مث وًوٿ خڀسُدودض يف خڀربودڄؿ؛ ڄؽالً ‪ :‬خالٔڃ ‪:‬‬
‫‪ ، Roben‬خڀَُٕدپ ‪ 123456789 :‬و‪١‬ٱ‪ ٣‬ز٭ًٌد ‪َ Check Serial‬عىٸٳ خؼبىٹك ‪٬‬ىً وٹ‪٥‬ص خڀعىٸٳ خڀٕدزٹص‪.‬‬

‫و‪ً٬ F10 ٣ٰٟ‬ش ڄُخض ووالل‪ ٧‬يف خڀځىلص ‪َ Auto‬ٸمىد خؼبًوٿ زدؽبٽٓ ‪:‬‬

‫‪313233343536373839 = 123456789‬‬

‫ڄ‪ ٫‬خڀَُٕدپ خڀ‪ٝ‬مُك ‪ +‬خڀٹُمص خڀؽدزعص ( زدؽبٽٓ ) ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪338‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪41543452452D7474‬‬

‫‪tt = 7474‬‬

‫بٌن خڀَُٕدپ خڀ‪ٝ‬مُك ڀالٔڃ ‪ٌ Roben‬ى ‪. AT4RE-tt :‬‬

‫‪Brute Force Attack‬‬ ‫‪ .7‬غابعاً‪ :‬عٌُ ن‪ٝ‬ذٔ يًكػِ ‪ٚ Advanced‬ؾطح ايـ‬

‫‪ .7.1‬زضاغ‪ ١‬ايه‪ٛ‬ز‬

‫ڀىع‪ٝ‬ٵك خڀٽىي خؼبىخٴٷ ڀځ‪١‬ٱ‪٬ ٣‬ځً خڀَّ ‪: ) OK ( Bt4Click‬‬

‫ټمد ظالل‪ ٧‬يف خڀ‪ٝ‬ىَش خڀعدڀُص ‪ :‬هبر ؤن َٽىن ‪٤‬ىپ خالٔڃ ‪ ، 12 :‬و‪٤‬ىپ خڀَُٕدپ ‪15 :‬‬

‫ز٭ًٌد َعڃ ؤوٍ ؤوپ ‪ 7‬لُوٲ ڄه خڀَُٕدپ وَعڃ ربىَځهد بذل ؤلُٲ ټسًنش ‪:‬‬

‫وَعڃ سبَُُ خأللُٲ خڀٕس٭ص خڀٕدزٹص بذل خڀًخڀص ‪٠ GX‬مه خڀىلًش ‪: GenR‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪339‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ٔىًوٿ خِن بذل خڀًخڀص ‪ GX‬وكبځٿ ڄد وبًغ ‪:‬‬

‫والل‪ ٧‬سبَُُ خأللُٲ خڀٕس٭ص خألوذل بذل ٌدُ٘ىٯ ‪: SHA1‬‬

‫هبر خالوعسدي ٌىد بذل ؤن ‪ٌ Buffer‬ى ڄ‪ٝ‬ٵىٴص ڄه خڀسدَعدض ظعُخوق ٸُمص ټٿ لً زٌن ( ‪ ) 255 – 000‬ؤٌ ټٿ لً ڄاڀٳ ڄه ‪3‬‬
‫ؤَٸدڂ‪ ،‬و ڀٽه يف خڀَُد‪ُ٠‬دض ‪ :‬خڀ‪ٝ‬ٵُ ‪٬‬ځً خڀُٕدَ ڄهمٿ ( ڄؽالً ‪.) 004 = 4 , 078 = 78 :‬‬

‫خڀٕ‪ ُ٥‬خڀعدرل َٹىڂ جبم‪ ٫‬لًوي خؼب‪ٝ‬ٵىٴص ‪ Buffer‬وَٵ‪ٝ‬ٿ زُىهد زىخٔ‪٥‬ص خڀ‪٤ُٙ‬ص ( ‪( -‬وَ٭ًُ ودظؿ خڀ٭مځُص ‪٬‬ځً ٘ٽٿ و‪: ٛ‬‬

‫ڄدٌخ ُٔمًغ ڀىدظؿ سبَُُ خغبُوٲ خڀٕس٭ص خألوذل ڄه خڀَُٕدپ بذل خڀًخڀص ‪ GX‬؟ ُٔعڃ سبٌَُُد ڀځًخڀص ‪: MX‬‬

‫ڄدٌخ ربىٌ ٌٍي خڀًخڀص؟ وٌٍر ؽبد ووالل‪ ٧‬ؤهند يخڀص ڄٹدَوص ڄ‪ ٫‬خڀٹُمص ‪ StrM‬خؼبىـىيش يف ‪: cctor‬‬

‫خػبال‪ٜ‬ص ؼبد ٔسٷ ‪:‬‬

‫يٴ‪ ٫‬خغبُوٲ خڀٕس٭ص خألوذل ڄه خڀَُٕدپ ؽبدُ٘ىٯ ‪َ SHA1‬ىعؿ ٔځٕځص و‪ُٝ‬ص َٵ‪ٝ‬ٿ زٌن لًويٌد خپُ٘‪٤‬ص ( ‪) -‬‬

‫(ټٿ لً ڄاڀٳ ڄه ‪ 3‬ؤَٸدڂ وخأل‪ٜ‬ٵدَ ٸٍ زًخَص ټٿ لً ربٍٲ)‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪340‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ظٹدَن خڀٕځٕځص خڀىدذبص ڄ‪ ٫‬خڀٕځٕځص خڀى‪ُٝ‬ص ( ‪) StrM‬‬

‫‪ -‬ڀى٭ًُ ‪ُٜ‬دٰص ‪ StrM‬حبٍٲ خڀ‪٤ُٙ‬دض وب‪٠‬دٴص خأل‪ٜ‬ٵدَ ڀځمًوي خڀىدٸ‪ٝ‬ص ‪:‬‬

‫‪StrM‬‬ ‫‪42‬‬ ‫‪188‬‬ ‫‪186‬‬ ‫‪87‬‬ ‫‪233‬‬ ‫‪121‬‬ ‫‪71‬‬ ‫‪98‬‬ ‫‪89‬‬ ‫‪137‬‬ ‫‪97‬‬ ‫‪189‬‬ ‫‪95‬‬ ‫‪81‬‬ ‫‪67‬‬ ‫‪144‬‬ ‫‪126‬‬ ‫‪237‬‬ ‫‪155‬‬ ‫‪44‬‬

‫‪Repair‬‬ ‫‪042‬‬ ‫‪188‬‬ ‫‪186‬‬ ‫‪087‬‬ ‫‪233‬‬ ‫‪121‬‬ ‫‪071‬‬ ‫‪098‬‬ ‫‪089‬‬ ‫‪137‬‬ ‫‪097‬‬ ‫‪189‬‬ ‫‪095‬‬ ‫‪081‬‬ ‫‪067‬‬ ‫‪144‬‬ ‫‪126‬‬ ‫‪237‬‬ ‫‪155‬‬ ‫‪044‬‬

‫‪RESULT‬‬ ‫‪042188186087233121071098089137097189095081067144126237155044‬‬

‫‪ -‬وڀٽه ټمد و٭ځڃ ٴةن خپـ ‪ SHA1‬ظىعؿ ٸُمص ڄه خڀىى‪ Hex ٪‬بٌنً ڀىمىپ ‪ Result‬بذل ‪ Hex‬ڄه والپ ‪: SnD RT‬‬

‫بٌخً ‪ :‬خؼب٭ځىڄدض خڀيت زٌن ًََىد خِن ‪:‬‬

‫خغبُوٲ خڀٕس٭ص خألوذل ڄه خڀَُٕدپ ربىپ بذل ؤلُٲ ټسًنش‪.‬‬

‫َ٭مٿ ؽبد ٌدُ٘ىٯ ‪. SHA1‬‬

‫ودظؿ خؽبدُ٘ىٯ ڀځمُوٲ خڀٕس٭ص خألوذل ٌى‪abcba57e9794762598961bd5f5143907eed9b2c 2 :‬‬

‫خڀٕاخپ خؼب‪ُ٥‬وق ٌى ‪ :‬ڄد ٌٍ خغبُوٲ خڀٕس٭ص خڀٽسًنش خڀيت ٌد٘هد زـ ‪ٌ SHA1‬ى ‪ ..… abcba2 :‬؟‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪341‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫لٹُٹص ڀإلـدزص ‪٬‬ه ٌٍخ خڀٕاخپ َځّڄىد خٔعىًخڂ ظٹىُدض خڀـ ‪ ) Brute Force Attack ( BFA‬ؤو ڄد َ٭ُٲ زدٔڃ خؽبفىڂ خڀ٭‪ٙ‬ىخجٍ‬
‫‪.‬‬

‫و َ٭ين ٌىد ‪ :‬ذبَُر صبُ‪ ٫‬خڀٽځمدض خؼباڀٵص ڄه ‪ 7‬لُوٲ و‪٬‬مٿ ٌدُ٘ىٯ ‪ SHA1‬ؽبد‪ ،‬وڄٹدَوص خڀىدظؿ ڄ‪ ٫‬خؽبدٖ خڀٌٍ ڀًَىد‪.‬‬

‫‪ SHA .7.2‬بط‪ٚ‬ت ؾ‪ٛ‬ضغ‪ٓٝ‬ؼ‬

‫ٔىٕعىًڂ ڀ٭مٿ ‪َُ٤ BFA‬ٹعٌن ‪:‬‬

‫)‪.‬‬ ‫خڀ‪َُ٥‬ٹص خألوذل ‪ :‬خٔعىًخڂ زُودڄؿ ‪ ( Cain‬ذبًي يف ٌٍخ خڀُخز‪٣‬‬

‫خڀ‪َُ٥‬ٹص خڀؽدوُص ‪ :‬خٔعىًخڂ زُودڄؿ ‪ ( Shabr‬ڄُٴٷ ڄ‪ ٫‬خڀًَْ )‪.‬‬

‫‪ .7.2.1‬ايطط‪ٜ‬ك‪ ١‬األ‪ٚ‬ىل ‪ :‬اغتدساّ بطْاَر ‪Cain‬‬

‫ايطط‪ٜ‬ك‪ ١‬اٍعاز‪١ٜ‬‬
‫‪ -‬وٵعك زُودڄؿ ‪ Cain‬ووعىـً بذل خڀ‪ٝ‬ٵمص ( ‪: ) Cracker‬‬

‫‪ -‬لبعدَ ڄه خڀٹدجمص خڀُُٕي خؽبدٖ ‪: SHA1‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪342‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ -‬مث و‪١‬ٱ‪ ٣‬يف ؤلً خغبٹىپ خڀٵدَٰص ٴعٵ٭ٿ خڀَّ ( ‪: ) +‬‬

‫‪٩َ -‬هُ ڀىد ڄُز‪ ٫‬لىخٌَ وًوٿ ‪٠‬مىً خؽبدٖ خڀٌٍ ڀًَىد ‪:‬‬

‫‪abcba57e9794762598961bd5f5143907eed9b2c 2‬‬

‫‪ -‬ٴًَُؾ خؽبدٖ خڀٌٍ ڀًَىد ‪٠‬مه خڀٹدجمص‪ ،‬خِن و‪١‬ٱ‪ ٣‬زَّ خڀٵإَش خأليبه ولبعدَ ‪: Brute Force Attack‬‬

‫‪ -‬ىبُؾ ڀىد مبىٌـدً ـًًَخً‪ ،‬و٭ٌن خڀٹُڃ يف خڀىمىٌؾ ټدڀعدرل ‪:‬‬

‫‪ : Min‬يبؽٿ ؤ‪ٜ‬ٱُ ‪٤‬ىپ ڀځٽځمص خؼبُخي خڀسمػ ‪٬‬ىهد ) ټىن خڀٽځمص ڀًَىد ڄاڀٵص ڄه ‪ 7‬لُوٲ بٌن ‪ٔ :‬ىف٭ځهد ‪. ( 7‬‬

‫‪ : Max‬يبؽٿ ؤټرب ‪٤‬ىپ ڀځٽځمص خؼبُخي خڀسمػ ‪٬‬ىهد ) ټىن خڀٽځمص ڀًَىد ڄاڀٵص ڄه ‪ 7‬لُوٲ بٌن ‪ٔ :‬ىف٭ځهد ؤَ‪١‬دً ‪. ( 7‬‬

‫‪ : Charset‬يبؽٿ ٔځٕځص خحملدَٲ خڀيت ربعىَهد ټځمعىد ‪:‬‬

‫‪ -‬ټىن ټځمعىد ظُمىپ بذل ؤلُٲ ټسًنش ‪ :‬ٴهٍ بڄد ؤلُٲ ټسًنش ٴٹ‪ ٣‬ؤو ؤلُٲ ټسًنش وؤَٸدڂ ؤو ؤلُٲ ټسًنش وؤَٸدڂ وَڄىِ‪.‬‬

‫‪ -‬ؤىسًؤ خؽبفىڂ زداللعمدپ خألٸٿ ( ؤلُٲ ټسًنش ٴٹ‪ ( ٣‬وبٌخ دل َٵځك وىعٹٿ بذل خاللعمدپ خڀؽدين ٴدڀؽدڀػ ‪.‬‬

‫‪َٕ : Custom‬عىًڂ بٌخ ټىط ‪٬‬ځً ‪٬‬ځڃ دبد ٸً ظعٽىن ڄىً خڀٽځمص‪ ،‬ؤو بٌخ ؤَيض زبمٌن ز٭‪ ٟ‬خڀٽځمدض؛ ڄؽالً‪:‬‬

‫(‪ ) AT4REROBENDOTNETEXPERT4‬وبٌخ قبك زبمُىٻ ٴٕع‪ٝ‬ٿ بذل خڀٽځمص خڀ‪ٝ‬مُمص زُٕ‪٬‬ص ‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪343‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ -‬وڀٽىىد ٔى٭عمً ؤوالً خؼبسًؤ خڀعٹځًٌُ ألوً خألمشٿ‪ ،‬ٸڃ دبٿء خغبٹىپ ټمد يف خڀ‪ٝ‬ىَش ‪:‬‬

‫‪َ -‬سًؤ خڀ٭مٿ ‪:‬‬

‫‪ -‬هبر خالوعسدي بذل ؤن ڄ٭ًپ خڀُٕ‪٬‬ص وخڀىٸط خؼبعسٹٍ ىبعځٳ ڄه ـهدِ بذل آوُ لٕر ڄىخ‪ٜ‬ٵدض ټٿ ـهدِ‪.‬‬

‫‪ -‬ز٭ً ڄ‪ ٍ١‬لىخرل ( ‪ 30‬يٸُٹص ) مت خټع‪ٙ‬دٲ خڀٽځمص خؼبٹدزځص ڀځهدٖ خؼبًوٿ‪ ،‬وٌٍ ( ‪: ) ROBENET‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪344‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫طط‪ٜ‬ك‪ ١‬ايتدُني ‪:‬‬


‫‪ -‬ؤٰځٷ خڀىمىٌؾ خڀٕدزٷ وخ‪٠‬ٱ‪٬ ٣‬ځً خؽبدٖ خؼبًوٿ وخلٍٴً زدڀ‪١‬ٱ‪٬ ٣‬ځً َِ خڀٕځص ‪:‬‬

‫‪ -‬ؤ‪ ً٬‬بيودپ خؽبدٖ ټمد ٴ٭ځىد ڄٕسٹدً مث َِ خڀُمٌن وخوعُ ‪ Brute Force Attack‬وخڀٵُٶ خڀىلًُ ٌىد ؤوىد ٔىٽعر خڀٕځٕځص‬
‫(‪ ) AT4REROBENDOTNETEXPERT4‬يف خغبٹٿ ‪ Custom‬ټمد يف خڀ‪ٝ‬ىَش مث ‪: Start‬‬

‫‪ -‬والل‪ ٧‬خټع‪ٙ‬دٲ خڀٽځمص زُٕ‪٬‬ص وؤن خؼبًش ٸً ظٹځ‪ٝ‬ط خؼبًش بذل ( ‪ 3‬ؼىخنٍ ) ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪345‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ .7.2.2‬ايطط‪ٜ‬ك‪ ١‬ايجاْ‪ : ١ٝ‬اغتدساّ بطْاَر ‪Shabr‬‬

‫و‪ٙ‬ٱٿ خؼبځٳ خڀًٴ٭ٍ ‪ RunMe.Bat‬ووٽعر خألڄُ خڀعدرل ( ‪ ) Shabr‬مث ‪ Enter‬ڀځع٭ُٲ ‪٬‬ځً زدَخڄُعُخض خڀربودڄؿ و‪َُ٤‬ٹص خٔعىًخڄً‬
‫‪:‬‬

‫خټعر ٔ‪ ُ٥‬خألوخڄُ خڀعدرل مث خ‪٠‬ٱ‪( Enter ٣‬بٌخ ټدن ـهدِٺ ڄعىخ‪٠‬٭دً ٸځٿ خڀـ ‪ t‬ڄؽالً ‪ :‬بذل ‪ 2‬ؤو ‪: )4‬‬

‫‪Shabr 2abcba57e9794762598961bd5f5143907eed9b2c –c UpperAlpha –t 8 –m 7‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪346‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫والل‪ ٧‬زًء خڀ٭مٿ ‪:‬‬

‫ز٭ً ڄ‪ ٍ١‬لىخرل ( ‪ 600‬ؼدوُص لىخرل ‪ 10‬يٸدجٷ ( وـً خڀربودڄؿ خڀٽځمص خؽبًٲ وٌٍ ‪: ROBENET‬‬

‫ظ٭ځُٷ‪:‬‬

‫خٔعٱُٶ ‪ Shabr‬ؼځػ خؼبًش خڀيت خٔعٱُٸهد ‪ ( Cain‬وڀٽه خٔعىًخڄً ڀٍخټُش خعبهدِ ؤټرب )‪.‬‬
‫خٔعٱُٸط ‪َُ٤‬ٹص خڀعىمٌن ‪ 3‬ؼىخنٍ ٴٹ‪ ,٣‬وڀٽه ٌٍخ خألڄُ ال َىفك يخجمدً‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪347‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫بٌنً خغبُوٲ خڀٕس٭ص خألوذل ڄه خڀَُٕدپ ٌٍ ( ‪.) ROBENET‬‬

‫وىعٹٿ خِن بذل خڀٕ‪ ُ٥‬خڀعدرل ڄه خغبًغ ‪:Bt4Click‬‬

‫والل‪ ٧‬سبَُُ خالٔڃ خؼبًوٿ بذل خڀًخڀص ‪: G3X‬‬

‫ڀىًوٿ بذل خڀًخڀص وڀىُي ڄدٌخ َٵ٭ٿ زدالٔڃ؟ ( ال ل‪ ٧‬خڀ‪ُٙ‬ق ‪٬‬ځً خڀ‪ٝ‬ىَش ) ‪:‬‬

‫بٌخ يوځىد بذل خڀًخڀص ‪ٔ G2X‬ىفًٌد وٵٓ ظٹىُص خڀعمىَٿ خڀيت ظٽځمىد ‪٬‬ځُهد ٔدزٹدً ( ڄ‪ٝ‬ٵىٴص َٵ‪ٝ‬ٿ زُىهد ُ٘‪٤‬دض ) وڀٽه زًون ٌدُ٘ىٯ‬
‫‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪348‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ڀىمىپ ‪ Str4‬ټمد ظ٭ځمىد ( لٍٲ خڀ‪٤ُٙ‬دض وب‪٠‬دٴص خأل‪ٜ‬ٵدَ ) َىعؿ ڀىد ‪:‬‬
‫‪050069054069054053055052052053055056055048051052050068053057054053055051052 055054070052068054049054069‬‬

‫كبىپ خڀٹُمص خڀٕدزٹص بذل ‪ String‬زدٔعىًخڂ ‪: SnD RT‬‬

‫خڀٹُمص خڀىدذبص ٌٍ ‪E6E6574457870342D596573476F4D616E2 :‬‬

‫ال ل‪ ٧‬ؤن خڀٹٕڃ خؼب٭ځڃ زدألضبُ ٌى ‪Str3= 596573476F4D616E :‬‬

‫بٌن خڀٹٕڃ خؼب٭ځڃ زدألَِٶ ٌى خغبُوٲ خڀعٕ٭ص خألوذل ڄه خالٔڃ خؼب٭ُٲ ‪Str5 = 2E6E6574457870342D :‬‬

‫وٌى َٹدزٿ زدڀــ ‪: ASCII‬‬

‫‪)Str5(Hex E2 E6 65 74 45 78 70 34 D2‬‬
‫‪ASCII‬‬ ‫‪.‬‬ ‫‪n‬‬ ‫‪e‬‬ ‫‪t‬‬ ‫‪E‬‬ ‫‪x‬‬ ‫‪p‬‬ ‫‪4‬‬ ‫‪-‬‬
‫‪Result‬‬ ‫‪.netExp4-‬‬

‫خػبال‪ٜ‬ص ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪349‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫خالٔڃ خؼب٭ُٲ ڄٽىن ڄه ‪ -netExp4. :‬ڄ‪١‬دٲ بڀُهد ؤٌ ‪ 3‬ؤَٸدڂ ( ڄؽدپ ‪.) netExp4- 001 …. .netExp-478. :‬‬

‫خغبُوٲ خڀٕس٭ص خألوذل ڄه خڀَُٕدپ ٌٍ ‪. ROBENET :‬‬

‫ڀىعدز‪ ٫‬يف خڀٕ‪ ُ٥‬خڀعدرل ڀإلـُخء ‪: Bt4Click‬‬

‫َعڃ ؤوٍ خغبُوٲ خڀؽمدوُص خألوًنش ڄه خڀَُٕدپ ڀعمَُ ڀځًخڀص ‪: G4X‬‬

‫ڀىًوٿ بذل خڀًخڀص ‪ G4X‬وڀى‪ٙ‬دًٌ ڄد ظٵ٭ځً زدغبُوٲ خڀؽمدوُص خألوًنش ڄه خڀَُٕدپ ( الل‪ ٧‬خڀ‪ُٙ‬ق ‪٬‬ځً خڀ‪ٝ‬ىَش خڀعدڀُص ) ‪:‬‬

‫خجملمى‪ ٪‬هبر ؤن َٽىن ‪ 24‬ٴمد ٴىٶ‪.‬‬

‫هبر خالوعسدي ٌىد بذل ؤن خڀًخڀص ‪ StrIn‬ظ٭ًُ ڄىٸ‪ ٫‬ؤوپ ‪٬‬ى‪ ُٝ‬ڄ‪٥‬دزٷ ( يف لدپ ټدن ٌىدٺ ؤټؽُ ڄه ‪٬‬ى‪ ُٝ‬ڄ‪٥‬دزٷ ڄؽٿ ‪.) 0,1,9,7 :‬‬

‫والل‪ ٧‬خڀ٭ىد‪ ُٜ‬خؼبٽىوص ڀـ ‪: Str‬‬

‫‪ : 0‬ڄىٸ٭ً = ‪1‬‬
‫‪ : 1‬ڄىٸ٭ً = ‪4‬‬
‫‪ : 7‬ڄىٸ٭ً = ‪11‬‬
‫‪ : 8‬ڄىٸ٭ً = ‪2‬‬
‫‪ : 9‬ڄىٸ٭ً = ‪3‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪350‬‬
AT4RE :‫انفريك انعرتي نههُذسح انعكسيح‬ ™‫انذود َد‬ .‫ خطىج إنى األياو‬:‫انهُذسح انعكسيح‬

.) 1789 ( ‫ٽٿ خغبُوٲ خػبمٕص خألوذل ڄه‬ٙ‫ ؤى‬،ً‫ٱُ ٸُمع‬ٝ‫ٵُ ڀ‬ٝ‫بٌن ٔىٕعس٭ً خڀ‬

.) 8 : ‫ خڀٹُمص‬: ً‫ٱُ ٸُمص ( ڄؽال‬ٜ‫عسدَود ظٽُخَ ؤ‬٬‫ زد‬٫١‫ىخجٍ هبر ؤن و‬ٙ٬ ‫ٽٿ‬ٙ‫بٌخ ؤَيود ظىڀًُ خڀُٸڃ ز‬
. 88899179 :‫ وڄؽٿ‬،)9 , 1, 7 ( ‫ ټسًن؛ ڄؽٿ‬٫‫يف خغبُوٲ خڀؽالؼص خڀسدٸُص ٔىمعدؾ ؤَٸدڄدً ٌخض ڄىٸ‬

ٔ‫ذ‬ٝ‫ ايه‬١‫ نتاب‬.7.3

: ٍ‫ځً ڄد َځ‬٬ ‫ٔىمدوپ ټعدزص خڀٽُفه ڄ٭عمًَه‬

.) ‫ ( ؤٌ ؼالؼص ؤَٸدڂ‬+ ) -netExp4. ( ‫خالٔڃ ڄاڀٳ ڄه‬

.) 179 ‫ (ؼالؼص ؤَٸدڂ ڄاڀٵص ڄه خألَٸدڂ‬+ ) 1789 ‫ ( طبٓ ؤَٸدڂ ڄاڀٵص ڄه خألَٸدڂ‬+ ) ROBENET ( ‫خڀَُٕدپ ڄاڀٳ ڄه‬

: ‫ٔىٕعىًڂ يڀٵٍ ڀٽعدزص خڀٻهبه‬

: ‫ وخټعر خڀٽىي خڀعدرل‬،) BtnGen ( ‫ وَِخً زدٔڃ‬،) TXTN – TXTS ( ‫ زدٔڃ‬ٛ‫دء ڄُز٭ٍ و‬ٙ‫ ٸڃ زةو‬-
Function RandomX( IntIn: Integer ): String;
Const
StrArry1 : Array [0..3]Of String = ('1','7','8','9');
StrArry2 : Array [0..2]Of String = ('1','7','9');
StrArry3 : Array [0..9]Of String =('0','1','2','3','4','5','6','7','8','9');
Var Str: String; I : Integer;
begin
Str:= '';
Randomize;
if InTIn = 5 Then
begin For I:= 1 To 5 Do
Begin
Str := Str + StrArry1[Random(4)];
End;
Result := Str;
End
Else If InTIn = 31 Then
begin For I:= 1 To 3 Do
Begin
Str := Str + StrArry3[Random(9)];
End;
Result := Str;
End
Else If InTIn = 32 Then
begin For I:= 1 To 3 Do
Begin
Str := Str + StrArry2[Random(2)];
End;
Result := Str;
End;
End;

procedure TForm1.BtnGenClick(Sender: TObject);


begin

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ 2009 351
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫;)‪TXTN.text := '.netExp4-' + RandomX(31‬‬


‫;)‪TXTS.text := 'ROBENET' + RandomX(5) + RandomX(32‬‬
‫;‪end‬‬

‫يف خغبٹُٹص لدوڀىد خوع‪ٝ‬دَ خڀٽىي ؤټؽُ ( ز‪ ٢ُٙ‬ظىڀًُ ٸُمص ‪ٙ٬‬ىخجُص )‪ ،‬وڀٽىىد دل وعى‪ٜ‬ٿ بذل ‪َُ٤‬ٹص ؤٸ‪ ُٝ‬ڄه ٌڀٻ‪.‬‬
‫ڄه ڀًًَ ‪َُ٤‬ٹص ؤٸ‪ ُٝ‬ڄه ٌڀٻ ٴځُ‪ٙ‬دَټىد هبد ڀىعىدٸٗ لىؽبد ‪.‬‬

‫ټځمص وعدڄُص ‪:‬‬

‫‪ -‬وعمىن ؤن ظٽىوىخ ٸً خٔعمع٭عڃ وخٔعٵًمت ڄه ٸُخءش ٌٍخ خڀًَْ‪ ،‬ووُـى ڄه خهلل ظ٭دذل ؤن هب٭ځً ودڀ‪ٝ‬دً‬
‫ڀىـهً خڀٽُمي ‪.‬‬

‫‪ -‬بٌخ ټدن ڀًَٽڃ ؤٌ خٔعٵٕدَخض ؤو ؤٔحځص وُـى ‪ُ٤‬لهد حبَُص‪ ،‬ؤىٕ٭ً زدإلـدزص ‪٬‬ىهد‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪352‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫أمثلة تطبيقية لكسر برامج دوت نت‬


‫‪.Net RCE Examples‬‬

‫ُٔٽىن ٌٍخ خڀًَْ دبؽدزص ظ‪٥‬سُٷ ‪٬‬مځٍ ؼبد ظ٭ځمعً ٔدزٹدً ‪٬‬ه ربځُٿ زُخڄؿ خڀًوض وط‪ ،‬وڀىسًؤ ‪٬‬ځً زُټص خهلل ‪:‬‬

‫‪Serial-fishing in DotNet Targets‬‬ ‫‪ .1‬إجياز ايػط‪ٜ‬اٍ يتطب‪ٝ‬كات ايس‪ٚ‬ت ْت ‪:‬‬


‫ٔىٹًڂ ٌىد ‪٠ُ٬‬دً َُٔ٭دً ڀعىٹُك زُؾبُدض خڀًوض وط هبًٲ بهبدي خڀَُٕدپ زدٔعىًخڂ خإل‪٠‬دٴص خؼبمُّش ڀربودڄؿ ‪ Reflector‬وخڀيت ظً‪ً٬‬‬
‫‪. Deblector‬‬

‫‪Reflector‬‬
‫‪Deblector‬‬

‫‪Comm Operator‬‬

‫كبمٿ خڀربودڄؿ يخوٿ زُودڄؿ ‪ Reflector‬مث وىعٹٿ بذل خڀ٭ٹًش ‪ CommOp‬وع‪ٝ‬ٵك خڀ٭ىدوَه‪ُٔ ,‬فٍذ و‪ُ٩‬ود ڄسدُ٘ش خڀ٭ىىخن ‪:‬‬
‫‪ RegisterForm‬وًوٿ بڀًُ ووع‪ٝ‬ٵك خإلـُخءخض زًخوځً‪ ،‬قبً ؤظبدء خإلـُخءخض ڄ‪ٙ‬ى٘ص‪ ,‬ال زإْ وع‪ٝ‬ٵمهد زدڀعُظُر‪ ,‬وَعىٸٵىد ٌٍخ‬
‫خإلـُخء ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪353‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫وٌى ميؼٿ خإلـُخء خؼبٕعىًڂ ‪٬‬ىً خڀ‪١‬ٱ‪٬ ٣‬ځً خڀَّ ‪ Register‬ووُي َٔدڀص خڀعٕفُٿ خڀ‪ٝ‬مُك ؤَدڀص خػب‪٥‬إ ‪:‬‬

‫يبٽه بهبدي خڀَُٕدپ ؽبٍخ خڀربودڄؿ زععس‪ ٫‬خإلـُخءخض خؼبٕعىًڄص‪ ،‬وڀٽه ٌٍخ ڀُٓ ًٌٲ‬
‫خڀًَْ‪٬ ,‬ځً خڀ٭مىڂ ٔىٹًڂ ‪٠ُ٬‬دً َُٔ٭دً ؽبٍي خڀ‪َُ٥‬ٹص يف هندَص خڀ‪ُٙ‬ق‪.‬‬

‫كبمٿ خإل‪٠‬دٴص ‪ Deblector‬ڄه خڀٹدجمص ‪ Tools‬وخڀيت ٔعٹىڂ زًوَ خؼبىٹك يف زُؾبُدض خڀًوض وط ‪:‬‬

‫‪٨‬هُ ڀىد َُ٘‪ ٣‬خأليوخض خػبد‪ ٚ‬زدؼبىٹك يف خأل‪٬‬ځً‪ ,‬وڀىلدض خڀربودڄؿ يف خعبّء خڀٕٵځٍ ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪354‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫و‪٥‬ىخض ‪٬‬مٿ خؼبىٹك ‪:‬‬

‫‪ )1‬ظ‪ٙ‬ٱُٿ خڀربودڄؿ خؼبُخي ظىٹُمً‪.‬‬

‫‪٠ )2‬ٱ‪٬ ٣‬ځً َِ ‪ Attach‬وخوعُدَ خڀربودڄؿ‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪355‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ )3‬و‪ ٫٠‬وٹ‪٥‬ص ظىٸٳ ‪٬‬ىً ظ٭ځُمص ڄ٭ُىص ڀععس‪ًٔ ٫‬ن خڀ٭مځُص ( هبر خالوعسدي بذل ؤن خؼبىٹك هبر ؤن َٽىن يف لدڀص ظىٸٳ ڄاٸط‬
‫ڀععمٽه ڄه و‪ ٫٠‬وٹ‪٥‬ص ظىٸٳ‪ ،‬ويبٽه خڀ‪١‬ٱ‪٬ ٣‬ځً َِ خڀعىٸٳ خؼباٸط ‪ Pause‬ڀى‪ ٫٠‬وٹ‪٥‬ص ظىٸٳ ؤؼىدء ظ‪ٙ‬ٱُٿ خڀربودڄؿ )‪.‬‬

‫يف ڄؽدڀىد ٔى‪ ٫١‬وٹ‪ ٣‬ظىٸٳ ‪٬‬ىً زًخَص بـُخء خڀ‪١‬ٱ‪٬ ٣‬ځً خڀَّ ‪٬ Register‬ىً خڀٕ‪ L0000 ُ٥‬زى‪ ٫٠‬خؼباُ٘ يف خڀځىلص ‪ IL View‬مث‬
‫خڀ‪١‬ٱ‪٬ ٣‬ځً َِ وٹ‪٥‬ص خڀعىٸٳ ؤو خڀ‪١‬ٱ‪٬ ٣‬ځً خؼبٵعدق ‪: F9‬‬

‫‪ -‬خِن و‪٥‬ځٷ خؼبىٹك زدڀ‪١‬ٱ‪٬ ٣‬ځً ) ‪ F7 ( Start‬ووًوٿ َٸڃ ظٕفُٿ ڄ٭ٌن‪ ،‬وڀُٽه ‪ 1234567890‬مث و‪١‬ٱ‪٬ ٣‬ځً َِ خڀعٕفُٿ‬
‫‪.Register‬‬

‫‪َ -‬عىٸٳ خؼبىٹك ‪٬‬ىً خڀٕ‪ L0000 ُ٥‬ڀألٔٳ ‪ Deblector‬ڄىٹك ظٵعٹُ بذل خؼبُووص‪ ،‬وٌىدڀٻ ـىخور وٹ‪ ٛ‬ټؽًنش ٴًُ‪ ،‬وٌٍخ ؤڄُ ‪٤‬سُ٭ٍ‬
‫ٴهى ڄد َّخپ يف ‪٤‬ىَ خڀع‪٥‬ىَُ‪.‬‬

‫‪ -‬خ‪٠‬ٱ‪٬ ٣‬ځً ‪ F11‬ؤټؽُ ڄه ڄُش ڀځًوىپ ‪٠‬مه خالٔعً‪٬‬دء خڀٌٍ ظًَُي‪ ،‬ټمد يبٽىٻ خٔعىًخڂ خألڄُ ‪ Step Out‬ڀځىُوؾ خڀَُٕ‪ ٫‬ڄه‬
‫خإلـُخء خغبدرل‪.‬‬

‫‪َ -‬٭عرب ب‪٠‬دٴص وٹ‪ ٣‬ظىٸٳ ڄًَؤص ‪٬‬دڄالً ڄهمدً يف ظىٹُك ـًُ ويٸُٷ ڀځربودڄؿ‪ ،‬وَس٭ًٺ ‪٬‬ه خڀًوىپ يف ‪ُٙ٬‬خض خألٔ‪ ُ٥‬ڄه خڀٽىي‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪356‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ -‬ز٭ً ظىٸٳ خؼبىٹك ‪٬‬ىً خڀٕ‪ L0000 ُ٥‬و‪١‬ٱ‪ً٬ F11 ٣‬ي ڄه خؼبُخض‪ ،‬وًوٿ ز٭ًٌد بذل بـُخء ٴُ‪ًٰ ( ٍ٬‬ن ٌدڂ زدڀىٕسص ڀىد )‪ ,‬خٔعىًڂ‬
‫خِن خڀَّ ‪ Step Out‬ڀځىُوؾ ڄه خإلـُخء خغبدرل‪ٔ ،‬عًوٿ يف بـُخء ـًًَ ؤَ‪١‬دً ًٰن ڄهڃ ٌىد‪ ،‬خ‪٠‬ٱ‪ Step Out ٣‬ڄُش ؤوُي‪ ,‬خٴ٭ٿ‬
‫ٌڀٻ ڄُش ؤوُي‪ ،‬و‪٬‬ىًٌد ٔى٭ىي بذل بـُخءود خڀُجٍُٕ‪.‬‬

‫‪ -‬خِن ؤ‪٠‬ٱ‪٬ ٣‬ځً ‪ F11‬ؤعفً وٵٕٻ ٌىد ‪:‬‬

‫‪ -‬ټمد ظالل‪َ ٧‬ٹىڂ خڀربودڄؿ دبٹدَوص خڀٽىي خؼبًوٿ ‪ Code‬ڄ‪ ٫‬ڄ‪ٝ‬ٵىٴص ڄه خڀٹُڃ‪ ،‬ويف لدپ خڀع‪٥‬دزٷ َ٭ًُ خڀٹُمص ‪ ، True‬ڀىفُذ‬
‫بلًي خڀٹُڃ‪ ،‬وڀُٽه ‪:‬‬

‫‪ALODH-74NXF-J02I9-3AUOQ-9QE5S‬‬
‫والل‪ ٧‬ؤن خڀربودڄؿ ٸسِٿ خڀُٸڃ وؤ‪ٜ‬سك ڄٕفالً زدڀٽدڄٿ ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪357‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ -‬لٹُٹص ڄد ؤ‪٬‬فسىد ٌى خڀَُٕدپ ‪َ ILoveSPT :‬سًو ؤن ڄربؾبىد َعڃظ‪ ٫‬حبٓ خڀٵٽدٌص ‪:‬‬

‫يف اخلراو ‪:‬‬


‫ٌټُود يف خؼبٹًڄص ؤن خڀَُٕدپ يبٽه بهبديي زٕهىڀص زدظسد‪ ٪‬خڀ‪١‬ٱ‪٬ ٣‬ځً خإلـُخءخض وخڀًخڀص‬
‫ڀځى‪ٜ‬ىپ بذل خڀ‪ٝ‬ٵمص خڀيت وـًودٌد ڄه والپ خؼبىٹك ( وڀٽه ټدن خؽبًٲ خڀع٭ُٲ ‪٬‬ځً‬
‫خؼبىٹك وټُٵُص خڀع٭دڄٿ ڄ٭ً )‪.‬‬
‫‪ -‬خظس‪ ٫‬خڀ‪ٝ‬ىَ خڀعدڀُص زدڀىٹُ لٕر خڀٕهڃ ‪:‬‬

‫‪Patching DotNet Targets‬‬ ‫‪ .2‬ايباتؿ‪ٓٝ‬ؼ يف تطب‪ٝ‬كات ايس‪ٚ‬ت ْت ‪:‬‬


‫ٔىٹىڂ ٌىد ز‪ُٙ‬ق ‪٬‬مٿ زدظ‪ُٙ‬ىٯ زُٕ‪ ٣‬أللً ظ‪٥‬سُٹدض خڀًوض وط ڄه والپ ربځُٿ خڀٽىي زربودڄؿ ‪Reflector‬‬

‫‪Reflector ‬‬
‫‪Reflexil V 0.9 ( Reflector ‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪358‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪Advanced PDF Protector, Version 1.1‬‬

‫و‪ٙ‬ٱٿ خڀربودڄؿ ووعٵم‪ ًٝ‬ؼب٭ُٴص ؿبًويَص خڀربودڄؿ‪.‬‬

‫خ‪٠‬ٱ‪ ٣‬خڀَّ ( ‪ ) Add pdf File‬وخوعُ ڄځٵدً حبُػ َٽىن لفمً ؤټؽُ ڄه ‪ 100‬ټُځىزدَط‪٬ ،‬ىًٌد ًٔنٴ‪ ٟ‬خڀربودڄؿ بيَخؾ خؼبځٳ‬
‫ؤُىربٺ زإن خڀىٕىص خڀعفَُسُص ؿبًويش زـ ‪ 100‬ټُځىزدَط ٴٹ‪: ٣‬‬

‫وى‪٥‬ځٷ خِن بذل زُودڄؿ ‪ Reflector‬ووٕٹ‪ ٣‬خؼبځٳ زًخوځً ( خڀربودڄؿ ڄُٴٷ )‪ ،‬لبعدَ خؼبځٳ مث و‪١‬ٱ‪٬ ٣‬ځً ؤڄُ خڀسمػ‪ ،‬ولبعدَ خڀَّ‬
‫‪ Search Strings‬ووًوٿ خڀٽځمص ‪ Trial‬خؼبىـىيش يف خڀُٔدڀص ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪359‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫وـً ڀىد خڀربودڄؿ ‪٬‬ى‪َُٝ‬ه وبعىَدن ‪٬‬ځً خڀٽځمص ‪ Trial‬خڀيت ظٵًُ زإن خڀىٕىص ذبَُسُص‪ ،‬ڀىًوٿ بذل خڀ٭ى‪m ُٝ‬‬

‫مث و‪١‬ٱ‪ ٣‬ز‪ٙ‬ٽٿ ڄّيوؾ ‪٬‬ځً ‪٩ُٔ m: void‬هُ ڀىد خڀٽىي ټدڀعدرل ‪:‬‬

‫بٌخ ٸُؤض خڀٽىي ـًُخً ٔعالل‪ ٧‬ؤن ٸُمص خؼبعٱًن ( ‪ ٌٍ ) L‬ڄه ربًي ؤن خڀىٕىص ذبَُسُص ؤڂ ال؟‬

‫ال ل‪ٌ ٧‬ىد‪ :‬بٌخ ټدوط ٸُمص ‪ L = True‬ٴدڀربودڄؿ وٕىص ذبَُسُص‪ ،‬ؤڄد بٌخ ټدوط ‪ L= False‬ٴدڀربودڄؿ وٕىص ڄٕفځص‪.‬‬

‫ڀى‪١‬ٱ‪٬ ٣‬ځً خؼبعٱًن ‪ L‬ؼب٭ُٴص ؤَه ظٕعىً ڀً خڀٹُمص‪ ،‬ز٭ً خڀ‪١‬ٱ‪ ٣‬وىٹُ زَّ خڀٵإَش خأليبه ولبعدَ خألڄُ ‪: Analyze‬‬

‫لبعدَ ڄه خڀځىلص ‪ Analyze‬خڀ٭ٹًش ‪ Used By‬ڀىععس‪ ٫‬وڀى٭ُٲ ؤَه َٕعىًڂ خؼبعمىپ؟ وؤَه ظٕعىً ڀً خڀٹُمص ‪ True or False‬؟‬

‫خوعُ خألوپ ‪ B.Ctor‬زدڀ‪١‬ٱ‪٬ ٣‬ځًُ زَّ خڀٵإَش خأليبه وخوعُ ڄه خڀٹدجمص ‪. Goto to member‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪360‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫لځُٿ ‪ ،‬وپن‬
‫ڀرشٌ دلًَِ ڄه خپض‬
‫يف خحلٶٌٶش ي ٌ خ خإلؾَخء ي و ڂٸ‪ٛ‬ي ود‪ ،‬و ميټىٻ خال‪٢‬ال ‪٬ ٪‬ٿي خ ٶ‬
‫نيوٿ بڀًُ خ قظً ال ٌ‪٤‬ىپ خڀَٗق‪.‬‬

‫‪٬‬ىً خڀًوىپ ڀإلـُخء ٔعالل‪ ٧‬ټُٳ َعڃ بٔىدي ٸُمص خدلربىپ ‪ L‬زىدء ‪٬‬ځً ُ٘‪ ٢‬ڄٕسٷ ‪:‬‬

‫َٽٵُىد ‪٬‬ٽٓ خعبمځص خڀ‪ُ٤ُٙ‬ص ڀُ‪ٝ‬سك خڀربودڄؿ ڄٕفالً زدڀٽدڄٿ‪ ،‬ؤىٕعىًڂ ٌىد خأليخش خؼبٕد‪ً٬‬ش ‪ Reflexil‬وٌٍ بلًي ب‪٠‬دٴدض‬
‫خڀربودڄؿ ‪ ، Reflector‬وٵعك خإل‪٠‬دٴص ڄه خڀٹدجمص ‪: Tools‬‬

‫َ٭رب ‪٬‬ه خڀ‪ ٢ُٙ‬خڀٕدزٷ زدڀځٱص خڀىُٔ‪٥‬ص ( ‪ ) IL‬زدإلـُخء ‪ brtrue.s‬وخڀٌٍ َ٭ين زُؾبُدً ‪:‬‬

‫‪If ….. Then‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪361‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪True‬‬
‫‪Else‬‬
‫‪False‬‬
‫وڀ٭ٽًٕ هبر خٔعىًخڂ خإلـُخء ‪ brfalse.s‬وَ٭ين زُؾبُدً ‪:‬‬

‫‪If … then False else True‬‬

‫ٔعفً خإلـُخء ‪ brtrue.s‬يف خڀٕ‪ 011 ُ٥‬و‪١‬ٱ‪٬ ٣‬ځًُ زدڀَّ خأليبه ولبعدَ خألڄُ ‪: Edit‬‬

‫لبعدَ ڄه خڀٹدجمص خؼبهًٔڀص ‪ OpCode‬مث لبعدَ خإلـُخء ‪ brfalse.s‬مث و‪١‬ٱ‪: Update ٣‬‬

‫خِن ٔىىعٹٿ بذل لٵ‪ ٧‬خڀعٱًنخض ڄه والپ خوعُدَ خڀربودڄؿ ڄه خڀٹدجمص خڀُمىن مث خوعُدَ خألڄُ ‪ Save as‬ڄه ڀىلص خإل‪٠‬دٴص ‪:‬‬

‫ڀىفُذ خؼبځٳ خؼب٭ًپ خِن ‪ AdvancedPdfProtector.Patched.exe‬ؤىىعدَ ڄځٳ ‪ Pdf‬لفمً ؤٺزُ ڄه ‪ 100‬ټُځى ( دل‬
‫ظ٭ً ظ‪٩‬هُ خڀُٔدڀص ) قبُذ ؤَ‪١‬دً خألڄُ ‪ ( Protect Pdf File‬مت خڀ٭مٿ زىفدق ) ‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪362‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ٺپڄص ؤ وًنش ‪:‬‬

‫الق‪٨‬ىد يف خڀربودڄؿ ؤن ؤظبدء خڀ‪ُ٥‬ٶ وخإلـُخءخض وخؼبعٱًنخض فبىٌص ( ‪ ) a,b , .. L, K‬وٌٍخ ألن خڀربودڄؿ ؿبمٍ زىخٔ‪٥‬ص زُودڄؿ خڀع‪ٙ‬ىَٗ‬
‫( ‪. ) dotfuscator‬‬

‫‪Keygenning DotNet Targets‬‬ ‫‪ .3‬عٌُ ن‪ٝ‬ذٔ يتطب‪ٝ‬كات ايس‪ٚ‬ت ْت (‪) 1‬‬


‫ٔىٹىڂ يف ٌٍخ خڀًَْ ز٭مٿ ټُفه أللً ظ‪٥‬سُٹدض خڀًوض وط ڄه والپ ٸُخءش خڀٽىي يف زُودڄؿ ‪ Reflector‬مث ٔىٹىڂ زٽعدزً ټُفه‬
‫ڀځربودڄؿ زدٔعىًخڂ ڀٱص يڀٵٍ‪.‬‬

‫‪Reflector ‬‬
‫‪Delphi 7‬‬ ‫‪‬‬

‫‪Autoppt Charts + Keygen src‬‬

‫ڀىٵعك خڀربودڄؿ زدٔعىًخڂ زُودڄؿ ‪ Reflector‬مث وًوٿ بذل خؼبځٳ ووعٵك ‪ ٚ‬خڀربودڄؿ‪.‬‬

‫خيوٿ بذل خڀ٭ٹًش ‪ AutoPPt Graph‬ؤعفً خإلـُخء ‪ lnRegs_Click‬خ‪٠‬ٱ‪٬ ٣‬ځًُ وڀىععس‪ ٫‬ڄد وبًغ ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪363‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ټمد ظالل‪ٌ ٧‬ىدٺ ڄٹدَوص زٌن َٸمٌن ووعُفص خؼبٹدَوص ربًي ٴُمد بٌخ ټدن خڀعٕفُٿ ‪ٜ‬مُمدً ؤڂ ال؟‬

‫بٌن خؼبٹدَوص ظعڃ زٌن خؼبعٱًنَه ‪ txtLic‬و ‪ TheRight‬وڀٽه ڄد نبد ٌٍخن خؼبعمىالن؟‬

‫الل‪ ٧‬يف خڀځىلص خڀُٕدََص ٌىدٺ خإلـُخء ‪ CreateReg‬وٌى ڄؽًن ڀالٌعمدڂ ڀىًوٿ ووُي ڄد وبعىًَ ‪:‬‬

‫ټمد ظالل‪َ ٧‬ٹىڂ ٌٍخ خإلـُخء حبٕدذ خڀُٸڃ خؼب٭ُٲ ڀځفهدِ ڄه والپ خڀًخڀص ‪ Random‬وَ‪ٙ‬ٽٿ ڄٵعدقخً ڄ٭ُٴدً ‪٬‬ځً خڀ‪ٙ‬ٽٿ ‪:‬‬
‫( الل‪ ٧‬خڀٕ‪) str ُ٥‬‬ ‫‪XXXX-XXXX-XXXX‬‬

‫ز٭ً ٌڀٻ ٌٸىڂ زعىَّه ٌٍي خڀٹُمص يف خڀُهبٕعٌُ يف خؼبٵعدق خڀٵُ‪: RegKey ٍ٬‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪364‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫بٌن ڄد ٌٍ ٸُمص خؼبعٱًن ‪ TheRight‬؟‬

‫ڀى‪١‬ٱ‪٬ ٣‬ځً خؼبعٱًن ‪ TheRight‬ڄه خإلـُخء ‪ lnRegs_Click‬ووُخٸر ټُٳ َعڃ لٕدذ ٌٍخ خؼبعٱًن ‪:‬‬

‫ڀىًٸٷ ڄ٭دً يف ٔځٕځص لٕدذ خڀَُٕدپ خؼبٹدزٿ ڄه خڀُٸڃ خؼب٭ُٲ ‪:‬‬

‫‪َ )1‬اوٍ خڀُٸڃ خؼب٭ُٲ ‪ RegKey‬وظّخپ ڄىً خڀ‪٤ُٙ‬ص ( ‪ ) -‬ووبىپ بذل ڄ‪ٝ‬ٵىٴص ڄه ؼالؼص لًوي يف لدڀعىد‪:‬‬

‫‪ 4812-2871-18963‬ٴدغبً خألوپ ( ‪ ) 4812‬خغبً خڀؽدين ( ‪ ) 2871‬خغبً خڀؽدڀػ ( ‪)18963‬‬

‫‪ )2‬ذبُي خڀ٭مځُص خغبٕدزُص خڀعدڀُص ‪٬‬ځً ټٿ لً مث ظُظر جبدور ز٭‪١‬هد ‪:‬‬

‫)‪[ Part1 Div ( 4e (Hex) = 78 (Decimal) ] + 25(Hex) = 37(Decimal‬‬

‫ڀى‪٥‬سٷ ‪٬‬ځً خغبًوي خڀؽالؼص ڄ‪ ٫‬خالوعسدي بذل ؤوً خڀُٸڃ خڀ‪ٝ‬مُك ٴٹ‪ ( ٣‬الل‪: ) as integer ٧‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪365‬‬
AT4RE :‫انفريك انعرتي نههُذسح انعكسيح‬ ™‫انذود َد‬ .‫ خطىج إنى األياو‬:‫انهُذسح انعكسيح‬

Part1 : (4812 / 78) + 37 = 61 + 37 = 98


Part2 : (2871/78) + 37 = 73
Part3 : (18963 / 78) + 37 = 280
Serial = Part 1 & Part 2 & Part3 = 9873280

.‫ َٸمىد خؼبًوٿ‬٫‫ وٌى َٹدَن ڄ‬،‫مُك‬ٝ‫ يبؽٿ خڀُٸڃ خڀ‬TheRight ‫بٌن‬

: ‫ٽٿ خڀعدرل‬ٙ‫يبٽه ټعدزص خػبىخَِڄُص خڀٕدزٹص زًڀٵٍ زدڀ‬


Function GetSerial ( ID : String ) : String;
Var Part1,temp, Part2 ,Part3 ,Serial :String; I,K :Integer;
Begin
part1:= Copy(ID,1,pos('-',ID)-1);
Temp:=Copy(ID,pos('-',ID)+1, Length(Id));
Part2:= Copy( Temp, 1,pos('-',Temp)-1);
Part3:= Copy( Temp, pos('-',Temp)+1, length ( Temp ));

//-----------------------------------------------------

Part1:= IntToStr(( StrToInt(Part1) Div 78 ) + 37 );


Part2:= IntToStr(( StrToInt(Part2) Div 78 ) + 37 );
Part3:= IntToStr(( StrToInt(Part3) Div 78 ) + 37 );

//----------------------------------------------------

Serial := Part1 + Part2 + Part3 ;


Result:= Serial;
end;

Keygenning DotNet Targets ) 2( ٘‫إقالس‬ٚ ‫ز‬ٛ‫ت ْت َٔ ر الٍ ْػذ ايه‬ٚ‫كات ايس‬ٝ‫ذٔ يتطب‬ٝ‫ عٌُ ن‬.4
.‫ بذل خڀځٱص خڀربؾبُص خڀيت لبعدٌَد‬OpCode ‫ ڄُّش ڄهمص ڄه والپ ربىَٿ خڀٽىي ڄه‬Reflector ‫َىٴُ ڀىد زُودڄؿ‬

‫مه زُحص خڀربؾبص‬٠ ً‫ٹ‬ٝ‫سُٹدض خڀًوض وط ڄه والپ وٕه خڀٽىي وڀ‬٥‫َُٹص ټعدزص ټُفه أللً ظ‬٤ ‫ٔىمدوپ والپ ٌٍخ خڀًَْ ُ٘ق‬
. ‫خؼبىخٴٹص ڀځٽىي خؼبىٕىن‬

Reflector 
Reflexil 
SharpDevelop 

Doc Tray

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ 2009 366
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪٬ -‬ىً ظ‪ٙ‬ٱُٿ خڀربودڄؿ ظ‪٩‬هُ ڀىد َٔدڀص ظٵًُ زإن ‪ٜ‬اللُص خڀىٕىص ٸً خوعهط‪ ،‬وَسًو ؤن خؼبربڄؿ ٸَُ ؤن ظ٭مٿ خڀىٕىص لىت ظدََه ڄ٭ٌن ‪:‬‬

‫‪ -‬ڀىسًؤ زعمځُٿ خڀٽىي ڄه والپ زُودڄؿ ‪ٔ , Reflector‬ىًوٿ يف ڄُز‪ ٫‬خڀسمػ خڀٽځمص ‪ expired‬ڀىُي ؤَه مت خٔعىًخڄهد؟ ( ال ظىٓ‬
‫خوعُدَ خڀَّ ‪: ) Strings Search‬‬

‫‪ -‬وًوٿ بذل خإلـُخء ‪ Form1_Load‬ؤىالل‪ ٧‬ؤن خؼبربڄؿ لًي ‪٬‬مٿ خڀىٕىص ٸسٿ ‪٬‬دڂ ‪ٔ 79D (hex)= 2009‬ىٹىڂ زدٔعىًخڂ‬
‫خإل‪٠‬دٴص ‪ Reflexil‬ڀعٱًُن خڀ٭دڂ بذل ‪ 2020‬ڄؽالً‪.‬‬

‫‪ -‬وٵعك خإل‪٠‬دٴص ووى‪ ُ٩‬يف ‪ Operand‬وقبً خڀٹُمص ‪٬ 2009‬ىً خڀٕ‪: 054 ُ٥‬‬

‫‪ -‬و‪١‬ٱ‪٬ ٣‬ځً خڀٹُمص زدڀُمٌن ولبعدَ خألڄُ ‪ Edit‬مث كبَُ خڀٹُمص بذل ‪ 2020‬ڄؽالً وو‪١‬ٱ‪: Update ٣‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪367‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ -‬كبٵ‪ ٧‬خؼبځٳ زدڀ‪١‬ٱ‪٬ ٣‬ځً خٔڃ خؼبځٳ زدأل‪٬‬ځً مث ‪: Save as‬‬

‫‪ُٔ -‬مٵ‪ ٧‬زدالٔڃ ‪ DocTray.Patched.exe :‬يف وٵٓ ڄٕدَ خڀربودڄؿ‪.‬‬

‫‪ -‬وٱځٷ خؼبځٳ خڀٹًمي ‪ ,‬زدوعُدَي مث خڀَّ خأليبه مث ‪ , Close‬وكبمٿ خؼبځٳ خؼب٭ًپ ‪. DocTray.Patched.exe :‬‬

‫‪ -‬و‪ٙ‬ٱٿ خؼبځٳ خؼب٭ًپ‪ ،‬ووالل‪ ٧‬ؤن خڀُٔدڀص خوعٵط وؤن خڀربودڄؿ و‪ ٫٠‬جبىخَ خڀٕد‪٬‬ص‪ ،‬وإيت خِن ڀ٭مځُص ظٕفُٿ خڀربودڄؿ‪ ،‬لبعدَ ڄه‬
‫خڀٹدجمص خألڄُ ‪: Register Doc Tray‬‬

‫ڄ٭ُٲڀځفهدِ‪ ،‬بٌن ٴدڀَُٕدپ ال َىٵ‪ٌ ٫‬ىد وكبه حبدـص ڀٽُفه‪.‬‬


‫‪ -‬والل‪ ٧‬ؤن خڀربودڄؿ ىبعدَ َٸمدً خً‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪368‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ُ -‬نيوٿ ؤٌ َٸڃ ظٕفُٿ وڀُٽه ‪ 1234567890‬يف خغبٹٿ ‪ Unlock Code‬مث و‪١‬ٱ‪ Register ٣‬و‪٬‬ىًٌد ٔع‪٩‬هُ خڀُٔدڀص ‪:‬‬
‫‪Invalid Registration Code‬‬

‫‪ -‬كبدوپ خڀسمػ ‪٬‬ه خڀٽځمص ‪ Registration‬ووًوٿ بذل خإلـُخء ‪: Butto2_Click‬‬

‫‪ -‬والل‪ ٧‬وـىي ڄٹدَوص زٌن َٸمىد خؼبًوٿ وخڀُٸڃ ‪: syscode3‬‬

‫‪ -‬و‪١‬ٱ‪٬ ٣‬ځً ‪ syscode3‬ڀىسمػ ‪٬‬ه ڄُـ٭ُعً وڄٽدن خٔعىًخڂي ( َإوٍ خألڄُ ز٭‪ ٟ‬خڀىٸط‪ ،‬ټه ‪ٜ‬سىَخً!! )‬

‫‪ -‬ز٭ً ‪٨‬هىَي لبعُ ‪ Analyze‬مث يف خڀځىلص ‪ Analyze‬لبعُ خڀ٭ٹًش ‪: Used By‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪369‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ -‬خغبًغ خألوپ ال َهمىد ( ألوىد ټىد زًخوځً ٸسٿ ٸځُٿ )‪ ،‬خغبًغ خڀؽدين ٌى خؼبهڃ ‪ Form1_Load‬ڀىًوٿ بڀًُ زدڀ‪١‬ٱ‪ ٣‬زدڀَّ خأليبه مث‬
‫‪٬‬ځً ‪ Goto To Member‬ووع‪ٝ‬ٵك خڀٽىي ( ڄالل‪٩‬ص ‪ :‬وى‪ ٪‬ڀٱص خڀربؾبص ‪.) Visual Basic‬‬

‫‪ -‬والل‪ ٧‬وـىي خڀٽىي خؼبٕاوپ ‪٬‬ه ظىڀًُ خڀُٸڃ ‪ٌ syscode3‬ىد ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪370‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ٔ -‬ىمځٿ خڀٽىي ٸځُالً مث ٔىىعٹٿ بذل ربىَځً ڀٽُفه ‪:‬‬

‫‪Dim num2 As Integer‬‬


‫تحصيم اسى انًستخذو نهجهاص ‪//‬‬
‫‪Me.regdata = Environment.UserName‬‬
‫هم اسى انًستخذو يؤنف يٍ ‪ 3‬حشوف أو اقم؟ ‪//‬‬
‫‪If (Strings.Len(Me.regdata) <= 3) Then‬‬
‫إرٌ حصم اسى انكًبيىتش ‪//‬‬
‫‪Me.regdata = Dns.GetHostName‬‬
‫‪End If‬‬
‫هم ياصانت انقيًة أقم يٍ ‪ 4‬حشوف؟ ‪//‬‬
‫‪If (Strings.Len(Me.regdata) <= 3) Then‬‬
‫إرٌ أضف اسى انًستخذو نهقيًة نسابقة ‪//‬‬
‫)‪Me.regdata = (Me.regdata & "+" & Environment.UserName‬‬
‫‪End If‬‬
‫هم ‪-‬سغى رنك‪ -‬ياصانت انقيًة أقم يٍ ‪ 4‬حشوف؟ ‪//‬‬
‫‪If (Strings.Len(Me.regdata) <= 3) Then‬‬
‫إرٌ كشس انقيًة يشتيٍ ‪//‬‬
‫)‪Me.regdata = (Me.regdata & "+" & Me.regdata‬‬
‫‪End If‬‬
‫‪If (Me.syscode3 = 0) Then‬‬
‫إسُاد طىل انقيًة انسابقة نهًتحىل ‪//‬‬
‫)‪num2 = Strings.Len(Me.regdata‬‬
‫‪Me.syscode3 = 0‬‬
‫‪Dim num5 As Integer = num2‬‬
‫‪Dim i As Integer = 1‬‬
‫انشقى هُا يًثم طىل انقيًة ‪//‬‬
‫)‪Do While (i <= num5‬‬
‫أخز يا يقابم كم حشف بانعششي ‪//‬‬
‫))‪Dim num3 As Integer = Strings.Asc(Strings.Mid(Me.regdata,i,1‬‬
‫ضشب انعذاد بـ ‪ 1872‬ثى ضشب انُاتج بـ انعششي انسابق وجًع قيى انحهقة يع بعضها ‪//‬‬
‫))‪Me.syscode3 = (Me.syscode3 + ((&H750 * i) * num3‬‬
‫‪i += 1‬‬
‫‪Loop‬‬
‫‪End If‬‬

‫‪ -‬ڀىُي ڄد هبر ‪٬‬ځُىد ظٱًني يف خڀٽىي ( ڀٱص خڀربؾبص ‪ٔ – Visual Basic .net‬ىٕعىًڂ خڀربودڄؿ ‪ SharpDevelop‬ڀٽعدزص خڀٽُفه‬
‫)‪:‬‬

‫‪ )1‬لٍٲ ( ‪ ) Me.‬ڄه ټٿ خؼبعٱًنخض‪.‬‬

‫‪ )2‬خڀع‪َُٝ‬ك ‪٬‬ه خؼبعمىپ ‪ regdata‬ټمعمىپ و‪.) String ( ٍٝ‬‬

‫‪ )3‬خڀع‪َُٝ‬ك ‪٬‬ه خؼبعمىپ ‪ syscode3‬ټمعمىپ َٸمٍ ( ‪.) Integer‬‬

‫‪ )4‬ظٱًُن ‪ Dns.GetHostName‬بذل ‪.(Environment.MachineName).ToLower‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪371‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انذود َد™‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ -‬ٴُ‪ٝ‬سك ټىي خڀٽُفه ټدڀعدرل ‪:‬‬

‫‪ -‬قبُذ خڀٽُفه ‪:‬‬

‫‪ -‬ڄسدَٺ!! ٌد ٌى َ٭مٿ زىفدق ټمد ظ‪ٙ‬دًٌ‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪372‬‬
‫الباب السادس‪ :‬حتليل تطبيقات اجلوال‬

‫‪373‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ انجىال‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫كسر تطبيقات اجلوال (‪)1‬‬


‫)‪S60 Reversing (1‬‬

‫‪َ .1‬كسَ‪١‬‬
‫َ٭عرب ‪٬‬ددل ټُٕ ظ‪٥‬سُٹدض خعبىخپ ـًًَ نٔسُدً ڄٹدَوص زٽُٕ زُخڄؿ خڀٽمسُىظُ‪ ،‬ڀٍڀٻ ٔعالل‪ ٧‬خوعالٴدً زٌن خأليوخض خؼبٕعىًڄص ڀٽُٕ‬
‫زُودڄؿ ټمسُىظُ ڄ‪ ٫‬خأليوخض خؼبٕعىًڄص ڀٽُٕ ظ‪٥‬سُٷ خعبىخپ‪.‬‬

‫وڀځسًء يف ٌٍخ خؼبى‪٠‬ى‪ ٪‬وى‪ٝ‬مٻ زٹُخءش ٌٍخ خؼبٹدپ‪ ،‬وٌى ڄه ؤلٕه ڄد ټعر يف ټُٕ ظ‪٥‬سُٹدض خعبُٿ خڀؽدين ڄه خعبىخپ‪.‬‬

‫ؤَ‪١‬د كبر ؤن نوىي بذل ؤن ٌىدٺ ٴُٸدً ټسًنخً زٌن ټُٕ ظ‪٥‬سُٹدض خعبُٿ خڀؽدين وزٌن ټُٕ ظ‪٥‬سُٹدض خعبُٿ خڀؽدڀػ وخڀـ ‪. Pocket PC‬‬
‫ؤعالل‪ٌ ٧‬ڀٻ ‪٬‬ىً خڀى‪ٜ‬ىپ بذل ٌٍي خعبّجُص يف خڀٽعدذ بن ٘دء خهلل‪ .‬ؤڄد خِن ٴىمه ٔىع٭دڄٿ ڄ‪ ٫‬خعبُٿ خڀؽدين‪.‬‬

‫زُودڄؿ ‪ IDA v5.2.0.908‬ويبٽىٻ ربمُځً ڄه هيا‬


‫زُودڄؿ ‪ Ultra RscEditor‬ذبًي ڄ‪ ٫‬خؼبُٴٹدض‬
‫زُودڄؿ ‪ UnMakeSIS v0.21‬ذبًي ڄ‪ ٫‬خؼبُٴٹدض‬

‫‪ ,RingTone Studio v1.41‬زُودڄؿ ود‪ ٚ‬زدڀع٭ًٌپ ‪٬‬ځً وٱمدض خڀـ ‪Mid‬‬


‫خؼبىـىيش يف خعبهدِ وو‪ ٫٠‬ڄاؼُخض ‪٬‬ځًُ خ‬

‫ؤىٲ َٽىن ًٔن خڀ‪ُٙ‬ق ‪٬‬ځً ٌٍخ خڀعُظُر ‪:‬‬

‫‪ )1‬ربٌٕن ٸًَخض زُودڄؿ ‪ IDA‬و‪٠‬س‪ ٣‬ب‪ً٬‬خيخظً ڀععالءڂ ڄ‪ ٫‬ڄ٭دعبدض ‪ ARM‬وٌٍ خػبد‪ٜ‬ص زدعبىخالض‪.‬‬

‫‪ )2‬خٔعٱالپ خؼب٭ځىڄدض خڀيت ٔىم‪ٝ‬ٿ ‪٬‬ځُهد ڄه ڄځٳ خڀَُٕىَْ خدلوـىي ڄ‪ ٫‬خڀربودڄؿ ڀعمًًَ خؼبٽدن خڀ‪ٝ‬مُك ڀځهفىڂ ‪٬‬ځًُ‪.‬‬

‫‪ )3‬خٔع٭مدپ زُودڄؿ ‪ IDA‬ڀعمځُٿ خڀربودڄؿ خڀ‪١‬مُص‪.‬‬

‫‪ )4‬خٔع٭مدپ ؤٌ ؿبَُ ٌٽٓ ڀځع٭ًَٿ ‪٬‬ځً خڀربودڄؿ ولٵ‪ ٧‬خڀعٱًنخض‪.‬‬

‫‪IDA pro‬‬ ‫‪ .2‬ارتط‪ ٠ٛ‬األ‪ٚ‬ىل ‪ :‬حتػني قسضات‬

‫‪.‬‬ ‫ؤوالً ‪٬‬ځُٻ ربمُٿ ڄځٵدض خڀـ ‪ IDS‬ڄه ٌىد‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪374‬‬


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ انجىال‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫مث خٔعسًخپ خڀـ ‪ IDS‬خؼبىـىي يف زُودڄؿ ‪ ، IDA‬ولىت ال وبًغ و‪٥‬إ خٸُؤ ڄځٳ خڀـ ‪ readme.txt‬خؼبىـىي ڄ٭هڃ ڀعع٭ُٲ ‪٬‬ځً‬
‫خؼبٽدن خڀ‪ٝ‬مُك خڀٌٍ هبر و‪٠‬٭هڃ ٴًُ ڄ‪ ٫‬خڀربودڄؿ‪.‬‬

‫ؼدوُدً ٔىٹىڂ ز‪١‬س‪ ٣‬ب‪ً٬‬خيخض زُودڄؿ ‪ IDA‬ټمد َځٍ ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪375‬‬


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ انجىال‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ .3‬ارتط‪ ٠ٛ‬ايجاْ‪ : ١ٝ‬اغتهؿاف ايدلْاَر‬


‫ٔىٹىڂ ؤوالً دب٭ُٴص ڄدٌُص خڀـ ‪ Limitations‬خؼبىـىيش يف خڀربودڄؿ؟‬

‫ٌٍ ضبدَص ِڄىُص‪٬ ،‬ىً ٴعك خڀربودڄؿ زبربٺ زإن خڀربودڄؿ ذبَُيب ؼبًش ‪ 3‬ؤَدڂ مث ظىعهٍ خؼبًش خڀعفَُسُص‪ ،‬وظ‪٩‬هُ ڀىد َٔدڀص ڄّ‪٬‬فص ظ‪٥‬دڀر‬
‫زعٕفُٿ خڀربودڄؿ‪ ،‬وال يبٽه ظ‪ٙ‬ٱُٿ خڀربودڄؿ ز٭ً ٌڀٻ بال ز٭ً خڀعٕفُٿ ‪:‬‬

‫ؤَ‪١‬دً َىـً ضبدَص ؤوُي ‪٬‬ځً خڀربودڄؿ ‪٬‬ىً ‪٬‬مٿ ‪ Save‬لُػ ؤوً ال َٹىڂ حبٵ‪ ٧‬ؤٌ ڄځٳ ـًًَ بال يف خڀىٕىص خؼبٕفځص‪.‬‬

‫خِن ٔىٲ وٹىڂ زدوعُدَ ‪ Register application‬ؤىمدوپ ظٕفُٿ خڀربودڄؿ زإٌ َٸڃ ڀٽٍ كب‪ٝ‬ٿ ‪٬‬ځً َٔدڀص خػب‪٥‬إ‪ ،‬وخڀيت ڄه‬
‫والؽبد ُٔمٽىىد ڄهدصبص خڀربودڄؿ ‪:‬‬

‫ٔعالل‪ ٧‬ؤوً ٸً ؤ‪٨‬هُ َٔدڀص ‪ٜ‬ىظُص مث ‪٬‬دي بذل وٵٓ خڀىدٴٍش خؼبّ‪٬‬فص خڀٕدزٹص‪.‬‬

‫وٹىڂ خِن زدڀ٭ىيش بذل خعبهدِ وؿبدوڀص ٴٻ ڄځٳ خڀـ ‪ SIS‬خػبد‪ ٚ‬زدڀربودڄؿ خڀ‪١‬مُص‪ ،‬ؤىٲ وٕعىًڂ ؽبٍي خؼبهمص زُودڄؿ‬
‫‪: UnMakeSIS‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪376‬‬


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ انجىال‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ٔعالل‪ ٧‬ؤوً َعڃ ٴٻ ڄځٵدض خڀربودڄؿ ‪٬‬ځً ‪ 4‬ؾبځًخض‪ٔ ،‬ىًوٿ بذل خجملځً ‪ apps‬ولبعدَ خؼبځٳ خؼبىعهٍ زـ ‪ app.‬ألن ٌٍخ خؼبځٳ ٌى‬
‫ڄځٳ ظ‪ٙ‬ٱُٿ خڀربودڄؿ يخوٿ خعبىخپ ‪:‬‬

‫ؤىفً خؼبځٳ زدٔڃ ‪. MidiEd.App‬‬

‫لٕىد ٔىسًؤ خِن ظ‪ٙ‬ٱُٿ خڀربودڄؿ يف ‪ IDA‬وؿبدوڀص خڀسمػ ‪٬‬ه ؤٌ ٍ٘ء ٌدڂ يف خڀـ ‪ String‬خػبد‪ٜ‬ص زدڀربودڂؾ ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪377‬‬


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ انجىال‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ڀألٔٳ ال َىـً ؤٌ ٍ٘ء ٌدڂ ٌىد يبٽىىد ڄه والڀً خڀى‪ٜ‬ىپ بذل ڄٽدن بِخڀص ٌٍي خڀىدٴٍش خؼبّ‪٬‬فص!!‬

‫ڄدٌخ ٔىٵ٭ٿ؟ ټُٳ ٔى‪ٝ‬ٿ بذل ڄٽدن خڀعمٹٷ ڄه خڀعٕفُٿ و‪ ُٞ٬‬خڀُٔدڀص خؼبّ‪٬‬فص ز٭ً خوعهدء خؼبًش خڀعفَُسُص؟‬

‫ٔعالل‪ ٧‬جبىخَ ڄځٳ خڀربودڄؿ ڄځٵدض ؤنَي ظىعهٍ زـ ‪ rsc.‬وڄه خظبهد َعسٌن ؤهند ڄځٵدض خڀَُٕىَْ خػبد‪ٜ‬ص زدڀربودڄؿ‪ ،‬بٌن ٴدڀربودڄؿ‬
‫َٹىڂ زدٔعًنخي ؤٌ َٔدجٿ ظ‪٩‬هُ ٴًُ ڄه والپ ٌٍي خؼبځٵدض‪ ،‬وال َعڃ لٵ‪ ٧‬خڀُٔدجٿ يخوٿ خڀربودڄؿ وٵًٕ‪ ،‬وٌٍي خغبمدَص ڄىـىيش يف خڀٽؽًن‬
‫ڄه زُخڄؿ خعبىخپ‪.‬‬

‫ٔىٹىڂ زٵعك ڄځٳ ‪ MidiEd.Rsc‬زىخٔ‪٣‬ش زُودڄؿ ود‪ ٚ‬ڀځع٭دڄٿ ڄ‪ٌٍ ٫‬ي خڀىى‪ُ٬‬ص‪ ،‬وٌى ‪: UltraRscEditor‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪378‬‬


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ انجىال‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ؤؼىدء حبؽىد ‪٬‬ه خڀى‪ٝ‬ى‪ ٚ‬خڀ٭دڄص ٔىالل‪ٔ ٧‬عَُىٯ ٌدڄص ـًخً وٌٍ َٸڃ ‪ 20‬لُػ ؤهند خػبد‪ٜ‬ص زُٔدڀص خػب‪٥‬إ ‪: Code Invalid‬‬

‫ؤَ‪١‬دً ٔعالل‪ ٧‬ؤن خڀٕعَُىٯ َٸڃ ‪ 19‬وبعىٌ ‪٬‬ځً ‪ Code Accepted‬ڀٍڀٻ ٔىٹىڂ دبهدصبص ٌٍخ خؼبٻخن‪ ،‬وڀٽه ټُٳ؟‬

‫ٌىدٺ يخڀص ٌدڄص ـًخً َعڃ خٔعىًڄهد يف زُخڄؿ خعبىخپ عبځر خڀى‪ٝ‬ى‪ ٚ‬ڄه ڄځٳ‬
‫خڀَُٕىَْ وٌٍ خڀًخڀص ‪. ReadResourceAsDes‬‬

‫ٌٍي خڀًخڀص يخجمدً َٕسٹهد ‪ً٬‬ي زدؽبٽٓ‪ ،‬وٌى ‪٬‬ىىخن خڀٕعَُىٯ يف ڄځٳ خڀَُٕىَْ‪ ،‬وخڀٌٍ ٔععڃ ٸُخءظً زىخٔ‪٥‬ص ٌٍي خڀًخڀص ‪:‬‬

‫ٔعالل‪ ٧‬ڄؽالً يف خڀ‪ٝ‬ىَش خڀٕدزٹص ؤن خڀًخڀص َٕسٹهد خڀ٭ًي ‪ EADF020‬ؤٌ ؤن ٌٍخ ‪٬‬ىىخن ڀ‪ٍٙ‬ء ڄد يف خڀَُٕىَْ ُٔعڃ خٔعً‪٬‬دئي‪ .‬وڄه‬
‫والپ خڀعفُزص وځ‪ٝ‬ط بذل وعُفص يبٽه خٔعٱالؽبد يف ټٿ خڀربخڄؿ خڀيت ظٕعىًڂ ٌٍي خڀ‪َُ٥‬ٹص وٌى ؤن خڀ٭ًي ‪ EADF‬ؼدزط وَځًُ ؼالؼص ؤَٸدڂ‬
‫ڄعٱًنش ڄه يخڀص بذل ؤوُي‪ٌٍ ،‬ي خألَٸدڂ ٌٍ ظُظُر خڀٕعَُىٯ يخوٿ ڄځٳ خڀَُٕىَْ‪.‬‬

‫َ٭ين ڄؽالً ڄ‪ٌٍ ٫‬خ خڀربودڄؿ وـًود ‪٬-‬ىًڄد ٘دًٌود ڄځٳ خڀَُٕىَْ خػبد‪ ٚ‬زً‪ -‬ؤن خڀى‪ٝ‬ى‪ ٚ‬ڄُظسص ٴًُ ڄه ‪ 0‬بذل ‪ 261‬ٴځى ؤوًود خڀ٭ًي‬
‫خڀٕدزٷ ‪ُٝٔ EADF020‬سك َٸڃ خڀٕعَُىٯ خؼب‪٥‬ځىذ خؼبٵُو‪ٌ ٞ‬ى َٸڃ ‪ 20‬ال ظىٓ ؤن خڀ٭ًي زدؽبٽٓ وبىپ بذل ‪ Decimal‬وَ‪ٝ‬سك‬
‫‪ ،32‬ڀٽه دبد ؤن خڀ٭ً زًؤ ڄه خڀ‪ٝ‬ٵُ ٴُٕٽىن ٌٍخ خڀُٸڃ ‪ٌ EADF020‬ى ‪٬‬ىىخن خڀٕعَُىٯ َٸڃ ‪ 33‬يخوٿ ڄځٳ خڀَُٕىَْ ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪379‬‬


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ انجىال‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ڄځمى‪٨‬ص ٌدڄص خڀ٭ًي ‪ EADF‬ڄعٱًن ڄه زُودڄؿ ِوُ؛ ڀٍڀٻ ٴىمه ٔىإوٍ ٴٹ‪ ٣‬آوُ‬
‫َٸمٌن ‪٬‬ىً خحملدوڀص ڄ‪ ٫‬زُودڄؿ آوُ‪.‬‬

‫خِن يبٽىىد ڄ٭ُٴص خڀُٸڃ خڀٌٍ َْٕسٷ يخڀص ‪٬ ReadResourceAsDes‬ىًڄد ًََُ خڀربودڄؿ ـځر َٔدڀص خػب‪٥‬إ ‪. Code Invalide‬‬

‫زقه الطرتٓيغ يف ملف السٓطْزع ٍْ ‪ 20‬أضف إلُٔ ‪ُٝٔ 1‬سك ‪ 21‬لىڀً بذل ٌٽٓ ُٔ‪ٝ‬سك ‪ 15‬إذٌ عيْاٌ الطرتٓيغ الرٖ‬
‫ضٔطتدعُٔ الربىامج ضٔكٌْ ‪. EADF015‬‬
‫و٭ىي خِن بذل زُودڄؿ خڀـ ‪ IDA‬مث ‪ Search‬مث ‪ Immediate Value‬ووٽعر ‪: xEADF0150‬‬

‫‪ .4‬ارتط‪ ٠ٛ‬ايجايج‪ : ١‬نػط ايدلْاَر‬


‫مت خڀى‪ٜ‬ىپ بذل َوظٌن خڀعمٹٷ ڄه خڀَُٕدپ‪ ،‬مث ب‪٨‬هدَ َٔدڀص خڀ‪ٝ‬ىخذ ؤو َٔدڀص خػب‪٥‬إ ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪380‬‬


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ انجىال‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫َدبد َٹىپ خڀس٭‪ :ٟ‬ؼبدٌخ ال و٭ٽٓ خڀٹٵّش خؼبىـىيش يف زًخَص خڀُوظٌن وز٭ً ٌڀٻ وًوٿ ؤٌ َُٔدپ ڀعٕفُٿ خڀربودڄؿ؟‬

‫ٌٍي خڀ‪َُ٥‬ٹص ود‪٤‬حص ‪٬‬ځً خڀُٰڃ ڄه ؤوً ز٭ً بيودپ ؤٌ َُٔدپ ٔىٲ َ٭ُ‪ ٞ‬ڀٻ َٔدڀص ‪ Code Accepted‬ڀٽه ُٔ‪٩‬ٿ خڀربودڄؿ ًٰن‬
‫ڄٕفٿ‪ ،‬وڀه ظٕع‪ ٫ُ٥‬لىت ٴعمً ز٭ً خوعهدء خؼبًش خڀعفَُسُص‪.‬‬

‫خغبٿ خألڄؽٿ ٌى ظعس‪ ٫‬خڀٹٵّش خڀيت ظايٌ زىد بذل ٌٍخ خڀُوظٌن وؿبدوڀص ‪٬‬ٽٕهد لىت ال َ٭ُ‪ ٞ‬پود خڀربودڄؿ ٌٍي خڀىدٴٍش خؼبّ‪٬‬فص ز٭ً خوعهدء ڄًش‬
‫خڀعفَُر‪.‬‬

‫خٌٌر بذل زًخَص خڀُوظٌن وخ‪٠‬ٱ‪٬ ٣‬ځً ‪ X‬ڄه ڀىلص خؼبٵدظُك ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪381‬‬


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ انجىال‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ٔع‪٩‬هُ ڀىد ودٴٍش ربعىٌ ‪٬‬ځً ڄٽدوٌن َعڃ خٔعً‪٬‬دء ٌٍخ خڀُوظٌن ‪٬‬ىًنبد ‪:‬‬

‫وًوٿ بذل خالٔعً‪٬‬دء خڀؽدين؛ ألن خألوپ ‪ً٬‬مي خڀٵدجًش وڀُٓ ٌى خؼبٽدن خڀ‪ٝ‬مُك خپٌٌ ىبعرب ٴًُ خڀربودڄؿ خڀَُٕدپ وخڀـ ‪Trial Time‬‬
‫‪: Protection‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪382‬‬


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ انجىال‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫بٌن َعڃ خٔعً‪٬‬دء خڀُوظٌن خڀٕدزٷ ڄه ‪٬‬ىً ‪ BL sub_100072A4‬و‪٬‬ىً ؿبدوڀعٻ إليودپ خڀَُٕدپ خػب‪٥‬إ يف ڄُلځص خٔعٽ‪ٙ‬دٲ‬
‫خڀربودڄؿ الل‪٩‬ىد ؤوً ز٭ً ظبد‪٬‬ٻ ڀځُٔدڀص خڀ‪ٝ‬ىظُص ‪ -‬وخڀيت ظ٭ين ؤن خڀَُٕدپ و‪٥‬إ‪َ -‬ٹىڂ خڀربودڄؿ زة‪٬‬ديش ‪ ُٞ٬‬خڀىدٴٍش خؼبّ‪٬‬فص خڀيت‬
‫ظ‪٥‬دڀسٻ زدڀعٕفُٿ ڄُش ؤوُي‪ ،‬وٌٍخ َ٭ين ؤن ٌىدڀٻ لځٹص ڄٕاوڀص ‪٬‬ه ٌڀٻ‪ ،‬وال َعڃ خػبُوؾ ڄىهد بال ز٭ً بيودپ خڀَُٕدپ خڀ‪ٝ‬مُك‪،‬‬
‫َي‬
‫ؤعالل‪ٌ ٧‬ڀٻ يف خڀ‪ٝ‬ىَش خڀٕدزٹص ‪٬‬ىً خڀٹٵّش ‪ BEQ loc_10007760‬وخػب‪ ٣‬خألو‪ٌ ُ١‬ى ًٔن خڀربودڄؿ بٌخ سبط خڀٹٵّش‪ ،‬وټمد ض‬
‫ٴةن ٌٍخ خػب‪َ ٣‬إوٍود بذل زًخَص خڀُوظٌن ڄُش ؤوُي ؤٌ ؤوً لځٹص‪.‬‬

‫وٕعىعؿ ڄه ٌڀٻ‪ :‬ؤن ٌٍخ خڀُوظٌن ٌى خڀٌٍ وبعىٌ ‪٬‬ځً خڀىدٴٍش خؼبّ‪٬‬فص خڀيت ظ‪٥‬دڀر زدڀعٕفُٿ‪ ،‬وخڀيت ظ‪٩‬هُ ز٭ً خوعهدء خؼبًش خڀعفَُسُص‬
‫ڀځربودڄؿ‪ ،‬ڀٍڀٻ ٔىسمػ ‪٬‬ه ټٿ خالٔعً‪٬‬دءخض خڀيت ظايٌ زىد بذل ٌٍخ خڀُوظٌن ٺڄد ٴ٭ځىد ڄ‪ ٫‬خڀُوظٌن خڀٕدزٷ ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪383‬‬


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ انجىال‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ٔعالل‪ ٧‬ؤوً خٔعً‪٬‬دء وخلً‪ ،‬ڀىًوٿ بڀًُ ‪:‬‬

‫و‪ٝ‬٭ً ڀأل‪٬‬ځً بذل زًخَص ٌٍخ خڀُوظٌن‪ٔ ،‬ىفً ٸٵّش ٌدڄص ـًخً بٌخ سبط ٔعإوٍود ز٭ًُخً ‪٬‬ه خڀىدٴٍش خؼبّ‪٬‬فص و‪٬‬ه خڀـ ‪: Trial Time‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪384‬‬


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ انجىال‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫خِن وًَُ ‪٬‬ٽٓ خڀٹٵّش ‪ BEQ loc_10007574‬ڀٍڀٻ وإوٍ خألوٴٕط خػبد‪ ٚ‬هبد ‪:‬‬

‫خألوٴٕط ٌى ‪ٔ DE75‬ىٹىڂ زٵعك ؤٌ ؿبَُ ٌٽٓ‪ ،‬ؤىٌٍر بذل ٌٍخ خألوٴٕط‪ٔ ،‬ىفً ؤن خڀـ ‪ BEQ‬ظٕدوٌ ‪ D0‬و٭ٽٓ خڀـ ‪D0‬‬
‫بذل ‪ D1‬ظ‪ٝ‬سك ‪ BNE‬ؤٌ ؤوىد ‪٬‬ٽٕىد خڀٹٵّش ‪:‬‬

‫وٹىڂ حبٵ‪ ٧‬خؼبځٳ زىٵٓ خالٔڃ ‪ MidiEd.App‬مث ؤُٿ ٌٍخ خؼبځٳ بذل خعبىخپ‪.‬‬

‫زىخٔ‪٥‬ص ؤٌ زُودڄؿ ڄؽٿ خڀـ ‪ SeleQ‬وٹىڂ زإوٍ خؼبځٳ ڄه خڀُٔدجٿ مث ‪٬‬مٿ ‪ Cut‬ڀً و ‪ Paste‬يف ؾبځً خڀربودڄؿ ‪:‬‬

‫خِن ٔىٹىڂ زعفَُر خڀربودڄؿ‪ .‬ڄسدَٺ خڀربودڄؿ َ٭مٿ زًون ؤٌ َٔدجٿ و لىت ز٭ً خوعهدء خؼبًش خڀعفَُسُص ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪385‬‬


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ انجىال‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ڀٽه ڀألٔٳ ڄدِخپ خڀربودڄؿ ًٰن ڄٕفٿ!! ـُذ ؤن ظًوٿ بذل ڄځٳ ‪ MIDI‬ولدوپ خڀع٭ًَٿ ‪٬‬ځًُ‪ ،‬وـُذ ‪٬‬مٿ ‪: Save‬‬

‫ڀٽه خ‪٬‬عٹً خػب‪٥‬ىخض ؤ‪ٜ‬سمط وخ‪٠‬مص‪ ،‬وٌٍ خڀٌٍدذ بذل ڄځٳ خڀَُٕىَْ وخڀسمػ ‪٬‬ه خڀٕعَُىٯ ‪This option is only‬‬
‫‪ available‬وز٭ً ٌڀٻ خڀسمػ ‪٬‬ه خڀـ ‪ Immediate Value‬ټمد ٴ٭ځىد ٔدزٹدً و‪٬‬ٽٓ خڀٹٵّش خڀيت ظايٌ بذل ٌٍي خڀُٔدڀص ‪:‬‬

‫بٌن ٌٍ َٸڃ ‪ 44‬و‪ُ١‬ٳ وخلًخً ظ‪ٝ‬سك ‪ 45‬كبىپ بذل ٌٽٓ ظ‪ٝ‬سك ‪ D2‬بٌن خڀـ ‪ Immediate Value‬ظٕدوٌ ‪: EADF02D‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪386‬‬


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ انجىال‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ٔىفً خٔعً‪٬‬دجٌن‪ ،‬وز٭ً خڀعفَُر ظسٌن ؤن خالٔعً‪٬‬دء خڀؽدين ٌى خؼبٕاوپ ‪٬‬ه ٌٍي خڀُٔدڀص ٴځىًوٿ بڀًُ ‪:‬‬

‫َه ـًًَ؟ َدبد َٽىن خڀٕاخپ ‪٬‬ه بـُخجُدض لٵ‪٧‬‬


‫ڄدٌخ ڀى ‪٬‬ٽٕىد خڀٹٵّش خؼبىـىيش ‪٬‬ىً خڀ٭ىىخن ‪ 10000854‬؟ َدبد ٔعإوٍود بذل َوض‬
‫خؼبځٳ زًپ ڄه ‪ ُٞ٬‬خڀىدٴٍش خؼبّ‪٬‬فص‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪387‬‬


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ انجىال‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ڀىإوٍ خألوٴٕط ؽبٍي خڀٹٵّش‬

‫و٭ٽٓ خڀـ ‪ BNE‬بذل ‪٬ BEQ‬ه ‪َُ٤‬ٷ ‪٬‬ٽٓ خڀـ ‪ D1‬بذل ‪: D0‬‬

‫خلٵ‪ ٧‬خؼبځٳ زىٵٓ خالٔڃ وخوٹځً بذل خعبىخپ ټمد ٴ٭ځىد ٔدزٹدً‪ .‬وخِن ـُذ لٵ‪ ٧‬ؤٌ ڄځٳ ڄ٭ًپ‪.‬‬

‫ڄسدَٺ مت زب‪ ٌ٣‬خڀىدٴٍش خؼبّ‪٬‬فص‪ ،‬و‪ ُٞ٬‬ڀٻ ودٴٍش بيودپ خالٔڃ خڀٌٍ ظىي لٵ‪ ٧‬خؼبځٳ خعبًًَ زً ‪:‬‬

‫خلٵ‪ ً٩‬ڄؽال زدٔڃ ‪ At4re‬مث خ‪٠‬ٱ‪٬ ٣‬ځً ‪ُٔ OK‬عڃ لٵ‪ ٧‬خؼبځٳ يف ؾبځً خڀ‪ٝ‬ىظُدض يف خڀـ ‪: Phone Memory‬‬

‫وزٍڀٻ وٽىن خوعهُىد حبمً خهلل ڄه ټُٕ ٌٍخ خڀربودڄؿ‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪388‬‬


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ انجىال‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫كسر تطبيقات اجلوال (‪)2‬‬


‫)‪S60 Reversing (2‬‬

‫‪َ .1‬كسَ‪ ١‬س‪ ٍٛ‬املعاجل ‪ْٚ‬عاّ ايتؿػ‪ٌٝ‬‬


‫يف ٌٍخ خڀًَْ ٔىع٭دڄٿ ڄ‪ ٫‬وى‪ ٪‬ـًًَ ڄه خؼب٭دعبدض ‪ Processors‬وٌى ڄ٭دجل ‪ ARM‬وو‪٩‬دڂ ظ‪ٙ‬ٱُٿ آوُ‪ ،‬وٌى ڄد َٕمً‬
‫‪ Symbian Operating System‬وڀه لبى‪ ٞ‬يف ُ٘ق لىپ ڄ٭دجل ‪ ARM‬ؤو و‪٩‬دڂ خڀع‪ٙ‬ٱٍپ وظٵد‪ُٜ‬ځهمد؛ ألن خڀًَْ ال َعٕ‪٫‬‬
‫ڀٍڀٻ‪ ،‬ڀٍخ ٔىمدوپ ُٔي ز٭‪ ٟ‬خؼب٭ځىڄدض لىپ خڀع٭دڄٿ ڄ‪ ٫‬ظ‪٥‬سُٹدض خعبُٿ خڀؽدڀػ يف ټٿ ڄد َع٭ځٷ زدؽبىًٔص خڀ٭ٽُٕص ٴٹ‪ ،٣‬وؼبًَّ ڄه‬
‫خڀعٵد‪ُٜ‬ٿ لىپ خؼب٭دجل وو‪٩‬دڂ خڀع‪ٙ‬ٱُٿ ٔىُٕي ز٭‪ ٟ‬خڀُوخز‪ ٣‬خؼبٵًُش يف آوُ خڀًَْ‪ .‬الزً ڄه ظىٴُ ز٭‪ ٟ‬خأليوخض خڀالِڂش ڀځ٭مٿ ‪:‬‬

‫‪ : IDA v5.2.0.908‬يبٽىٻ ربمُځً ڄه هيا ‪.‬‬


‫‪َٕ : SisWare‬عىًڂ الٔعىُخؾ ڄځٵدض خڀربودڄؿ خؼب‪١‬ٱى‪٤‬ص يف ڄځٳ ‪sis‬‬
‫‪.‬‬
‫‪ : Petran‬ڀٵٻ ‪٠‬ٱ‪ ٣‬خؼبځٳ خڀعىٵٌٍُ ڀٿزُودڄؿ وب‪٬‬ديش ‪٠‬ٱ‪ ً٥‬ز٭ً خڀٽُٕ‪.‬‬
‫‪ : WinHex‬ؿبَُ ٌٽٓ ڀع٭ًَٿ خڀـ ‪ Opcodes‬ڀځع٭ځُمدض خڀيت وًَُ‬
‫ظٱًُنٌد‪.‬‬
‫‪ : X-plore v1.30‬ڄع‪ٝ‬ٵك ڄځٵدض ڀځفىخپ ڄهڃ ـًخً ز٭ً خوعُخٶ ضبدَص‬
‫خعبىخپ‪.‬‬

‫‪expenses-s60-3-v-2-0.sis‬‬
‫‪smartcom_s60_3rd_trail.sis‬‬

‫وال ظىٓ ؤَ‪١‬دً زُودؾبدً ڀالظ‪ٝ‬دپ زٌن خعبىخپ وخڀٽمسُىظُ؛ ڄؽٿ‪Nokia PC Suite :‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪389‬‬


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ انجىال‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ .2‬اخذلام محا‪ ١ٜ‬ادت‪ٛ‬اٍ ‪ٚ‬ؾتح زتًسات ايٓعاّ‬


‫خڀ‪ٍٙ‬ء خعبًًَ خڀٌٍ ؤ‪ُ٠‬ٳ يف و‪٩‬دڂ خڀع‪ٙ‬ٱُٿ ڀځفُٿ خڀؽدڀػ ٌى وى‪ ٪‬ڄه خغبمدَص ڄً‪٬‬ىڂ زة‪٠‬دٴص ٘هديش ‪ Certificate‬ود‪ٜ‬ص‬
‫ڀٽٿ زُودڄؿ وڀٽٿ ـىخپ‪ ،‬وبوٵدء ڄځٵدض خڀى‪٩‬دڂ يف ؾبځًخض ‪ Sys & Private‬لىت ال َعڃ خڀ٭سػ هبد‪ ،‬خألڄُ خڀٌٍ دل و٭هًي يف ـىخالض‬
‫خعبُٿ خڀؽدين ڄه ظبسُدن ‪ ، S60‬وٰدڀسدً ‪٬‬ىً ظؽسُط ظ‪٥‬سُٷٍ ‪ S60v3‬مت ټُٕي ‪ٔ App Cracked‬عفً َٔدڀص و‪٥‬إ يف خعبىخپ ظٵًُ ؤن‬
‫٘هديش خڀع‪٥‬سُٷ ڄىعهُص ؤو ؤوً ڄه ڄىَي ًٰن ڄىؼىٶ زً‪ ،‬يف ز٭‪ ٟ‬خأللُدن َعڃ ظ٭ًَٿ ظدََه خؽبدظٳ ‪٬‬دڄدً ؤو ‪٬‬دڄٌن بذل خڀىَخء وربٿ خؼب‪ٙ‬ٽځص‪،‬‬
‫وڀٽه يف ټؽًن ڄه خأللُدن ال َعڃ ٌڀٻ‪ ،‬وٌٍخ َ٭عرب ڄ٭‪١‬ځص زدڀىٕسص ڀځٽُخټُ؛ ألن ڄ٭‪٩‬ڃ خڀربخڄؿ خڀيت َٹىڄىن زٽٌُٕد ال ظىٵ‪ ٫‬زًون‬
‫٘هديش ؤو خوعُخٶ ڀځممدَص؛ ڀٍڀٻ ٴٹً مت ‪٬‬مٿ ‪ُ٤‬ٶ ټؽًنش الوعُخٶ ضبدَص خعبىخپ‪ ،‬ز٭‪١‬هد زُٕ‪ ٣‬وخڀس٭‪ ٟ‬خِوُ ڄ٭ٹً ـًخً‪ ،‬ڄىهد خڀيت‬
‫ظ٭مٿ زىفدق‪ ،‬وڄىهد خڀ‪ُ٥‬ٶ خڀيت ظ٭مٿ ـّجُدً‪ ،‬ټمد مت زُؾبص ز٭‪ ٟ‬خڀع‪٥‬سُٹدض خڀيت ظٹىڂ زٵٻ خغبمدَص ؤوظىڄدظُٽُدً‪ ،‬ڀٍڀٻ ٔىعُٺ ڀٻ‬
‫خڀسمػ ‪٬‬ه خڀ‪َُ٥‬ٹص ؤو خڀربودڄؿ خڀٌٍ َالجمٻ‪ ،‬ووى‪ٝ‬ك زربودڄؿ ‪ BiNPDA Security Manager v1.1‬ألوىد ـُزىد خڀٽؽًن ڄه‬
‫وـًود ؤن ٌٍخ خڀربودڄؿ ٌى ؤٴ‪١‬ځهد‪ .‬ټمد يبٽه خغب‪ٝ‬ىپ ‪٬‬ځً ٘هديش ود‪ٜ‬ص جبىخڀٻ ڄه ز٭‪ ٟ‬خؼبىخٸ‪ًٰ ٫‬ن ڄىٸ‪٫‬‬
‫خڀ‪ُ٥‬ٶ ٲ‬
‫‪ Symbiansigned.com‬وؤٰځسهد ڄىخٸ‪ُٜ ٫‬ىُص‪ ،‬ز٭ً ؤن ذبً ؤلً ٌٍي خؼبىخٸ‪َ ٫‬عڃ ظٹًمي ‪٤‬ځر ٘هديش ڀځـ ‪ IMEI‬خػبد‪ ٚ‬جبىخڀٻ‪،‬‬
‫ورب‪ٝ‬ٿ ‪٬‬ځُهد ز٭ً َىڂ ؤو َىڄٌن‪٬ ،‬ىًٌد ظٕع‪ ٫ُ٥‬يؾبهد ڄ‪ ٫‬خڀربخڄؿ خڀيت ال ربىٌ ٘هديش وٌڀٻ زدٔع٭مدپ ؤلً زُخڄؿ خڀـ ‪. Signing‬‬

‫‪ .3‬طط‪ٜ‬ك‪ ١‬ايعٌُ يف ٖصا ايسضؽ‬

‫خػب‪٥‬ىش خألوذل ‪ :‬خٔعىُخؾ خؼبځٳ خڀعىٵٌٍُ ڀځع‪٥‬سُٷ ڄه ڄځٳ ‪ sis‬زىخٔ‪٥‬ص ‪ SISWare‬وٴٻ ‪٠‬ٱ‪ ً٥‬زىخٔ‪٥‬ص ‪.Petran‬‬
‫خػب‪٥‬ىش خڀؽدوُص ‪ :‬ربمُٿ خؼبځٳ خڀعىٵٌٍُ يف ‪ Pro Advanced v5.2 IDA‬وخڀسًء يف خڀعمځُٿ‪.‬‬
‫خػب‪٥‬ىش خڀؽدڀؽص ‪ :‬ظ٭ًَٿ خڀـ ‪ Opcodes‬ڀځع٭ځُمدض خڀالِڂ ظٱًُنٌد زدٔعىًخڂ ‪ WinHex‬ؤو ؤٌ ؿبَُ ٌٽٓ آوُ‪.‬‬
‫خػب‪٥‬ىش خڀُخز٭ص ‪ :‬ب‪٬‬ديش ‪٠‬ٱ‪ ٣‬خؼبځٳ خڀعىٵٌٍُ زىخٔ‪٥‬ص ‪ Petran‬وخٔعسًخپ خؼبځٳ خؼبؽسط يف خعبىخپ‪.‬‬

‫مت ‪٬‬مٿ ٌٍخ خڀًَْ زدڀعفُزص ‪٬‬ځً ـىخپ ‪ Nokia N73‬وز٭ً خوعُخٶ خغبمدَص‪.‬‬

‫ڀىسًؤ ‪٬‬ځً زُټص خهلل‪.‬‬

‫‪ .4‬نػط تطب‪ٝ‬كات ادت‪ٛ‬اٍ‬

‫‪ .4.1‬ايتطب‪ٝ‬ل األ‪ٍٚ‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪390‬‬


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ انجىال‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫خٔڃ خڀع‪٥‬سُٷ ‪.Expenses v2.0 :‬‬


‫‪.SymbianGuru :‬‬ ‫خٔڃ خؼبىَي‬
‫َخز‪ ٣‬خڀ‪١‬مُص ‪. www.symbianguru.com :‬‬

‫ز٭ً ظؽسُط خڀع‪٥‬سُٷ يف خعبىخپ وٴعمً قبً ؤن ڄًظً خڀعفَُسُص ‪ 10‬ؤَدڂ‪ ،‬ټمد ظالل‪ٌ ٧‬ڀٻ يف خڀ‪ٝ‬ىَش ‪:‬‬

‫ويف ٸدجمص ‪ Options‬ذبً وُدَ ‪ Register‬وٌٍخ ڄد ٔىٕعٵًُ ڄىً ڀٽُٕ خڀع‪٥‬سُٷ‪ ،‬بٌن ڀىىعٹٿ بذل خػب‪٥‬ىخض‪.‬‬

‫ٌش ‪ Imports‬وٸڃ زدڀسمػ ‪٬‬ه‬


‫ٸڃ زعىٵٍُ خػب‪٥‬ىظٌن خألوذل وخڀؽدوُص وخوع‪ ُ٩‬لىت َعڃ خالوعهدء ڄه ربمُٿ خؼبځٳ يف ‪ IDA‬و‪٬‬ىًٌد خٴعك ودٲ‬
‫‪ TDesCCompareERKS‬ڀٽه ؼبدٌخ ؟‬

‫يف ټؽًن ڄه خڀع‪٥‬سُٹدض َعڃ خٔعىًخڂ ٌٍي خڀًخڀص ڀ٭مٿ خؼبٹدَوص زٌن زُدودض ‪ Data‬ڄ٭ُىص‪ ،‬وخڀيت ٸً َٽىن ڄىهد خوعسدَ ‪ٜ‬مص خڀَُٕدپ‬
‫خؼبًوٿ ؤو ؤن خڀربودڄؿ ڄٕفٿ ؤو ذبَُيب وڄد بذل ٌىدڀٻ‪.‬‬

‫خڀًخپ يف ڄٽعسص ‪: Symbian OS 9.1 Developer‬‬


‫ي‪٬‬ىد وُي ظ٭َُٳ ٌٍي ش‬

‫;‪class TDesC8‬‬
‫‪Members:‬‬
‫()‪Compare‬‬
‫‪Prototype :‬‬
‫;‪IMPORT_C TInt Compare(const TDesC8 &aDes) const‬‬
‫‪Parameters‬‬
‫‪The 8-bit non-modifable descriptor whose data is to be compared with this‬‬
‫‪const TDesC8 &aDes‬‬ ‫‪descriptor's data,‬‬
‫ذرى ادلمارَح تني ‪ bit non-modifiable Descriptor's Data-8‬و‪ Specified Descriptor's Data‬تايراً يغ‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪391‬‬


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ انجىال‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫تايد ‪،‬‬
‫‪Return value‬‬
‫‪Positive, if this descriptor is greater than the specified descriptor. Negative, if this‬‬
‫‪Tint‬‬ ‫‪descriptor is less than the specified descriptor. Zero, if both descriptors have the same‬‬
‫‪length and their contents are the same.‬‬

‫( ‪Return‬‬ ‫وظعٕدوي خڀسُدودض ‪٬‬ىًڄد َٽىن ‪٤‬ىؽبمد وؿبعىخنبد ڄعٕدوٌَن‪ ،‬ويف ٌٍي خغبدڀص ظٽىن خڀٹُمص خؼبُـ٭ص ؤو ڄد َٕمً‬
‫‪ )Value‬ڀځمٕفٿ (‪ ٌٍ )Register‬خڀ‪ٝ‬ٵُ‪ ،‬وڄد ‪ً٬‬خ ٌڀٻ ظٽىن ٸُمص خؼبٕفٿ بڄد ڄىـسص ؤو ٔدڀسص ‪:‬‬

‫وڀٽه ٌٍي خڀًخڀص ظٕعىًڂ ألُٰخ‪ ٞ‬ؤوُي ټؽًنش‪ ،‬ڀٍڀٻ هبر خڀعُټُّ ‪٬‬ځً خؼبٽدن خڀ‪ٝ‬مُك خڀٌٍ ىب‪ ٛ‬يخڀص خڀعمٹٷ ڄه خڀعٕفُٿ‪ ،‬وٰدڀسدً‬
‫ڄد ظٽىن ڄعسى‪٬‬ص زع٭ځُميت ‪ MOVNE & MOVEQ‬لُػ َعڃ وٹٿ خڀٹُمص ‪ 1‬بذل خؼبٕفٿ يف لدڀص ټدن خڀَُٕدپ خؼبًوٿ ‪ٜ‬مُمدً‪ ،‬ؤو ‪0‬‬
‫‪٬‬ىًڄد َٽىن و‪٥‬إ‪ ،‬ٸڃ زدڀ‪١‬ٱ‪ ٣‬ڄُظٌن ‪٬‬ځً ڄد ٌى ڄى‪٠‬ك يف خڀ‪ٝ‬ىَش ؤعفً وٵٕٻ ٌىد ‪:‬‬

‫‪ ٫٠‬ڄاُ٘ خڀٵإَش ‪٬‬ځً __‪ imp_TDesCCompareERKS‬وخ‪٠‬ٱ‪٬ ٣‬ځً لُٲ ‪ " "X‬ڀځٌٍدذ بذل ٌىد ‪:‬‬

‫خيوٿ ‪٬‬ځً خػبُدَ خألوپ ڀعفً ٌٍخ ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪392‬‬


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ انجىال‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ڄاُ٘ خڀٵإَش ‪٬‬ځً ‪ TDesCCompareERKS‬مث ""‪ X‬ڀعٵعك ڀٻ ٌٍي خڀىدٴٍش ‪:‬‬

‫خوعُ خڀـ ‪ Reference‬خڀؽدڀػ وخ‪٠‬ٱ‪ *** OK ٣‬ألوً – ز٭ً خڀعمځُٿ – ٌى خڀٌٍ ىب‪ ٛ‬يخڀص خڀعمٹٷ ڄه خڀعٕفُٿ ***‬

‫وخِن ٌد كبه ‪٬‬ىً ؤٌڃ ظ٭ځُمعٌن ‪: MOVNE & MOVEQ‬‬

‫ټمد ظُي ٌىدٺ ڄٹدَوص زٌن خؼبٕفٿ وخڀٹُمص ‪ 0‬ٴةن ټدوط ٸُڃش خؼبٕفٿ ًٰن ڄٕدوَص ڀځ‪ٝ‬ٵُ ٴٕعىٹٿ ڀً خڀٹُمص ‪ٜ‬ٵُ‪ ،‬ويف خغبدڀص خألوُي‬
‫‪٬‬ىًڄد ظٽىن ٸُمعً ‪ٜ‬ٵُخً َىٹٿ ڀً خڀىخلً‪ ،‬وٸً ‪ُ٬‬ٴىد ؤن ٸُمص خؼبٕفٿ ال ظٽىن ‪ٜ‬ٵُخً بال ‪٬‬ىًڄد ظٽىن خڀسُدودض ڄعٕدوَص زدَعدً زدَعدً يف‬
‫خڀ‪٥‬ىپ وخحملعىي‪ ،‬ؤٌ ؤن خڀَُٕدپ خؼبًوٿ َٕدوٌ سبدڄدً خڀَُٕدپ خڀ‪ٝ‬مٍق خڀٌٍ َىسٱٍ ؤن وٕفٿ زً خڀربودڄؿ‪.‬‬

‫وٌٽٍخ َٽىن خڀع٭ًَٿ ‪٬‬ځً خڀع٭ځُمص خألوًنش يف خڀ‪ٝ‬ٳ زعمىَځهد بذل ‪ MOV R3, 1‬ٴمهمد ټدن ودظؿ خڀ٭مځُدض ٸسځهد ٴةن آوُ ٸُمص‬
‫ٔعىٹٿ ڀځمٕفٿ ٌٍ خڀىخلً‪ ،‬وزدڀعدرل َعڃ ظٕفُٿ خڀربودڄؿ‪ .‬بٌن ‪٬‬ځُىد ظ٭ًَٿ زدَعدض خڀع٭ځُمص ‪ MOVEQ R3, #1‬حبُػ ظ‪ٝ‬سك‬
‫‪: MOV R3, #1‬‬

‫ػُىاٌ األوفظد‬
‫انثايراخ ادلؼذنح‬ ‫انثايراخ األصهيح‬
‫‪Offset‬‬
‫‪1BAD8‬‬ ‫‪01 30 A0 E3‬‬ ‫‪01 30 A0 03‬‬

‫خوعٹٿ بذل خػب‪٥‬ىش خڀؽدڀؽص ڀع٭ًَٿ خڀالِڂ وٌٍخ ڄد ٔعُخي ز٭ً خڀع٭ًَٿ ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪393‬‬


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ انجىال‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫خوعٹٿ بذل خػب‪٥‬ىش خڀُخز٭ص مث خٔعسًپ خؼبځٳ خڀعىٵٌٍُ خؼب٭ًٍپ زدڀٹًمي ( ز٭ً ټُٕ خحلڄدَص ٴٹ‪.)٣‬‬

‫ؤو ؤ‪٠ ً٬‬ٱ‪ ٣‬خؼبځٵدض ټځهد زىخٔ‪٥‬ص ‪ SISWare‬بذل ڄځٳ ‪ sis‬ڄ‪ ٫‬خٔعسًخپ خؼبځٳ خڀعىٵٌٍُ وٸڃ زًڄؿ خؼبځٳ خڀىدظؿ ‪ sis‬زدڀ‪ٙ‬هديش خڀيت‬
‫ڀًَٻ (ٌٍخ يف لدپ دل ظٹڃ زٵٻ خغبمدَص)‪.‬‬

‫َط بال ز٭ً خوعُخٶ ضبدَص خعبىخپ‬


‫ٌىد ٔعفً خؼبځٳ خڀعىٵٌٍُ ڀځع‪٥‬سُٷ يخوٿ خعبىخپ زدٔعىًخڂ ڄع‪ٝ‬ٵك ‪ X-plore v1.30‬وٌٍخ ‪٤‬س٭دً ال ڂ‬
‫ڀٵعك ؾبځًخض خڀى‪٩‬دڂ ‪:‬‬

‫ز٭ً خٔعسًخپ خؼبځٳ ٸڃ زٵعك خڀربودڄؿ ؤفٿ زإٌ َٸڃ ؤو لُٲ ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪394‬‬


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ انجىال‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ظالل‪ ٧‬ؤوً مت خڀعٕفُٿ زىفدق و‪٬‬ىً ب‪٬‬ديش خڀع‪ٙ‬ٱُٿ َٹىڂ خڀربودڄؿ زعٵ٭ُٿ ټدٴص خػب‪ٝ‬دج‪ .ٛ‬ڄسدَٺ!!‬

‫* ڄالل‪٩‬ص ‪َ :‬عڃ لٵ‪ ٧‬ڄٵعدق خڀعٕفُٿ يف ڄځٳ ‪ License.dat‬يخوٿ ؾبځً ‪c:\private\A0002844‬‬

‫‪ .4.2‬ايتطب‪ٝ‬ل ايجاْ‪ٞ‬‬

‫خٔڃ خڀع‪٥‬سُٷ ‪.Smart Com v1.00 :‬‬


‫‪.Aims MIGITAL Technovations :‬‬ ‫خٔڃ خؼبىَي‬
‫َخز‪ ٣‬خڀ‪١‬مُص ‪.www.migital.com :‬‬

‫غبٕه خغب‪ ٧‬ٴفمُ‪ ٫‬زُخڄؿ ٌٍي خڀ‪ُٙ‬ټص ؽبد وٵٓ ؤٔځىذ خغبمدَص‪ ،‬وٌٍ ٔهځص ـًخً‪ ،‬وَعڃ ٴٽهد ‪٬‬ه ‪َُ٤‬ٷ خڀسمػ ‪٬‬ه َٔدجٿ خػب‪٥‬إ وڄد‬
‫٘دهبهد؛ ڄؽٿ‪ Trial is expired :‬وٌٍخ زدڀ‪١‬س‪ ٣‬ڄد ٔى٭مځً ڀٽُٕ ٌٍخ خڀع‪٥‬سُٷ‪.‬‬

‫‪٬‬ىً ٴعك خڀع‪٥‬سُٷ يف خعبىخپ ٔعفً يف خڀٹدجمص خڀُجُُٕص ڄد َځٍ ‪:‬‬

‫‪٬‬ىً ٴعك خڀربودڄؿ ألوپ ڄُش ‪ Continue Trial‬وز٭ً خوعهدء خؼبًش خڀعفَُسُص ‪ Trial Expired‬ټمد يف خڀ‪ٝ‬ىَش ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪395‬‬


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ انجىال‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫خوعٹٿ بذل خػب‪٥‬ىظٌن خألوذل مث خڀؽدوُص‪ ،‬وز٭ًٌد خٴعك ودٴٍش ‪ Strings‬يف زُودڄؿ ‪ IDA‬وٸڃ زدڀسمػ ‪٬‬ه خڀٽځمدض خڀيت ظُخٌد يف خڀ‪ٝ‬ىَش وٌٍ‬
‫‪ Trial Expired‬وٌٍخ ڄد ٔعفًي ‪:‬‬

‫ټمد ظالل‪ ٧‬ٴةن ټٿ ڄد َسمػ ‪٬‬ىً خڀٽُخټُ ڄىـىي ٌىد‪ ،‬زسٕد‪٤‬ص وزال ظ٭ٹًُ ‪٬‬ځُىد ؤن كب‪ٝ‬ٿ ‪٬‬ځً ‪ Licensed User‬زًالً ڄه‬
‫‪ Trial Expired‬ؤو ‪ ، Continue Trial‬ڀٍڀٻ ٸڃ زدڀ‪١‬ٱ‪ ٣‬ڄُظٌن ‪٬‬ځً ‪ Licensed User‬ڀع‪ٝ‬ٿ بذل ٌىد ‪:‬‬

‫‪ ٫٠‬ڄاُ٘ خڀٵإَش ‪٬‬ځً ‪ aLicensedUser‬مث خ‪٠‬ٱ‪ "X" ٣‬وخوعُ خػبُدَ خألوپ ڀع‪ٝ‬ٿ بذل ٌىد ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪396‬‬


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ انجىال‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ؤَ‪١‬د ڄاُ٘ خڀٵإَش ‪٬‬ځً ‪ off_300D8‬مث "‪ "X‬ڀع‪ٝ‬ٿ ؤوًنخً بذل ٌىد ‪:‬‬

‫ټمد ظُي َىـً ٸٵّش ظع٭ًي ‪ aLicensedUser‬وٌٍ ‪ BNE : Branch if Not Equal‬ڀع‪ٝ‬ٿ بذل ‪ aContinuetrial‬ؤو بذل‬
‫‪ aTrialExpired‬لٕر خغبدڀص‪.‬‬

‫ڄسًجُدً ٔىٹىڂ زعٱًُن خڀٹٵّش بذل ‪ NOP‬لىت ال َعڃ ظىٵٌٍُد‪ ،‬وزدڀعدرل ٌٍَر خڀربودڄؿ بذل ‪ ، aLicensedUser‬ڀٍڀٻ خوعٹٿ بذل خػب‪٥‬ىش‬
‫خڀؽدڀؽص وٸڃ زع٭ًَٿ خڀسدَعدض خڀالِڄص ټمد يف خعبًوپ ‪:‬‬

‫ػُىاٌ األوفظد‬
‫انثايراخ ادلؼذنح‬ ‫انثايراخ األصهيح‬
‫‪Offset‬‬
‫‪27C1C‬‬ ‫‪00 00 A0 E1‬‬ ‫‪27 00 00 1A‬‬

‫خٌٌر بذل خػب‪٥‬ىش خڀُخز٭ص وڄه ز٭ً خٔعسًخپ خؼبځٳ خؼب٭ًٍپ زدأل‪ٜ‬ځٍ ٸڃ زع‪ٙ‬ٱُٿ خڀربودڄؿ‪ ،‬ؤعالل‪ ٧‬ؤوً ٸً مت ظٕفُځً ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪397‬‬


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ انجىال‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫لٕىدً ٸڃ زعٹًمي خڀعدََه ٘هُخً وخلًخً ڀألڄدڂ وخٴعك خڀربودڄؿ ڄدٌخ ظالل‪ ٧‬؟‬

‫ڀٹً ‪٨‬هُض َٔدڀص ‪ Trial is Expired‬وڀٽه َعڃ ٴعك خڀربودڄؿ وٌى َ٭مٿ زٽدٴص و‪ٝ‬دج‪ ،ًٝ‬بٌن ٴهٍي ؾبُي َٔدڀص ڄّ‪٬‬فص ؤٌ ‪Nag‬‬
‫‪ Screen‬وڀٽه ڄ‪ٌ ٫‬ڀٻ ال ڄدو‪ ٫‬ڄه بوٵدجهد‪ ،‬ٴځى٭ً بذل زُودڄؿ ‪ IDA‬ويف ودٴٍش ‪ Strings‬خحبػ ‪٬‬ه صبځص ‪ Trial is Expired‬وخظس‪٫‬‬
‫وٵٓ خػب‪٥‬ىخض خڀيت ‪٬‬مځىدٌد ٔدزٹدً ڀع‪ٝ‬ٿ ؤوًنخً بذل ٌىد ‪:‬‬

‫وٌٍخ ټٿ ڄد ٔىمعدـً إلڀٱدء ظځٻ خڀُٔدڀص خؼبّ‪٬‬فص ‪:‬‬

‫ػُىاٌ األوفظد ‪Offset‬‬ ‫انثايراخ ادلؼذنح‬ ‫انثايراخ األصهيح‬


‫‪740C‬‬ ‫‪00 00 A0 E1‬‬ ‫‪33 8D 00 EB‬‬
‫‪7420‬‬ ‫‪00 00 A0 E1‬‬ ‫‪72 8E 00 EB‬‬

‫ټمد ظالل‪ٌ ٧‬ىدٺ ظ٭ًَٿ ؤوپ وظ٭ًَٿ ؼدن ٍ َعڃ جب٭ٿ خڀع٭ځُمعٌن ‪ NOP‬لىت ال َعڃ خڀىًخء ‪٬‬ځً ظځٻ خڀىدٴٍش خؼبّ‪٬‬فص وٌٽٍخ وٕع‪ ٫ُ٥‬ؤن‬
‫وٹىپ‪ :‬ڄسدَٺ ‪٬‬ځُىد خڀىٕىص خڀٽدڄځص !‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪398‬‬


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ انجىال‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫بذل ٌىد و‪ٝ‬ٿ بذل وعدڂ خڀًَْ ‪٬‬ځً ؤڄٿ ڀٹدء ٸديڂ بن ٘دء خهلل‪ ،‬ويڄعڃ يف َ‪٬‬دَص خهلل‪.‬‬

‫‪َ .5‬طؾكات ايسضؽ‬


‫‪ )1‬ڄځٵدض ‪ sis‬ڀځربخڄؿ خڀيت مت ټٌُٕد يف ٌٍخ خڀًَْ‪.‬‬

‫‪ )2‬ڄځٳ و‪ ٍٝ‬ٴًُ خڀـ ‪ Opcodes‬ڀس٭‪ ٟ‬ظ٭ځُمدض ‪. ARM‬‬

‫‪ )3‬زُودڄؿ ‪ Petran‬ڀ‪١‬ٱ‪ ٣‬وٴٻ ‪٠‬ٱ‪ ٣‬خؼبځٵدض خڀعىٵٍَُص‪.‬‬

‫‪ )4‬ڄع‪ٝ‬ٵك خؼبځٵدض ڀځفىخپ ‪. X-plore S60 3rd edition v1.30‬‬

‫‪Symbian‬‬ ‫‪ .6‬ض‪ٚ‬ابط َؿ‪ٝ‬س‪ ٠‬يًُع‪ٜ‬س َٔ املعً‪َٛ‬ات س‪َ ٍٛ‬عادتات ‪ْٚ ARM‬عاّ ايتؿػ‪ٌٝ‬‬

‫‪http://en.wikipedia.org/wiki/ARM_architecture‬‬

‫‪http://www.arm.com/‬‬

‫‪http://en.wikipedia.org/wiki/Symbian‬‬

‫‪http://www.forum.nokia.com/info/sw.nokia.com/id/2c835bc6-4106-4563-9eb07f215b27e83c/S60_3rd_Edition_Cpp_Developers_Library.html‬‬

‫‪http://developer.symbian.com‬‬

‫‪http://www.newlc.com‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪399‬‬


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ انجىال‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫كسر تطبيقات ‪Windows Mobile‬‬


‫‪WINCE Reversing‬‬

‫‪َ .1‬كسَ‪١‬‬

‫‪ .1.1‬املتطًبات‬

‫‪.ARM7-TDMI-manual-pt2‬‬
‫‪.arm_edit_Disassembler‬‬
‫‪.DuckHunt‬‬
‫‪.Fun2Link‬‬
‫‪.Handmark Yathzee 1.05‬‬
‫‪.WinCE‬‬

‫‪ .1.2‬تعً‪ُٝ‬ات َعاجل ‪ARM‬‬

‫خڀع٭ځُمدض وخڀځىخلٷ خڀيت يف خعبًخوپ خڀعدڀُص ٌٍ ڀالٔعحىدْ ال خغب‪.ُٝ‬‬

‫خڀع٭ځُمدض ‪:‬‬
‫انرؼهيًح‬ ‫ادلؼىن‬
‫‪ADC‬‬ ‫صب‪ ٫‬ڄ‪ ٫‬خغبمٿ‬
‫‪ADD‬‬
‫‪AND‬‬ ‫‪And‬‬
‫‪B‬‬ ‫خڀٹٵّ‬
‫‪CMP‬‬ ‫ڄٹدَوص‬
‫‪EOR‬‬ ‫‪EOR‬‬
‫‪MOV‬‬ ‫‪MOV‬‬
‫‪MUL‬‬ ‫‪MUL‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪400‬‬


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ انجىال‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ڄ٭دين ڀىخلٷ خڀع٭ځُمدض ‪:‬‬


‫‪Hex‬‬ ‫انالزمح‬ ‫األػالو‬ ‫ادلؼىن‬
‫‪0000‬‬ ‫‪EQ‬‬ ‫‪Z=1‬‬ ‫َٕدوٌ‬
‫‪0001‬‬ ‫‪NE‬‬ ‫‪Z=0‬‬ ‫ال َٕدوٌ‬
‫‪1010‬‬ ‫‪GE‬‬ ‫‪N=V‬‬ ‫ؤټرب ؤو َٕدوٌ‬
‫‪1011‬‬ ‫‪LT‬‬ ‫‪N!=V‬‬ ‫ؤ‪ٜ‬ٱُ سبدڄدً‬
‫‪1100‬‬ ‫‪GT‬‬ ‫‪Z=0 && N=V‬‬ ‫ؤټرب سبدڄدً‬
‫‪1101‬‬ ‫‪LE‬‬ ‫‪Z=1 || N!=V‬‬ ‫ؤ‪ٜ‬ٱُ ؤو َٕدوٌ‬
‫‪1110‬‬ ‫‪AL‬‬ ‫ًٰن ڄهڃ‬ ‫يخجمدً‬

‫يبٽه ؤن ظ‪١‬دٲ خڀځىخلٷ بذل هندَص خڀع٭ځُمدض؛ ڄؽالً‪:‬‬

‫ظ٭ځُمص ‪ B‬ظ٭ين خڀٹٵّ‪ ،‬وڀٽه يبٽه ب‪٠‬دٴص خڀځىخلٷ ‪٬‬ځُهد ٴع‪ٝ‬سك ڄؽالً ‪:‬‬
‫‪BEQ‬‬ ‫خٸٵّ بٌخ ټدن َٕدوٌ‬
‫‪BNE‬‬ ‫خٸٵّ بٌخ ټدن ال َٕدوٌ‬
‫‪BLT‬‬ ‫خٸٵّ بٌخ ټدن ؤ‪ٜ‬ٵُ ً‬
‫سبدڄد‬

‫ٔىٹىڂ ز٭ُ‪ ٞ‬ز٭‪ ٟ‬خڀع٭ځُمدض ز‪ُٝ‬ٱعهد خڀؽىدجُص ‪:‬‬

‫ظ٭ځُمص ‪: MOV‬‬

‫‪Mov = XX XX A0 EX‬‬

‫‪XX‬‬ ‫َٸڃ خؼبٕفٿ ؤو خڀٹُمص‬


‫وى‪٬ ٪‬مځُص خڀىٹٿ‬
‫‪X=1‬وٹٿ ٸُمص ڄٕفٿ بذل‬
‫‪X‬‬ ‫آوُ‬
‫‪X=3‬وٹٿ ٸُمص ڄسدُ٘ش بذل‬
‫ڄٕفٿ‬

‫ڄؽدپ ‪:‬‬

‫‪MOV R3,R2‬‬ ‫‪02 03 A0 E1‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪401‬‬


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ انجىال‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪MOV R2,#5‬‬ ‫‪05 02 A0 E3‬‬


‫‪MOV R0,R4‬‬ ‫‪04 00 A0 E1‬‬
‫‪MOV R5,#FF‬‬ ‫‪FF 05 A0 E3‬‬

‫ظ٭ځُمص ‪: CMP‬‬

‫‪CMP = XX 00 5X EX‬‬

‫‪XX‬‬ ‫َٸڃ خؼبٕفٿ خڀؽدين ؤو خڀٹُمص‬


‫‪X‬‬ ‫َٸڃ خؼبٕفٿ خألوپ‬
‫وى‪٬ ٪‬مځُص خؼبٹدَوص‬
‫‪X‬‬ ‫‪ X=1‬ڄٹدَوص ٸُمص ڄٕفٿ ڄ‪ ٫‬آوُ‬
‫‪ X=3‬ڄٹدَوص ٸُمص ڄسدُ٘ش ڄ‪ ٫‬ڄٕفٿ‬

‫ڄؽدپ ‪:‬‬

‫‪CMP R2,R3‬‬ ‫‪03 00 52 E1‬‬


‫‪CMP R4,#1‬‬ ‫‪01 00 54 E3‬‬
‫‪CMP R0,R4‬‬ ‫‪04 00 50 E1‬‬
‫‪CMP R5,# FF‬‬ ‫‪FF 00 55 E3‬‬

‫ظ٭ځُمص )‪: BRANCH (B‬‬

‫‪BRANCH = XX XX XX EA‬‬
‫)‪BEQ: If Z = 1 (XX XX XX 0A‬‬
‫)‪BNE: If Z = 0 (XX XX XX 1A‬‬
‫)‪BMI: If N = 1 (XX XX XX 4A‬‬

‫ٍ٘ء ؤوًن ‪:‬‬

‫‪CMP R0, R1‬‬


‫‪N=1‬‬ ‫‪Z=1‬‬ ‫‪C=1‬‬
‫‪R0 >= R1‬‬ ‫‪R0=R1‬‬ ‫‪R0>=R1‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪402‬‬


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ انجىال‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ڀځمًَّ ڄه خؼب٭ځىڄدض ‪ :‬خو‪ ARM7- DATA SHEET ُ٩‬يف ڄُٴٹدض خڀًَْ‬

‫‪ .2‬ستانا‪ ٠‬عٌُ تطب‪ٝ‬كات ايـ ‪ Pocket PC‬عً‪ ٢‬ايهُب‪ٛٝ‬تط‬

‫‪.Microsoft Visual Studio 2005‬‬


‫‪.Microsoft ActiveSync 4.5‬‬

‫ؤوالً ٘ٱٿ ‪ Microsoft Visual Studio 2005 :‬ڀع‪٩‬هُ خڀ‪ٙ‬د٘ص خڀعدڀُص ‪:‬‬

‫مث ز٭ً ٌڀٻ ‪: Tools - > Device Emulator manager‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪403‬‬


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ انجىال‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫يبٽىٻ ڄه ٌىد خوعُدَ ؤٌ و‪٩‬دڂ ڀعمدټًُ‪ ،‬وڀٽىىد ٔىىعدَ ‪ ، Pocket Pc 2003‬خِن خ‪٠‬ٱ‪ ٣‬زدڀَّ خأليبه ڀځٵإَش ‪٬‬ځً ‪SE Emulator‬‬
‫‪ Pocket Pc 2003‬وخوعُ ‪: Connect‬‬

‫خوع‪ ُ٩‬ٸځُالً‪ ..‬ؤُ‪٩‬هُ ټمد يف خڀ‪ٝ‬ىَش‪.‬‬

‫خوعسً ڀإل٘دَش يخوٿ خؼبُز‪ ٫‬خألضبُ يف خڀ‪ٝ‬ىَش!! ٴهٍ يڀُٿ خالظ‪ٝ‬دپ زدحملدټٍ‪.‬‬

‫خِن ٔىٹىڂ زُز‪ ٣‬خعبهدِ ڄ‪ Microsoft ActiveSync 4.5 ٫‬وهبٍخ وٕع‪ ٫ُ٥‬ربمُٿ خڀربخڄؿ ‪٬‬ځً خعبهدِ خحملدټٍ‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪404‬‬


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ انجىال‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫خ‪٠‬ٱ‪ ٣‬زَّ خڀٵإَش خڀؽدين ‪٬‬ځً ‪ Pocket Pc 2003 SE Emulator‬مث خوعُ ‪: Cradle‬‬

‫خوعسً ڀإل٘دَش ؤڄدڂ ‪.Pocket Pc 2003 SE Emulator‬‬

‫خ‪٠‬ٱ‪٠ ٣‬ٱ‪٥‬عٌن ‪٬‬ځً ‪ Microsoft ActiveSync 4.5‬خؼبىـىي يف َُ٘‪ ٣‬خؼبهدڂ ‪:‬‬

‫‪File -> Connection Settings‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪405‬‬


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ انجىال‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫وخ‪٠‬س‪ ٣‬خإل‪ً٬‬خيخض ټمد يف خڀ‪ٝ‬ىَش ‪:‬‬

‫خوع‪ ُ٩‬ٸځُالً‪ ..‬ؤُعڃ خالظ‪ٝ‬دپ ‪:‬‬

‫خوعُ ‪: Guest‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪406‬‬


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ انجىال‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫الل‪ ٧‬خڀٵُٶ زٌن ٌٍي خڀ‪ٝ‬ىَش وخڀ‪ٝ‬ىَش ٸسٿ ظإُٔٓ خالظ‪ٝ‬دپ‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪407‬‬


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ انجىال‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫خِن يبٽىىد ربمُٿ ؤٌ زُودڄؿ ‪٬‬ځً ‪ Emulator‬ولىت خٔع٭ُخ‪ ٞ‬خؼبځٵدض خؼبىـىيش ٴًُ‪.‬‬

‫خ‪٠‬ٱ‪٬ ٣‬ځً ‪ Explore‬خؼبىـىيش يف ودٴٍش ‪. Microsoft ActiveSync‬‬

‫ويبٽىىد لىت ؤن وٹىڂ ز٭مځٍخض خؽبىًٔص خڀ٭ٽُٕص ولىت خڀـ ‪. Remote Debugger‬‬

‫ٸڃ جبىڀص يف و‪٩‬دڂ خحملدټٍ وسبع‪ ٫‬زةڄٽدوُدض ‪. Windows Mobile‬‬

‫‪Emulatorٚ‬‬ ‫عٌُ ‪ Debugger‬باغتدساّ ‪Microsoft Visual C++ 2005‬‬ ‫‪.3‬‬

‫٘ٱٿ ‪ Microsoft Visual Studio 2005‬مث ‪ New -> project‬وخوعُ ټمد يف خپ‪ٜ‬ىَش ‪:‬‬

‫>‪Ok -> Next -‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪408‬‬


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ انجىال‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫>‪Next -‬‬

‫‪Finish.‬‬

‫خِن خؼب‪ُٙ‬و‪ ٪‬ڄ‪ُٙ‬و‪ Console Smart Device ٪‬ٴدَٮ مث ‪Build -> Build Solution‬‬

‫ظإټً ڄه خؼبٕدَ خڀعدرل وڄه ؤن خؼبځٵدض ڄىـىيش!!‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪409‬‬


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ انجىال‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫خِن ٔىٹىڂ ز٭مٿ ‪ Debugger‬ڀځ٭سص ‪. DuckHunt‬‬

‫خڀځ٭سص ڀُٕط حبدـص ڀځٽُٕ‪ ،‬ٴٹ‪ ٣‬ؤ‪٠‬ٳ خظبٻ ڀٿـ ‪ Owner‬ؤع٭مٿ‪ ،‬وڀٽه غبدـص يف‬
‫ؤوٵٕىد ٸمىد زٍڀٻ‪.‬‬

‫ٸڃ زدحملدټدش ټمد ٴ٭ځىد يف خڀٵٹُش خڀٕدزٹص وضبٿ خڀځ٭سص ‪٬‬ځً خڀـ ‪. Emulator‬‬

‫ٔىٹىڂ ز٭مٿ ‪٬ Remote Debugger‬ځً خڀځ٭سص‪ ،‬وڀٽه ٸسٿ ٌڀٻ ڀىىٕه ڄٕدَ خڀځ٭سص ٘ٱٿ‪ Microsoft ActiveSync 4.5‬مث‬
‫خ‪٠‬ٱ‪٬ ٣‬ځً ‪ Explore‬وظدز‪ ٫‬ٴعك خؼبځٵدض لىت ظ‪ٝ‬ٿ بذل خؼبٕدَ خؼبى‪٠‬ك زدڀ‪ٝ‬ىَش ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪410‬‬


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ انجىال‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫خوٕه خڀځ٭سص وًٰن خظبهد بذل ‪. catena_man‬‬

‫‪ catena_man‬ټمد يف خٔڃ خؼب‪ُٙ‬و‪. ٪‬‬

‫ؤظٍټُ ٌٍي خڀ‪ٝ‬ىَش؟‬

‫ٔع‪ٝ‬سك ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪411‬‬


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ انجىال‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ڄد ٸمىد زً ٌى لٍٲ ټٿ خؼبځٵدض يخوٿ ؾبځً ‪ Debug‬ووٕه خؼبځٳ‬


‫‪ catena_man‬بذل خجملځً‪.‬‬
‫ال ظهْ ؤن ربٵ‪ ٧‬ڄٕدَ خڀځ٭سص ‪٬‬ځً ‪. Emulator‬‬

‫‪ ً٬‬بذل ‪: Microsoft Visual Studio 2005‬‬

‫خؼبٕدَ ‪\ Program Files\Ce4arab\Duck_Hunt\catena_man.exe:‬‬

‫ال ظٽعر خٔڃ خڀربودڄؿ ‪٬‬ىً خڀع٭دڄٿ ڄ‪. Deployment ٫‬‬

‫و خِن‪ ،‬خ‪٠‬ٱ‪٬ ٣‬ځً ‪: Configuration Manager‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪412‬‬


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ انجىال‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ Close - > Ok‬وخِن ‪ F11‬ؤعُي ‪:‬‬

‫لدوپ ؤن ظٕعمُ زدڀععس‪ ٫‬والل‪ ٧‬ؤن خڀـ ‪َ Emulator‬٭مٿ ڄ‪ ٫‬ؤوخڄُ خڀـ ‪Debugger‬‬

‫ؼبدٌخ مت خوعُدَ ٌٍي خڀځ٭سص؟‬

‫الل‪ ٧‬ؤن ٌٍخ خڀځ٭سص ظعٽىن ڄه ڄځٳ وخلً ٴٹ‪ ،٣‬وٌى ڄځٳ خڀـ ‪ exe‬ٴٵٍ ٌٍي خغبدڀص دل وٽه حبدـص بذل ‪٠‬س‪ ٣‬ب‪ً٬‬خيخض خڀـ‬
‫‪ Remote Debugger‬زٿ ټدن فبٽه خالټعٵدء زىٕه خڀځ٭سص بذل ؾبځً خڀـ ‪ Debug‬وظ‪ٙ‬ٱُٿ خڀربودڄؿ (‪ )F11‬ولىت يون ظ‪ٙ‬ٱُٿ‬
‫خڀـ ‪ Emulator‬و‪ُٔ Microsoft Visual Studio 2005‬عىذل ظ‪ٙ‬ٱُٿ خڀـ ‪ Emulator‬ووٕه خڀځ٭سص‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪413‬‬


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ انجىال‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ٌٍي خڀ‪َُ٥‬ٹص ال ظىٵ‪ ٫‬ڄ‪ ٫‬خڀربخڄؿ خڀيت ربعىٌ ڄٽدظر َز‪ ٣‬ؤو ڄځٵدض يخظد ؤو ‪ٜ‬ىَ‬
‫ؤو ًٰنٌد‪.‬‬
‫يبٽه خالٔعٱىدء ‪٬‬ه خڀـ ‪ Emulator‬وٌڀٻ زدٔعىًخڂ ـهدِ ‪Pocket pc‬‬
‫لٹُٹٍ وخظسد‪ ٪‬خػب‪٥‬ىخض خڀٕدزٹص ؤعُي ؤن خڀـ ‪ُٔ Debugger‬ىٵٍ ‪٬‬ځً‬
‫ـهدِٺ خغبٹُٹٍ ‪.‬‬

‫‪Emulator‬‬ ‫‪ .4‬عٌُ ‪ debbuge‬باغتدساّ ‪ٚ IDA‬‬

‫‪.IDA ‬‬
‫‪( WinCE Plugin For IDA ‬ڄ‪ ٫‬ڄُٴٹدض خڀًَْ)‪:‬‬
‫‪ ‬خوٕه خؼبځٵدض ‪ ida_kdstub.dll‬و‪wince_remote_arm.dll‬‬
‫بذل خجملځً خألٔدٍٔ ڀـ ‪IDA‬‬
‫وخوٕه خؼبځٳ ‪ wince_stub.plw‬خؼبىـىي يخوٿ ڄځٳ خڀـ ‪ Plugins‬بذل‬
‫ڄؿپ ‪.IDA‬‬ ‫يخوٿ ڄځٳ ‪ Plugins‬خؼبىـىي يف خ‬
‫‪( Handmark Yathzee 1.05 ‬يف خؼبُٴٹدض)‪.‬‬

‫خِن ٔىٹىڂ ز٭مٿ ‪ Debugger‬ڀځ٭سص ‪: Handmark Yathzee 1.05‬‬

‫ٸڃ زدحملدټدش ټمد ٴ٭ځىد يف خڀٵٹُش خڀٕدزٹص وضبٿ خڀځ٭سص ‪٬‬ځً خڀـ ‪. Emulator‬‬

‫ٔىٌٍر وكب‪ ُ١‬ڄځٳ خڀځ٭سص خڀـ ‪ EXE‬ڄه ‪ Emulator‬مث و‪ٙ‬ٱٿ ‪ Microsoft ActiveSync 4.5‬مث و‪١‬ٱ‪٬ ٣‬ځً ‪Explore‬‬
‫ووعدز‪ ٫‬ٴعك خؼبځٵدض لىت و‪ٝ‬ٿ بذل خؼبٕدَ خؼبى‪٠‬ك زدڀ‪ٝ‬ىَش ‪:‬‬

‫خوٕه ڄځٳ خڀځ٭سص بذل ٔ‪٥‬ك خؼبٽعر‪ ،‬مث ٘ٱٿ ‪ IDA‬مث خٔمر خڀځ٭سص ڀًخوځً ٔع‪٩‬هُ ڀٻ خڀىدٴٍ خ‪٠‬س‪ ٣‬خإل‪ً٬‬خيخض ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪414‬‬


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ انجىال‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫خ‪٠‬ٱ‪: ok ٣‬‬

‫خ‪٠‬ٱ‪: ok ٣‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪415‬‬


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ انجىال‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫َخج‪ ٫‬خوعً َىد !!‬

‫‪ Debugger -> Start process‬مث ‪OK‬‬

‫هبر ؤن َٽىن خڀـ ‪ Emulator‬يف و‪ ٫٠‬خڀ٭مٿ ‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪416‬‬


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ انجىال‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ڄد ٔىٹىڂ زً ُٔعُظر ‪٬‬ځًُ و‪٥‬ـإ وڀٽه ي‪٬‬ىد وع٭ځڃ!!‬

‫خ‪٠‬ٱ‪ yes ٣‬و‪٬‬ىًٌد ُٔىٹٿ ‪ IDA‬ڄځٳ خڀځ٭سص خڀـ ‪ EXE‬بذل خجملځً خعبٍَ يف خڀـ ‪: Emulator‬‬

‫ڄد خؼب‪ٙ‬ٽځص ؟‬

‫ؤظٍټُ ‪٬‬ىًڄد مت وٕه خڀځ٭سص ڄه ڄځٵهد خو‪: ُ٩‬‬

‫ټدن ڄ٭هد ڄځٵدض َز‪ ٣‬ربدذبهد ټٍ ظ٭مٿ‪ ،‬و‪٬‬ىًڄد وٕىعهد بذل ٔ‪٥‬ك خؼبٽعر وٕىعهد ڀىلًٌد‪.‬‬

‫ڀه ربٿ خؼب‪ٙ‬ٽځص زىٕه ټٿ خؼبځٵدض بذل ٔ‪٥‬ك خؼبٽعر؛ ألن ‪ IDA‬ڀه َىٕه ڄځٳ خڀـ ‪ EXE‬بذل خعبٍَ خڀُجٍُٕ ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪417‬‬


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ انجىال‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ٸً ظ٭مٿ خڀځ٭سص وال ظ‪٩‬هُ خڀُٔىڄدض وخأل‪ٜ‬ىخض ڀىٵٓ خڀٕسر خڀٕدزٷ ‪.‬‬
‫ڀى ټدوط خڀځ٭سص ڄٽىوص ڄه ڄځٳ وخلً ٴٹ‪ ٣‬ڀىفمط خڀ٭مځُص ټمد يف خڀځ٭سص‬
‫خڀٕدزٹص ‪.‬‬

‫خِن ؤ‪ ً٬‬خڀٽُش‪ Debugger -> Start process ،‬وال ظىٓ لٍٲ خؼبځٳ ڄه خعبٍَ خڀُجٍُٕ خؼبسٌن زدأل‪٬‬ځً ‪:‬‬

‫خِن ‪NO‬‬

‫‪OK‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪418‬‬


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ انجىال‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫وٵٓ خؼبٕدَخض يف ‪: Emulator‬‬

‫‪OK‬‬

‫َخج‪ ٫‬قبمىد وخغبمً هلل!!‬

‫ڄه خؼبمٽه ‪٠‬س‪ ٣‬ب‪ً٬‬خيخض خڀـ ‪ Remote Debugger‬ٸسٿ خڀع‪ٙ‬ٱُٿ‪ ،‬الل‪: ٧‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪419‬‬


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ انجىال‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ټدن ڄه خؼبمٽه وٕه ڄځٵدض خڀځ٭سص بذل خؼبٽدن خڀٌٍ َىٕه ٴًُ ‪ IDA‬خؼبځٳ‪ ،‬ـُذ وٕه خؼبځٵدض ؤع٭مٿ خڀځ٭سص ‪.‬‬

‫‪ .5‬اَجً‪ ١‬تطب‪ٝ‬ك‪١ٝ‬‬

‫‪ .5.1‬املجاٍ األ‪ : ٍٚ‬نػط يعب‪Handmark Yathzee 1.05 ١‬‬

‫خڀځ٭سص ٌٍ خڀيت مت ُ٘ق خڀٵٹُش خڀٕدزٹص ‪٬‬ځُهد‪ ،‬ٴځىفُذ خڀځ٭سص ‪٬‬ځً خڀـ ‪٘ Emulator‬ٱٿ خڀځ٭سص ڄه ‪:‬‬

‫‪Start -> Program -> games -> Yathzee‬‬


‫ـُذ ؤن ظځ٭ر‪ٔ ،‬ع‪٩‬هُ َٔدڀص ظ‪٥‬ځر خڀعٕفُٿ‪ ،‬ؤيوٿ ؤٌ خٔڃ ٔع‪٩‬هُ خڀُٔدڀص ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪420‬‬


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ انجىال‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫خلٵ‪ ٧‬و‪ ٛ‬خڀُٔدڀص ٴُٕځّڄٻ‪.‬‬

‫ضبٿ خڀځ٭سص ڀـ ‪ IDA‬وال ظٹىڂ ز٭مٿ ‪.Debugger‬‬

‫ال ظىٓ هبر ظ‪ٙ‬ٱُٿ خڀـ ‪ Emulator‬وَز‪ ً٥‬ڄ‪Microsoft ActiveSync 4.5 ٫‬‬
‫وربمُٿ خڀځ٭سص‪.‬‬

‫ټرب ودٴٍش ‪: Strings Windows‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪421‬‬


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ انجىال‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫مث خحبػ ‪٬‬ه و‪ ٛ‬خڀُٔدڀص‪ ،‬ويبٽه ؤن ظسًؤ زدڀٻظدزص و‪ُٔ IDA‬سمػ (خټعر ‪: ) if‬‬

‫َخج‪ ٫‬ڀٹً وـًود و‪ ٛ‬خڀُٔدڀص‪ .‬خ‪٠‬ٱ‪٠ ٣‬ٱ‪٥‬عٌن ‪٬‬ځً خڀى‪: ٛ‬‬

‫خِن خ‪٠‬ٱ‪٠ ٣‬ٱ‪٥‬عٌن ‪٬‬ىً خؼبُز‪ ٫‬خألَِٶ ڀىٌٍر بذل ڄٽدن خڀٽىي خڀٌٍ خٔعىًڄط ٴًُ خعبمځص ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪422‬‬


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ انجىال‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫لٕىدً ٌٍخ ٌى خڀٽىي‪ ،‬خ‪٠‬ٱ‪ ٣‬زَّ خڀٵإَش (يف ڄٽدن ال وبىٌ ظ٭ځُمدض ) خڀؽدين وخوعُ ‪: Graph Veiw‬‬

‫يخوٿ خؼبُز‪ ٫‬خألضبُ خڀُٔدڀص خڀٱًن ڄُٰىزص‪ ،‬وهبر ؤن ال و‪ٝ‬ٿ بڀُهد‪ ،‬وال ل‪ ٧‬ؤوً َعڃ خڀى‪ٜ‬ىپ بڀُهد ڄه ؤَز‪ُ٤ ٫‬ٶ‪ ،‬الل‪ ٧‬خألٔهڃ ٴىٶ‬
‫خؼبٕع‪ُ٥‬ٿ‪.‬‬

‫لٕىدً ٔى‪ ٫١‬وٹ‪٥‬ص ظىٸٳ ‪٬‬ځً ؤز٭ً ـّء ڄه خڀٽىي خڀٌٍ َى‪ٜ‬ځىد بذل خڀُٔدڀص (ؤوپ ـّء زدڀعمٹٷ)‪ ،‬ؤى٭ُٴً ڄه نالپ خڀىٸىٲ ‪٬‬ځً‬
‫خألٔهڃ وڄ‪ٙ‬دًٌش خڀ٭ىدوَه ؤ‪٬‬ځً خؼبُز٭دض ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪423‬‬


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ انجىال‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ظٵم‪ ٛ‬خڀ٭ىدوَه ڀألٔهڃ ټمد يف خؼبُز‪ ٫‬خڀربظٹدرل ٔدزٹدً‪ ،‬وخوعُ ؤٸٿ ٌٍي خڀ٭ىدوَه‪٤ .‬س٭د ٔعفً ؤن ؤٸٿ خڀ٭ىدوَه ٌى خألوپ ڄه ‪٬‬ځً خڀُمٌن‬
‫خ‪٠‬ٱ‪٬ ٣‬ځً خڀٕهڃ ڄُظٌن ‪:‬‬

‫‪ ٫٠‬وٹ‪٥‬ص ظىٸٳ ٔع‪ٝ‬سك خڀع٭ځٍڄص زدڀځىن خألضبُ‪ ،‬وبزًؤ خڀععس‪: Debugger -> Start Process ٫‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪424‬‬


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ انجىال‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫خټعر ؤٌ َٸڃ ظٕفُٿ وخو‪: ُ٩‬‬

‫خألضبُ ‪ٌ :‬ى ودٴٍش خڀع٭ځُمدض‪ ،‬وال ل‪ ٧‬ؤن ‪ IDA‬ؤوٸٳ خڀربودڄؿ ‪٬‬ىً وٹ‪٥‬ص خڀعىٸٳ‪.‬‬
‫خڀربظٹدرل ‪ :‬ودٴٍش خڀٕعدٺ‪.‬‬
‫خألو‪ : ُ١‬ودٴٍش خؼبٕفالض‪.‬‬
‫ڀالٔعمُخَ زدڀععس‪ٔ ٫‬ى‪١‬ٱ‪٬ ٣‬ځً ‪ F8‬والل‪ ٧‬ؤن ٌٍي خڀٹٵّش ڀه ظ‪ٙ‬ٽٿ ڄ‪ٙ‬ٽځص ؤؼىدء ‪٬‬مځُص خڀعٕفُٿ؛ ألهند ڀه ظٹىيود ڀځُٔدڀص (الل‪٧‬‬
‫ٌڀٻ ڄه والپ وڄُ‪ ٟ‬خڀٕهڃ)‪.‬‬

‫ظدز‪ ٫‬زىٵٕٻ‪ ..‬ؤعمُ ‪٬‬ځً خڀٹٵّخض ‪٬‬ىً خڀ٭ىدوَه ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪425‬‬


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ انجىال‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪00030FC0‬‬ ‫‪00031190‬‬ ‫‪000311D8‬‬

‫ٌىدٺ ڄ‪ٙ‬ٽځص يف ٌٍي خڀٹٵّش؟! ‪ٜ‬مُك ؤهند ال ظايٌ بذل خڀُٔدڀص ڄسدُ٘ش‪ ،‬وڀٽه خوّپ بذل خألٔٵٿ ؤعفً ٸٵّش بـسدََص بذل خڀُٔدڀص‪ ،‬بٌن‬
‫هبر ذبدوِ ٌٍي خڀٹٵّش‪.‬‬

‫وټمد ظع‪ٙ‬دًٌ ٴهٍي خڀٹٵّش ٌٍ ‪ BGT‬ؤٌ خٸٵّ بٌخ ټدن ؤټرب سبدڄدً‪ ،‬ويبٽه ذبدوٌِد جب٭ٿ خڀ٭ځڃ ‪َٕ Z‬دوٌ خڀىخلً (ؤٌ َٕدوٌ سبدڄدً وڀُٓ‬
‫ؤټرب سبدڄدً)‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪426‬‬


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ انجىال‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ً٬‬پ ٸُمص ‪ Z‬ټمد يف خڀ‪ٝ‬ىَش‪ ،‬لٕىدً ظدز‪ ٫‬خڀععس‪ ٫‬وْسبُ ‪٬‬ځً خڀٹٵّخض ‪٬‬ىً خڀ٭ىدوَه ‪:‬‬

‫‪000311F8‬‬ ‫‪00031204‬‬

‫وټځهد ٔعٹىي ڀځمٽدن خڀ‪ٝ‬مُك‪ ،‬ظدز‪ ٫‬ظىٵٍُ خڀربودڄؿ زدڀٽدڄٿ زدڀ‪١‬ٱ‪٬ ٣‬ځً (‪: )F9‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪427‬‬


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ انجىال‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫مت ظٕفُٿ خڀځ٭سص‪ ،‬وخِن ٔىٹىڂ ز٭مٿ ‪ Crack‬ڀځمځٳ وَځّڄىد ڀٍڀٻ ‪:‬‬

‫‪.Arm Edit Disassembler ‬‬

‫وڀٽه ٸسٿ خأليخش ڀى٭ً بذل ٌىد ‪:‬‬

‫خِن ْو٭ًپ ‪:‬‬

‫‪٬‬ځٍڄص خ پٶيميش‬
‫خپض‬ ‫‪Hex Code‬‬ ‫‪٬‬ځٍڄص خ عبًًَش‬
‫خپض‬ ‫‪Hex Code‬‬

‫‪cmp R6,R0‬‬ ‫‪00 00 56 E1‬‬ ‫‪Cmp R6,R6‬‬ ‫‪06 00 56 E1‬‬

‫خ‪٠‬ٱ‪٬ ٣‬ځً خڀع٭ځُمص خڀيت وًَُ ظ٭ًَځهد‪ ،‬والل‪ ٧‬ؤن ‪ IDA‬ٸً لٕر خإلِخلص يف خؼبځٳ ‪:‬‬

‫٘ٱٿ ‪: arm_edit_Disassembler‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪428‬‬


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ انجىال‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫خوعُ ڀ٭سعىد خڀيت ‪٬‬ځً ٔ‪٥‬ك خؼبٻظر ‪File  open  jump  to Offset‬‬

‫‪ OK‬مث خ‪٠‬ٱ‪ ٣‬ز‪ٙ‬ٽٿٍ ڄّيوؾ ‪٬‬ځً خڀع٭ځُمص خؼبُخي ظ٭ًَځهد‪ ،‬وًٰن خڀع٭ځُمص وټمد يف خعبًوپ خڀٕدزٷ ‪:‬‬

‫‪ OK‬مث ‪File  save‬‬

‫ڄسدَٺ بوعهُىد ڄه خڀٽُخٺ!!‬

‫ؤ‪ ً٬‬ظ‪ٙ‬ٱُٿ خڀـ ‪ ، Emulator‬ضبٿ خڀځ٭سص‪ ،‬خٔعسًپ ڄځٳ خڀـ ‪ EXE‬زدڀٽُخٺ‪ ،‬ؤيوٿ ؤٌ َٸڃ ظٕفُٿ‪َ ،‬خج‪ ٫‬ظ٭مٿ!!‬

‫‪ .5.2‬املجاٍ ايجاْ‪ : ٞ‬نػط يعب‪Fun2Link ١‬‬

‫‪( Fun2Link‬يف خؼبُٴٹدض)‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪429‬‬


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ انجىال‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫خوٕه ڄځٳ خڀځ٭سص بذل ٔ‪٥‬ك خؼبٽعر‪ ،‬مث خٔمسً ڀًخوٿ زُودڄؿ ‪ IDA‬ټمد ٴ٭ځىد ‪٬‬ىً ټُٕ خڀځ٭سص خڀٕدزٹص ‪:‬‬

‫خ‪٠‬ٱ‪٬ ٣‬ځً ‪ Functions‬ؤع‪٩‬هُ ڀٻ ودٴٍي ربىٌ صبُ‪ ٫‬خڀًوخپ خؼبٕعً‪٬‬دش يخوٿ خڀربودڄؿ‪ ،‬مث خزًؤ زٽعدزص ‪: Messageboxw‬‬

‫خ‪٠‬ٱ‪ ٣‬خڀَّ خأليبه مث ‪: Add break points‬‬

‫٘ٱٿ خڀځ٭سص‪ ،‬وؤيوٿ ؤٌ َٸڃ ظٕفُٿ‪ُٔ ،‬ٹٳ خڀربودڄؿ ٌىد ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪430‬‬


‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ انجىال‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫الل‪ ٧‬خؼبٕفٿ ‪ LR‬ٴًُ ‪٬‬ىىخن خإلـُخجُص خڀيت خٔعً‪٬‬ط يخڀص ‪!! messageboxW‬‬

‫ٌٿ ظ‪ٙ‬دًٌ خؼبُز‪ ٫‬خألَِٶ؟ خوٹُ ‪٬‬ځً خڀٕهڃ خؼبىؾوي يخوځً ڀٽٍ وٌٍر بذل ٌٍي خإلـُخجُص‪ ،‬ؤوط ٌىد ‪:‬‬

‫يخڀص ٔع‪٩‬هُ خپ‬


‫‪ Dialog‬خڀٌٍ ٔإڀىد‬
‫‪٬‬ه خپَُٔدپ‬

‫ڄٹدَوص ‪ R0‬ڄ‪ 0 ٫‬وٌٍخ‬


‫َٽدٴث ڄ٭ُٲ بٌخ مت‬
‫خڀ‪١‬ٱ‪٬ ٣‬ځً ‪Cancel‬‬
‫ڄٹدَوص بٌخ ټدوط خڀٽځمص‬
‫خؼبًوځص ‪ٜ‬مُمص ؤڂ ال‬

‫ؤ‪٠‬ٳ وٹ‪٥‬ص ظىٸٳ ‪٬‬ىً خڀٹٵٌّ خڀربظٹدڀُص‪ ،‬و‪٬‬ىً خڀى‪ٜ‬ىپ بڀُهد خ‪٬‬ٽٓ ٸُمص خؼبٕفٿ ‪ ، Z‬ظد ز‪ ٫‬خڀعىٵٍُ‪:‬‬

‫هتدوُىد خِن خٔعمع‪ ٫‬زدڀځ٭سص‬

‫مت ز٭ىوً ظ٭دذل‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪431‬‬


‫الباب السابع‪ :‬تطبيقات عنلية موسعة‬

‫‪432‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ عًهيح يىسعح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫شرح كسر برٌامج ‪AutoRun Typhoon Pro v 4.0.4‬‬

‫‪.OllyDbg‬‬
‫‪. AT4RE FastScanner v2.0‬‬
‫‪.ExeInfo PE v 0.0.1.9‬‬

‫ذبً خڀ‪١‬مُص يف خؼبُٴٹدض (خڀعممُٿ ڄه ڄُٴٹدض خڀٽعدذ)‪.‬‬

‫ًٔنٴُ خڀ‪ُٙ‬ټص ڀځعمٹٷ ڄه خڀعٕفُٿ‪،‬‬


‫ڄؽدڀىد يف ٌٍخ خڀًَْ ُٔع‪ُ٥‬ٶ بذل خڀ٭ًًَ ڄه خألڄىَ يف ټُٕ خڀربخڄؿ‪ ،‬ؤنبهد ڄى‪ ٫‬خظ‪ٝ‬دپ خڀربودڄؿ ذ‬
‫وؤڄىَ ؤوُي ٔىع‪ُ٥‬ٶ ؤڀُهد ؤؼىدء خڀًَْ‪.‬‬

‫ٸسٿ ټٿ ٍ٘ء ٔىٹىڂ زٵم‪ ٛ‬خڀربودڄؿ زدٔعىًخڂ ‪ AT4RE FastScanner v2.0‬وٌٍ و‪٥‬ىش ڄهمص ظ٭‪ُ٥‬ىد ٴٽُش ؤؤ‪٬ ٫‬ه‬
‫خڀربودڄؿ فبد َٕهٿ ‪٬‬ځُىد ټُٕي ‪:‬‬

‫خڀربودڄؿ َٕعىًڂ خڀ٭ًًَ ڄه ڄٽدظر خڀع‪ٙ‬ٵًن‪ٔ ،‬ىًَْ ‪٬‬مٿ خڀس٭‪ ٟ‬ڄىهد اللٹدً‪.‬‬

‫ٶڂ زع‪ٙ‬ٱُٿ خڀربودڄؿ ڀىع٭ُٲ ‪٬‬ځًُ‪ ،‬وڀٽٍ وإوٍ ‪٬‬ىً ٴٽُش ؤمشٿ‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪433‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ عًهيح يىسعح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ال قبً ؤٌ َٔدجٿ ظ‪٥‬دڀسىد زدڀعٕفُٿ‪ ،‬وڀٽه ٔىٹىڂ ز٭مځُص خڀعٕفُٿ زإوٵٕىد ‪:‬‬

‫ؤيوٿ ؤٌ خٔڃ وؤٌ َٸڃ‪ ،‬مث خ‪٠‬ٱ‪ ٣‬خڀَّ ‪: unlock‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪434‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ عًهيح يىسعح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫والل‪ ٧‬ؤن خڀربودڄؿ ؤ‪ٜ‬ڃ؛ ٴهى َعمًغ زځٱص خڀى‪ٝ‬ى‪ ٚ‬وزًون َٔدجٿ !!‬

‫ڀٽه ؤوٍود ٴٽُش زُٕ‪٥‬ص ‪٬‬ه خڀربودڄؿ‪ ،‬وڄد ٔىٹىڂ زً ٌى خڀسمػ ‪٬‬ه خڀى‪ ٛ‬خڀٌٍ ‪ ً٠ُ٬‬خڀربودڄؿ‪ ،‬وٌى ‪Invalid Serial Number‬‬
‫يف زُودڄؿ ‪: OllyDbg‬‬

‫ؤټًُ ؤوٻ ظ٭ُٲ ڄد ‪٬‬ځُٻ ‪٬‬مځً؟! و‪ ٫٠‬وٷخ ‪ ٢‬ظىٸٳ يف ټال خؼبى‪٠‬٭ٌن‪ ،‬مث ٘ٱٿ خڀربودڄؿ وخٌٌر بذل وخـهص خڀعٕفُٿ وؤټعر ؤٌ ؤٔڃ‬
‫وَٸڃ‪ ،‬مث ؤ‪٠‬ٱ‪ ٣‬ڄىخٴٷ‪ٔ ،‬عؿ ي ؤوً ظىٸٳ ‪٬‬ىً ؤلًنبد ‪:‬‬

‫ٔعفً ؤن ٌىدٺ ٸٵّخض ڄ‪ُٙ‬و‪٤‬ص ظٕسٹهد يخڀص‪ ،‬زدڀعإټًُ ٌٍ خڀيت ظعمٹٷ ڄه خڀَُٕدپ‪ٌ ،‬ٿ ٌى ‪ٜ‬مُك ؤڂ ال؟ ويف لدڀعىد ٔىٌٍر بذل‬
‫َٔدڀص خػب‪٥‬إ‪ ،‬وڄد ٔعٹىڂ زً ٌى ‪٬‬مٿ وٹ‪٥‬ص ظىٸٳ ‪٬‬ىً يخڀص خڀعمٹٷ ‪٬‬ىً خڀ٭ىىخن ‪004245BC :‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪435‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ عًهيح يىسعح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫٘ٱٿ خڀربودڄؿ خِن‪ ،‬وؤيوٿ ؤٌ زُدودض‪ ،‬مث خ‪٠‬ٱ‪ ٣‬ڄىخٴٷ‪ ،‬و‪٬‬ىً يخڀص خڀعمٹٷ خ‪٠‬ٱ‪ ٣‬خڀَّ ‪ F7‬ڀځٌٍدذ بڀُهد ‪:‬‬

‫خِن ظعس‪ ٫‬خڀربودڄؿ‪ ،‬وخٴعك ‪ُ٬‬ىُٻ ‪٬‬ځً ودٴٍش خؼبٕفالض وخؼبٽًْ ‪:‬‬

‫وـًود خڀَُٕدپ وزًون ؤٌ ‪٬‬ىدء‪ ،‬خِن ٸڃ زىٕىص و٘ٱٿ خڀربودڄؿ وؤيوٿ خڀَُٕدپ خڀ‪ٝ‬مُك خڀٌٍ وـًودي يف خڀربودڄؿ‪ ،‬مث خ‪٠‬ٱ‪ ٣‬ڄىخٴٷ ‪:‬‬

‫والل‪ ٧‬ؤن خڀَُٕدپ ‪ٜ‬مُك زًڀُٿ ‪٨‬هىَ ٌٍي خڀُٔدڀص‪ ،‬وٌى ًََُ ڄىد َز‪ ٣‬خالوعُوط‪ ،‬ڀُعمٹٷ ڄه خڀعٕفُٿ پيي ًٔنٴُ خڀ‪ُٙ‬ټص‪ ،‬وٌىدٺ‬
‫ُٔعإټً ڄه ؤن زُدودض خڀعٕفُٿ خڀيت ؤيوځىدٌد ًٰن ڄىؼىٸص ڀًًَ‪ ،‬وؤوىد ل‪ٝ‬ځىد ‪٬‬ځُهد ز‪َُ٥‬ٹص ًٰن ُ٘‪ُ٬‬ص وڀه َعڃ خڀعٕفُٿ يف خڀربودڄؿ !‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪436‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ عًهيح يىسعح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ٔع‪٩‬هُ ڀىد ٌٍي خڀُٔدڀص ‪٬‬ىً خڀ‪١‬ٱ‪٬ ٣‬ځً خڀَّ ‪ start‬ڀٍخ هبر ‪٬‬ځُىد خِن بټمدپ ‪٬‬مځُص خڀعٕفُٿ‪ ،‬وزب‪ ٍ٥‬ؤو ڄى‪ ٫‬خڀربودڄؿ ڄه خڀعمٹٷ‬
‫ڄه خڀعٕفُٿ ‪٬‬رب خإلوعُوط‪ .‬يف خغبٹُٹص ڀه وععس‪ ٫‬ڄ‪ٌٍ ًَٝ‬ي خڀُٔدڀص‪ ،‬وڀٽه ڄد ٔىٹىڂ زً ٌى خڀى‪ٜ‬ىپ بذل خڀًوخپ خڀيت َٹىڂ ڄه والؽبد‬
‫‪ٜ‬دپ ‪٬‬رب خإلوعُوط ڀځعمٹٷ ڄه خڀعٕفُٿ‪.‬‬
‫خڀربودڄؿ زدالض‬

‫ضبٿ خڀربودڄؿ يف ‪: ExeInfo PE v 0.0.1.9‬‬

‫ٔىٹىڂ ڄه والپ ٌٍخ خڀربودڄؿ خڀسمػ ‪٬‬ه صبُ‪ ٫‬خڀُوخز‪ ٣‬خؼبىـىيش يف ‪٠‬مُعىد ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪437‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ عًهيح يىسعح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫خڀٕهڃ ‪.‬‬
‫ٔعفً خڀ٭ًًَ ڄه خڀُوخز‪ ٣‬وڄد َهمىد ٌى خؼبىٸ‪ ٫‬خػبد‪ ٚ‬زدڀعمٹٷ ڄه خڀعٕفُٿ‪ ,‬وٌى خؼب‪ٙ‬دَ بڀًُ ذ‬

‫دبفُي خڀ‪١‬ٱ‪٬ ٣‬ځً خڀُخز‪ُٔ ٣‬عڃ وٕىً ظځٹدجُدً‪.‬‬

‫خحبػ ‪٬‬ه ٌٍخ خڀى‪ ٛ‬ؤو ‪٬‬ه ٌٍخ خڀُخز‪ ٣‬يف ‪: OllyDbg‬‬

‫والل‪ ٧‬وـىي خڀُخز‪ ٣‬وزدألٔٵٿ ڄىً ‪٬‬سدَيت‪ :‬خڀٹسىپ وَٴ‪ ٟ‬خڀَُٕدپ‪ ،‬وؤَ‪١‬دً ‪٬‬سدَش ‪ً٬‬ڂ خالظ‪ٝ‬دپ زدڀًٕنٴُ‪.‬‬

‫بٌن يف ٌٍخ خؼبٽدن ڄه خڀربودڄؿ ظعڃ ‪٬‬مځُص خالظ‪ٝ‬دپ زدڀًٕنٴُ وخپربٹٷ ڄه خڀعٕفُٿ‪ٌ ،‬ٿ ٌى ‪ٜ‬مُك ؤڂ ڄّوَ؟ وٌىد زدڀعمًًَ ٔىٹىڂ‬
‫زةڀٱدء ؤو زب‪ٌٍ ٍ٥‬ي خڀ٭مځُص جب٭ځً ٌٍَر بذل َٔدڀص خڀ‪ٝ‬ىخذ‪.‬‬

‫خ‪٠‬ٱ‪ ٣‬ز‪ٙ‬ٽٿ ڄّيوؾ ‪٬‬ځً خڀى‪ ٛ‬خؼباُ٘ ڀىًَْ ټُٵُص َعڃ زب‪٬ ٍ٥‬مځُص خظ‪ٝ‬دپ خڀربودڄؿ زدڀًٕنٴُ ‪٬‬رب خإلوعُوط‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪438‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ عًهيح يىسعح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ ٫٠‬وٹ‪٥‬ص ظىٸٳ ‪٬‬ىً خڀ٭ىىخن ‪ 0042517C‬وؤِپ صبُ‪ ٫‬خڀىٹد‪ ٢‬خڀٕدزٹص خڀيت و‪٠‬٭ىدٌد‪ ،‬مث خ‪٠‬ٱ‪٬ ٣‬ځً خڀَّ ‪ Start‬ڄُش ؤوُي ؤُعىٸٳ‬
‫‪٬‬ىً ظځٻ خڀىٹ‪٥‬ص‪ ،‬ظعس‪ ٫‬ؤعالل‪ ٧‬ؤن خڀربودڄؿ َٹىڂ زةَٔدپ خڀسُدودض خڀيت ؤيوځىدٌد بذل ًٔنٴُ خڀ‪ُٙ‬ټص ‪٬‬رب ٌڀٻ خڀُخز‪: ٣‬‬

‫و‪٬‬ىًڄد ظ‪ٝ‬ٿ بذل ٌٍخ خڀ٭ىىخن ‪: 004251B6‬‬

‫ٔع‪٩‬هُ ٌٍي خڀُٔدڀص‪ ،‬وٌٍ َٔدڀص خػب‪٥‬إ؛ ڀ٭ًڂ وـىي خظ‪ٝ‬دپ زدڀًٕنٴُ ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪439‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ عًهيح يىسعح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ڄد ٔىٹىڂ ز٭مځً ٌى ‪ :‬خٔعسًخپ ‪ NOP‬زدڀع٭ځُمدض خڀيت ظعهُإ ز٭مځُص خالظ‪ٝ‬دپ وبَٔدپ زُدودض خڀعٕفُٿ بذل خڀًٕنٴُ‪ ،‬وظٽىن ‪٬‬مځُص‬
‫خالٔعسًخپ زًءخً ڄه خڀ٭ىىخن ‪ 0042518A‬وبذل خڀ٭ىىخن خڀٌٍ ظ‪٩‬هُ ٴًُ َٔدڀص خػب‪٥‬إ‪ ،‬ؤٌ ‪٬‬ىً ٌٍخ خڀ٭ىىخن ‪: 004251B6‬‬

‫خِن ٘ٱٿ خڀربودڄؿ وخ‪٠‬ٱ‪٬ ٣‬ځً خڀَّ ‪ Start‬ڀى‪ٙ‬دًٌ وعُفص ڄد ٸمىد زً ‪:‬‬

‫ٔعفً لًوغ و‪٥‬إ ‪٬‬ىً ٌڀٻ خڀ٭ىىخن خؼبى‪٠‬ك زدڀ‪ٝ‬ىَش‪ ،‬ؤسر ٌڀٻ ٌى ڄد ٸمىد زً ڄه لٍٲ خڀع٭ځُمدض‪ ،‬ؤُعڃ بٰالٶ خڀربودڄؿ ز٭ً‬
‫لًوغ ٌڀٻ خػب‪٥‬إ !!‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪440‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ عًهيح يىسعح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ال زإْ ؤ‪ ً٬‬ظ‪ٙ‬ٱُٿ خڀربودڄؿ وخٌٌر بذل وٹ‪٥‬ص خڀعىٸٳ يف خؼبٽدن خڀٌٍ َعمٹٷ ٴًُ خڀربودڄؿ ڄه خڀعٕفُٿ‪ ،‬وخٔعسًپ ‪ NOP‬زعځٻ‬
‫خڀع٭ځُمدض‪ ،‬و‪ ٫٠‬وٹ‪٥‬ص ظىٸٳ ‪٬‬ىً خڀ٭ىىخن خڀٌٍ لًغ ٴًُ و‪٥‬إ ټ٭الڄص ڀٻ‪ ،‬وڄه مث ؤيوٿ خڀسُدودض خڀ‪ٝ‬مُمص وظعس‪ ٫‬خڀربودڄؿ بذل ؤن‬
‫ظ‪ٝ‬ٿ بذل خڀ٭ىىخن خڀٌٍ لًغ ٴًُ خػب‪٥‬إ ‪:‬‬

‫خِن وٕعسًپ ‪ Pop EAX‬زعځٻ خڀع٭ځُمص لىت ال وبًغ و‪٥‬إ يف خڀع٭ځُمص خڀيت ظځُهد ‪: TEST EAX,EAX‬‬

‫مث وٹىڂ زع٭ًَٿ خڀٹٵّش خؼب‪ُٙ‬و‪٤‬ص بذل ‪: JMP SHORT 00425225‬‬

‫وؤَ‪١‬دً ٌٍي خڀٹٵّش بذل ‪ NOP‬لىت سبُ ڄه َٔدڀص خڀ‪ٝ‬ىخذ‪ ،‬وَعڃ خالوعهدء ڄه خڀعٕفُٿ يف خڀربودڄؿ‪ ،‬وَعڃ ٸسىپ خڀَُٕدپ ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪441‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ عًهيح يىسعح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫وهبٍي خڀ٭مځُص ـ٭ځىد خڀربودڄؿ َٹسٿ زُدودض خڀعٕفُٿ زًون ‪٬‬مځُص خڀعمٹٷ ڄه خڀعٕفُٿ ‪٬‬رب ًٔنٴُ خڀ‪ُٙ‬ټص‪ .‬و زٍڀٻ وٽىن ٸً خوعهُىد ڄه‬
‫‪٬‬مځُص خڀعٕفُٿ يف خڀربودڄؿ زىفدق‪.‬‬

‫ظىـً زُخڄؿ ظعمٹٷ ڄه خڀعٕفُٿ ‪٬‬ىً ظ‪ٙ‬ٱُځهد ؤؼىدء خظ‪ٝ‬دڀٻ زدإلوعُوط زًون ‪٬‬ځمٻ‪ ،‬وذبً ؤهند‬
‫ظځٱٍ زُدنخض خڀعٕفُٿ‪ٌٍ .‬ي خڀربخڄؿ ز٭‪١‬هد ؤڄُي ٔهٿ وڄد ‪٬‬ځُٻ ٔىي ربًًَ خڀُوخز‪ ٣‬يف‬
‫ؤٌ ڄىهد خڀيت ظٹىڂ ز٭مځُص خالظ‪ٝ‬دپ زدڀًٕنٴُ‪ ،‬وبن دل ظٕع‪ ٫٥‬ربًًَ خڀُخز‪٣‬‬
‫خڀربودڄؿ؛ ڀع٭ُٲ خً‬
‫‪ ٫٠‬وٹد‪ ٢‬ظىٸٳ ‪٬‬ځً صبُ‪ ٫‬خڀُوخز‪ ،٣‬و‪٬‬ىً خڀىٸىٲ ‪٬‬ځً ؤلًٌد ٸڃ زعٱًن ؤٌ لُوٲ‬ ‫خڀ‪ٝ‬مُك ٲ‬
‫ظٱًُن لُٲ ڄه ‪:‬‬‫ڄه ٌڀٻ خڀُخز‪ ،٣‬ؤٌ ٸڃ ذ‬
‫‪ www.typhoon.com‬ڀُ‪ٝ‬سك ‪www. typhaon.com :‬‬

‫ؤٌ بذل ڄىٸ‪ ٫‬ؾبهىپ؛ لىت مبى‪ ٫‬خظ‪ٝ‬دپ خڀربودڄؿ زدڀًٕنٴُ‪.‬‬


‫ڀٽه ٌٍي خڀ‪َُ٥‬ص ال ظىٵ‪ ٫‬يف ټٿ خحلخالض‪.‬‬

‫كبٵ‪ ٧‬خڀعٱًنخض خڀيت ٸمىد هبد‪ ،‬مث و‪ٙ‬ٱٿ خڀربودڄؿ‪ ،‬و‪٬‬ىًٌد ٔعفً ؤوً ال َ٭مٿ هندجُدً‪ ،‬وٌىد و٭ُٲ ؤن خڀربودڄؿ َٕعىًڂ ‪ CRC32‬وٌٍ‬
‫وىخَِڄُص ظٕعىًڂ ڀٽ‪ٙ‬ٳ ؤٌ ظ٭ًَٿ يف خڀربودڄؿ‪ ،‬وٸً خٔعىًڄهد خؼبربڄؿ ڀُمى‪ ٫‬ؤٌ ظ٭ًَٿ زدڀربودڄؿ‪ ،‬وَسًو ؤوً ٌټٍ ٸځُالً؛ ٴهى دل‬
‫َ‪٩‬هُ ڀىد ؤٌ َٔدڀص ظسٌن زإن خڀربودڄؿ ڄځ٭ىذ زً‪ ،‬وخڀيت ټدوط ٔعٕهٿ ‪٬‬ځُىد ټؽًنخً يف بهبدي ٌٍي خغبمدَص وزب‪ُ٥‬هد ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪442‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ عًهيح يىسعح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ڀٽه ال ‪٬‬ځُٻ ٴٹ‪ ٣‬ضبٿ خؼبځٳ خؼب٭ًپ يف ‪ olly‬ويف َُ٘‪ ٣‬خألوخڄُ ؤيوٿ ٌٍخ خألڄُ ‪ BP ExitProcess‬وڄد ٸمىد زً ٌى وٹ‪٥‬ص ظىٸٳ‬
‫‪٬‬ځً ٌٍي خڀًخڀص ڀى٭ُٲ ڄ‪ ًَٝ‬خڀًخڀص خڀيت َٕعً‪ُ٬‬هد خڀربودڄؿ ‪٬‬ىً بٰالٸً ‪:‬‬

‫خِن ٘ٱٿ خڀربودڄؿ‪ٔ ،‬عفً ؤوً ظىٸٳ يف خؼبٽدن خؼبى‪٠‬ك يف خڀ‪ٝ‬ىَش خڀيت ؤڄدڄٻ‪ ،‬وٌىد ٸڃ زةِخڀص ٌٍي خڀىٹ‪٥‬ص ‪:‬‬

‫ظىـً بذل خؼبٽًْ يف زُودڄؿ ‪ OllyDbg‬وخڀٌٍ ُٔسٌن ڀىد خڀًخڀص خڀيت ظٕعً‪ُ٬‬هد ڄه والپ خڀربودڄؿ‪ ،‬وٌٍ ‪٬‬ىً ٌٍخ خڀ٭ىىخن يف خڀربودڄؿ‬
‫‪: AutoRun_.ِ00404BB7‬‬

‫وٌٍر بڀُهد ووُي ڂخٌخ َىـً ڀًَىد يف ٌڀٻ خڀ٭ىىخن ؟‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪443‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ عًهيح يىسعح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫بٌن خڀ٭مځُص وخ‪٠‬مص دبد َٹىڂ زً خڀربودڄؿ ڄه ‪٬‬مځُص لٕدزُص زٌن َٸمٌن‪ ،‬وٰدڀر خڀ‪٩‬ه ؤهند زٌن ٸُمص ـبّوص يف خڀربودڄؿ ‪ -‬وخڀٌٍ و‪٠‬٭هد‬
‫خؼبربڄؿ‪ -‬ڄ‪ ٫‬خڀٹُمص خڀؽدوُص خڀيت وڀًهتد ضبدَص ‪ CRC32‬يف خؼبځٳ خڀٌٍ ٸمىد زدڀع٭ًَٿ ٴًُ‪ ،‬وخڀىعُفص‪ :‬خڀٹُمعدن ًٰن ڄعٕدوَعٌن‪ ،‬وٌٍ ڄد‬
‫ٔعف٭ٿ ظځٻ خڀٹٵّش خؼب‪ُٙ‬و‪٤‬ص ال ظٹٵّ‪ ،‬وبمبد ٔعمُ بذل خڀًوخپ خڀيت ظٹىڂ زةٰالٶ خڀربودڄؿ‪.‬‬

‫وٌىد ظ٭ُٲ ڄدٌخ هبر ؤن ظٵ٭ٿ؟ وٌى ظٱًن خڀٹٵّش خؼب‪ُٙ‬و‪٤‬ص بذل ٸٵّش ًٰن ڄ‪ُٙ‬و‪٤‬ص‪ ،‬ؤٌ بذل ‪ Jmp‬خلٵ‪ ٧‬خڀعٱًنخض خڀيت ٸمىد هبد‪ ،‬و٘ٱٿ‬
‫خؼبځٳ ٔعفًي َ٭مٿ وزًون ؤٌ ڄ‪ٙ‬دټٿ‪ ،‬وهبٍخ وٽىن ٸً خوعهُىد ڄه ټُٕ خڀربودڄؿ ز‪ٙ‬ٽٿ هندجٍ‪.‬‬

‫ْظالل‪٬ ٧‬ىً ظ‪ٙ‬ٱُٿ ڄځٳ خڀربودڄؿ خڀٱًن ڄ٭ًپ ؤوً ڄٕفٿٌ زدظبىد‪ ،‬ٴهى ال َٹىڂ زدڀعمٹٷ ڄه‬
‫خڀًٕنٴُ ٔىي ڄُش وخلًش‪ ،‬وٌٍ ‪٬‬ىً بيودپ زُدودض خڀعٕفُٿ‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪444‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ عًهيح يىسعح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫إجياد سريال وكتابة كيجً لربىامج ‪AVI Video Converter‬‬


‫(‪)DES‬‬
‫)‪Keygenning AVI Video Converter (DES Protected‬‬

‫ٔىٹًڂ يف ٌٍخ خڀًَْ ُ٘لدً ڀ‪َُ٥‬ٹص بهبدي خڀَُٕدپ وټعدزص ټُفه ڀربودڄؿ ڄ‪ٙ‬ٵُ خبىخَِڄُص خڀع‪ٙ‬ٵًن ‪DES‬‬

‫‪.OllyDbg‬‬
‫‪.SnD Reverser Tool‬‬
‫‪.Delphi 7‬‬

‫ذبً خڀ‪١‬مُص يف خؼبُٴٹدض زدٔڃ ‪AVI Video Converter 2.1.3‬‬

‫(خڀعممُٿ ڄه ڄُٴٹدض خڀٽعدذ)‪.‬‬

‫ټُٳ ‪ُ٬‬ٴىد ؤن خڀربودڄؿ َٕعىًڂ وىخَِڄُص ‪ DES‬؟‬

‫زسٕد‪٤‬ص زٵم‪ ٛ‬خڀربودڄؿ زربودڄؿ ‪ PEiD‬وخٔعىًخڂ خڀسالٌٰن ‪ ( Kanal‬ڀځٽ‪ٙ‬ٳ ‪٬‬ه خڀع‪ٙ‬ٵًن ) ‪:‬‬

‫ڄدٌخ خٔعٵًود ڄه ڄ٭ُٴص ؤن خڀربودڄؿ َٕعىًڂ وىخَِڄُص خڀع‪ٙ‬ٵًن ‪ DES‬؟‬

‫ألوً ٸً َٕعىًڄهد خڀربودڄؿ ؤؼىدء لٕدزً ڀځَُٕدپ ؤو زُدودض خڀعٕفُٿ ( وٌٍخ ڄد وبًغ ٰدڀسدً )‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪445‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ عًهيح يىسعح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫َىسهىد ڀځسمػ ‪٬‬ه ؤڄىَ ظع٭ځٷ زدػبىخَِڄُص خؼبٕعىًڄص يخوٿ خڀربودڄؿ‪ ،‬ٴهىد ڀًَىد ‪. DES‬‬
‫ؤوالَ ‪ :‬ظٕعىًڂ ‪َُ٤‬ٹٌن ‪ :‬ظ‪ٙ‬ٵًن ‪ EnCrypt‬وٴٻ خپظ‪ٙ‬ٵًن ‪. DeCrypt‬‬
‫ؼدوُدً‪ ٌٍ :‬حبدـص بذل ڄٵعدق ‪ Key‬ظٕعىًڄً يف ‪٬‬مځُدض خڀع‪ٙ‬ٵًن وٴٻ خڀع‪ٙ‬ٵًن‪ ،‬وٌى ڄ٭ځه‪ ،‬ؤٌ هبر ؤن َعىخـً يخوٿ‬
‫خڀربودڄؿ ؤو َعڃ لٕدزً يخوٿ خڀربودڄؿ‪.‬‬

‫ٴ٭ځً ٔسُٿ خؼبؽدپ‪ :‬بٌخ ټدن ڀًَىد خڀٽځمص ‪ AT4RE‬وؤَيود ظ‪ٙ‬ٵًنٌد زـ ‪ DES‬زدٔعىًخڂ خؼبٵعدق‪. 123456ABCD :‬‬

‫ٔىٕعىًڂ خأليخش ‪ ، Snd Reverser Tool‬خوعُ }‪ DES {EnCrypt‬مث ؤيوٿ خڀسُدودض خڀ٭ځىَص‪ٔ ،‬عفً ؤن خڀُٔدڀص خؼب‪ٙ‬ٵُش ٌٍ‪:‬‬
‫‪ 968d9d1b5f836a39‬والل‪ ٧‬ؤهند زدڀى‪٩‬دڂ خڀٕعص ‪: ) HEX ( ٌُٙ٬‬‬

‫خِن وٍ خڀٹُمص ‪ 968d9d1b5f836a39 :‬و‪٠‬٭هد يف ‪ Input‬وؤزٹٍ وٵٓ خؼبٵعدق‪ ،‬وڀٽه خوعُ ‪ٔ Des .. Decrypt‬عالل‪ ٧‬ؤن‬
‫ٴٻ خڀع‪ٙ‬ٵًن ؤوعؿ ڀٻ ‪ AT4RE‬وڀٽه خوعسً بذل ؤن خؼبٵعدق زٹٍ وٵًٕ ڀځ٭مځُعٌن ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪446‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ عًهيح يىسعح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫بٌن وټمد ظالل‪ ٧‬خڀ٭مځُص ٰدَص يف خڀٕهىڀص ڄ‪ ٫‬ڄ٭ُٴص خؼبٵعدق خؼبٕعىًڂ يف وىخَِڄُص خڀع‪ٙ‬ٵًن‪.‬‬

‫‪ .1‬أ‪ٚ‬الً‪ :‬إجياز ايػط‪ٜ‬اٍ‬


‫‪ -‬خٴعك خڀربودڄؿ وؤيوٿ ؤٌ زُدودض ظٕفُٿ وخ‪٠‬ٱ‪ٔ Register ٣‬ع‪٩‬هُ ڀٻ خڀ٭سدَش ‪Registration is failed. Please check‬‬
‫‪.‬‬

‫‪ -‬ضبٿ خڀربودڄؿ يف ‪ OllyDbg‬وخحبػ ‪٬‬ه خڀُٔدڀص خڀٕدزٹص‪ ،‬و‪ ٫٠‬وٹ‪٥‬ص ظىٸٳ ‪٬‬ىً زًخَص خإلـُخء ‪. 004DD8A0‬‬

‫‪٘ -‬ٱٿ خڀربودڄؿ وظىـً بذل خڀعٕفُٿ وؤيوٿ خپزُدودض خڀعدڀُص ‪:‬‬

‫خالٔڃ ‪Roben :‬‬


‫خڀُٸڃ ‪11223344556677889900 :‬‬

‫‪ -‬خ‪٠‬ٱ‪ Register ٣‬ؤُعىٸٳ خؼبىٹك ‪٬‬ىً وٹ‪٥‬ص خڀعىٸٳ خڀيت و‪٠‬٭ىدٌد ٸسٿ ٸځُٿ‪ .‬ڄدٌخ َٵ٭ٿ خڀربودڄؿ زسُدودض خڀعٕفُٿ خػبد‪ٜ‬ص زىد؟‬
‫ڀىععس‪ ٫‬ؤوالً زدڀ‪١‬ٱ‪٬ ٣‬ځً ‪: F8‬‬

‫‪ -‬وعدز‪ ٫‬خڀ‪١‬ٱ‪ ٣‬ٴع‪٩‬هُ ڀىد ٔځٕځص و‪ُٝ‬ص فبُّش وٌٍ ‪ 770video920avi532 :‬ال زً ؤن َٽىن ٌٍخ ٌى ڄٵعدق خڀع‪ٙ‬ٵًن‪ ،‬وخالٔعً‪٬‬دء‬
‫خڀعدرل ڀً َٹىڂ ز٭مځُص ظ‪ٙ‬ٵًن ؤو ٴٻ خڀع‪ٙ‬ٵًن‪ ،‬ڀىالل‪: ٧‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪447‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ عًهيح يىسعح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ ٌُٙ٬‬بٌن ٴدڀ٭مځُص خجملُخش ٌٍ ظ‪ٙ‬ٵًن‪ ،‬ؤڄد بٌخ ټدن خڀىدظؿ ٔځٕځص و‪ُٝ‬ص ( ظ‪ٙ‬مٿ‬
‫ش‬ ‫‪ -‬بٌخ ټدن خڀىدظؿ خڀعدرل ڀالٔعً‪٬‬دء ‪٬‬سدَش ‪٬‬ه ٔځٕځص ٔعص‬
‫صبُ‪ ٫‬خپـ ‪٬ ، Char‬ځً ٔسُٿ خؼبؽدپ ‪ ( AsD9•ófÁ :‬وڀٽه ‪ OllyDbg‬ال َ‪٩‬هٌُد بٌخ خلعىض ‪٬‬ځً َڄىِ‪ ،‬زٿ َ‪٩‬هُ ڄٹدزځهد يف‬
‫خڀٕعص ‪ ) ) Hex ( ٌُٙ٬‬ٴدڀ٭مځُص خجملُخش ٴٻ ظ‪ٙ‬ٵًن‪.‬‬

‫‪ -‬ال ل‪ ٧‬ودظؿ خالٔعً‪٬‬دء ‪ Call 004DD7B0‬ؤُعڃ و‪٠‬٭ً يف ‪ EAX‬وڀىمدوپ لٵ‪ ً٩‬ـًُخً ‪00F3D5F4‬‬

‫‪ -‬ڀىعدز‪ ٫‬ؤَ‪١‬دً ‪:‬‬

‫‪ -‬خِن ُٔٹىڂ خڀربودڄؿ دبٹدَوص خالٔڃ خؼبًوٿ ڄ‪ ٫‬ٸُمص ڄ٭ُىص ڄه والپ خالٔعً‪٬‬دء ‪ . Call 00404868‬ڀىًوٿ بذل يخوٿ خإلـُخء‬
‫ووُخٸر خؼبٹدَوص‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪448‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ عًهيح يىسعح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ -‬والل‪ ٧‬وـىي ڄٹدَوص زٌن خالٔڃ خؼبًوٿ ‪ Roben‬وخڀٹُمص خڀىدذبص ‪٬‬ه ٴٻ خڀع‪ٙ‬ٵًن ڀځَُٕدپ‪ ،‬وٌٍ ‪00F3D5F4 :‬‬

‫‪ -‬خڀربودڄؿ َٹىڂ ز٭مځُص ‪٬‬ٻُٔص وٴٷ خػب‪٥‬ىخض خڀعدڀُص ‪:‬‬

‫‪َ )1‬عڃ ؤوٍ خڀَُٕدپ‪ ،‬وَٹىڂ زٵٻ ظ‪ٙ‬ٵًني زـ ‪ DES‬ڄٕعىًڄدً خؼبٵعدق ‪. 770video920avi532 :‬‬

‫‪َ )2‬ٹدَن ودظؿ ٴٻ خڀع‪ٙ‬ٵًن ڄ‪ ٫‬خالٔڃ خؼبًوٿ ‪. Roben‬‬

‫بٌن ټُٳ َعڃ بهبدي خڀَُٕدپ خڀ‪ٝ‬مُك ڀالٔڃ خؼبًوٿ ؟‬

‫خألڄُ زُٕ‪ٔ !! ٣‬ىإوٍ خالٔڃ وو‪ٙ‬ٵُي زـ ‪ Des‬زدٔعىًخڂ خؼبٳظدق وودظؿ خڀع‪ٙ‬ٵًن ُٔٽىن خڀَُٕدپ؛ ألن خڀربودڄؿ ‪٬‬ىًڄد ُٔٵٻ ظ‪ٙ‬ٵًن‬
‫ٌٍخ خڀَُٕدپ ُٔىعؿ ڄ٭ً خالٔڃ خڀٌٍ ٘ٵُودي‪.‬‬

‫‪ -‬ڀىٕعىًڂ خأليخش ‪ SnD Reverser Tool :‬إلهبدي َُٔدپ ‪ٜ‬مُك ڀالٔڃ ‪ Roben‬ڄٕعىًڄٌن ‪:‬‬

‫‪Key = 770video920avi532 ------- Input = Roben ----- Function = DES …. EnCrypt‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪449‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ عًهيح يىسعح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ --‬هتدوُىد خڀربودڄؿ ڄٕفٿ ‪:‬‬

‫‪ .2‬ثاْ‪ٝ‬اً‪ :‬نتاب‪ ١‬ن‪ٝ‬ذٔ يًدلْاَر‬

‫الزً زًخَص ؤن ظعىٴُ ڀٻ خؼبٽعسص ‪ DES‬ڀعٕع‪ ٫ُ٥‬خٔعً‪٬‬دء خڀع‪ٙ‬ٵًن وٴٻ خڀع‪ٙ‬ٵًن‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪450‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ عًهيح يىسعح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ٔىٕعىًڂ يف ټعدزص خڀٽُفه خڀځٱص ‪ Delphi‬ؤىٕعىًڂ خؼبٽعسص ‪ ( DES.pas‬وٌٍ ڄُٴٹص )‪.‬‬


‫يبٽه ټعدزص ټىي ظىڀًُ خڀَُٕدپ ټدڀعدرل ‪:‬‬
‫‪Uses‬‬
‫;‪…., DES‬‬
‫;‪Function GetSerial ( Name: String ): String‬‬
‫‪Var‬‬
‫;‪Key,Temp, Serial :String‬‬
‫;‪I: Integer‬‬
‫‪begin‬‬
‫;'‪key:='770video920avi532‬‬
‫;)‪Temp:= EncryStr(Name ,key‬‬
‫‪// Convert To Hex‬‬
‫‪For i:=1 to Length(Temp) do‬‬
‫‪begin‬‬
‫;)‪Serial:=Serial + IntToHex (ord(Temp[i]),2‬‬
‫;‪end‬‬
‫‪// Return‬‬
‫;‪Result:= Serial‬‬
‫;‪End‬‬

‫ڄ٭‪٩‬ڃ خڀربؾبُدض خڀيت ظٕعىًڂ وىخَِڄُدض ظ‪ٙ‬ٵًن يف ظىڀًُ خڀَُٕدپ‪ ,‬ربعدؾ‬


‫ٴٹ‪ ٣‬بذل ٴهڃ ؤٔدُٔدض خػبىخَِڄُص وؼىخزعهد وڄعٱًنخهتد‪ .‬وټعدزص ټُفه ؽبد ؤڄُ‬
‫دبىعهً خڀٕهىڀص‪ ،‬ڄ‪ ٫‬ظىٴُ خؼبٽعسص خػبد‪ٜ‬ص زځٱعٻ يف خڀربؾبص‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪451‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ عًهيح يىسعح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫كسر اللتب اإلللرتوىية املصيوعة بربىامج ‪eBook‬‬


‫‪Workshop‬‬

‫ټدڀ٭ديش كبدوپ ظسُٕ‪ ٣‬خألڄىَ ڀع‪٩‬هُ ز‪ٝ‬ىَش ؤو‪٠‬ك؛ ڀٍڀٻ ٔىمدوپ يف ٌٍخ خڀًَْ ؤن ن‪ُ٤‬ق لځىپ ڀٽٿ خڀعٕدئالض خڀيت ٸً ظإيت يف‬
‫ٌٌىٻ‪ ,‬ڀٍڀٻ ن‪٤‬ځر ڄىٻ خڀٹځُٿ ڄه خڀعُټُّ‪.‬‬

‫ڄُخلٿ خڀًَْ ‪:‬‬

‫‪ )1‬تعزيف الكتب اإللكرتوىية‪.‬‬


‫‪ )2‬فك الكتاب يزوياً يف الذاكزة وحتليله‪.‬‬
‫‪ )3‬كتابة لورر للكتاب‪.‬‬
‫‪ )4‬اصتدزاد الضزيال‪.‬‬
‫‪ )5‬كتابة ‪ Sniffer‬للضزيال‪.‬‬
‫‪ )6‬صيع كيحً للكتاب بأبضط طزيكة‪.‬‬

‫‪.OllyDbg any version‬‬


‫‪.MASM + RadAsm‬‬
‫‪. AT4RE FastScanner v 2.0‬‬

‫(خڀعممُٿ ڄه ڄُٴٹدض خڀٽعدذ)‪.‬‬

‫‪ .1‬تعط‪ٜ‬ـ ايهتب اإليهذل‪١ْٝٚ‬‬

‫خڀٽعر خإلڀٽعُووُص ڄؽځهد ڄؽٿ خڀٽعر خڀىَٸُص‪ ،‬ڀٽىهد ز‪ٝ‬ٵص لًَؽص َٸمُص‪ ،‬ظعُـڃ زُدودهتد ټمد َعُـڃ ؤٌ زُودڄؿ‪ ،‬وٌٍ ‪ً٬‬ش‬
‫ؼالغ ؤ‪ٜ‬ىدٲ ‪٬‬ځً خألٸٿ ڄه خڀٽعر ‪٬‬ځً ٌُحدض ـبعځٵص‪ ،‬ڄؽال ‪:‬‬
‫ؤ٘ٻپ وڀٽٿٍ وىخَِڄُعً‪ ،‬وكبه ‪٬‬ځً َٹٌن زدوٻ َؤَط ؤټؽُ ڄه ش‬
‫خ‬
‫‪ EXE ، PDF ، DOC‬ټمد َؤَط ؤَ‪١‬دً زُخڄؿ ڀځعمىَٿ ڄه ٌُحدض خذل ؤوُي‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪452‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ عًهيح يىسعح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ڄى‪٠‬ى‪ ٪‬خڀُىڂ َعمًغ ‪٬‬ه خڀٽعر ڄه ٌُحص ڄځٳ ظىٵٌٍُ وبعىٌ ‪ٜ‬ٵمدض خڀٽعر ز‪ٙ‬ٽٿ ڄى‪٩‬ڃ ؤهٿ خالٔع٭مدپ‪ٌ .‬ىدٺ ‪ً٬‬ش زُخڄؿ‬
‫ظىعؿ ٌٍخ خڀ‪ٝ‬ىٳ ڄه خڀٽعر‪ ،‬وؤ٘هٌُد ‪ Ebook Workshop‬خڀٌٍ ْن‪٬‬عمًي يف خڀًَْ‪.‬‬

‫ال َٵعُ‪ ٞ‬زىد ؤن نُ٘ق زُودڄؿ ‪ eBook Workshop‬ألوً ڀُٓ ڄى‪٠‬ى‪٬‬ىد‪ .‬ڀٹً ٸمىد ز‪ٝ‬ى‪ ٫‬ڄؽدڀٌن ٔىٕعٱځهڃ يف خڀًَْ‪.‬‬

‫ٔىځٹٍ و‪ُ٩‬ش ‪٬‬ځً خؼبؽدپ خألوپ‪ ,‬وْذبً ؾبځً زدٔڃ ‪ Ebook To Crack‬ڄُٴٷ ڄ‪ ٫‬خڀًَْ ٸڃ زدوعُدَ‪ Exemple 1.exe‬وٌى‬
‫ؤزٕ‪ ٣‬ڄؽدپ زٽځمص ُٔ ‪:‬‬

‫ټمد ظُي ؤوپ ڄد َ‪٥‬دڀر زً ٌى خڀعٕفُٿ وَ‪٥‬ځر ٴٹ‪ ٣‬ټځمص خڀُٕ‪ .‬ڄى‪٥‬ٹُد وټمد ـُض خڀ٭ديش ٔىسمػ ‪٬‬ه ٍ٘ء َإوٍود ؽبٍي خڀىدٴًش‬
‫وٌٍ ‪ Password‬ؤڀُٓ ټٍڀٻ؟!‬

‫ايهتب ‪ٜ‬س‪ٜٚ‬اً يف ايصانط‪ٚ ٠‬حتً‪ً٘ٝ‬‬


‫‪ .2‬ؾو ا‬
‫ټمد ظُي ٴٹً ٌټُنخ ټځمص ٴٻ ودل نُ٘ خذل وى‪ ٪‬خڀع‪ٙ‬ٵًن خو خڀ‪١‬ٱ‪ ،٣‬ؤهظُٺ خألڄُ ڀـ ‪ AT4RE FastScanner‬خإل‪ًٜ‬خَ خڀؽدين‪.‬‬

‫ٸڃ زٵم‪ ًٝ‬ڀى٭ُٲ خڀ‪١‬ٱ‪ ٣‬خو خڀع‪ٙ‬ٵًن ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪453‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ عًهيح يىسعح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ٌٍخ خڀٽعدذ ڂ‪٠‬ٱى‪ ٢‬زـ ‪ ASPack‬وٌى ‪٠‬دٰ‪ ٣‬ڄ‪ٙ‬هىَ ټمد ظ٭ځڃ ويَوْ ٴٽً ټؽًنش ـًخً‪ ،‬ڀٽه ٌىدٺ ُٔ يف ٴٻ ٌٍي خألڄؽځص‬
‫ْنً٘ن بڀًُ خ يف ؿبځهد زةٌن خهلل‪.‬‬

‫ز٭ً ؤن ‪ُ٬‬ٴىد وى‪ ٪‬خڀ‪١‬ٱ‪ ٣‬و‪َُ٤‬ٹص خڀٵٻ خڀسُٕ‪٥‬ص خؼب‪ُٙ‬ولص يف خڀىٕىص خألوذل ڄه خڀٽعدذ‪َ ،‬سٹً ‪٬‬ځُىد خڀع‪٥‬سُٷ خغبُيف ڀځ‪َُ٥‬ٹص ڀىم‪ٝ‬ٿ‬
‫‪٬‬ځً خڀربودڄؿ خأل‪ٜ‬ځٍ ( ڄٵٽىٺ يف خڀٍخټُش )‪.‬‬

‫ضبٿ خڀٽعدذ خألوپ بذل زُودڄؿ خڀعىٹُك مث ‪ F8‬مث ‪:‬‬

‫مث يف ٸٕڃ خڀـ ‪: Dump‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪454‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ عًهيح يىسعح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫الل‪ ٧‬ڀٹً ‪٠‬ځځىد خڀسعدض خألَز٭ص خألوذل‪ .‬خِن ‪: F9‬‬

‫مث ‪ F8‬ؼالغ ڄُخض‪ ،‬وٌد ؤوط يف ‪: OEP‬‬

‫ٸڃ ز٭مٿ ربځُٿ ڀځٽىي‪ ،‬وٌڀٻ زدڀ‪١‬ٱ‪٬ ٣‬ځً ‪ Ctrl + A‬مث ؤِپ وٹ‪٥‬ص خڀعىٸٳ ڄه وى‪ HardWare ٪‬خڀيت و‪٠‬٭ىدٌد‪ ،‬ټمد َځٍ ‪ :‬خذبً‬
‫ڀٹدجمص ‪: Debug‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪455‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ عًهيح يىسعح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫مث ‪:‬‬

‫وخِن ڀًَىد خڀٽعدذ ـدٌّ ڀځعىٹُك وخڀٽُٕ‪.‬‬

‫لػ ‪٬‬ه خڀٽځمص خؼبٵعدق ڀٽُٕ خڀٽعدذ وٌٍ ‪٠ Password‬مه و‪ٝ‬ى‪ ٚ‬خڀربودڄؿ ‪:‬‬
‫ٔىٹىڂ خالن زدپذ‬

‫ٸڃ زدڀ‪١‬ٱ‪٬ ٣‬ځً خڀَّ خأليبه ‪٠‬مه ٸٕڃ خڀٽىي ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪456‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ عًهيح يىسعح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ٔعىُؾ ڀٻ ودٴًش خڀى‪ٛ‬و‪ ٚ‬خ‪ٜ‬٭ً پأل‪٬‬ځً وخزًؤ خڀسمػ خؼبععدرل ‪٬‬ه ټځمص ‪: Password‬‬

‫وزدڀسمػ خؼبععدرل قبً ُ٘حد ڄؽًنخً ووخ‪٠‬مدً ‪:‬‬

‫خِن ظ٭ُٲ ڄد ‪٬‬ځُٻ ٴ٭ځً‪ ,‬وٌى و‪ ٫٠‬وٹ‪ ٣‬ظىٸٳ يف ټال خؼباَُ٘ه ڀٽځمص ‪ Password‬مث خڀ‪١‬ٱ‪٬ ٣‬ځً ‪ , F9‬ڄدٌخ ل‪ٝ‬ٿ؟ ڀٹً‬
‫ٴعمه خڀٽعدذ زًون خؼبىٹك وُـط ڀىد ودٴًش خڀعٕفُٿ‪ ،‬ؤڀُٓ ټٍڀٻ؟ وٌد كبه ڄعىٸٵىن‬
‫ظىٸٳ يف بلًخنبد‪ .‬الل‪ ٧‬ڄ٭ىد يف خألوپ ؼبد خ‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪457‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ عًهيح يىسعح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫خِن يف خؼبىٹك ‪ -‬يف ٍ٘ء ڄهڃ ڀٽُٕ خڀٽعدذ‪ -‬و ڄد ‪٬‬ځُىد ٔىي ـ٭ٿ خؼبىٹك َعدز‪ ٫‬ظىٹُك خڀٽعدذ ظځٹدجُدً ڀىُي ڄىٸ‪ ٫‬وُوؾ خڀىدٴًش‬
‫خؼبّ‪٬‬فص‪.‬‬

‫خ‪٠‬ٱ‪ Ctrl + F8 ٣‬مث الل‪ ٧‬ڄٽدن خڀعىٸٳ ـًُخ ‪:‬‬

‫خڀٽعدذ ؤ‪٤‬ځٷ ودٴٍظً خؼبّ‪٬‬فص ڀځعٕفُٿ‪ ،‬وټمد ظُي ٴدؼبىٹك ظىٸٳ ‪٬‬ىً خٔعً‪٬‬دجهد‪ ،‬وْذبً ٸسځهد ٸٵّخض ڄ‪ُٙ‬و‪٤‬ص‪ ،‬وخڀٹٵّش خڀىخ‪٠‬مص‬
‫خڀيت ال ذب٭ٿ خڀٽعدذ ڄٕفالً ٌٍ خڀيت ال ظً‪ ٪‬خؼبٕفٿ ‪َ BL‬إوٍ ٸُمص ‪ٜ ( 1‬مُك ) ‪:‬‬

‫‪JNZ SHORT 0048AE6A‬‬

‫ڄد ‪٬‬ځُىد ٔىي ‪٬‬ٽٕهد خو ـ٭ځهد ال ظٹٵّ يخجمدً‪ ،‬ڀى٭ٽٕهد‪ ,‬ؼبدٌخ و٭ٽٕهد زًپ ؤن قب٭ځهد ال ظٹٵّ يخجمدً؟ خعبىخذ‪ٌ :‬ى ‪ً٬‬ي خڀسدَعدض خڀيت‬
‫خذخ ٴةوىد ٔىٱًن ‪٬‬ځً خألٸٿ زدَعٌن خو‬
‫ٔىٱًنٌد؛ ٴٵٍ لدپ ‪٬‬ٽٕهد ٴٹ‪ٔ ٣‬ىم‪ٝ‬ٿ ‪٬‬ځً ظ٭ًَٿ زسدَط وخلً‪ ،‬ؤڂخ يف لدپ ـ٭ځهد ال ظٹٵّ ي‬
‫ؼالغ‪.‬‬
‫ش‬

‫ڀى٭ٽٕهد خذل ‪:‬‬

‫‪JZ SHORT 0048AE6A‬‬

‫ذبًٌد ظٱًنض خذل ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪458‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ عًهيح يىسعح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ټٿ ڄد ‪٬‬ځُٻ ظٍټُي ٌى ‪:‬‬

‫خڀ٭ىىخن ‪ 0048AE16h‬وخڀسدَط خڀٌٍ ًٰنود ڄه ‪ 75h‬خذل ‪.74h‬‬

‫خ‪٠‬ٱ‪ F9 ٣‬ڀىفُذ خڀٽعدذ ‪:‬‬

‫ڄدٌخ ظُي؟ خڀٽعدذ ڄٽٕىَ ويبٽىٻ ظ‪ٝ‬ٵمً‪َ ،‬خج‪ ٫‬ـًخً !!‬

‫هبٍخ وىهٍ ٌٍي خڀٵٹُش ومبُ ڀځعدڀُص‪.‬‬

‫يًهتب‬
‫‪ .3‬نتاب‪ ١‬ي‪ٛ‬زض ا‬
‫ؤظعٍټُ ڄد ٸځىدي يف خڀسًخَص ‪:‬‬

‫" ٌٍخ خڀٽعدذ ڂ‪٠‬ٱى‪ ٢‬زـ ‪ ASPack‬وٌى ‪٠‬دٰ‪ ٣‬ڄ‪ٙ‬هىَ ټمد ظ٭ځڃ ويَوْ ٴٽً ټؽًنش ـًخً‪ ،‬ڀٽه ٌىدٺ ُٔ يف ٴٻ ٌٍي خألڄؽځص‬
‫ْنً٘ن بڀًُ خ يف ؿبځهد زةٌن خهلل‪" .‬‬

‫ٌىد ْنـُر ‪ :‬زسٕد‪٤‬ص ٴةن ٌٍخ خڀىى‪ ٪‬ڄه خڀٽعر ال َٕعىًڂ ‪٠‬ٱ‪ ٣‬ٴٹ‪ ،٣‬زٿ َ٭عمً ظٹىُص خڀـ ‪ Overlay‬وٌٍ ظٹىُص ظع‪٥‬ځر ز٭‪ٟ‬‬
‫خؼبهدَخض يف خڀع٭دڄٿ ڄ٭ً خ ‪ ،‬ټمد ؤن ٌىدٺ يَْ پألن ‪ ، Atlasse‬وُ٘ق ڄه خألٔعدٌ ‪ dj-siba‬لىپ ٌٍي خڀعٹىُص‪.‬‬

‫زٍڀٻ وٕعىؿ ؤوً ڀُٓ ڄه خڀٕهٿ ٴٽً ًَوَدً‪ ،‬ڀٽه ڄد وعٵٷ ‪٬‬ځًُ ؤوىد ټُٕودي يف خڀٍخټُش وڀًَىد زًَٿ ڀځـ ‪ Patch‬وٌىد ظعفځً ٸُمعً‪،‬‬
‫وٌى خڀـ ‪ Loader‬وٌٍخ خڀربيبؿ زسٕد‪٤‬ص َٹىڂ زدپظ٭ًَٿ ‪٬‬ځً زُودڄؿ ڄد يف خڀٍخټُش ڄسدُ٘ش‪.‬‬

‫ټمد ظالل‪ ٧‬ڄه ‪٬‬ىىخن خڀٵٹُش " ټعدزص ڀىيَ ڀځٽعر " وڀُٓ ‪ٜ‬ى٭ً زربودڄؿ ڄد‪.‬‬

‫خِن ٔىٹىڂ زربؾبص ‪ Loader‬ڀځٽعدذ خألوپ زدألظبسځٍ‪ ،‬وزدٔعىًخڂ يوخپ ٸً مت ُ٘لهد يف خإل‪ًٜ‬خَ خألوپ ڄه خڀٽعدذ يف ٴٹُش خڀځىيَ؛‬
‫ڀٍڀٻ ٔه‪ ٫٠‬خڀٽىي ڄسدُ٘ش‪ ،‬وْن‪ ٫٠‬ڄالل‪٩‬دض ٴٹ‪: ٣‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪459‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ عًهيح يىسعح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ڄد ٸً ظٕعٱُذ ڄىً ٌى خڀًخڀص ‪ Sleep‬وؼبدذخ خٔع٭مٿودٌد ؟‬

‫وٸط ڀعٵٻ يف خڀٍخټُش‪ ,‬ڀٍڀٻ ٔىٹىڂ زةَٹدٲ خڀځىَي ڄًش ِڄىُص ڄ٭ُىص ٸ‪ًٝ‬نش‬
‫ټڃخ و٭ُٲ ‪٬‬ه خڀربخڄؿ خؼب‪١‬ٱى‪٤‬ص وخؼب‪ٙ‬ٵُش ٴةهند ظإوٍ خً‬
‫ـًخً مث نسبڃ ‪٬‬مځىد زٕالڂ ‪.‬‬

‫ڄرَٺ ‪٬‬ځُٻ مت ټُٕي ودل َ٭ً َ‪٩‬هُ پك خڀىدٴٍش خؼبّ‪٬‬فص‪.‬‬


‫خِن ـُذ خڀځىيَ ‪ ً٬ٞ :‬جبدور خڀٽعدذ مث خٴعمً!! خ‬

‫‪ .4‬اغتدطاز اٍغط‪ٜ‬اٍ‬

‫خألڄُ زُٕ‪ ٣‬ـًخ ٌٍي خؼبُش‪ ،‬يف خؼبُش خڀٕدزٹص‪ ،‬ؤٌ يف خڀٵٹُش خڀٕدزٹص‪ ،‬ـ٭ځىد خؼبىٹك ًَڀىد ‪٬‬ځً ڄٽدن خٔعً‪٬‬دء ودٴٍش خڀعٕفُٿ‪ ،‬ودل‬
‫ن٘دًٌ خؼبٹدَودض خڀيت َٹىڂ هبد‪ ،‬ؤڄد يف ٌٍي خڀٵٹُش ٲٔىٹىڂ خذپظعس‪ ٫‬زإوٵٕىد ٔ‪ُ٥‬خً ٔ‪ُ٥‬خً‪ ،‬ؤىُي ڄدٌخ ْوب‪ٝ‬ٿ ؟‬

‫ؤ‪ ً٬‬ظ‪ٙ‬ٱُٿ خؼبؽدپ‪ ،‬وٸڃ زة‪٬‬ديش وٵٓ خؼبُخلٿ يف خڀٵٹُش خڀٕدزٹص‪ ،‬وڀٽه ال ظ‪١‬ٱ‪ٌٍ ٣‬ي خؼبُش ‪ Ctrl + F8‬زٿ ٸڃ زدڀععس‪ ٫‬زـ ‪: F8‬‬

‫ٸسٿ خڀٹٵّش خڀيت ‪ً٬‬ڀىد ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪460‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ عًهيح يىسعح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫خو‪ ُ٩‬بذل خؼبٕفٿ ‪: EAX‬‬

‫ڄرَٺ ‪٬‬ځُٻ‪.‬‬
‫ٔعفً خدلٸدَوص ‪ ،‬وخپَُٔدپ يف خؼبٕفٿ‪ٌ .‬د ٸً وـًود خپَُٔدپ زٕهىڀص‪ ،‬وٌى ‪ AT4RE‬ـُزً‪ ،‬و خ‬

‫‪ .5‬نتاب‪ Sniffer ١‬يٌغط‪ٜ‬اٍ‬

‫ْن‪ ٫٠‬خڀٽىي زًون ُ٘ق؛ ألوً قي مت ُ٘ق ٌٍي خڀٵٹُش يف خإل‪ًٜ‬خَ خألوپ ڄه خڀٽعدذ ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪461‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ عًهيح يىسعح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ـُذ خِن ‪ Sniffer‬ؤُىُؾ ڀٻ َُٔدپ ڀځٽعدذ‪ ،‬وهبٍخ وىهٍ ٴٹُش ‪. Sniffer‬‬

‫‪ .6‬قٓع ايه‪ٝ‬ذٔ يًهتاب‬

‫ڀىٵعك خؼبؽدپ خڀؽدين ٔهـً ؤوً َ‪٥‬ځر َُٔدپ ڄع٭ځٷ زٹُمص زًوٌَد ڄع٭ځٹص زدٔڃ خعبهدِ ‪:‬‬

‫خڀٽُفه ‪ .‬ټُٳ ٔىفځر خپَُٔدپ ؽبٍخ خؼبؽدپ؟ خعبىخذ زُٕ‪ ٣‬ـًخً‪ :‬زىٵٓ ‪َُ٤‬ٹص‬
‫ڄد ‪٬‬ځُىد ٔىي ـځر خپَُٔدپ ؤوالً‪ ،‬مث سنٲكر ذ‬
‫خؼبؽدپ خألوپ ٔىفً خپَُٔدپ ڀځمؽدپ خڀؽدين‪.‬‬

‫ؤىفًي ‪٬‬ىً ‪:‬‬

‫يف خؼبٕفٿ ‪ EAX‬ڀٽىً َعٱًن ڄه ـهدِ ِوُ؛ ٴمؽالً ‪٬‬ځً ـهدٌِ ؤـً ‪:‬‬

‫‪B087B3739356A 0‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪462‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ عًهيح يىسعح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ؤڄد ڀًَٻ ٴځه َ‪ٙ‬عٱٿ؛ ڀٍڀٻ َځّڄىد ټُفه‪ .‬ٸسٿ خڀسًء يف ڄُخلٿ خڀٽُفه ڀىٹڃ ز‪ٝ‬ى‪ Sniffer ٫‬ڀځٽعدذ خڀؽدين زىٵٓ خڀ‪َُ٥‬ٹص سبدڄدً‪،‬‬
‫وَٽٵٍ ظٱًُن خڀ٭ىىخن ‪ AdressVA‬خذل ‪ . 0048AE61h‬ؤڄد خڀځىيَ خألوپ خڀٌٍ زُؾبىدي يفصحل ڀً؛ ألن ‪٬‬ىىخن خؼبٹدَوص ال َعٱًن‪ .‬ؤڄد‬
‫َٽٵٍ ظٱًُني يف خڀٕىَْ ټىي مث صب‪ ٫‬خڀځىَي‪.‬‬
‫يف لدپ ڀى ظٱًن ٲ‬

‫ڀىمُ خذل ‪ٜ‬ى‪ ٫‬خڀٽُفه – وڀُٓ زُؾبعً ‪َ -‬ځّڄٻ زُيبفٌن َإظُدن ڄ‪ ٫‬زُودڄؿ ‪ Ebook WorkShop‬ونبد ‪:‬‬

‫‪ GetID‬و ‪Key Maker‬‬

‫لٕه ڀىٵعك ‪: Key Maker‬‬


‫ذبًنبد ڄُٴٹٌن ڄ‪ ٫‬خڀًَْ‪ .‬خً‬

‫ؼدزطيف خڀربودڄؿ‪ ،‬وسضجيي زدڀعىٹُك‬


‫َُٰر ال َ‪٥‬ځر خٔڃ خعبهدِ ٴٹ‪ ،٣‬زٿ َ‪٥‬ځر خؼبٵعدق ؤَ‪١‬دً ڀعىڀًُ خپَُٔدپ !! وٌٍخ خؼبٵعدق َٽىن خً‬
‫زٕهىڀص ‪٬‬ىً خڀ٭ىىخن ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪463‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫ذطثيماخ عًهيح يىسعح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫يف خؼبٕفٿ ‪ . EAX‬يف ڄؽدڀىد خؼبٵعدق ٌى ‪. AT4RE‬‬

‫وخِن ز٭ًڄد وـًود خؼبٵعدق َځّڄىد خڀُٸڃ خڀعٕځٕځٍ ڀځفهدِ ٔىم‪ٝ‬ٿ ‪٬‬ځًُ زـ ‪: GetID‬‬

‫خ‪٠‬ٱ‪٬ ٣‬ځً ‪ OK‬ڀىٕىً‪ ،‬مث خذبً ڀـ ‪ Key Maker‬ڀىىڀً خپَُٔدپ ‪:‬‬

‫قصپ عذل سرَدپ خخص ذجٌدزك‪.‬‬


‫وؤوًنخً ٌدٌى خپَُٔدپ خڀ‪ٝ‬مُك عبهدٌِ ز‪َُ٥‬ٹص زُٕ‪٥‬ص ـًخً‪ .‬جرذ وسض‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪464‬‬
‫الباب الثامً‪ :‬تصنيه سلييات للباتصات‬

‫‪465‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرصًيى‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫تصنيه سلني لربىامج ‪ dUP‬باستدداو الفوتوشوب‬

‫ٔىٹًڂ ٌىد ُ٘لدً ڀځمُخلٿ خڀ٭مځُص ڀع‪ٝ‬مُڃ ٔٽٌن ڀربودڄؿ ‪ dup‬وخڀٌٍ َٕعىًڂ ڀ‪ٝ‬ىد‪٬‬ص زدظ‪ٙ‬دض وڀىيَخض‪.‬‬

‫زُودڄؿ ‪.dUP Version 2.19‬‬


‫زُودڄؿ ‪. Adobe Photoshop CS3‬‬
‫زُودڄؿ ‪.Resource Hacker‬‬
‫زُودڄؿ ‪.RGNCreator‬‬

‫(خڀعممُٿ ڄه ڄُٴٹدض خڀٽعدذ)‪.‬‬

‫ُٔعىدوپ ٌٍخ خڀًَْ خڀىٹد‪ ٢‬خڀُجُُٕص خڀعدڀُص ‪:‬‬

‫‪ )1‬ڄالل‪٩‬دض لىپ خڀع‪ٝ‬مُڃ‪.‬‬

‫‪ )2‬هتُحص خڀٕٽٌن‪.‬‬

‫‪ )3‬ظُټُر خڀٕٽٌن‪.‬‬

‫‪ .1‬أ‪ٚ‬الً ‪َ :‬السعات س‪ ٍٛ‬ايتكُ‪ِٝ‬‬


‫‪٤ -‬س٭دً زبعځٳ َئَص خڀع‪ٝ‬مُڃ وڄٕعىي خڀعٹىُص زدوعالٲ خأل٘ه خ‪ ٚ‬وخألٌوخٶ‪ ،‬ؤُٹع‪ ُٝ‬لًَؽىد ‪٬‬ځً خعبىخور خؼبع٭ځٹص زعُټُر خڀٕٽٌن‬
‫‪٬‬ځً زُودڄؿ ‪. dUP‬‬

‫‪ -‬ؤَٴٹىد ڄ‪ ٫‬خڀًَْ ظ‪ٝ‬مُمدً ڄ‪ ٫‬خؼبځٳ خؼب‪ ًٌَٝ‬زاللٹص ‪ PSD‬ڀُعڃ خڀ٭مٿ ‪٬‬ځًُ ؤؼىدء خڀ‪ُٙ‬ق‪.‬‬

‫‪ٔ -‬ى٭عمً ‪٬‬ځً ٔٽٌن ڄىـىي ڄٕسٹدً‪َ ,‬إيت ڄ‪ ٫‬زُودڄؿ ‪ dUP‬وٌى ‪ , VistaSkin.res‬ؤىمدوپ خٔعسًخپ خڀ‪ٝ‬ىَ خػبد‪ٜ‬ص زع‪ٝ‬مُمىد‬
‫زدڀ‪ٝ‬ىَ خڀيت ربعىًَ‪.‬‬

‫‪ -‬وٵعك خؼبځٳ ‪ VistaSkin.res‬زربودڄؿ ‪ Resource Hacker‬وو‪ٙ‬دًٌ ڄد ٌٍ خڀ‪ٝ‬ىَ خڀىخـر ‪٬‬ځُىد ظ‪ٝ‬مُمهد ؟‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪466‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرصًيى‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ -‬وٵعك خجملځً ‪ Bitmap‬ووځٹٍ و‪ُ٩‬ش ‪٬‬ځً خڀ‪ٝ‬ىَ خڀىخـر ظّوًَ خڀربودڄؿ هبد ‪:‬‬

‫بٌن كبه حبدـص بذل خڀ‪ٝ‬ىَ خڀعدڀُص يف خڀىمىٌؾ خڀُجٍُٕ ‪:‬‬

‫‪ )1‬وځٵُص ڀځع‪ٝ‬مُڃ‪.‬‬

‫‪ Patch َِ )2‬زإَز‪ ٫‬لدالض ‪:‬‬


‫‪ : Up‬خڀى‪ ٫٠‬خڀ‪٥‬سُ٭ٍ ڀځَّ‪.‬‬
‫‪٠ : Down‬ٱ‪ ٣‬خڀَّ‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪467‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرصًيى‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ : Over‬خؼبُوَ ٴىٶ خڀَّ زدڀٵإَش‪.‬‬


‫‪ : Disable‬خڀَّ ًٰن ڄٵ٭ٿ ( وٌٍي َىٵُي هبد َِ ‪.) Patch‬‬

‫‪ About َِ )3‬زؽالغ لدالض ‪.) Up – Down – Over ( :‬‬

‫‪ EXIT َِ )4‬زؽالغ لدالض ‪.) Up – Down – Over ( :‬‬

‫وؤَ‪١‬دً خڀ‪ٝ‬ىَ خڀعدڀُص يف مبىٌؾ ‪: About‬‬

‫‪ )1‬وځٵُص ڀىمىٌؾ ‪.About‬‬

‫‪ َِ )2‬بٰالٶ ڀىمىٌؾ ‪ About‬زؽالغ لدالض ؤَ‪١‬دً‪.‬‬

‫‪ -‬وٵعك ڄځٳ ‪ SourceSkin.Psd‬زربودڄؿ ‪ Photoshop‬ووسًؤ خڀ٭مٿ ‪.‬‬

‫‪َّ -‬ويود زُودڄؿ ‪ dup‬دبُّش ظٵَُٯ ڀىن ڄ٭ٌن ڄه خڀع‪ٝ‬مُڃ‪ ,‬ڄه والپ بو‪ٙ‬دء ڄځٳ زاللٹص ‪ RGN‬وٌىد هبر خالوعسدي بذل ؤن َٽىن ٌٍخ‬
‫خڀځىن ًٰن ڄٕعىًڂ يف خڀع‪ٝ‬مُڃ‪.‬‬

‫ڄه‬ ‫‪ -‬لدوپ ـ٭ٿ ڀىن خػبځٵُص ( خڀ‪٥‬سٹص ‪ ) Background‬زځىن ڄ‪ٙ‬دزً ڀځ‪ٝ‬ىَش خڀعدڀُص ڄه والپ ظ٭ٌُن خػبد‪ُٜ‬ص ‪Color Overly‬‬
‫خڀىدٴٍش ‪ Layer Style‬وخڀيت يبٽه ؤن ظ‪٩‬هٌُد زدڀىٹُ خؼبّيوؾ ‪٬‬ځً خڀ‪٥‬سٹص ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪468‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرصًيى‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ -‬خِن ٔىمدوپ بو‪ٙ‬دء خغبدالض خألَز‪ ٫‬ڀځَّ ‪( Patch‬ڄد َ‪٥‬سٷ ‪٬‬ځًُ يبٽه ؤن َ‪٥‬سٷ ‪٬‬ځً زٹُص خألَِخَ)‪ ،‬ؤىٕعىًڂ ٌىد ‪َُ٤‬ٹص زُٕ‪٥‬ص‬
‫ؤَُ٭ص‪.‬‬

‫‪ -‬خٴعك خجملځً ‪ PATCH BTN‬يف ودٴٍش ‪ Layers‬وخوعُ خڀى‪ Patch ٛ‬وخڀ‪ٙ‬ٽٿ ‪ Patch‬زدالٔع٭دوص زدڀ‪١‬ٱ‪٬ ٣‬ځً خڀَّ ‪ Ctrl‬ؤؼىدء‬
‫‪٠‬ٱ‪ ٣‬خڀٵإَش‪.‬‬

‫خِن خ‪٠‬ٱ‪٬ ٣‬ځً خؼبٳخظُك ‪ Ctrl + E‬ڀًڄؿ خڀ‪٥‬سٹعٌن ڄ‪ ٫‬ز٭‪١‬همد‪ ،‬ؤع‪ٙ‬دًٌ خڀىعُفص خڀعدڀُص ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪469‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرصًيى‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫خ‪٠‬ٱ‪٬ ٣‬ځُهد زَّ خڀٵإَش خأليبه‪ ،‬وخوعُ ‪: Convert To Smart Object‬‬

‫ڄُش ؤوُي ‪٠ h‬ٱ‪ ٣‬زَّ خڀٵإَش خأليبه‪ ،‬وخوعُ ‪: Edit Contents‬‬

‫خِن خڀَّ ٴُعك دب‪ُٙ‬و‪ ٪‬ـًًَ‪ ،‬وٌى ٸدزٿ ڀځعمَُُ ڄٵُيخً ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪470‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرصًيى‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ -‬خلٵ‪ ٧‬خدلڀٳ خِن زاللٹص ‪ BMP‬زدٔعىًخڂ ‪ File > Save As :‬ؤو خٔعىًڂ ظُټُسص خؼبٵدظُك ‪ Ctrl + Shift + S‬وخلٵ‪٩‬هد زدالٔڃ‬
‫‪ Patch_Up.Bmp‬وٌى خغبدڀص خألوذل ڀځَّ‪.‬‬

‫‪ -‬خوٹُ ‪٬‬ځً خڀ‪٥‬سٹص ‪ Patch‬وٹُخً ڄّيوـدً ڀعىُؾ ڀٻ خڀىدٴٍش ‪ LayerStyle‬خوعُ ڄىهد خڀسدذ ‪ Color Overlay‬وخوعُ ڀىودً وڀُٽه‬
‫خألو‪: ُ١‬‬

‫خ‪٠‬ٱ‪٬ ٣‬ځً خڀٹدجمص خؼبىًٕڀص ‪ Blend Mode‬وخوعُ خػبد‪ُٜ‬ص ‪: Color‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪471‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرصًيى‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ -‬خلٵ‪ ٧‬خؼبځٳ خعبًًَ زاللٹص ‪ Bmp‬وزدٔڃ ‪. Patch_Over :‬‬

‫‪ -‬ټَُ خڀ٭مځُص خڀٕدزٹص ڄه ؤـٿ خڀَّ ‪ Patch_Down‬ڄ‪ ٫‬خوعُدَ ڀىن آوُ ؤو ظإؼًن ـبعځٳ‪.‬‬

‫– زدڀىٕسص ڀځمدڀص ‪ Patch_Disable‬يبٽه ب‪٠‬دٴص خڀعإؼًن ‪ Satin‬ڄ‪ ٫‬خوعُدَ خڀځىن خڀُڄديٌ وخػبد‪ُٜ‬ص ‪. Distance = 0‬‬

‫‪ُٔ -‬ٽىن خڀ‪ٙ‬ٽٿ خڀىهدجٍ ڀځمدالض خألَز‪ ٫‬ڀځَّ ڄ‪ٙ‬دزً ڀځ‪ٝ‬ىَش خڀعدڀُص ‪:‬‬

‫‪ -‬هبر خالوعسدي بذل لٵ‪ ٧‬خألڀىخن خؼب‪٥‬سٹص ‪٬‬ځً خڀَّ ‪ Patch‬ڀع‪٥‬سٹهد ‪٬‬ځً خڀَّ ‪ About‬ٴ‪ٍٙ‬ء صبُٿ ؤن وبمٿ خالؼىٌن وٵٓ خڀځىن‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪472‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرصًيى‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ -‬ټمد وىي خإل٘دَش بذل بڄٽدوُص ربىَٿ خؼبٕع‪ُ٥‬ٿ بذل ‪ Smart Object‬مث ب‪٠‬دٴص و‪٬ ٛ‬ځًُ‪ ،‬وٌٍخ َٽىن ؤټؽُ ٴ٭دڀُص‪ ،‬وَٕمك ڀٻ‬
‫زة‪٠‬دٴص ظإؼًن ڄىٵ‪ٝ‬ٿ ‪٬‬ځً خڀى‪ ،ٛ‬وڀٽىىد خظس٭ىد ٌٍي خڀ‪َُ٥‬ٹص لىت ال َ‪٥‬ىپ خڀ‪ُٙ‬ق ټؽًنخً‪.‬‬

‫‪ -‬خِن يبٽىٻ ظٽُخَ وٵٓ خػب‪٥‬ىخض ڄه ؤـٿ خألَِخَ ‪ About‬و ‪: Exit‬‬

‫‪ -‬ؤڄد مبىٌؾ ‪ About‬ٴُعس‪ ٫‬وٵٓ خڀع‪ٝ‬مُڃ خؼبٕعىًڂ يف خڀىمىٌؾ خڀُجٍُٕ‪ ،‬ڄ‪ ٫‬خالوعسدي بذل ‪ً٬‬ڂ بڄٽدوُص خٔعىًخڂ ود‪ُٜ‬ص ؤوٍ ٘ٽٿ‬
‫ڄ٭ٌن ( ‪ ) RGN‬وڀه وع‪ُ٥‬ٶ ڀ‪ُٙ‬لً ٌىد‪.‬‬

‫‪ .2‬ثاْ‪ٝ‬اً ‪ :‬تٗ‪ ١٦ٝ‬ايػهني‬


‫خڀ‪ٝ‬ىَ خدلوـىيش‪ ،‬وٴٷ‬
‫ٔىٹىڂ زٵعك خڀٕٽٌن ‪ VistaSkin.res‬زربودڄؿ ‪ Resource Hacker‬ووٹىڂ زدٔعسًخپ خڀ‪ٝ‬ىَ خڀيت ‪ٜ‬ممىدٌد ذ‬
‫خػب‪٥‬ىخض خڀعدڀُص ‪:‬‬

‫‪ -‬و٭ٌن خڀ‪ٝ‬ىَش ‪ _ Back‬مث لبعُ ڄه خڀٹدجمص ‪: Action > Replace Bitmap‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪473‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرصًيى‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ -‬ز٭ً ٌڀٻ لبعدَ ظ‪ٝ‬مُڃ خػبځٵُص خػبد‪ ٚ‬زىد وو‪١‬ٱ‪: Replace ٣‬‬

‫زدي بذل خڀعٕمُدض خؼبىخٴٹص‬


‫‪ -‬وٽَُ خػب‪٥‬ىخض خڀٕدزٹص ڄ‪ ٫‬ټٿ خڀ‪ٝ‬ىَ خڀيت سبؽٿ لدالض خألَِخَ‪ ،‬وخڀيت ٸمىد زع‪ٝ‬مُمهد ڄىٍ ٸځُٿ‪ ،‬ڄ‪ ٫‬خالوط‬
‫ڀٽٿ َِ ولدڀعً‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪474‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرصًيى‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ -‬ز٭ً خالوعهدء وىعٹٿ بذل ظ٭ًَٿ خڀىمدٌؾ ‪ Dialog‬ڀى‪ ٫٠‬خڀ٭ىد‪ ُٜ‬يف ؤڄٽدهند خؼب‪٥‬دزٹص ڀع‪ٝ‬مُمىد‪ٔ ،‬ىمدوپ ـ٭ٿ خڀىمىٌؾ وخڀ٭ىد‪ ُٜ‬ڄ‪ٙ‬دهبص‬
‫ڀځ‪ٙ‬ٽٿ خڀعدرل ‪:‬‬

‫‪ -‬و‪١‬ٱ‪٬ ٣‬ځً َِ ‪. Compile Script‬‬

‫‪ -‬خِن كبٵ‪ ٧‬خڀٕٽٌن زدٔڃ ـًًَ‪ ،‬وڀُٽه ‪ MySkin.res‬ڄه والپ خألڄُ ‪. File > Save As :‬‬

‫‪ -‬وهبٍخ وٽىن ٸً خوعهُىد ڄه هتُحص خڀٕٽٌن‪.‬‬

‫‪ٔ -‬ىىعٹٿ خِن بذل ‪٬‬مٿ ڄځٳ ‪ RGN‬وخڀٌٍ َٕعىًڂ ڀعٵَُٯ خڀ‪ٙ‬ٽٿ ڄه خڀځىن خڀسىٵٕفٍ‪.‬‬

‫ٔىٕعىًڂ ڀٍڀٻ خڀربودڄؿ ‪: RGNCreator‬‬

‫‪ -‬وٵعك ‪ٜ‬ىَش خػبځٵُص ڄه والپ ‪ Browse‬مث و‪١‬ٱ‪ ٣‬خڀَّ ‪ Pick‬ولبعدَ خڀځىن خڀسىٵٕفٍ زدٔعىًخڂ ٘دٴ‪٥‬ص خألڀىخن مث و‪١‬ٱ‪ ٣‬سر‬
‫انفأرج األميٍ ولبعُ ‪: Ok‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪475‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرصًيى‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ز٭ًٌد وٹىڂ حبٵ‪٩‬هد زدڀ‪١‬ٱ‪٬ ٣‬ځً َِ ‪ Create‬زدٔڃ ‪. My_Rgn.RGN‬‬

‫‪ .3‬ثايجاً ‪ :‬تطن‪ٝ‬ب ايػهني‬

‫وعىـً بذل زُودڄؿ ‪ Dup‬ووًوٿ ڄ٭ځىڄدض خڀربودڄؿ ڄه والپ خڀَّ ‪. New Project‬‬
‫وىعٹٿ ز٭ًٌد بذل ڀىلص ‪ Settings‬ونِوي خڀربودڄؿ دبځٳ خڀٕٽٌن خڀٌٍ ؤو‪ٙ‬إودي ‪ MySkin.res‬ودبځٳ ‪( RGN‬‬
‫‪.) MyRgn.RGN‬‬
‫ؤڄد زدڀىٕسص ألڀىخن خؼبُز٭دض خڀى‪ُٝ‬ص وڀىن خڀٽعدزص‪ ،‬ٴُفر ‪٠‬س‪٥‬هد ڀععىخٴٷ ڄ‪ ٫‬خڀع‪ٝ‬مُڃ‪ ،‬وڀځم‪ٝ‬ىپ ‪٬‬ځً خڀځىن زًٸص وعس‪ ٫‬ڄد‬
‫َځٍ ‪٠‬مه خڀٵىظى٘ىذ ‪:‬‬
‫‪ - 1‬و‪١‬ٱ‪٬ ٣‬ځً خؼبُز٭ٌن يف خڀّخوَص خڀُُٕي‪.‬‬
‫‪ - 2‬لبعدَ خپڀىن ز‪ٙ‬دٴ‪٥‬ص خألڀىخن ‪.‬‬
‫‪ - 3‬وىٕه خڀځىن ڄه خؼبُز‪ ٫‬خڀٕٵځٍ ( خڀٕعص ‪ ( ٌُٙ٬‬ووځ‪ٝ‬ٹً يف ‪. Dup‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪476‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرصًيى‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ -‬يبٽىىد ؤَ‪١‬دً ظٱًن ڀىن ولفڃ خػب‪ ٣‬ووى‪ ً٬‬ڀځى‪ ٛ‬خؼبعمُٺ ‪ Scroll text‬لٕر ٌوٸىد وَئَعىد خڀٵىُص‪ ،‬ؤىمدوپ ‪٠‬س‪ ٣‬خإل‪ً٬‬خيخض‬
‫ټدڀعدرل ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪477‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرصًيى‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ -‬خِن خؼبځٳ ـدٌّ ڀالو‪٥‬الٶ ڄه والپ خڀ‪١‬ٱ‪٬ ٣‬ځً خڀَّ ‪ Create Patch‬وٌٍي ‪ٜ‬ىَش ڀځٕٽٌن ز٭ً خڀعُټُر ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪478‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرصًيى‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫تصنيه سلني لربىامج ‪ Uppp‬باستدداو الفوتوشوب‬

‫ٌى زُودڄؿ ‪ٜ‬دو‪ ٫‬ڀځسدٖ ًَ‪٬‬ڃ ‪ً٬‬ش ؤوىخ‪ Offset patch ٪‬و‪ S+R Patch‬و ‪ patch Registry‬و‬
‫دلن ال َ٭ُٲ زُودڄؿ ‪ Uppp‬ٲ‬
‫‪ FileDrop‬وًَ‪٬‬ڃ ‪ٜ‬ىَ خڀـ ‪ PNG‬ٴٹ‪ ٣‬يف خڀٕٻٌودض وٌى ڄه زُؾبص ‪ UFO-Pu55y‬ڄه ٴَُٷ ‪. SND‬‬

‫خأليوخض وخؼبځٵدض خؼبُٴٹص ‪:‬‬

‫‪.uPPP SkinHelper v0.1‬‬


‫خؼبځٵدض خػبد‪ٜ‬ص زدڀٕٽٌن‪.‬‬
‫ڄځٳ خڀع‪ٝ‬مُڃ خػبد‪ ٚ‬زدڀٵىظى٘ىذ (‪.).PSD‬‬

‫(خڀعممُٿ ڄه ڄُٴٹدض خڀٽعدذ)‪.‬‬

‫‪ .1‬خط‪ٛ‬ات ايعٌُ‬
‫‪ .1‬ٸڃ زع‪ٝ‬مُڃ ٔٽٌن زإٌ زُودڄؿ ظ‪ٝ‬مُڃ ذبًُ خٔعىًخڂي (يبٽىٻ خالٔعٵديش ڄه ڄځٳ خڀـ ‪ PSD‬خؼبُٴٷ)‪.‬‬

‫‪٬ .2‬مٿ خڀٕٽٌن َع‪٥‬ځر لٵ‪ٜ 6 ٧‬ىَ ڄه وى‪ PNG ٪‬زدڀ‪ٙ‬ٽٿ خڀعدرل ‪:‬‬

‫‪ -‬خػبځٵُص‪.‬‬ ‫‪1‬‬
‫‪ َِ -‬خڀسدٖ‪.‬‬ ‫‪2‬‬
‫‪ َِ -‬خػبُوؾ‪.‬‬ ‫‪3‬‬
‫‪٬ َِ -‬مٿ خڀىٕىص خاللعُد‪ُ٤‬ص (ٌٍي خػبد‪ُٜ‬ص خوعُدََص يبٽه خالٔعٯنخء ‪٬‬ىهد)‪.‬‬ ‫‪4‬‬
‫‪ َِ - 5‬بَٹدٲ وظ‪ٙ‬ٱُٿ خڀى‪ٌٍ( ًُٙ‬ي خػبد‪ُٜ‬ص خوعُدََص يبٽه خالٔعٯخنء ‪٬‬ىهد)‪.‬‬
‫‪ٜ - 6‬ىَش ‪ٜ‬ٱًنش ؼب‪ٙ‬دًٌش خڀٕٽٌن ‪٬‬ىً خوعُدًََ يف خڀربودڄؿ (‪٬‬ديش ظٽىن ؤز٭ديٌد ‪.)150 X 275‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪479‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرصًيى‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ڄالل‪٩‬دض ود‪ٜ‬ص زدڀ‪ٝ‬ىَ ‪:‬‬


‫هبر ؤن ظٽىن صبُ‪ ٫‬خڀ‪ٝ‬ىَ ڄه وى‪ 32 ٪‬زط ‪ PNG‬ڄد ‪ً٬‬خ ‪ٜ‬ىَش ڄ‪ٙ‬دًٌش خڀٕٽٌن ال َ‪ٙ‬عُ‪ ٢‬هبد‬
‫ٌڀٻ‪.‬‬
‫ربعىٌ خػبځٵُص ټمد يف خؼبؽدپ خڀعدرل ‪٬‬ځً ٴُخٮ الٔڃ خڀربودڄؿ وَخز‪ ٣‬خدلوٸ‪ ٫‬وخؼباڀٳ وخڀعدََه (‪٬‬ځمدً زإن‬
‫ټٿ ٌٍي خألڄىَ خوعُدََص ويبٽه خالٔعٱىدء ‪٬‬ىهد)‪.‬‬

‫ؤڄد زدڀىٕسص ڀَّ خڀسدٖ ٴُفر ؤن َٽىن ټمد يف خؼبؽدپ خڀعدرل‪ ،‬وبعىٌ ‪٬‬ځً خغبُټدض خڀؽالغ زدڀعُظُر‬
‫ِوـٍ‪.‬‬
‫خً‬ ‫خڀعدرل (ڀأل‪٬‬ځً ‪ ،‬ڄاُ٘ ‪٬‬ځًُ ‪ ،‬ڀألٔٵٿ) وهبر ؤن َٽىن ‪ ُٞ٬‬خڀ‪ٝ‬ىَش (‪ً٬ )in pixels‬يخً‬

‫ؤڄد زدڀىٕسص ڀَّ خػبُوؾ ٴُفر ؤن َٽىن ټمد يف خؼبؽدپ خڀعدرل‪ ،‬وبعىٌ ‪٬‬ځً خغبُټدض خڀؽالغ زدڀعُظُر‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪480‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرصًيى‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ِوـٍ‪.‬‬
‫خً‬ ‫خڀعدرل (ڀأل‪٬‬ځً ‪ ،‬ڄاُ٘ ‪٬‬ځًُ ‪ ،‬ڀألٔٵٿ) وهبر ؤن َٽىن ‪ ُٞ٬‬خڀ‪ٝ‬ىَش (‪ً٬ )in pixels‬يخً‬

‫ټىن خغبدڀص خڀ٭ځىَص ٌٍ ‪:‬‬


‫ؤڄد زدڀىٕسص ڀَّ خڀىٕىص خاللعُد‪ُ٤‬ص ٴُفر ؤن َٽىن ټمد يف خڀ‪ٝ‬ىَش خڀعدڀُص‪ ،‬ض‬
‫ال ؤًََ ؤن َىعؿ وٕىص خلعُد‪ُ٤‬ص‪ ،‬وخڀٕٵځُص ‪ :‬ؤًََ ؤن ؤوعؿ‪ ،‬وڄُش ؤوُي هبر ؤن َٽىن خڀ٭ُ‪in ( ٞ‬‬
‫ِوـٍ‪.‬‬
‫خً‬ ‫‪ )pixels‬عييخ‬

‫(ٸڃود زى‪ ٫٠‬خڀځىن خڀُڄديٌ ټىځٵُص‪ ،‬ڀٽٍ ظ‪٩‬هُ ټٿ خألَِخَ يف خڀ‪ُٙ‬ق)‬

‫ؤڄد زدڀىٕسص ڀَّ خڀ‪ٝ‬ىض‪ ،‬ٴهى ٘سًُ زَّ خڀىٕىص خاللعُد‪ُ٤‬ص‪ ،‬وڀٽه ظٱًن خڀٽعدزص ټمد يف خڀ‪ٝ‬ىَش خڀعدڀُص ‪:‬‬

‫(و ٌىد ؤَ‪١‬دً ٸڃود زى‪ ٫٠‬خڀځىن خڀُڄديٌ ټىځٵُص‪ ،‬ڀٽٍ ظ‪٩‬هُ ټٿ خألَِخَ يف خڀ‪ُٙ‬ق)‬

‫‪ٜ‬ىَش ڄ‪ٙ‬دًٌش خڀٕٽٌن ټمد ٸٿود ‪ٜ‬ٱًنش خألز٭دي (‪ )150 X 275‬ٴهٍ ًٰن ڄهمص ڀځٕٽٌن‪ ،‬وڀٽىهد‬
‫ڄهمص ڀځربودڄؿ‪ ،‬ٴال يبٽه خٔعً‪٬‬دء خڀٕٽٌن ڄه يوهند‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪481‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرصًيى‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ .3‬ربعدؾ ؤَ‪١‬دً بذل ‪:‬‬

‫‪ - 1‬ؤَٹىوص‪.‬‬
‫‪ - 2‬ڄځٳ خػب‪ ٣‬خؼبُخي خٔعىًخڄً (هبر ؤن َٽىن ‪ٜ‬ٱًن خغبفڃ؛ ألوً َاؼُ ‪٬‬ځً لفڃ خڀسدٖ خڀٽځٍ)‪.‬‬
‫‪ - 3‬ڄځٳ و‪ ًُٙ‬ڄه وى‪ٌٍ( xm ٪‬ي خػبد‪ُٜ‬ص خوعُدََص يبٽه خالٔعٯنخء ‪٬‬ىهد)‪.‬‬
‫خڀٳَش‪ :‬خڀربودڄؿ ًَ‪٬‬ڃ خڀىى‪ٌ٬‬ن‪ :‬خڀىى‪ ٪‬خڀؽدزط (‪ ).CUR‬وخڀىى‪ ٪‬خؼبعمُٺ (‪ٌٍ ( ).ANI‬ي خػبد‪ُٜ‬ص خوعُدََص يبٽه‬‫‪ - 4‬ڄاُ٘ ؤ‬
‫خالٔعٯنخء ‪٬‬ىهد)‪.‬‬

‫‪ .4‬خػب‪٥‬ىش خألوًنش يف ظ‪ٝ‬مُڃ خڀٕٽٌن ٌٍ بو‪ٙ‬دء ڄځٳ (‪ ).ini‬وٌى خؼبځٳ خؼبٕاوپ ‪٬‬ه ذبمُ‪ ٫‬خڀٕٽٌن وؤڄدټه خألَِخَ وخؼب٭ځىڄدض‬
‫خڀيت ربعىَهد خڀسدٖ؛ ټدٔڃ خڀربودڄؿ وًٰني‪ ،‬ؤىٕعىًڂ إلو‪ٙ‬دجً زُودڄؿ ‪. uPPP SkinHelper v0.1‬‬

‫‪ - 1‬ٸڃ زٕك ذ خڀ‪ٝ‬ىَ بذل ؤڄدټىهد خؼبى‪ٝٝ‬ص يف خڀربودڄؿ‪ ،‬ټمد ٌى ڄى‪٠‬ك يف خڀ‪ٝ‬ىَش‪ ،‬وټٍڀٻ خألڄُ زدڀىٕسص ڀألَٹىوص وخػب‪٣‬‬
‫وڄځٳ خڀى‪: ًُٙ‬‬

‫‪ - 2‬خوعُ خڀَّ خڀٌٍ ظًَُ ظٱًُن ڄٽدوً‪ ،‬وخٔعىًڂ خألٔهڃ ڀعٱًُن خؼبٽدن ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪482‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرصًيى‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ - 3‬خِن ‪٬‬ځُٻ ظٱًُن ڄٽدن خڀٽعدزص خؼبعمُټص‪ ،‬وظ٭ًَٿ و‪ٝ‬دج‪ٝ‬هد ټمد ظًَُ ‪:‬‬

‫‪ - 4‬وٹىڂ خِن زعٱًن ؤڄدټه خؼب٭ځىڄدض ټمد ٸمىد زعٱًُن ؤڄدټه خألَِخَ (زدڀىٕسص ڀځم٭ځىڄص خڀيت ظًَُ خالٔعٱىدء ‪٬‬ىهد خظُٺ خػبُدَ‬
‫‪ )None‬وخٔعىًڂ خألٔهڃ ؤَ‪١‬دً ڀى‪٠‬٭هد يف ڄٽدهند خؼبىدٔر ‪:‬‬

‫‪ - 5‬ٸڃ زدوعُدَ لفڃ خػب‪ ٣‬خڀٌٍ ظًَُ ‪:‬‬

‫‪ ٍُُٰ - 6‬خألڀىخن دبد َعىدٔر ڄ‪ ٫‬خڀٕٽٌن خڀٌٍ ٸمط زع‪ٝ‬مُمً ‪:‬‬

‫‪ - 7‬ٸڃ حبٵ‪ ٧‬خؼبځٳ ‪٬‬ه ‪َُ٤‬ٷ خڀَّ‪ ،‬ويبٽىٻ ؤَ‪١‬دً خٔعىًخڂ َِ (‪ )REFRESH‬ڀع‪ٙ‬دًٌ خڀعٱًُنخض ؤڄدڄٻ ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪483‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرصًيى‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ .5‬خِن وز٭ً خالوعهدء ڄه خڀع‪ٝ‬مُڃ يبٽىٻ خٔعىًخڂ خڀٕٽٌن يف زُودڄؿ ‪ Uppp‬وبو‪ٙ‬دء خؼبځٳ خڀعىٵٌٍُ ؼب‪ُٙ‬و‪٬‬ٻ‪.‬‬

‫‪ .2‬ايٓت‪ٝ‬ذ‪١‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪484‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرصًيى‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫تصنيه سلني لربىامج ‪ Uppp‬باستذ داو ‪RealDraw 5‬‬

‫زُودڄؿ ‪ RealDraw 5‬ؤو ټمد ٔىٕمًُ ‪ RD5‬يبٽه ؤن وٹىپ‪ :‬بوً وبعٿ خؼبُظسص ‪ 2‬ز٭ً زُودڄؿ خڀـ ‪ Photoshop‬خڀ‪ٙ‬هًن‪ ،‬ڄه لُػ‬
‫زُخڄؿ خڀع‪ٝ‬مُڃ‪ ,‬يف ئَىد ٌٍخ ٔىٹىڂ زع‪ٝ‬مُڃ ٔٽٌن )‪ Uppp (Transparent Skin‬هبٍخ خڀربودڄؿ‪.‬‬

‫‪.Real Draw‬‬
‫‪ٜ‬ىَش خدلٌَُِص زدؼبُٴٹدض‪.‬‬

‫(خڀعممُٿ ڄه ڄُٴٹدض خڀٽعدذ)‪.‬‬

‫‪٬‬مدپ خڀٽؽًن ڄه ڄُّخض وؤيوخض‬


‫ظ٭مًود ـ٭ٿ ٌٍخ خڀٕٽٌن ٌى خڀًَْ‪ ،‬وٌڀٻ َخـ‪ ٫‬الْض‬
‫خڀربودڄؿ ڄه ؤـٿ خإلؼبدڂ زً يف يَْ وخلً‪.‬‬

‫ڀىسًؤ ‪٬‬ځً زُټص خهلل ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪485‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرصًيى‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪Rainbow I Uppp Skin .1‬‬


‫ب‪ً٬‬خي خڀربودڄؿ‪:‬‬

‫ز٭ً ٴعك خڀربودڄؿ ‪:‬‬

‫‪ )1‬خوعُ ‪Project‬‬

‫‪ )2‬ز٭ًٌد …‪Size & Color‬‬

‫‪ ُٞ٬ )1‬خڀع‪ٝ‬مُڃ زدڀسٽٕٿ‪.‬‬


‫‪ )2‬خَظٵد‪ ٪‬خڀع‪ٝ‬مُڃ زدڀسٽٕٿ‪.‬‬
‫‪ )3‬ڀىن وځٵُص خڀع‪ٝ‬مُڃ‪.‬‬

‫خوعهُىد ڄه خإل‪ً٬‬خي‪ ،‬وخِن ْوٕعىَي خڀ‪ٝ‬ىَش خؼبُخي خڀ٭مٿ ‪٬‬ځُهد‬


‫‪:‬‬
‫‪ )1‬خوعُ ‪File‬‬

‫‪ )2‬ز٭ًٌد …‪Import‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪486‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرصًيى‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫وخـهص خڀربودڄؿ ز٭ً خٔعًنخي خڀ‪ٝ‬ىَش ‪:‬‬

‫ټمد ظُي ڀًَىد ‪ 6‬ڄٌَُّدض‪ ،‬وظُخويود ٴٽُش ؤن قب٭ٿ ٘٭دَ خڀٵَُٷ "‪ "AT4RE‬ټٿ لُٲ ڄه ٌٍي خڀـمُوٲ خػبمٕص ‪٬‬ځً ڄٌَُّص ڄه‬
‫خؼبٌَُّدض‪.‬‬

‫‪٬‬ځُىد خالٔعٱىدء ‪٬‬ه وخلًش‪ ,‬وؤَ‪١‬د ـ٭ٿ خڀٕٽٌن ٘ٵدٴص يف بِخڀص ڀىن خػبځٵُص خألزُ‪.ٟ‬‬

‫ٸڃ زدڀ‪١‬ٱ‪ ٣‬ڄُظٌن ‪٬‬ٿي خڀ‪ٝ‬ىَش زدڀَّ خألَُٕ ڀځٵإَش‪ٔ ،‬عىٵعك ودٴٍش خڀع٭ًَٿ ټمد َځٍ ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪487‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرصًيى‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ٌٍي خأليخش ظً‪٘ ً٬‬ٵدٴُص خڀځىن )‪ (Color Transparency‬وخڀٱُ‪ ٞ‬ڄىهد بِخڀص خألڀىخن خڀٱًن ڄُٰىذ هبد يف ڄىد‪٤‬ٷ‬ ‫‪)1‬‬
‫ڄ٭ُىص ڄه خڀع‪ٝ‬مُڃ ‪ /‬خڀ‪ٝ‬ىَش‪ .‬وألن خڀٕٽٌن خؼبُخي ‪٬‬مځً ٘ٵدٲ؛ ڀٍخ ٔىَّٿ خڀځىن خألزُ‪ ٟ‬ڀځىځٵُص‪.‬‬

‫‪ ً٬‬خوعُدَ خأليخش ‪ 1‬ٸڃ زدڀ‪١‬ٱ‪ ٣‬يف خؼبىٸ‪. 2 ٫‬‬


‫‪ )2‬ذ‬

‫‪ )3‬وټٍڀٻ يف خؼبىٸ‪ 3 ٫‬إلِخڀص ڀىن خػبځٵُص خألزُ‪ ٟ‬خؼبى‪٠‬ك يف خڀ‪ٝ‬ىَش ؤ‪٬‬الي‪.‬‬

‫‪ٌٍ )4‬ي خأليخش ڄهمعهد ظعمؽٿ يف مشىڀُص خألڀىخن خؼبُخي خٸع‪ٝ‬د‪ٜ‬هد‪٬ ،‬ځً ٔسُٿ خؼبؽدپ بٌخ ټدوط خؼبى‪٥‬ٹص ؿبعىَص ‪٬‬ځً ؤټؽُ ڄه ڀىن وخلً‬
‫ٴ٭ځُىد ربَُٻ ٌٍي خأليخش پڀُمٌن زٹًَ ڄ٭ٌن ‪٬‬ځً لٕر ‪ً٬‬ي خألڀىخن خؼبىـىيش زعځٻ خؼبى‪٥‬ٹص‪ ،‬ٴٵٍ ڄؽدڀىد ٌٍخ ال كبعدؾ‬
‫ڀعمَُٽهد؛ ألن ڀىن خػبځٵُص وخلً ٴٹ‪ ،٣‬وٌى خڀځىن خألزُ‪: ٟ‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪488‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرصًيى‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫خڀىعُفص ‪:‬‬

‫تؼذ‪:‬‬ ‫لثم‪:‬‬

‫خِن ڀىَّٿ خؼبٌَُّص خڀ‪ٝ‬ٵُخء خؼبىـىيش زدڀُٕدَ‪:‬‬

‫‪ )1‬ؤيخش خؼبممدش إلِخڀص خؼبىد‪٤‬ٷ خڀٱًن ڄُٰىذ ٴُهد‪.‬‬

‫‪ )2‬لفڃ خڀـ ‪ Brush‬ؤو َؤْ خؼبممدش‪.‬‬

‫‪ )3‬ټمد ظُي ز٭ً خڀ‪١‬ٱ‪ ٣‬زدڀَّ خألَُٕ ڀځٵدَش يف خؼبٽدن ‪ 3‬مت بِخڀص خڀځىن خڀربظٹدرل ڄىً‪ ،‬وزٹُط خؼبى‪٥‬ٹص ٘ٵدٴص‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪489‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرصًيى‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ڄد‪٬‬ځُٻ خِن بال بټمدپ زدٸٍ خؼبٌَُّص‪.‬‬

‫خڀىعُفص ‪:‬‬

‫ټمد ظالل‪٘ ٧‬ٽٿ خؼبٌَُّص ربٕه وڀٽه ظىـً زً ‪ُ٬‬ىذ ‪:‬‬

‫‪ )1‬خڀځىن خألَِٶ وخألضبُ ڄٽَُخن‪.‬‬

‫‪ )2‬خؼبٌَُّص خألوذل ڀىهند ًٰن ڄالجڃ ڄ‪ ٫‬ظ‪٩‬ځُٿ يخوځٍ ُٔث ـًخً‪.‬‬

‫‪ )3‬خؼبٌَُّص خڀَّٸدء خألوًنش ًٰن ٘ٵدٴص‪.‬‬

‫ڀى٭مٿ ‪٬‬ځً ب‪ٜ‬الق ٌٍي خألُ٘دء ‪:‬‬

‫بِخڀص ظٽُخَ ؤڀىخن خؼبٌَُّعدن ‪ -‬خڀَّٸدء وخغبمُخء‪ -‬زةو‪ٙ‬دء ڄٌَُّعٌن زځىوٌن آوَُه ‪:‬‬
‫خڀٵٽُش ظعمؽٿ يف خڀعٹد‪ٜ ٢‬ىَش ‪٬‬ه ڄٌَُّص ظسًو ـًُش ڄه ودلُص خڀ‪ٙ‬ٵدٴُص وخڀځىن‪ ،‬ټدؼبٌَُّص خػب‪ُ١‬خء‪ ،‬وز٭ً ٌڀٻ ظٱًُن ڀىهند ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪490‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرصًيى‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ )1‬خأليخش ‪ 1‬الڀعٹد‪ٜ ٢‬ىَش ؼبٽدن ڄ٭ٌن ڄه خڀ‪ٙ‬د٘ص‪.‬‬

‫‪ )2‬خأليخش ‪ 2‬ڀع‪ٝ‬ٱًن خڀربودڄؿ‪ ،‬وخڀٱُ‪ ٞ‬ڄىً خڀعٹد‪ٜ ٢‬ىَش ؼبٽدن آوُ ڄه ًٰن خڀربودڄؿ ټـ ٔ‪٥‬ك خؼبٽعر‪.‬‬

‫‪ )1‬ٸڃ زةِخڀص خڀع٭ٌُن ‪٬‬ىهد؛ ألوىد وًَُ ‪٬‬مٿ ‪ Screenshot‬ڄه وخـهص خڀربودڄؿ ڀځمٌَُّص خػب‪ُ١‬خء‪.‬‬

‫‪ )2‬و‪١‬ٱ‪ ٣‬زدڀَّ خألَُٕ ڀځٵإَش يف خؼبٽدن ‪ 3‬ڀسًء ربًًَ خؼبٽدن خؼبُخي ؤوٍ ‪ Screenshot‬ڀً‪.‬‬

‫ز٭ً ٌڀٻ ٸڃ زةِخڀص خؼبىد‪٤‬ٷ خحملُ‪٥‬ص ‪:‬‬

‫تؼذ‪:‬‬ ‫لثم‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪491‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرصًيى‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫وٹىڂ زةو‪ٙ‬دء ‪ 3‬وٕه ڄه ٸدڀر خؼبٌَُّص خػب‪ُ١‬خء ‪:‬‬

‫يف خڀ‪ٝ‬ىَش خڀعدڀُص‪ :‬زدأليخش ‪ 4‬وٹىڂ زعٱًُن ڀىن خڀىٕىص ‪ 1‬بذل ڀىن ـًُ وڄىدٔر ‪:‬‬

‫وٵٓ خڀ‪ٍٙ‬ء ڀځىٕه ‪ 2‬و‪: 3‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪492‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرصًيى‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ز٭ً و‪ ٫٠‬خڀىٕه ٴىٶ خؼبٌَُّدض خؼبُخي ظسًَٿ ڀىهند ‪:‬‬

‫خڀ‪٩‬ٿ ؤَِٶ وخؼبٌَُّص زىٵٕفُص؟!‬

‫زُٕ‪٥‬ص‪ ،‬و٭مٿ وٵٓ خڀ‪ٍٙ‬ء ټمد ‪٬‬مځىد ڀځىٕه خؼبد‪ُ٠‬ص‪ :‬وٕه‪ ,‬بِخڀص‪٘ ،‬ٵدٴُص‪ ،‬وظسًَٿ ڀىن ‪:‬‬

‫‪ .2‬ؾعاض اٍؾط‪ٜ‬ل‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪493‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرصًيى‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ )1‬إلو‪ٙ‬دء ‪ٜ‬ٵمص ‪ /‬ڄٕعىً ـًًَ‪.‬‬

‫‪ )2‬ؤيخش خڀٽعدزص‪.‬‬

‫‪ )3‬خوعُدَ و‪ ٣‬خڀٽعدزص خؼبىدٔر‪.‬‬

‫‪ )4‬ڄٽدن خڀٽعدزص‪.‬‬

‫وٽعر ‪ A‬مث وٹىڂ زىٕىهد‪ ،‬ز٭ًٌد وٹىڂ زځ‪ٝ‬ٹهد ٴىٶ خڀٕٽٌن‪ ،‬وو‪١‬٭هد ٴىٶ خؼبٌَُّص خألوًنش ټمد َځٍ ‪:‬‬

‫و٭مٿ وٵٓ خغبُټص ڀسدٸٍ خغبُوٲ ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪494‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرصًيى‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫وٹىڂ خِن دبفدوٕص خڀٽعدزص ٴىٶ خؼبٌَُّدض ڀعسًوخ ؤٴ‪١‬ٿ‪.‬‬

‫وٹىڂ زعمًًَ صبُ‪ ٫‬خغبُوٲ‪ ،‬وو‪١‬ٱ‪ ٣‬زدڀَّ خألَُٕ ڀځٵإَش‪ ،‬ولبعُ ‪ ,1‬وخڀٌٍدذ ڀـ ‪ Layers‬وخوعُدَ ‪: Overlay‬‬

‫‪a‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪495‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انرصًيى‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪" : Poly-Line‬خػب‪ ٣‬خألضبُ" وب‪٠‬دٴص ؤَِخَ وعم‪ٝ‬ٿ ‪٬‬ځً ‪:‬‬ ‫زدٔع٭مدپ‬

‫زدڀىٕسص ڀع‪ٝ‬مُڃ خألَِخَ ظُټىدٌد ڀٻ‪ ،‬ؤڄد ټُٵُص خٔع٭مدپ خڀٕٽٌن ڄ‪ ٫‬زُودڄؿ ‪ Uppp‬ٴٹً ظٽُڂ خألن ‪ Dr.bad‬ز‪ُٙ‬ق وخٲٍ ڀٍڀٻ‪.‬‬

‫‪ .3‬تكُ‪ ِٝ‬غهني يدلْاَر ‪ Dup‬باغتدساّ ‪RealDraw 5‬‬

‫ٸمىد زع‪١‬مٌن خڀٕىَْ ڀځع٭ځڃ ڄىً ‪:‬‬

‫‪Rainbow II Dup Skin‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪496‬‬
‫الباب التاسع‪ :‬متفرقات‬

‫‪497‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫يرفرلاخ‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫إتقاٌ أدوات اهليدسة الع كسية‬


‫‪Mastering RCE tools‬‬
‫‪RadAsm, OllyDbg and Imprec as examples‬‬

‫ُٔٽىن يَْ خڀُىڂ وځُ‪٥‬دً فبد يبٽه ڀځمهىًْ خڀ٭ٽٍٕ خؼبسعًت ؤن َالٸًُ ؤؼىدء ‪٬‬مځً‪ ،‬وٌٍخ ڄد ٔىع٭ځمً ‪:‬‬

‫‪ - 1‬ظٹځًُ زُؾبص زُودڄؿ ‪ٜ‬ٱًن‪.‬‬


‫‪ - 2‬ظٹځًُ بو‪ٙ‬دء ضبدَص ڀځربودڄؿ‪.‬‬
‫‪ - 3‬خٔع٭مدپ ؤڄؽٿ ڀځمىٹك ‪ ،OllyDbg‬إل‪ٜ‬الق ؤو‪٥‬دء يف خڀربودڄؿ‪.‬‬
‫‪٬ - 4‬ٽٓ ٌىًٔص خڀربنخڄؿ ڀځعىځ‪ ٛ‬ڄه خغبمدَص‪.‬‬
‫و ڀىسًؤ زدٔڃ خهلل ‪:‬‬

‫صبُ‪ ٫‬ڄد ربعدـً يف خؼبُٴٹدض‪.‬‬

‫‪ .1‬نتاب‪ ١‬ايدلْاَر‬
‫ڀه وُټّ ٌىد ‪٬‬ه ټعدزص خڀربودڄؿ‪ ،‬بمبد ‪٬‬ه خٔع٭مدپ ‪ RADASM‬خڀ٭عًُ زٽٿ ڄد ٴًُ ڄه ظُٔدوص ظٕهٿ ټعدزص زُخڄؿ خألظبسځٍ‪ ،‬ؤُٽىن‬
‫خڀربودڄؿ ٌىد ‪٬‬سدَش ‪٬‬ه ڄعُـڃ زُٕ‪ ٣‬ـًخً وبىپ ٔځٕځص ؿبدَٲ ڄه خڀ‪ُٝ‬ٱص خؼبععدز٭ص بذل ‪ُٜ‬ٱص ڄ‪ٝ‬ٵىٴص ڄعىدٔسص ڄ‪ ٫‬خألظبسځٍ‪.‬‬

‫‪ .1.1‬بعض اإلعسازات املُٗ‪ ١‬قبٌ ايبس‪٤‬‬

‫ٔىمعدؾ بذل ظؽسُط وظٵ٭ُٿ ز٭‪ ٟ‬خإل‪٠‬دٴدض خؽبدڄص ڀـ ‪ RADASM‬ؤعفًٌد يف خجملځً ‪ Extra/RadPlugins‬وخڀ‪َُ٥‬ٹص ٔهځص ـًخً‪:‬‬

‫‪ - 1‬خٔعىُؾ صبُ‪ ٫‬خؼبځٵدض بذل خؼبٕدَ ‪ %RADASM%\AddIns‬بٌخ دل ظٽه ٌٍي خإل‪٠‬دٴدض ڄىـىيش ٴًُ زدأل‪ٜ‬ٿ‪.‬‬
‫‪ - 2‬خٴعك ‪ RADASM‬وخٌٌر بذل خڀٹدجمص ‪ Optionsaddin manager :‬مث ٴ٭ٍٿ ودودض ٌٍي خإل‪٠‬دٴدض‪ ،‬ويف ټٿ‬
‫ڄُش خوٹُ ‪٬‬ځً ‪ Install‬ؤو ٴٹ‪ ٣‬خوٹُ ڄُظٌن ‪٬‬ځً ټٿ ب‪٠‬دٴص ًٰن ڄٵ٭ځص‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪498‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫يرفرلاخ‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫و خإل‪٠‬دٴدض ٌٍ ‪:‬‬

‫ټر ڀځٽعدزص‪.‬‬
‫‪ : AutoCorrect - 1‬ب‪٠‬دٴص ظٕمك زعًخَٺ خألو‪٥‬دء وظَُٕ‪َُ ٫‬‬
‫‪ : CodeTemplates - 2‬ؤَ‪١‬دً ب‪٠‬دٴص َخج٭ص ڀعَُٕ‪ ٫‬خڀٽعدزص زة‪٠‬دٴص خڀـ ‪ snippets‬ڄه خڀٽىي‪.‬‬
‫‪ : DlgToWin -‬ؤَ‪١‬دً ڀعَُٕ‪ ٫‬ټعدزص خڀٽىي‪ ،‬وربىَٿ ڄځٳ خڀـ ‪ ( dlg‬ڄځٳ خڀـ ‪ dialog‬خؼب٭عمً ڄه ‪ٜ‬دلر‬ ‫‪3‬‬
‫‪ RADASM‬بذل ټىي ڄسين ‪٬‬ځً خڀـ ‪.) API‬‬
‫خإل‪٠‬دٴص بذل بڄٽدوُعً يف ‪٬‬مٿ ‪ incrementation‬ڀىٕىص خڀربودڄؿ‪ ,‬ٴهى‬ ‫‪ : VersionControl -‬زً خڀ٭ًًَ ڄه خؼبّخَد‪ ,‬ٴر‬ ‫‪4‬‬
‫يبٽىٻ ڄه لٵ‪ ٧‬وٕه خلعُد‪ُ٤‬ص ڄه خؼبځٵدض خؼب‪ًََٝ‬ص ڀربودؾبٻ وبڄٽدوُص خٔع٭ديهتد‪.‬‬
‫‪َ : TxtLnkMan -‬خج‪ ٫‬ڀععس‪ ٫‬خڀٽىي وب‪٠‬دٴص خڀع٭ځُٹدض و‪.TODO LIST‬‬ ‫‪5‬‬
‫‪ : TabAddin -‬ظىُٕٷ وظُظُر خڀٽىي‪.‬‬ ‫‪6‬‬
‫بٌن ز٭ً ؤن ظٵ٭ٍٿ ٌٍي خإل‪٠‬دٴدض (بن دل ظٽه ڄٵ٭ٍځص ڄٕسٹدً) خوعٹٿ بذل زًء ټعدزص خڀٽىي‪.‬‬

‫‪ .1.2‬نتاب‪ ١‬ايه‪ٛ‬ز‬

‫ؤو‪ٙ‬ث ڄ‪ُٙ‬و‪٬‬دً ـًًَخً ټدؼب٭عدي وخوعُ ټـ ‪ Template‬خؼبٕمدش ‪( Dialog as app‬ٴٹ‪ ٣‬إل‪٠‬دٴص خڀـ ‪ controls‬زٕهىڀص)‪.‬‬

‫ز٭ً ٌڀٻ ؤ‪٠‬ٳ ؤَِخَخً وؤڄدټه ټعدزصٍ ټمد يف خؼبؽدپ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪499‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫يرفرلاخ‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫وٍُُٰ خألظبدء خالٴعُخ‪ُ٠‬ص بذل ‪:‬‬

‫‪:‬‬ ‫‪BTN_CONV‬‬ ‫‪ :‬خٔڃ خڀىدٴٍش خألڂ‬ ‫‪IDD_DIALOG1‬‬


‫ؤظبدء خألَِخَ‪.‬‬ ‫‪: BTN_ABOUT‬‬ ‫‪ :‬خٔڃ خڀـ ‪ Editbox‬خڀ٭ځُد‬ ‫‪EDT_TEXT_IN‬‬
‫‪:‬‬ ‫‪BTN_REG‬‬ ‫‪ : EDT_TEXT_OUT‬خٔڃ خڀٕٵځً‬

‫وٌٍي خڀعٕمُص ڄٵًُش ـًخً‪ ,‬ٴهٍ ٔعمٽىٻ ڄه خڀع٭دڄٿ ڄ‪ ٫‬ؤظبدء ٔهځص خڀعٍټُ زًپ خڀع٭دڄٿ ڄ‪ ٫‬ؤ‪ً٬‬خي ظ‪ ُ٥١‬بذل خڀُؾو‪ ٪‬بڀُهد يف ټٿ‬
‫ڄُش‪.‬‬

‫و خِن‪ ,‬خٌٌر بذل خؼبځٳ ‪ inc‬إل‪٠‬دٴص ٌٍي خألظبدء يف خڀٵٹُش ‪.const‬‬

‫خؼبځٵدض خڀالِڄص ڀځٽىڄسدَځُ وڀالَىٽُ‬

‫ظ٭دََٳ خڀًوخپ‬

‫ؤظبدء خأليوخض ‪:‬‬


‫ؤَِخَ‪ ،‬ڄُز٭دض و‪ ٛ‬وًٰنٌد‪.‬‬

‫خؼبعٱًنخض‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪500‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫يرفرلاخ‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫مث خٌٌر بذل خڀځٕدن خػبد‪ ٚ‬زدڀـ ‪: Dialog‬‬

‫مث بذل خڀٹدجمص ‪ CTRL+F11 ( Tools  DialogToWin‬الٔعىًخڂ ب‪٠‬دٴص ؤوُي ٌٍ ‪)ResourceID‬‬

‫‪‬‬

‫ز٭ًٌد خوٹٿ خڀٽىي خڀىدظؿ بذل خڀٵٹُش ‪ .const‬ڀُىعؿ خڀ‪ٙ‬ٽٿ خڀعدرل ‪:‬‬

‫مث خٌٌر ڄُش ؤوُي ‪ Tools  DialogToWin‬وخوعُ ٌٍي ټدڀعدرل ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪501‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫يرفرلاخ‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫و خِن ٔعُي ټُٳ ٔعٕهٿ ‪٬‬ځُٻ خألڄىَ ڀى ټدن ڀًَٻ ‪ 10‬ؤَِخَ ؤو ؤټؽُ‪ .‬وبڀُٻ خڀىدظؿ ز٭ً و‪٠‬٭ً يف خؼبٽدن خؼبىدٔر ‪:‬‬

‫تؼذ انرؼذيم‬ ‫لثم انرؼذيم‬

‫) مث خ‪٠‬ٯ‪ CTRL+J ٢‬وخوعُ‬ ‫مث خٌٌر ربط ‪( WM_CLOSE‬‬


‫» ‪. « Dialog end‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪502‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫يرفرلاخ‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ؤټًُ ڀه ذبًٌد‪ ،‬ڀٽه يبٽىٻ ؤن ظ‪ُ١‬ٳ ڄد ظ‪ٙ‬دء ڄه ٔ‪٥‬ىَ ظٽٌَُد ‪٬‬ديش بذل خؼبځٳ » ‪ « masm.ct‬وخڀٌٍ ذبًي يف خؼبٕدَ‬
‫‪ %RADASM%\Addins‬وٌڀٻ ڀُٽىن ڄد ظ‪ُ١‬ٵً ‪٬‬ځً خڀ‪ٙ‬ٽٿ‪ ،‬ڄ‪ٌ ٫‬ټُ ؤن خإل‪٠‬دٴص خؼبٕاوڀص ٌٍ ‪: CodeTemplates‬‬

‫‪ .1‬خالٔڃ خڀٌٍ َ‪٩‬هُ‪.‬‬

‫‪ .2‬ڄد ظًَُي ؤن َٽعر ڄه ٔ‪٥‬ىَ لٕر ڄد ظًَُ‪.‬‬

‫‪... .3‬‬

‫‪... .4‬‬

‫‪ .5‬خالٔڃ خڀؽدين‪.‬‬

‫‪ .6‬خڀٕ‪٥‬ىَ خڀيت ظًٌَُد ؤن ظ٭ى‪.ٞ‬‬

‫و ٌٍخ ڄؽدپ ٔعمعدـً ټؽًنخً (ٔىمعدـً ؤَ‪١‬دً يف ٌٍخ خڀًَْ بن ٘دء خهلل)‪.‬‬

‫خٴعك خؼبځٳ خؼبٍټىَ وٸڃ ز٭مٿ وٕه ڀځًخڀص ‪ DlgProc‬ټدڄځص‪ ،‬وخلٍٲ ڄد َعٱًن ‪٬‬ديش وؤ‪ ٣٬‬خڀٽٿ خظبدً ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪503‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫يرفرلاخ‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫خڀٕهڃ َ‪ًٙ‬ن بذل خإل٘دَش ~ خڀيت هبر ب‪٠‬دٴعهد يف خؼبٽدن خڀٌٍ ظًَُ ؤن َٽىن ٴًُ ڄاُ٘ خڀٵإَش‪ ،‬وخلٵ‪ ٧‬خؼبځٳ مث خ‪ ً٬‬ظ‪ٙ‬ٱُٿ‬
‫‪ RADASM‬ڀُٽىن خڀ‪ٙ‬ٽٿ خڀىهدجٍ ټدڀعدرل ‪:‬‬

‫ؤ‪٠‬ٳ ٌٍخ خڀٕ‪ ُ٥‬إل‪٠‬دٴص بلًي ؤٌڃ وؤمشٿ خؼبٽعسدض خڀيت ال يبٽه خالٔعٱىدء ‪٬‬ىهد‪ .‬وٌٍ ظإيت ڄ‪ MASM ٫‬وڀٽه ؤَٴٹىدٌد ڄ‪ٌ ٫‬ڀٻ‬
‫(ذبًٌد يف ‪)Extra\Libs‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪504‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫يرفرلاخ‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫خڀٽځمص خؼبٵعدق ‪٬ ٌٍ userlib‬سدَش ‪٬‬ه ڄدټُو ذبًي يف خؼبځٳ ‪. macros.asm‬‬

‫و خڀٕ‪ ُ٥‬خڀٕدزٷ َٕدوٌ ڄد ‪٬‬ځً خڀُٕدَ ڄه ٔ‪٥‬ىَ‪.‬‬

‫خِن‪ ,‬لدوپ ؤن ظ٭مٿ ‪ Compiling‬ڀځم‪ُٙ‬و‪ ٪‬ؤعالل‪ ٧‬ز٭‪ ٟ‬خألو‪٥‬دء‪ ،‬وظعمؽٿ يف ‪:‬‬

‫و ظ‪ٝ‬مُك ٌٍخ ٔهٿ‪ ,‬ڄد ‪٬‬ځُٻ بال ؤن ظٵعك خؼبځٳ ‪ macros.asm‬وظسمػ ‪٬‬ه خؼبدټُو ‪ userlib‬وظ‪ٝ‬ځمهد ٌٽٍخ ‪ ( :‬خوعسً ‪ :‬خظُٺ‬
‫ڄٕدٴص ٸسٿ >)‬

‫ټٿ ٍ٘ء ؤ‪ٜ‬سك ‪٬‬ځً ؤمت وـً‪ .‬ٴځىسًؤ يف ب‪٠‬دٴص خڀٽىي خڀالِڂ ڀ٭مٿ زُودؾبىد ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪505‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫يرفرلاخ‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ظعٍټُ ‪٤‬س٭دً خألظبدء خڀيت ؤظبُىد هبد خڀـ ‪ Controls‬خػبد‪ ٚ‬زدڀٵىَڂ‪ ,‬ال زإْ بٌخ وُٕعهد ڄد ‪٬‬ځُٻ بال خڀ‪١‬ٱ‪٬ ٣‬ځً ‪ CTRL+SPACE‬ز٭ً‬
‫ټعدزص ز٭‪ ٟ‬خأللُٲ خڀيت ظعٍټٌُد ټـ _‪ EDT‬و‪ RADASM‬ؤُ٭‪ُ٥‬ٻ صبُ‪ ٫‬خألظبدء خؼبسعًجص زـ ٌٍي خأللُٲ ڀعىعدَ ڄىهد‪.‬‬

‫وعمڃ زٽعدزص ڄد َځٍ ‪:‬‬

‫زدألو‪ : ُ١‬يخڀص ڄه خؼبٽعسص ‪ cryptohash.lib‬وظٹىڂ زعمىَٿ خڀٽعدزص بذل ‪ً٬‬ي ٔعص ‪.ٌُٙ٬‬‬

‫وزدألَِٶ ‪ :‬يخڀص ڄه خؼبٽعسص ‪ْ masm32.lib‬ظٹىڂ زٽٿ ڄد ربعدـً‪ ،‬وٌٍ ڄ٭ُٴص يف ڄځٳ خؼبٕد‪ً٬‬ش خڀعدز‪ ٫‬ؽبد زدڀ‪ٙ‬ٽٿ خڀعدرل ‪:‬‬

‫‪٬ -1‬ىىخن ‪ٔ Buffer‬ځٕځص‬


‫خڀسدَعدض خؼبُخي ٴُڄععهد‪.‬‬
‫‪٬ -2‬ىىخن ‪ Buffer‬خؼبعځٹٍ‪.‬‬
‫‪٤ -3‬ىپ خڀٕځٕځص‪.‬‬

‫و ٌٍخ خڀٽىي ټدڄالً ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪506‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫يرفرلاخ‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ٴځىٹڃ ز٭مٿ ‪ backup‬ڀځم‪ُٙ‬و‪ : ٪‬خٌٌر بذل ‪ProjectVersion contorlBackup project tab‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪507‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫يرفرلاخ‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫يف ‪ :1‬ؤيوٿ ظ٭ځُٹدً ڀٻ؛ لىت ظٵُٶ زٌن خڀىٕه خحملٵى‪٨‬ص خؼبىعځٵص‪.‬‬

‫يف ‪ :2‬ؤينپ ‪ extensions‬خڀيت ال ظًٌَُد ؤن ظىٕه ڄ‪ ٫‬خؼبځٵدض خحملٵى‪٨‬ص‪ٰ :‬دڀسدً ‪ exe, obj, res, ilk‬و ‪. idb‬‬

‫يف ‪ :3‬خ‪٠‬ٱ‪ ٣‬غبٵ‪ ٧‬خؼبځٳ ‪٬‬ځً ‪ُٜ‬ٱص ‪ zip‬يف خؼبٕدَ (خڀٕهڃ) خڀٌٍ خوعُظً‪.‬‬

‫(خٌٌر بذل خألڀٕه خألوُي ڀځع٭ُٲ ‪٬‬ځً ود‪ُٜ‬دض ٌٍي خإل‪٠‬دٴص)‪.‬‬

‫و خِن ٔى‪ُ١‬ٳ ز٭‪ ٟ‬خڀٽىي ڀالوعُدَ زٌن خڀ‪ُٝ‬ٯش خؼبىخٴٹص ڀألظبسځٍ وخؼبىخٴٹص ڀځـ ‪ C‬ڀُ‪ٝ‬سك خڀ‪ٙ‬ٽٿ ٌٽٍخ ‪:‬‬

‫مث ؤ‪٠‬ٳ خڀـ ‪ IDs‬ڄ‪ ٫‬ب‪٬‬ديش خڀعٕمُص ‪:‬‬

‫و خِن ؤ‪٠‬ٳ خڀٽىي ټمد يف خڀ‪ٝ‬ىَش خڀعدڀُص ‪( :‬الل‪ ٧‬ؤن خڀٽىي خڀٹًمي مت ظ٭عُمً وخإلزٹدء ‪٬‬ځً خڀٽىي خعبًًَ)‪.‬‬

‫ؤؼىدء ټعدزعٻ ؽبٍي خألٔ‪ٔ ,ُ٥‬عالل‪ ٧‬ؤن خڀ٭ًًَ ڄه خڀٽځمدض وخألٔ‪ ُ٥‬ظعٽَُ ز‪ٙ‬ٽٿ يخجڃ‪ ,‬وخغبٿ ٔهٿ ڀ٭ًڂ ټعدزعهد لُٴُدً‪ ,‬ڄد ‪٬‬ځُٻ‬
‫بال خڀٌٍدذ بذل ‪ ToolsAuto correct list‬وبيودپ خغبُٲ ؤو خڀٽځمص خڀيت ظًٌَُد ؤن ظ٭ى‪ ٞ‬خڀٽځمص خڀيت ٔعًوځهد ‪٬‬ځً خڀُٕدَ ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪508‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫يرفرلاخ‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫خټعر يف ‪ 1‬خغبُٲ ؤو خڀٽځمص خڀيت ظًٌَُد ؤن ظ٭ى‪ ٞ‬ڄد يف ‪ 2‬مث خلٵ‪ ٧‬زدڀ‪١‬ٱ‪٬ ٣‬ځً ‪.3‬‬

‫وبٌخ ټدن ڄد ظًَُي يف ‪ 2‬ڄعٽىن ڄه خڀ٭ًًَ ڄه خألٔ‪ ,ُ٥‬ؤيوٿ ظځٻ خألٔ‪ ُ٥‬يف ‪.4‬‬

‫و ٌٽٍخ ڀٽعدزص ‪ addr‬ڄؽالً‪َ ,‬ٽٵٍ ټعدزص ‪ a‬وخڀ‪١‬ٱ‪٬ ٣‬ځً ‪ SPACE‬ڀُٽمٿ خڀسالٌٰن خڀٽځمص‪.‬‬

‫خِن ٌىد خڀٽىي خڀٽدڄٿ ز٭ً خڀع٭ًَٿ ‪:‬‬

‫بٌخ َـ٭ط بذل ‪ٜ‬ىَش خڀٕىَْ خڀٕدزٹص ٔعفً ؤن خڀٽىي َسًو ز‪ٙ‬٭دً ـًخً؛ ڀع‪ٝ‬ٵٍٴً زُٕ‪٬‬ص خٌٌر بذل ‪ViewLancome tools‬‬
‫ؤع‪٩‬هُ ڀٻ ودٴٍش هبد ‪ً٬‬ي ڄه خألَِخَ يبٽىٻ ظُٺ خإل‪ً٬‬خيخض ټمد ٌٍ ؤو ظٱًُنٌد ټمد ظًَُ (‪٬‬ځُٻ زدڀعفَُر) ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪509‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫يرفرلاخ‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫خ‪٬‬مٿ خوعُدَ خڀٽٿ (‪ )CTRL+A‬وخ‪٠‬ٱ‪ ٣‬خڀَّ خألٔٵٿ ڀعُظُر خڀٽىي ‪:‬‬

‫وبڀُٻ خڀىعُفص ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪510‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫يرفرلاخ‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫و ٌٍخ ڄؽدپ ‪:‬‬

‫خوعهط زُؾبص خڀربيبؿ خڀ‪ٝ‬ٱًن ـًخً (زدڀ‪٥‬س‪ ٫‬دل َٽه ًٌٴىد ؤن وربڄؿ زٹًَ ڄد ټدن خؽبًٲ بَ‪ٝ‬دپ خڀ٭ًًَ ڄه خؼب٭ځىڄدض لىپ ب‪٠‬دٴدض‬
‫‪.) RADASM‬‬

‫‪ .1.3‬إْؿا‪ ٤‬محا‪ ١ٜ‬يًدلْاَر‬

‫‪ .1.3.1‬بطًب غط‪ٜ‬اٍ ‪ٚ‬اغِ‬


‫خزعًخء وٕعىًڂ ڄد ظ٭ځمىد ‪ CTRL+J‬مث ‪: Dialog procedure‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪511‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫يرفرلاخ‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫مث خٔعسًپ خٔڃ خڀًخڀص وؤ‪٠‬ٳ ‪ dialog‬زََّه وڄُز٭ٍ و‪ ٛ‬وؤ‪ ً٬‬ظٓڄُص خڀـ ‪ controls‬ټمد ٔسٷ بذل ؤظبدء ٔهځص خڀعٍټُ‪:‬‬

‫ٸسٿ خٔع٭مدپ خڀًخڀص ‪ SerialProc‬خ‪٬‬مٿ ‪ declaration‬ڀـ ‪ proto‬خػبد‪ ٚ‬هبد‪ ،‬وٌڀٻ ‪٬‬ه ‪َُ٤‬ٷ خڀ‪١‬ٱ‪ ٣‬زدڀَّ خأليبه مث ‪Create‬‬
‫‪ proto‬ز٭ً خوعُدَ خؼبٽدن خؼبىدٔر ‪:‬‬

‫و ٌٍخ ٌى خڀٽىي خؼب‪١‬دٲ ‪:‬‬

‫يف انذانح ‪: DlgProc‬‬

‫و‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪512‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫يرفرلاخ‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫و‪:‬‬

‫‪ -‬يف انذانح ‪: SerialProc‬‬


‫خَـ‪ ٫‬بذل خڀٕىَْ‬

‫‪ -‬يف انذانح ‪IsSerialCorrectProc‬‬

‫خؼبٕاوڀص ‪٬‬ه خڀعمٹٷ ڄه خڀَُٕدپ‪ :‬خوعُودٌد ٔهځص ـًخً؛ ڀځعًَذ ‪٬‬ځُهد اللٹدً يف ٌٍخ خڀًَْ‪ ،‬ويبٽىٻ يَخٔعهد بن ؤَيض ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪513‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫يرفرلاخ‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫و ـب‪ًٔ ٣٥‬ن خڀربودڄؿ خڀ٭دڂ ټدڀعدرل ‪:‬‬

‫َٹىڂ خڀربودڄؿ زٹُخءش ڄ٭ځىڄدض خڀعٓـُٿ ڄه ڄځٳ ‪ reg.ini‬بٌخ ټدن ڄىـىيخً (يف ‪ )C:\windows‬وَعمٹٷ ڄىهد ‪:‬‬

‫‪ - 1‬بٌخ ټدوط ‪ٜ‬مُمص هب٭ٿ خڀٹُمص ‪ 1‬يف ڄعٱًن‪.‬‬


‫‪ - 2‬بٌخ دل ظٽه ټٍڀٻ‪ ,‬هب٭ٿ ٸُمعً ‪.0‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪514‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫يرفرلاخ‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫بٌخ دل ظٽه ٸُمص خؼبعٱًن ‪ 1‬ٴةن خڀربودڄؿ ڀه َىٵٍ خڀعٱًُن بذل ؤٌ ‪ُٜ‬ٱص‪.‬‬

‫‪٤‬س٭دً خػبىخَِڄُص ڄربؾبص ڀعٽىن ٔهځص خڀٽُٕ جبمُ‪ ٫‬خألوىخ‪ ٪‬خؼبمٽىص ڄه خڀـ ‪ serial fishing‬بذل ‪.Keygen‬‬

‫بن ٔهىڀص وىخَِڄُص خڀعٕفُٿ ؤڄُ ؤَيود ڄىً بُ٘خٺ ؤټرب ‪ً٬‬ي ڄه خأل‪١٬‬دء‪ ،‬إلټمدپ خڀًَوْ ڄه ـهص‪ ،‬وڀعمٽُىىد ڄه خٔعىًخڂ ؤټرب ‪ً٬‬ي‬
‫ڄه خأليوخض خڀيت و٭عٹً ؤن خؼبسعًجٌن هبهځىهند يف ‪٬‬ددل خؽبىًٔص خڀ٭ٽُٕص ڄه ـهص ؤوُي‪.‬‬

‫‪ .1.3.2‬باغتدساّ ‪Packer/ Protector‬‬

‫و‪١‬ٱ‪ ٣‬خڀربودڄؿ زىخٔ‪٥‬ص زُودڄؿ خغبمدَص خڀٕهٿ ـًخ (ڀځعًََر ٴٹ‪ )٣‬وٸً خوعُود زُودڄؿ خغبمدَص خڀٹًمي ‪ ACProtect 0.9g‬وٌڀٻ‬
‫ڀٕسر ٔع٭ُٴىوً ٴُمد ز٭ً‪.‬‬

‫خڀربودڄؿ ذبًي يف ‪ .\ Extra\Protection\Protector‬ڄ‪ ٫‬وٕىعٌن ڄه زُيبفىد ‪ :‬وخلًش ؿبمُص زً وخألوُي ڀُٕط ؿبمُص‪.‬‬

‫‪ .2‬اغتعُاٍ ‪ OllyDbg‬يًتٓك‪ٝ‬ح (خؿا‪ٜ‬ا ‪) OllyDbg‬‬

‫‪ .2.1‬انتؿاف ارتطأ‬

‫وٵعُ‪ ٞ‬ؤوً ز٭ً و‪ُٙ‬ٺ ڀىٕىعٻ ـدءٺ خڀُي خڀعدرل ‪:‬‬

‫‪ ...‬وڀٽه ‪٬‬ىًڄد ؤيوٿ ٔ‪ُ٥‬خً ‪٤‬ىَالً‪ ،‬ؤټؽُ ڄه ‪ 300‬لُٴـــد ٴدڀربودڄؿ َهىؿ وَٱځٹً خڀى‪٩‬دڂ‪ .‬ؤود ؤ‪٬‬مٿ ‪٬‬ځً ‪. P4‬‬

‫خؼبُـى ب‪ٜ‬الق خػب‪٥‬إ‪ ،‬وڄىخٴديت زدڀىٕىص خؼبُٸ٭ص و٘ٽُخً‪.‬‬

‫‪ .2.2‬ستا‪ٚ‬ي‪ ١‬انتؿاف املهإ املػؤ‪ ٍٚ‬عٔ ارتطأ‬

‫دبفُي ٸُخءش خڀُٔدڀص‪َ ,‬عسديَ بذل ٌٌىٻ ؤن ٌىدڀٻ ‪ٌ Buffer overflow‬ى خؼبٕاوپ ‪٬‬ه خػب‪٥‬إ؛ ألن خؼب‪ٙ‬ٽٿ َ‪٩‬هُ ٴٹ‪٬ ٣‬ىًڄد ًَوٿ‬
‫خؼبٕع٭مٿ ٔځٕځص ؿبدَٲ ‪٤‬ىَځص‪.‬‬

‫و ڀىٵعُ‪ ٞ‬ؤن خڀربودڄؿ ټسًن دبد ٴًُ خڀٽٵدَص‪ ،‬وؤن ٴًُ خٔعىًخڂ ڄحدض ‪ Buffers‬ؤؼىدء ربىَٿ خڀـ ‪.DATA‬‬

‫خِن ٔىمدوپ خٔعىًخڂ خؼبىٹك ‪ OllyDbg‬و‪ً٬‬ي ڄه خؼبّخَد خڀُخج٭ص ٴًُ‪.‬‬

‫خٴعك ‪ OllyDbg‬وخ‪٠‬س‪ٌ ً٥‬ٽٍخ (وٌٍخ زدڀ‪١‬س‪ٌ ٣‬ى خڀ‪ٝ‬ىخذ ؤؼىدء خڀعىٹُك‪ ،‬ڀځسمػ ‪٬‬ه ؤو‪٥‬دء يخوٿ خڀربخڄؿ) ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪515‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫يرفرلاخ‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ٸسٿ ؤن ربمٿ خڀ‪١‬مُص خ‪٬‬مٿ ‪ compiling‬پوٕىص ‪ Debug‬وٌڀٻ زعٱًُن خػبُدَ خڀعدرل يف ‪ RADASM‬يف ‪ProjectProject‬‬
‫‪: Options‬‬

‫خوعُ خػبُدَ خألو‪ ُ١‬وخوعسً بذل خؼبٕع‪ُ٥‬ٿ خألضبُ ڀُٽىن خؼبٕدَ ڄىـهدً بذل‬
‫ڄٽدن ‪( OllyDbg‬ؤو خڀىٕىص خڀيت ظٕع٭مٿ ڄىً) حبُػ َٕهٿ خڀىًخء ‪٬‬ځًُ‬
‫زـ ‪CTRL+D‬‬

‫مث خ‪٬‬مٿ ‪ Recompiling‬ڀځم‪ُٙ‬و‪ ٪‬وخٔعً‪ OllyDbg ِ٪‬زدڀ‪١‬ٱ‪٬ ٣‬ځً ‪ٔ ،CTRL+D‬عالل‪ ٧‬ؤن ‪ OllyDbg‬ظ٭ُٲ ‪٬‬ځً خألظبدء خڀيت‬
‫خٔعىًڄعهد ڄه والپ ربمُٿ خڀـ ‪ symbols‬خؼبىـىيش يف خڀًخظد زدَّ خڀيت َعڃ بو‪ٙ‬دئٌد ؤؼىدء خڀٽىڄسدَځُىٯ‪ ,‬وٌٍخ َٕهٿ خڀع٭دڄٿ ڄ‪ ٫‬خڀًوخپ‬
‫وخؼبعٱًنخض ز‪ٙ‬ٽٿ ؤلٕه ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪516‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫يرفرلاخ‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫و ٌٍخ ڀُٓ ټٿ ٍ٘ء‪ ,‬خٌٌر يف ‪ OllyDbg‬بذل ‪ ViewSource files‬ؤُٵعك ڀٻ ودٴٍش ٴُهد صبُ‪ ٫‬ڄځٵدض خڀٕىَْ خڀيت‬
‫خٔعىًڄعهد يف ڄ‪ُٙ‬و‪٬‬ٻ‪ ،‬ويبٽه خوعُدَ ؤٌ وخلً ڄىهد (يف لدڀعىد ڀًَىد ٴٹ‪ ٣‬ڄځٳ وخلً) ‪:‬‬

‫خوٹُ ‪٬‬ځًُ ڄُظٌن ؤعٵعك ڄځٳ خڀٕىَْ ‪:‬‬

‫و دبد ؤن خػب‪٥‬إ وبًغ ز٭ً خڀ‪١‬ٱ‪٬ ٣‬ځً َِ خڀعمىَٿ‪ ,‬ٴ٭ځُٻ زدڀٌٍدذ بذل خپَٔدڀص ‪ WM_COMMAND‬وزدڀ‪١‬س‪ ٣‬بذل خغبًغ‬
‫‪ BTN_CONV‬و‪ ٫٠‬وٹ‪٥‬ص ظىٸٳ ٌىدٺ زـ ‪: F2‬‬

‫و ؤ‪٤‬ځٷ خڀربودڄؿ خِن مث ؤيوٿ ٔځٕځص ؿبدَٲ ‪٤‬ىَځص ـًخً ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪517‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫يرفرلاخ‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫مث ‪ CONVERT‬ؤععىٸٳ يف خؼبٽدن خؼبىدٔر ‪:‬‬

‫و ڀععس‪ ٫‬خألڄىَ ـًُخً خ‪٠‬ٱ‪٬ ٣‬ځً خڀـ ‪ bar‬خػبد‪ ٚ‬ز٭مىي خڀع٭ځُٷ ڀعٱٍَُي بذل ‪٬‬مىي ٔىَْ ‪:‬‬

‫و ٔعالل‪ ٧‬ؤن خڀٽىي وخڀٕىَْ ؤ‪ٜ‬سمد ـىسدً بذل ـىر ‪:‬‬

‫زدڀععس‪ ٫‬ٸځُالً يف ٌٍي خغبدڀص ٔع٭ُٲ ؤن خػب‪٥‬إ يف ‪ٜ‬ٱُ خڀـ ‪ Buffer‬خڀٌٍ َعځٹً ٔځٕځص خحملدَٲ خحملىڀص وڀع‪ٝ‬مُك خألڄُ وعُٺ ڀٻ ٌڀٻ‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪518‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫يرفرلاخ‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ٌىدٺ ‪َُ٤‬ٹص ؤوُي ڀعممُٿ خڀـ ‪ Symbols‬وٌڀٻ ټدڀعدرل ‪:‬‬

‫ضبٿ وٕىص ‪ Release‬ڄه خڀربيبؿ‪ ،‬خ‪٠‬ٱ‪ CTRL+O ٣‬مث ‪:‬‬

‫مث ؤحبُ بذل ڄٽدن وـىي ڄځٵدض خڀـ ‪ Obj‬ؤو ‪ Lib‬خػبد‪ٜ‬ص زربودؾبٻ وزدؼبٽعسدض خڀيت ؤ‪٠‬ٵعهد بڀًُ‪ ،‬مث خوعُ ڄد ظًَُ‪ ،‬مث خ‪٠‬ٱ‪ ٣‬ؤلً خألَِخَ‬
‫خألَز٭ص ڀعُظُر خؼبځٵدض بذل ؤَز‪ ٫‬ؾبمى‪٬‬دض ‪:‬‬

‫ڀع‪ٙ‬دًٌ خألظبدء ظ‪٩‬هُ ؤڄدڄٻ ‪:‬‬ ‫و ز٭ً ٌڀٻ‬

‫ڄالق‪٨‬دض ‪:‬‬

‫‪ - 1‬يبٽىٻ ٴ٭ٿ وٵٓ خڀ‪ٍٙ‬ء ڀځمٽعسص ‪ masm32.lib‬ڄؽالً‪ ،‬وټٍڀٻ خؼبٽعسص ‪ cryptohash.lib‬الٔعًنخي صبُ‪ ٫‬ؤظبدجهمد‪.‬‬
‫‪ - 2‬ود‪ُٜ‬ص ربمُٿ خڀٕىَْ ود‪ٜ‬ص ٴٹ‪ ٣‬زـ ‪ COFF standard‬وال يبٽه ربمُٿ ڄځٵدض خڀًڀٵٍ ڄسدُ٘ش ڄؽالً بال ز٭ً ‪٬‬مٿ‬
‫‪ compiling‬ڀـ ‪ obj‬ڄه والپ و‪ٝ‬دج‪ ٛ‬خؼب‪ُٙ‬و‪ ٪‬وخوعُدَ ‪ Produce obj c/c++ files‬وز٭ً ٌڀٻ يبٽه‬
‫خٔعىًخڄهد‪.‬‬
‫‪ - 3‬و ٌٍي خػبد‪ُٜ‬ص خألوًنش ڄهمص ـًخً؛ ٴمؽالً ز٭ً خڀع٭ُٲ ‪٬‬ځً ڄٽعسص ٌد٘دض ڄد يف زُودڄؿ ڄد يبٽىٻ ربمُځهد و‪٬‬مٿ‬
‫ټىڄسدَځُىٯ ؽبد وخٔعًنخي خألظبدء ڄىهد‪ ،‬فبد َٕهٿ خڀٽؽًن ڄه خألڄىَ يف خڀع٭ُٲ ‪٬‬ځً خڀًوخپ وخؼبعٱًنخض يون خغبدـص بذل بًٌخَ‬
‫خڀىٸط يف ظعس‪ ٫‬ټٿ يخڀص و‪٥‬ىش خب‪٥‬ىش‪.‬‬
‫‪٬ - 4‬ځُٻ زًَخٔص وڄٹدَوص ڄد ظٽعسً زدألظبسځٍ وڄد َعڃ بوعدـً ټمځٳ ظىٵٌٍُ‪ ،‬ڀُٕهٿ ‪٬‬ځُٻ ٴهڃ خڀربخڄؿ ؤؼىدء ظىٹُمهد ټهٍي‬
‫خألڄؽځص ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪519‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫يرفرلاخ‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪...‬‬

‫‪ .3‬نػط ايدلْاَر‬

‫‪ .3.1‬ؾو ايهػط‬

‫دل َ٭ً ٴٻ ‪ ACProtect‬ڄ‪ٙ‬ٽځص لىت ‪٬‬ىً خؼبسعًجٌن‪ٌٍ ,‬ي وٹ‪٥‬ص وعٵٷ ڄ٭ٻ ٴُهد‪ ,‬ڀٽه ال ظٱديَ‪ ,‬ڄد َؤَٻ بن ٸمط زٽُٕي ز‪َُ٥‬ٹص‬
‫خلعُخٴُص‪ ,‬سبهً ڀٻ خڀ‪َُ٥‬ٷ ؤڄدڂ خغبمدَدض خڀ٭عًُش؟‬

‫ڄد َؤَٻ يف زُؾبص ‪ plugin‬ڀـ ‪َ Imprec‬ٹىڂ زة‪ٜ‬الق خڀـ ‪( IAT‬ؤـٿ‪ ,‬و٭ُٲ ؤوً ڄه خؼبمٽه ؤن ظ٭ٽٓ ز٭‪ ٟ‬خڀٹٵّخض وظٽىن خڀـ‬
‫‪ IAT‬ټدڄځص‪ ,‬ڀٽه وًَُٺ ؤن ظع٭ځڃ خعبًًَ)‪.‬‬

‫ضبٿ خڀربودڄؿ خحملمٍ بذل وٕىص فبىٌص ڄه ‪ OllyDbg‬ٺىضدة األذ مزار ڄه ٴَُٹىد‪ .‬وؤ‪٤‬ځٷ خڀربودڄؿ‪ ,‬مث ظعس٭ً ؤعفً ز٭‪ ٟ‬خؼبٹدڀر ټـ‬
‫‪ IsDebuggerPresent‬و ‪ CreateToolhelp32Snapshot‬وڄه خڀٕهٿ ذبدوِنبد‪.‬‬

‫ڀٍخ ٴځىُټّ ‪٬‬ځً خڀـ ‪ IAT‬وخڀيت َٹىڂ خڀربودڄؿ ز٭مٿ ‪ xor‬ڀځٹُمص خڀ‪ٝ‬مُمص ڀځـ ‪ API‬ڄ‪ ٫‬ٸُمص ‪ٙ٬‬ىخجُص ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪520‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫يرفرلاخ‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫خڀـ ‪ٔ Plugin‬عٽىن ڄهمعً ٔهځص و ٔعع‪١‬مه خػب‪٥‬ىخض خڀعدڀُص‪:‬‬

‫‪ )1‬خٔعُـد‪ ٪‬خڀٹُمص خألوذل‪.‬‬


‫‪ )2‬خٔعُـد‪ ٪‬خڀٹُمص خڀؽدوُص‪.‬‬
‫‪٬ )3‬مٿ ‪ xor‬زٌن خڀٹُمعٌن‪.‬‬
‫‪ )4‬بَـد‪ ٪‬خڀٹُمص خڀ‪ٝ‬مُمص بذل ‪ Imprec‬ڀُٹڃ دبد هبر ‪٬‬ځًُ‪.‬‬

‫ؤڄد خڀربؾبص ٴٕهځص وڄىـىيش يف ڄځٳ خؼبٕد‪ً٬‬ش خڀعدز‪ ٫‬ڀـ ‪ Imprec‬خؼبٕمً ‪ Plugin.txt‬وذبًي ڄ‪ ٫‬ز٭‪ ٟ‬خألڄؽځص‪.‬‬

‫خؼبهڃ‪ ,‬خٔعىًڂ ‪ Template‬خؼبُٴٷ ڄ‪ ٫‬خڀًَْ (‪) .\ImprecPlugin\Template\ImprecAddin.tpl‬‬

‫ز٭ً ؤن ظٕعىُـهد بذل ‪ %RADASM%\masm\templates‬ٸڃ زةو‪ٙ‬دء ڄ‪ُٙ‬و‪ ٪‬ـًًَ ‪:‬‬

‫مث َځُهد‬

‫و دل َسٷ خِن بال ؤن ظعُـڃ خػب‪٥‬ىخض خڀيت ظٽځمىد ‪٬‬ىهد ٔدزٹدً بذل ټىي ٴع‪ٝ‬سك خڀًخڀص ‪٬ Trace‬ځً خڀ‪ٙ‬ٽٿ (بٌخ ؤَيض خٔع٭مدپ‬
‫‪ Template‬ڄٕعٹسالً‪ ,‬ٴمد ‪٬‬ځُٻ بال ؤن ظ‪ُ١‬ٳ ټىي خڀعمٹٷ زٌن ‪ُ٤‬يف خؼب٭ٹىٴص وظُٺ خڀٻپ ټمد ٌى) ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪521‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫يرفرلاخ‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫َى‪ ٫٠‬خڀٽىي‬
‫يف ڄٽدن‬
‫خؼب٭ٹىٴص‬

‫وبڀُٻ خڀ‪ُٙ‬ق ‪:‬‬

‫‪ .1‬خػب‪٥‬ىش خألوذل ‪:‬‬


‫‪ Edi‬خِن ڄاُ٘ كبى خڀـ ‪ IAT‬خؼبىمُٴص‬

‫انكىد‬

‫يماتهه يف‬
‫‪Imprec‬‬

‫يماتهه يف‬
‫‪OllyDbg‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪522‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫يرفرلاخ‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ .2‬خػب‪٥‬ىش خڀؽدوُص ‪:‬‬

‫‪ّ٬‬پ‬ ‫انكىد‬
‫خڀع٭ځُمص‬ ‫يماتهه يف‬
‫خڀؽدوُص‬ ‫‪OllyDbg‬‬

‫‪ .3‬خػب‪٥‬ىش ؤڀؽدڀؽص ‪:‬‬

‫انكىد‬
‫خڀعإټً ڄه‬
‫خڀع٭ځُمدض‬

‫ٌٿ خڀع٭ځُمص خألوذل ‪ Push‬وخڀؽدوُص ]‪ Xor [esp‬؟‬ ‫انشزذ‬

‫‪ .4‬خػب‪٥‬ىش خڀُخز٭ص ‪:‬‬

‫انكىد‬
‫‪٬‬مٿ خڀـ‬
‫‪XOR‬‬
‫يماتهه يف‬
‫‪OllyDbg‬‬

‫‪ .5‬خػب‪٥‬ىش خػبدڄٕص ‪:‬‬

‫لٕدذ‬
‫خڀٹُمص‬ ‫انكىد‬
‫خڀ‪ٝ‬مُمص‬
‫و خَـد‪٪‬‬
‫خڀٹُمص‬
‫‪( 200‬خڀيت‬ ‫خلٕر ودظؿ خڀـ ‪ xor‬وخلٵ‪ ً٩‬حبُػ َ‪ٝ‬سك يف خپټځمص خؼبّيوـص خألوذل ڄه ‪ ،Map‬وڄَُ‬
‫انشزذ‬
‫ظ٭ين سبدڂ‬ ‫خڀٹُمص ‪ IMP_SUCCESS‬ؤٌ (‪ )200‬وظ٭ين قبدق خڀ٭مٿشٌ‪.‬‬
‫خالڄُ ز‪ٝ‬ىَش‬
‫‪ٜ‬مُمص)‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪523‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫يرفرلاخ‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫و خڀىدظؿ ز٭ً وٕه خڀـ ‪ plugin‬يف خؼبٕدَ خؼبىدٔر ڀـ ‪: Imprec‬‬

‫وبٌخ ظعس٭ط خڀربودڄؿ زـ ‪ٔ OllyDbg‬عفً ؤن خڀـ ‪ API‬خڀىدٸ‪ٌ ٛ‬ى ‪ MessageBoxA‬ويبٽه ؤن ظ‪ُ١‬ٵً زدڀىٹُ ڄُظٌن ‪٬‬ځً خڀٕ‪ُ٥‬‬
‫مث خوعُدَ خالٔڃ خؼبىدٔر‪.‬‬

‫وبڀُٻ ز٭‪ ٟ‬خڀـ ‪ Hints‬إلسبدڂ خڀـ ‪: unpacking‬‬

‫‪ ٫٠ .1‬وٹ‪٥‬ص ‪٬‬ځً ‪ GlobalAlloc‬وظىٸٳ يف خؼبُش خڀؽدڀؽص ‪٬‬ځُهد (‪ F9‬ؼالغ ڄُخض)‪.‬‬

‫‪٬ .2‬ىً خڀ٭ىيش بذل خڀٽىي ُٔ‪٩‬هُ خڀٽىي ‪ ٍُُٰ :‬ټمد يف خڀ‪ٝ‬ىَش ‪:‬‬

‫تؼذ‬ ‫لثم‬

‫مث لهيالً حتد‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪524‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫يرفرلاخ‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ڄر ٺ ‪٬‬ځُٻ‪.‬‬
‫‪٬ F2 .3‬ځً ‪ Section .text‬مث ‪ Dump‬مث ‪ Reb IAT‬مث ‪ RUN‬مث خَ‬

‫‪ .3.2‬نػط اذتُا‪ ١ٜ‬به‪ٝ‬ذٔ‬

‫ٔىع‪ُ٥‬ٶ خڀُىڂ بذل ؤلً خؼب٭ًخض خؽبدڄص‪ ،‬وخڀيت زبع‪٬ ُٝ‬ځُٻ خڀىٸط(‪٤‬س٭دً زدإلڄٽدن خٔع٭مدپ ‪ Coderipper‬ؤو ‪ IDA‬ڄسدُ٘ش‪ ,‬ڀٽه ظ٭ځڃ‬
‫خڀ‪ٍٙ‬ء خعبًًَ ؤڄُ صبُٿ)‪.‬‬

‫‪( TMG Ripper Studio .3.2.1‬ن‪ٝ‬ذٔ يف زق‪ٝ‬ك‪ٚ ١‬اسس‪)٠‬‬


‫خأليخش خألوذل ٔعٽىن ‪ TMG Ripper Studio‬خڀُخج‪ ٫‬يف ڄؽٿ ٌٍخ خؼبؽدپ خڀسُٕ‪ ،٣‬ؤىٵعُ‪ ٞ‬ؤوٻ ‪ُ٬‬ٴط ټُٳ ربًي ڄٽدن خػبىخَِڄُص‬
‫وال ربعدؾ بال ڀىٕىهد‪ .‬خٴعك خڀربودڄؿ (‪: ) .\KeyGenning\TMG\Ripper‬‬

‫خِن ڄد ‪٬‬ځُٻ بال ؤن سبأل ز٭‪ ٟ‬خؼب٭ځىڄدض وخڀربودڄؿ َٽمٿ خ ڀسدٸٍ (ڄالل‪٩‬ص ٌدڄص ‪ :‬ڀٹً ‪ً٬‬ڀىد يف آوُ غب‪٩‬ص ‪٬‬ځً وىخَِڄُص خڀعٕفُٿ‬
‫ڀى‪٩‬هُ ڀٻ ؤنبُص وٸىش خڀربودڄؿ‪ ،‬وؤَه ظٽمه؟ وخؽبًٲ خؼبٕع٭مٿ ٔعفًي يف‪.) .Extra\Keygenning\TMG\Target‬‬

‫ٌٍي ؤٌڃ خؼب٭ځىڄدض ‪:‬‬

‫‪ - 1‬زًخَص خػبىخَِڄُص يف‪00401369 :‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪525‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫يرفرلاخ‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ - 2‬هندَعهد يف ‪ 0040142D‬ٸسُٿ خؼبٹدَوص‪.‬‬


‫ي‪ OllyDbg ٪‬ڄٵعىلدً‪ ،‬وبڀُٻ خؼبُخلٿ زدڀععدز‪: ٫‬‬

‫وبڀُٻ خڀعٵد‪ُٜ‬ٿ ( ‪٤‬سُ٭ٍ ؤن َٕسٷ ٌٍخ يَخٔص ڀځىىخَِڄُص‪ ،‬ويبٽىٻ خڀععس‪ ٫‬ؤَ‪١‬دً يف خػبدودض ‪٬‬ځً خڀُمٌن يف‪ TMGRS‬ڀځمٕد‪ً٬‬ش) ‪:‬‬

‫وز٭ً ٌڀٻ َ‪٩‬هُ ڀٻ ‪:‬‬ ‫مث‬ ‫ز٭ً ربًًَ خألوىخ‪ ٪‬خڀ‪ٝ‬مُمص خ‪٠‬ٱ‪:٣‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪526‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫يرفرلاخ‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫وزبعٵٍ خؼب٭ځىڄدض يف ‪ data references‬يبٽىٻ بيودپ خٔڃ ڀځًخڀص يف‬

‫غبٵ‪ ٧‬خؼب‪ُٙ‬و‪ ٪‬وظ٭ًَٿ ز٭‪ ٟ‬خڀٕ‪٥‬ىَ وَ‪ٝ‬سك خڀٽُفه ـدٌّخً ‪:‬‬ ‫و خِن دل َسٷ بال خڀ‪١‬ٱ‪٬ ٣‬ځً‬

‫خٴعمً دبمَُ و‪ٝ‬ى‪ ،ٚ‬مث خٌٌر بذل خڀٕ‪٥‬ىَ خألوًنش‪ ،‬وؤ‪ ً٬‬ظٕمُص خڀـ‪ API‬يف ټٿ خڀى‪ ٛ‬مث خلٍٲ خڀٕ‪٥‬ىَ ‪:‬‬

‫هبر ؤَ‪١‬دً ب‪٠‬دٴص ٔ‪َُ٥‬ه يف ؤوپ خڀٽىي ‪:‬‬

‫و ٔ‪َُ٥‬ه يف آوُي ‪:‬‬

‫و ٴدجًهتمد ‪ :‬بـسدَ خڀٽمسدَځُ ‪٬‬ځً ‪ً٬‬ڂ ب‪٠‬دٴص ؤٌ ‪ prologue‬وال ‪ epilogue‬ڀځًوخپ ألهند سبځٻ وخلًش‪.‬‬

‫ټٍڀٻ ؤ‪٠‬ٳ ټځمص ‪ proc‬ڀځًوخپ خؼبع٭ُٲ ‪٬‬ځُهد؛ ڀځعمٽه ڄه خؼبىديخش ‪٬‬ځُهد زٕهىڀص ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪527‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫يرفرلاخ‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫خَـ‪ ٫‬بذل خڀٕىَْ ڀځمٹدَوص‪.‬‬

‫باؽتعُاٍ ‪( IDA+PLUGIN‬ن‪ٝ‬ذني يف ‪ 30‬ثاْ‪)١ٝ‬‬ ‫‪.3.2.2‬‬


‫خڀسالٌٰن ڄىـىي يف ‪ .\Keygenning\IDA\Plugin‬خوٕىً يف ‪. %IDA%\plugins‬‬

‫ڄد ‪٬‬ځُٻ بال ؤن ظعىـً بذل خػبىخَِڄُص ‪:‬‬

‫و ڄه مث خٌٌر بذل ‪ EditCode snipet creator‬ؤو خ‪٠‬ٱ‪: ALT+F10 ٣‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪528‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫يرفرلاخ‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫و‪٬‬ىًي خ ُٔعىڀً خڀٽُفه‪.‬‬

‫ڄد ‪٬‬ځُٻ بال ظٱًُن ‪ 3‬ؤو ‪ 4‬ؤٔ‪ ُ٥‬ټمد يف خڀٕدزٷ وخڀىعُفص ٴىََص‪.‬‬

‫خڀٕىَْ ڄُٴٷ يف ‪.\Keygenning\IDA\Keygen‬‬

‫ٌٍخ خڀًَْ دل َٽه ڄه ربًٌ خػبىخَِڄُدض خڀالڄ٭ٽىٔص ؤو ربًٌ زُخڄؿ ضبدَص ‪ٜ‬٭سص‪ ،‬زٿ ٴٹ‪ ٣‬إلَ‪ٝ‬دپ ؤټرب ‪ً٬‬ي ڄه خؼب٭ځىڂخض خڀيت و‪٩‬ه‬
‫ؤهند ڄٱُسص ‪٬‬ه خؼبسعًجٌن‪ ،‬وخڀيت ظ‪ٙ‬ٽٿ يف و‪ُ٩‬ود ٸىخ‪ً٬‬خً ٌدڄص هبر ‪٬‬ځً خؼبهىًْ خڀ٭ٽٍٕ ؤن َعٹىهد‪ ،‬و‪٬‬ځً خؼبسعًت ؤن َ‪ٝ‬ٿ بڀُهد َىڄدً ڂ خ ‪.‬‬
‫وؽبٍخ خڀٕسر دل و٭ُ خالٌعمدڂ خڀىخـر ڀځربودڄؿ (بٌخ ‪ٜ‬ك ظٕمُعً ټٍڀٻ) ڄه لُػ خال‪٬‬عىدء زدألو‪٥‬دء خڀيت ٸً ربًغ‪ ،‬ڀٍخ ٴد‪ٍَ٬‬وود‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪529‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫يرفرلاخ‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫التطفل للتنلً‪...‬‬
‫‪Malwares Hooking‬‬

‫‪ .1‬املكسَ‪١‬‬
‫ظ٭عمً خڀٵًنؤدض ؤو خڀربخڄؿ خڀ‪١‬دَش ‪٬‬ځً ‪ً٬‬ش ‪ُ٤‬ٶ ڀعىٹٿ وظځىَػ خڀى‪٩‬دڂ؛ ڄىهد ڄه َ٭ُٗ يف ‪ Kernel land‬وڄىهد ڄه َ٭ُٗ يف‬
‫‪ User land‬ٸىش ‪ Kernel land‬ظٽمه يف خغب‪ٝ‬ىپ ‪٬‬ځً ټٿ ‪ٜ‬اللُدض خڀى‪٩‬دڂ ‪٬‬ځً خڀى‪٩‬دڂ‪َ ،‬٭ين خڀعمٽڃ خڀٽدڄٿ يف خڀى‪٩‬دڂ‪ ،‬وٌٍخ ڄد‬
‫ظ٭عمً ‪٬‬ځًُ ڄ‪١‬ديخض خڀربخڄؿ خڀ‪١‬دَش خغبًَؽص‪ ،‬زُخڄؿ خڀعىَُر وخڀربخڄؿ خڀيت ظىٕه وٵٕهد زًون ؤٌ ًٌٲ وٌٍ ؤزٕ‪ ٣‬وى‪ ٪‬ڄه خڀربخڄؿ‬
‫خڀ‪١‬دَش‪.‬‬

‫‪.Delphi7‬‬
‫‪ٜ VMWare‬ى‪ ٫‬و‪٩‬دڂ ونبٍ ڀځعفُزص‪.‬‬
‫‪ AT4RE Faust Virus Remover‬ڀٵم‪ ٛ‬خڀـ ‪Process‬‬
‫‪ AT4RE Kernel Detective‬إلڀٱدء خؽبىٺ‪.‬‬

‫خؼبُٴٹدض يف خڀُخز‪( ٣‬خ‪٠‬ٱ‪٬ ٣‬ځً خڀ‪ٝ‬ىَش)‪.‬‬

‫مت ظٹُٕڃ خڀًَْ بذل ٸٕمٌن ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪530‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫يرفرلاخ‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪٬ - 1‬مٿ ‪ Hook‬ڀـ ‪ Explorer.exe‬وڄىً خڀعمٽڃ يف ظ‪ٙ‬ٱُٿ ؤو بز‪٥‬دپ و‪ٝ‬دج‪ ٛ‬ڄ٭ُىص ٔىع‪ُ٥‬ٶ بڀُهد بن ٘دء خهلل يف ٌٍخ‬
‫خڀًَْ‪.‬‬
‫‪ٜ‬٭ر‬
‫‪٬ - 2‬مٿ ‪ Hook‬ڀـ ‪ Winlogon.exe‬عب٭ٿ لٍٲ خؼبځٳ خڀ‪١‬دَ ؤڄُخً خً ‪.‬‬

‫‪َ Windows Explorer .2‬تكؿح ايٓعاّ‬


‫‪ WinRar‬وڄ‪١‬ديخض‬ ‫ڄع‪ٝ‬ٵك خڀى‪٩‬دڂ ‪َٕ Windows explorer‬مك زًڄؿ ب‪٠‬دٴدض ڀځربخڄؿ؛ ڄؽٿ زُخڄؿ خڀ‪١‬ٱ‪ ٣‬وٴٻ خؼبځٵدض‬
‫وبمځهد خؼبع‪ٝ‬ٵك ظځٹدجُد ‪.‬‬
‫خڀٵًنؤدض‪ ،‬ڀعٕهُٿ خڀع٭دڄٿ ڄ٭هد ڄه ‪ُ٤‬ٲ خؼبٕع٭مٿ‪ ،‬وَٽٵٍ ٴٹ‪ ٣‬ظٕفُځهد يف خڀُهبٕعٌُ پ‬

‫ظبدق خڀى‪٩‬دڂ زعٕفُٿ وخٔعً‪٬‬دء خڀربخڄؿ هبٍي خڀٕهىڀص‪ ،‬ـ٭ٿ ڄربؾبٍ خڀٵًنؤدض َٕعٱځىهند ڀع‪ٙ‬ٱُٿ زُخؾبهڃ خڀ‪١‬دَش وخال‪٬‬عمدي خڀٽدڄٿ ‪٬‬ځً‬
‫خڀـ ‪ Hooking‬ڀعى‪ ٍ٥‬خعبًَخن خڀىدََص وربمُٿ وٕه ؤلًغ ڀځٵًنؤدض ‪:‬‬

‫ٸدجمص ب‪٠‬دٴدض ڀربخڄؿ ًٰن ‪٠‬دَش َٕمك هبد خڀى‪٧‬خڂ‬

‫ٔىمدوپ يف ٌٍخ خڀًَْ ٴهڃ آڀُص خڀـ ‪ Hooking‬وظ‪٥‬سُٷ ڄؽدڀٌن ‪٬‬مځٌن سبط زُؾبعهڃ زځٱص يڀٵٍ ڄُٴٹٌن ڄ‪ٌٍ ٫‬خ خڀًَْ‪.‬‬

‫‪GUID - Globally Unique Identifier‬‬ ‫‪.2.1‬‬

‫يف‬ ‫ٌى َٸڃ ظٕځٕځٍ ولًُ‪َٕ ،‬ع٭مٿ ڀځع٭َُٳ زدڀربخڄؿ يف خڀُهبٕعٌُ‪َ ،‬٭عمً ‪٬‬ځًُ خؼبربؾبىن ڀعفىر خػبځ‪ ٣‬زٌن خڀٹُڃ خڀيت ظٽعر‬
‫خڀُهبٕعٌُ‪ ،‬ؤىٕع٭مځً يف ‪٬‬مځُص ظٕفُٿ ڄځٳ خؽبىٺ‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪531‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫يرفرلاخ‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ڀځمًَّ ڄه خؼب٭ځىڄدض ظ‪ٝ‬ٵك الزابــــــــــــــــــــــــــــــــــــــط خڀعدرل ‪:‬‬

‫ڀځم‪ٝ‬ىپ ‪٬‬ځً ‪ GUID‬يبٽىىد خٔع٭مدپ زُخڄؿ خڀعىڀًُ خػبد‪ٜ‬ص زً‪ ،‬ؤو خال‪٬‬عمدي ‪٬‬ځً يڀٵٍ ڀعىڀًُ َٸڃ‪.‬‬

‫خڀ‪َُ٥‬ٹص ‪:‬‬

‫يف ودٴٍش يڀٵٍ خػبد‪ٜ‬ص زدڀٽىي خ‪٠‬ٱ‪٬ ٣‬ځً خألَِخَ خڀعدڀُص يون ؤن ظُٴ‪ًَ ٫‬ٺ‪Ctrl + Shift + G :‬‬

‫‪ Ctrl + Shift + G‬ڀعىڀًُ ؤَٸدڂ ولًُش ال ڄعىدٌُص‬

‫يف ڄؽدڀىد ٔىإوٍ ٌٍخ خڀُٸڃ ‪ ، } E124-B95B-4A44-BD50-6B24CE4FE53D0494{ :‬ؤى٭مٿ ‪٬‬ځً خؼبځٳ خؼبُٴٷ ڄ‪٫‬‬
‫وٕىص يڀٵٍ ‪ 7‬يف ؾبځً ‪. Demos‬‬

‫خؼبٕدَ ‪X:\Program Files\Borland\Delphi7\Demos\ActiveX\ShellExt :‬‬

‫ٔىٹىڂ زس٭‪ ٟ‬خڀعٱًُنخض خڀسُٕ‪٥‬ص ڀىعمٽه ڄه بز‪٥‬دپ و‪ٝ‬دج‪ ٛ‬خڀى‪٩‬دڂ خڀعدڀُص‪Copy – Move – Delete - .Rename‬‬

‫‪ًَ .2.2‬ـ اشل‪ٛ‬ى – ‪MalwareHook.pas‬‬

‫‪ .2.2.1‬ادتع‪ ٤‬ارتام بـ ‪Declaration‬‬


‫;‪unit MalwareHook‬‬

‫‪interface‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪532‬‬
AT4RE :‫انفريك انعرتي نههُذسح انعكسيح‬ ‫يرفرلاخ‬ .‫ خطىج إنى األياو‬:‫انهُذسح انعكسيح‬

uses
Windows, ActiveX, ComObj, ShlObj;

type
TCopyHook = class(TComObject, ICopyHook)
public
function CopyCallback(Wnd: HWND; wFunc, wFlags: UINT; pszSrcFile: PAnsiChar;
dwSrcAttribs: DWORD; pszDestFile: PAnsiChar; dwDestAttribs: DWORD): UINT;
stdcall;
end;

const
Class_CopyHook: TGUID = '{0494E124-B95B-4A44-BD50-6B24CE4FE53D}';
implementation

uses ComServ, ShellAPI, SysUtils, Registry;

‫ باجملًسات‬١‫ات اخلاق‬ًُٝ‫ ايع‬٢ً‫ ايتعطف ع‬١‫ ارتام بـساي‬٤‫ادتع‬ . 2.2.2


: ‫يبٽه ظٱًُنٌد زإٌ يخڀص ؤوُي لٕر خغبدـص‬
function TCopyHook.CopyCallBack(Wnd: HWND; wFunc, wFlags: UINT; pszSrcFile:
PAnsiChar;
dwSrcAttribs: DWORD; pszDestFile: PAnsiChar; dwDestAttribs: DWORD): UINT;
// This is the method which is called by the shell for folder operations
const
ConfirmMessage = 'Sorry :) | This function is disabled'#13
+ 'System Hooking | Only for Educational use '#13
+ ''#13
+ 'Arab Team 4 Reverse Engineering'#13
+ 'STRELiTZIA | AT4RE'#13
+ 'www.at4re.com';
var
Operation: string;
begin
case wFunc of
FO_COPY:
Operation := 'copy';
FO_DELETE:
Operation := 'delete';
FO_MOVE:
Operation := 'move';
FO_RENAME:
Operation := 'rename';
else
Operation := '0';
end;

Result := MessageBox(Wnd, PChar(Format(ConfirmMessage, [Operation,


pszSrcFile])),
'Malware Hooking sample',MB_OK);
end;

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ 2009 533
AT4RE :‫انفريك انعرتي نههُذسح انعكسيح‬ ‫يرفرلاخ‬ .‫ خطىج إنى األياو‬:‫انهُذسح انعكسيح‬

ّ‫ٌ يف ايٓعا‬ٝ‫ ارتام بايتػذ‬٤‫ادتع‬ .2.2.3


: ‫ ڀعٕفُٿ ؤو بڀٱدء ظٕفُٿ ڄځٳ خؽبىٺ‬regsvr32‫ُٲ زُودڄؿ‬٤ ‫ځً خألوخڄُ خڀيت ٔىٲ ظىٵٍ ڄه‬٬ ٌ‫وبعى‬
type
TCopyHookFactory = class(TComObjectFactory)
public
procedure UpdateRegistry(Register: Boolean); override;
end;

procedure TCopyHookFactory.UpdateRegistry(Register: Boolean);


var
ClassID: string;
begin
if Register then begin
inherited UpdateRegistry(Register);

ClassID := GUIDToString(Class_CopyHook);
CreateRegKey('Directory\shellex\CopyHookHandlers\MalwareHookSample', '',
ClassID);

if (Win32Platform = VER_PLATFORM_WIN32_NT) then


with TRegistry.Create do
try
RootKey := HKEY_LOCAL_MACHINE;
OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions',
True);
OpenKey('Approved', True);
WriteString(ClassID, 'Malware Hooking Example');

finally
Free;
end;
end
else begin
DeleteRegKey('Directory\shellex\CopyHookHandlers\MalwareHookSample');

inherited UpdateRegistry(Register);
end;
end;

initialization
TCopyHookFactory.Create(ComServer, TCopyHook, Class_CopyHook, '',
'Malware Hook Example', ciMultiInstance, tmApartment);
end.

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ 2009 534
AT4RE :‫انفريك انعرتي نههُذسح انعكسيح‬ ‫يرفرلاخ‬ .‫ خطىج إنى األياو‬:‫انهُذسح انعكسيح‬

SETUP.dpr ‫ت‬ٝ‫ ًَـ ايتجب‬.2.3

Declaration ‫ ارتام بـ‬٤‫ ادتع‬.2.3.1


program Setup;

uses SysUtils, Windows;

ٌٝ‫ى إىل بطْاَر ايتػذ‬ٛ‫ٌ َٔ ًَـ اشل‬ٝ‫َذلات ايتػذ‬ٚ‫ط باض‬ٜ‫ متط‬١‫ ارتام بـساي‬٤‫ادتع‬ .2.3.2
regsvr32
function RegisterServer(const aDllFileName: string; aRegister: Boolean): Boolean;
type
TRegProc = function: HResult;
stdcall;
const
cRegFuncNameArr: array[Boolean] of PChar =
('DllUnregisterServer', 'DllRegisterServer');
var
vLibHandle: THandle;
vRegProc: TRegProc;
begin
Result := False;
vLibHandle := LoadLibrary(PChar(aDllFileName));
if vLibHandle = 0 then Exit;
@vRegProc := GetProcAddress(vLibHandle, cRegFuncNameArr[aRegister]);
if @vRegProc <> nil then
Result := vRegProc = S_OK;
FreeLibrary(vLibHandle);
end;

ٌٝ‫ ايتػذ‬٤‫ إيػا‬ٚ‫ٌ أ‬ٝ‫ اخلام باملػتعٌُ يف تؿع‬٤‫ادتع‬ .2.3.3


begin
case MessageBox(0, 'Click YES - To Install HOOK - Restart your system'#13'Click
NO - To Uninstall HOOK - Restart your system', ' Malware System hooking sample',
MB_YESNOCANCEL + MB_ICONQUESTION) of

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ 2009 535
AT4RE :‫انفريك انعرتي نههُذسح انعكسيح‬ ‫يرفرلاخ‬ .‫ خطىج إنى األياو‬:‫انهُذسح انعكسيح‬

ID_YES: if RegisterServer('MalwareHookTest.dll', True) then MessageBox(0,


'HOOK Installed', 'Sucess', MB_OK + MB_ICONINFORMATION);
ID_NO: if RegisterServer('MalwareHookTest.dll', False) then MessageBox(0,
'HOOK Unistalled', 'Sucess', MB_OK + MB_ICONINFORMATION);
end;
end.

‫ وخڀـ‬،‫ُٻ خػبُدَ إلڀٱدء خڀعٕفُٿ‬٥‫ ٴدن خؼبربڄؿ ڀه َ٭‬،ً‫ ڀى ټدن ٴًنؤدً لٹُٹُد‬: ‫ص‬٩‫ڄالل‬
: ‫ٽٿ‬ٙ‫ خڀعدز٭ص ڀځمؽدپ خؼبُٴٷ ڀه ظٽىن هبٍخ خڀ‬Exports
1- DllGetClassObject.
2- DllCanUnloadNow.
3- DllRegisterServer.
4- DllUnregisterServer.
: ‫ظٽىن ٌٽٍخ ڀعٵديٌ بڀٱدء ظٕفٍپ خؽبىٺ‬
1- DllGetClassObject.
2- DllRegisterServer.

ٞ‫ك‬ٝ‫ ايتطب‬٤‫ ادتع‬.3


: SETUP.exe‫ و‬MalwareHookTest.dll: ‫ ووىٹٿ بڀُهد خؼبځٵٌن خڀعدڀٌُن‬VMWare ‫ٱٿ‬ٙ‫و‬

: SETUP.exe ‫ٱٿ ڄځٳ ظٕفُٿ خؽبىٺ‬ٙ‫و‬

: ‫ خڀَّ ڄىخٴٷ‬٣‫ٱ‬١‫و‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ 2009 536
AT4RE :‫انفريك انعرتي نههُذسح انعكسيح‬ ‫يرفرلاخ‬ .‫ خطىج إنى األياو‬:‫انهُذسح انعكسيح‬

.‫هُ ڀىد َٔدڀص قبدق خڀ٭مځُص‬٩‫ظ‬

.ً‫هُض ٌٍي خڀُٔدجٿ ټمد ٌټُود آوٵد‬٨ ‫ڀى ټدن خڀٵًنوْ لٹُٹُدً ؼبد‬

ٟ‫ تؿشل ايطجيػذل‬.3.1

: ‫مځُص ظؽسُط خؽبىٺ‬٬ ‫دء ٸُڃ ـًًَش يف خڀُهبٕعٌُ ز٭ً بسبدڂ‬ٙ‫ بو‬٧‫والل‬

: GUID ‫ظٕفُٿ ڄځٳ خؽبىٺ دب٭ُٲ‬


[HKEY_CLASSES_ROOT\CLSID\{0494E124-B95B-4A44-BD50-6B24CE4FE53D}]
@="Malware Hook Example"

[HKEY_CLASSES_ROOT\CLSID\{0494E124-B95B-4A44-BD50-6B24CE4FE53D}\InprocServer32]
@="C:\\DOCUME~1\\UTILIS~1\\Bureau\\MALWAR~1.DLL"
"ThreadingModel"="Apartment"

: ‫ص دبځٳ خؽبىٺ‬ٜ‫ خػبد‬Classe Id – CLSID ‫ بذل‬Pointer ‫مٿ‬٬ ‫سك َ٭مٿ‬ٜ‫دٴص خؼب٭ُٲ خڀٌٍ ؤ‬٠‫ب‬
[HKEY_CLASSES_ROOT\Directory\shellex\CopyHookHandlers\MalwareHookSample]
@="{0494E124-B95B-4A44-BD50-6B24CE4FE53D}"

: Approved ‫د بذل ٸدجمص‬١َ‫ ؤ‬GUID ‫دٴص ڄ٭ُٲ‬٠‫سبط ب‬


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell
Extensions\Approved]
"{8DD448E6-C188-4aed-AF92-44956194EB1F}"="Windows Media Player Play as Playlist
Context Menu Handler"
"{CE3FB1D1-02AE-4a5f-A6E9-D9F1B4073E6C}"="Windows Media Player Burn Audio CD
Context Menu Handler"
"{F1B9284F-E9DC-4e68-9D7E-42362A59F0FD}"="Windows Media Player Add to Playlist
Context Menu Handler"
"{BDEADF00-C265-11D0-BCED-00A0C90AB50F}"="Dossiers Web"
"{00020D75-0000-0000-C000-000000000046}"="Microsoft Office Outlook Desktop Icon
Handler"
"{0006F045-0000-0000-C000-000000000046}"="Microsoft Office Outlook Custom Icon
Handler"

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ 2009 537
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫يرفرلاخ‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫"‪"{42042206-2D85-11D3-8CFF-005004838597}"="Microsoft Office HTML Icon Handler‬‬


‫"‪"{B41DB860-8EE4-11D2-9906-E49FADC173CA}"="WinRAR shell extension‬‬
‫"‪"{0494E124-B95B-4A44-BD50-6B24CE4FE53D}"="Malware Hooking Example‬‬
‫‪…..‬‬
‫‪…..‬‬
‫‪…..‬‬
‫‪…..‬‬

‫سبط ‪٬‬مځُص ظٕفُٿ خؽبىٺ زىفدق يف خڀُهبٕعٌُ ‪ ،‬ودل َسٷ بال خڀعإټً ڄه ٴم‪ ٛ‬خڀـ ‪ Modules‬خػبد‪ٜ‬ص دبع‪ٝ‬ٵك خڀى‪٩‬دڂ ‪Windows‬‬
‫‪.Explorer‬‬

‫‪ .3.2‬تؿشل ايـ ‪Modules‬‬

‫وٹىڂ زع‪ٙ‬ٱُٿ زُودڄؿ ‪ AT4RE Faust Virus Remover‬مث وٌٍر بذل ‪ Tools‬مث ‪: Kill process‬‬

‫لبعدَ ‪ Explorer.exe‬مث ڄه ٸدجمص خڀَّ خأليبه و‪١‬ٱ‪٬ ٣‬ځً ‪: See Modules‬‬

‫وال ل‪ ٧‬ؤن ڄځٳ خؽبىٺ مت ربمُځً زىفدق‪ ،‬ودل َسٷ ڀىد بال ؤن قبُذ خؼبځٳ‪.‬‬

‫‪ .3.3‬جتطب‪ ١‬عٌُ ًَـ اشل‪ٛ‬ى‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪538‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫يرفرلاخ‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ٌټُود آوٵد ؤن ڄځٳ خؽبىٺ َ٭‪٥‬ٿ خػب‪ٝ‬دج‪ ٛ‬خڀعدڀُص ‪:‬‬

‫‪Copy – Move – Delete - Rename‬‬

‫‪٬‬ىً ؿبدوڀص ب‪٬‬ديش ظٕمُص خجملځً ظ‪٩‬هُ ڀىد ٌٍي خڀُٔدڀص وٌٍ َٔدڀص ڄځٳ خؽبىٺ‪:‬‬

‫مث ظځُهد َٔدڀص خػب‪٥‬إ خػبد‪ٜ‬ص زدڀى‪٩‬دڂ وظس‪٥‬ٿ ‪٬‬مځُص ب‪٬‬ديش خڀعٕمُص‪.‬‬

‫وٵٓ خڀىعُفص ڄ‪ ٫‬ذبُزص خػب‪ٝ‬دج‪ ٛ‬خألوُي‪ .‬خِن ظإټًود ؤن خؽبىٺ َ٭مٿ زىفدق‪.‬‬

‫‪ .3.4‬عٌُ ٖ‪ٛ‬ى ملًـ ‪ Winlogon.exe‬ذتُا‪ًَ ١ٜ‬ـ اشل‪ٛ‬ى َٔ اذتصف‬

‫وٌى ‪ Winlogon.exe‬ألن ټٿ‬ ‫غبمدَص ڄعىٔ‪٥‬ص ؼبځٳ خؽبىٺ ڄه خغبٍٲ‪ٔ ،‬ىٕع٭مٿ ‪َُ٤‬ٹص ظ٭عمً ‪٬‬ځً ٌىٺ ؤَ‪١‬دً ؼبځٳ لٕدْ‪،‬‬
‫خؼبځٵدض خحملمځص ڄ٭ً ال ظٹسٿ خغبٍٲ‪.‬‬

‫و‪ُ١‬ٳ ڄٵعدلدً ـًًَخً يف خڀُهبٕعٌُ ټدڀعدرل ‪:‬‬


‫‪[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows‬‬
‫]‪NT\CurrentVersion\Winlogon\Notify\MalwareHookTest‬‬
‫‪"Asynchronous"=dword:00000001‬‬
‫"‪"DllName"="C:\\Documents and Settings\\Utilisateur\\Bureau\\MalwareHookTest.dll‬‬
‫‪"Impersonate"=dword:00000000‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪539‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫يرفرلاخ‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫"‪"Logon"="o‬‬
‫"‪"Logoff"="f‬‬

‫هبر ظٱًُن ڄٕدَ ڄځٳ خؽبىٺ ‪ DllName‬لٕر خغبدـص وب‪٬‬ديش ظ‪ٙ‬ٱُٿ خڀى‪٩‬دڂ‪.‬‬

‫لبعدَ ‪ Winlogon.exe‬مث ڄه ٸدجمص خڀَّ خأليبه و‪١‬ٱ‪٬ ٣‬ځً ‪: See Modules‬‬

‫والل‪ ٧‬ؤن ڄځٳ خؽبىٺ مت ربمُځً زىفدق‪ ،‬وؤ‪ٜ‬سك لٍٴً ؤڄُخً ‪ٜ‬٭سدً‪.‬‬

‫ڄالل‪٩‬ص ‪َٕ :‬ع٭مٿ ‪٬‬ديش ٌىٺ ؼبځٳ ‪ Winlogon.exe‬إلٸال‪ ٪‬خڀٵًنؤدض‪.‬‬

‫‪ .3.5‬إيػا‪ ٤‬اشل‪ٛ‬ى‬

‫يف ٌٍخ خؼبؽدپ يبٽىٻ ؤوٍ خڀٹدَت ؤن ظځٱٍَ خؽبىٺ زىٵٓ خڀربودڄؿ خڀٌٍ سبط زً ‪٬‬مځًُ خڀعؽسُط‪ ،‬وڀٽه ڀُٓ يف لدڀص ټىوً ٴًنؤدً لٹُٹُدً؛‬
‫پٌخ ٔىٕع٭مٿ ود‪ُٜ‬ص ‪ Unload‬ڀربودڄؿ خڀٵَُٷ‪. Kernel Detective‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪540‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫يرفرلاخ‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ .3.6‬تٓع‪ٝ‬ـ ‪Winlogon.exe‬‬

‫لبعدَ ڄه ٸدجمص خڀـ ‪ Process‬ڄځٳ ‪ Winlogon.exe‬مث وٌٍر بذل ظسىَر ‪: Modules‬‬

‫لبعدَ ڄځٳ خؽبىٺ مث ‪. Unload Library‬‬

‫‪ .3.7‬تٓع‪ٝ‬ـ ‪Explorer.exe‬‬

‫لبعدَ ڄه ٸدجمص خڀـ ‪ Process‬ڄځٳ ‪ Explorer.exe‬مث وٌٍر بذل ظسىَر ‪: Modules‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪541‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫يرفرلاخ‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫لبعدَ ڄځٳ خؽبىٺ مث ‪. Unload Library‬‬

‫دل َسٷَ ڀىد خِن بال ؤن كبٍٲ خڀٹُڃ خڀيت ؤ‪ُ٠‬ٵط بذل خڀُهبٕعٌُ‪ ،‬ولٍٲ ڄځٳ خؽبىٺ وخؼبٿ ٴدض خؼبٕاوڀص ‪٬‬ه خڀعځىَػ‪ ،‬وظؽسُط خؽبىٺ‬
‫ڀىعىځ‪ ٛ‬ڄه خڀٵًنوْ هندجُدً‪.‬‬

‫‪َ .4‬طاسٌ سصف ايؿرل‪ٚ‬غات‬


‫هبر خلعُخڂ خڀعُظُر يخجمدً ڀ٭ًڂ خڀىٸى‪ ٪‬يف لځٹص ڄٵُٰص ‪:‬‬

‫‪ )1‬ظى‪ُ٩‬ٳ خڀـ ‪.Process‬‬

‫‪ )2‬بڀٱدء خؽبىٺ يف لدڀص وـىيي‪.‬‬

‫‪ )3‬ظى‪ُ٩‬ٳ خؼبځٵدض خؼبٕاوڀص ‪٬‬ه خڀعځىَػ يف خڀٕىخٸدض وًٰنٌد‪.‬‬

‫‪ )4‬ظى‪ُ٩‬ٳ خڀُهبٕعٌُ‪.‬‬

‫‪ .5‬ارتامت‪١‬‬
‫خغبمً هلل مت ٌٍخ خڀًَْ وبن ٘دء خهلل ذبً ٴًُ خؼبع٭ص وخڀٵدجًش‪.‬‬

‫خؼبسعٱدش‬
‫‪ -‬خؼبځٵدض خڀيت ‪٬‬مٿ ‪٬‬ځُهد ٌٍخ خڀًَْ ڄُٴٹص ڀُعٕهَّ ڀٻ ؤوٍ خڀٽُمي خڀعفُزص ڄ‪ ٫‬خظسد‪ ٪‬ټٿ خؼبُخلٿ وخڀى‪ٜ‬ىپ بذل خڀىعُفص ‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪542‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫يرفرلاخ‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫الثغرات اليت تسَل كسر محاية الربامج املربدلة بـ ‪VB6‬‬

‫ټٿ ڄد َع٭ځٷ زدڀًَْ ٔعفًي زدؼبُٴٹدض (خڀعممُٿ ڄه ڄُٴٹدض خڀٽعدذ)‪.‬‬

‫ؤٰځر ڄه َٹىڄىن حبمدَص زُخؾبهڃ َ٭عمًون وخلًش ؤو ؤټؽُ ڄه خڀ‪ُ٥‬ٶ خڀعدڀُص‪:‬‬

‫أوالً‪ :‬ټدجه ًٰن ڄٵ٭ٍٿ يف خڀىٕىص خڀعفَُسُص (َِ ؤو ڄُز‪ ٫‬و‪ ٛ‬ؤو زىً يف ٸدجمص وڄد ٘دزً‪.)..‬‬

‫وَعڃ ٌڀٻ زةلًي خڀ‪َُ٥‬ٹعٌن ‪:‬‬

‫‪٬ )1‬ه ‪َُ٤‬ٷ خڀٽىي‪ ،‬وٌى خغبٿ خألٔځڃ‪.‬‬

‫‪٬ )2‬ه ‪َُ٤‬ٷ ظ٭ًَٿ و‪ٝ‬دج‪ ٛ‬خڀٽدجه‪ ،‬وٌٍي خڀ‪َُ٥‬ٹص ظًپ ‪٬‬ځً ‪٠‬٭ٳ وربش خؼبربڄؿ زدغبمدَص‪.‬‬

‫ثاَياً‪ :‬ودٴٍش ڄّ‪٬‬فص زبُؾ ‪٬‬ىً بٸال‪ ٪‬خڀربودڄؿ (‪ ،)Splash‬وٌٍ ‪٬‬ځً وى‪ٌ٬‬ن ‪:‬‬

‫‪ )1‬بڄد ؤن ظٽىن ‪.MsgBox‬‬

‫‪ )2‬وبڄد ؤن ظٽىن ودٴٍش َربؾبهد خؼبربڄؿ مث َٕعً‪ُ٬‬هد ڄه يخوٿ خڀربنخڄؿ ‪.‬‬

‫ثانثاً‪ MsgBox :‬زبُؾ ‪٬‬ىً بيودپ زُدودض ظٕفُٿ ًٰن ‪ٜ‬مُمص ‪. Bad Boy‬‬

‫راتؼاً‪ :‬بٰالٶ خڀربودڄؿ ڀىٵًٕ ‪٬‬ىً خوعهدء خؼبًش خڀعفَُسُص ؤو ‪٬‬ىً بيودپ زُدودض ًٰن ‪ٜ‬مُمص‪.‬‬

‫خايظاً‪ :‬ڄٹدَوص خڀَُٕدپ خغبٹُٹٍ زدڀَُٕدپ خػبد‪٤‬ث‪.‬‬

‫ٌٍي ټځهد ؼٱُخض ظٕهٿ ‪٬‬ځً خؼبهىًْ خڀ٭ٽٍٕ ټُٕ خڀربودڄؿ‪ ،‬ؤُعڃ يف ٌٍخ خڀًَْ بن ٘دء خهلل ظى‪ُ٠‬ك ٌٍي خڀؽٱُخض وټُٵُص ذبدوٌِد‬
‫وټُٕ خڀربودڄؿ‪.‬‬

‫‪ .1‬أ‪ٚ‬الً‪ :‬نا‪ ٔ٥‬غرل َؿعٌّ يف ايٓػد‪ ١‬ايتذط‪ٜ‬ب‪١ٝ‬‬

‫‪ .1.1‬املجاٍ األ‪( : ٍٚ‬ظض غرل َؿعٍّ )‬

‫ٸڃ زع‪ٙ‬ٱُٿ خؼبځٳ خؼبُٴٷ ‪ٔ cmd NEnable‬عفً ؤن َِ خغبٵ‪ ٧‬ٴًُ ًٰن ڄٵ٭ٍٿ ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪543‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫يرفرلاخ‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪All‬‬ ‫ضبٍٿ خڀربودڄؿ يف ‪ OllyDbg‬وخٌٌر بذل ٸٕڃ خڀًوخپ ‪٬‬ه ‪َُ٤‬ٷ ‪٠‬ٱ‪ ٣‬خڀَّ خأليبه وخوعُدَ ‪ Search For‬وڄه مث خوعُدَ‬
‫‪ intermodular Calls‬و‪ ٫٠‬وٹ‪ ٣‬ظىٸٳ ‪٬‬ځً خڀًخڀص ‪VbaObjSet‬‬

‫ٌٍي خڀًخڀص ڄهمص ـًخً‪ ،‬ٴهٍ ڄٕاوڀص ‪٬‬ه و‪ ٫٠‬خأليخش ‪ :‬ڄه لُػ ټىهند ڄٵ٭ٍځص ؤو ًٰن ٌڀٻ‪ ،‬خوّپ ڀألٔٵٿ لىت ظ‪ٝ‬ٿ ڀځىًخء خڀؽدين خڀٌٍ‬
‫ظُخي يف خڀ‪ٝ‬ىَش‪ ،‬وخڀٌٍ وبمٿ خڀٹُمص ]‪ [ECX+8C‬وخڀٹُمص ‪ 8C‬ظ‪ًٙ‬ن بذل ؤن خڀَّ ًٰن ڄٵ٭ٍٿ‪ ،‬وڀعٵ٭ُځً وٹىڂ زإلً خألڄَُه‪:‬‬

‫‪٬ )1‬مٿ ‪ NOP‬ؽبٍخ خڀىًخء‪.‬‬

‫‪ )2‬خڀٹٵّ بذل ‪.CMP EAX,EDI‬‬

‫ٔىفُذ خػبُدَ خألوپ ‪:‬‬

‫هتدوُىد ڀٹً مت ټُٕ خڀربودڄؿ وظٵ٭ُٿ خڀَّ‪.‬‬

‫‪ .1.2‬املجاٍ ايجاْ‪ْ( : ٞ‬ل ‪ٜ‬سٍ عً‪ ٢‬إٔ ْػدتٓا ترض‪ٜ‬ب‪ٚ ١ٝ‬غرل َػذً‪)١‬‬

‫ٸڃ زع‪ٙ‬ٱُٿ خؼبځٳ خؼبُٴٷ ‪ Lbl NEnable‬ؤعفً يف ؤ‪٬ ً٥‬سدَش (وٕىص ًٰن ڄٕفځص) ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪544‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫يرفرلاخ‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ضبٍٿ خڀربودڄؿ يف ‪ OllyDbg‬مث خٌٌر بذل ٸٕڃ خڀًوخپ و‪ ٫٠‬وٹ‪ ٣‬ظىٸٳ ‪٬‬ځً خڀًخڀص‪: VbaObjSet‬‬

‫ٸځىد‪ :‬بهند ڄهمص ـًخً‪ ،‬وڄٕاوڀص ‪٬‬ه و‪ ٫٠‬خأليخش ‪ :‬ڄه لُػ ټىهند ڄٵ٭ٍځص ؤو ًٰن ٌپ ٺ‪ ،‬وڄٕاوڀص ‪٬‬ه ب‪٨‬هدَ و‪ ٛ‬يخوٿ خأليخش ‪ .‬خوّپ‬
‫ڀألٔٵٿ لىت ظ‪ٝ‬ٿ ڀځىًخء خڀؽدين خڀٌٍ ظُخي يف خڀ‪ٝ‬ىَش‪ ،‬وخڀٌٍ وبمٿ خڀٹُمص]‪ [ECX+54‬وغبٍٲ خڀى‪ ٛ‬وٹىڂ زإلً خألڄَُه ‪:‬‬

‫‪٬ )1‬مٿ ‪ NOP‬ؽبٍخ خڀىًخء‪.‬‬

‫‪ )2‬خڀٹٵّ بذل ‪.CMP EAX,EDI‬‬

‫ٌٍي خؼبُش ٔىفُذ خػبُدَ خڀؽدين ‪:‬‬

‫هتدوُىد ڀٹً مت لٍٲ خڀى‪ ٛ‬ڄه يخوٿ خأليخش‪.‬‬

‫‪ .1.3‬املجاٍ ايجايح ‪( :‬بٓس اذتؿغ غرل َؿعٌّ يف ايكا‪)١ُ٥‬‬

‫خڀسىً‬
‫ټمد ٴ٭ځىد يف خؼبؽدڀٌن خڀٕدزٹٌن وٵ٭ٿ ڄ‪ٌٍ ٫‬خ خڀسىً‪ ،‬و‪٬‬ىًٌد ٔعفً ؤوً ٸً مت ظٵ٭ُٿ ‪.‬‬

‫َٹىڂ ز٭‪ٟ‬‬ ‫ڄالل‪٩‬ص ‪ :‬يف خألڄؽځص خڀٕدزٹص ٸدڂ خؼبربڄؿ زةڀٱدء ظٵ٭ُٿ خأليوخض ‪٬‬ه ‪َُ٤‬ٷ خڀٽىي‪ ،‬وٌٍخ ًَپ ‪٬‬ځً ٌټدءي‪ ،‬وڀٽه ؤلُدودً‬
‫خؼبربؾبٌن زةڀٱدء ظٵ٭ُٿ خأليوخض ‪٬‬ه ‪َُ٤‬ٷ خػب‪ٝ‬دج‪: ٛ‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪545‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫يرفرلاخ‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫خو‪ ُ٩‬ود‪ُٜ‬ص ‪ Enabled = False‬وٌٍخ و‪٥‬إ ٴديق ڄه خؼبربڄؿ؛ ألن خؼبهىًْ خڀ٭ٽٍٕ ُٔٹىڂ زٽُٕ خڀربودڄؿ ‪٬‬ه ‪َُ٤‬ٷ خٔعىًخڂ ؤلً‬
‫ؿبَُخض خڀٵُفىخپ زُٕٻ؛ ڄؽٿ‪ VBExplorer :‬ؤو ‪ VBReFormer‬وڄه مث ُٔٹىڂ زعٵ٭ُٿ خڀٽدجه‪.‬‬

‫ضبٿ خؼبُٴٷ ‪ Obj NEnable‬يف ‪ VBExplorer‬وٸڃ زعٵ٭ُٿ خڀَّ ټمد ٌى ڄى‪٠‬ك يف خڀ‪ٝ‬ىَش مث خ‪٠‬ٱ‪ ٣‬خڀَّ لٵ‪:٧‬‬

‫ؤو ظٕع‪ ٫ُ٥‬ربمُٿ خؼبُٴٷ ‪ Obj NEnable‬يف زُودڄؿ ‪ VBReFormer‬وڄه مث ظٹىڂ زعٵ٭ُٿ خڀَّ ټمد ٌى ڄى‪٠‬ك زدڀ‪ٝ‬ىَش وڄه ٸدجمص‬
‫‪ File‬زبعدَ ‪: Save binary as‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪546‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫يرفرلاخ‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ظ‪ٙ‬دء‬
‫ٔعفً ز٭ً ٌڀٻ ؤوً ٸً مت ظٵ٭ُٿ خڀَّ‪ ،‬وٌٽٍخ ظٹىڂ زعٵ٭ُٿ خأليوخض وظ٭ًَٿ خڀ٭سدَخض ټمد ‪.‬‬

‫‪ .2‬ثاْ‪ٝ‬اً‪ْ :‬اؾص‪َ ٠‬ععذ‪ ١‬تعٗط عٓس إقالع ايدلْاَر‬

‫‪ .2.1‬املجاٍ األ‪ MsgBox : ٍٚ‬تعٗط عٓس إقالع ايدلْاَر نتٓب‪ ٘ٝ‬عً‪ ٢‬أْ٘ ْػد‪ ١‬غرل َػذً‪١‬‬

‫خڀـ ‪ MsgBox‬زىخزص سبٽّه خؼبهىًْ خڀ٭ٽٍٕ ڄه ټُٕ خڀربودڄؿ زٕهىڀص‪.‬‬

‫٘ٱٿ خڀربودڄؿ خؼبُٴٷ ‪ MsgBox‬ؤعفً ‪٬‬ىً بٸال‪َٔ ً٬‬دڀص ڄّ‪٬‬فص زبربٺ زإوً ًٰن ڄٕفٿ‪ ،‬وڀٽه ټُٳ ٔىعىځ‪ ٛ‬ڄىهد؟‬

‫ضبٿ خڀربودڄؿ يف ‪ OllyDbg‬وخ‪٠‬ٱ‪ F9 ٣‬ڀځع‪ٙ‬ٱُٿ‪ٌ ،‬د ٌٍ خڀُٔدڀص ظ‪٩‬هُ ؤڄدڄٻ‪ ،‬ٸڃ ز٭مٿ بَٹدٲ ڀځربودڄؿ زدڀ‪١‬ٱ‪٬ ٣‬ځً ‪ F12‬ڀٹً‬
‫ظىٸٳ خڀربودڄؿ‪ ،‬خِن خ‪٠‬ٱ‪ Alt+F9 ٣‬مث ‪ ً٬‬ڀځُٔدڀص وخ‪٠‬ٱ‪ ٣‬خڀَّ ڄىخٴٷ‪ٔ ،‬عفً ؤن خڀربودڄؿ ٸً ظىٸٳ ‪٬‬ىً خؼبٽدن خڀٌٍ ظُٕعً‪ ً٬‬ڄىً‬
‫خڀُٔدڀص ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪547‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫يرفرلاخ‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫خ‪ٜ‬٭ً ڀسًخَص خڀُوظٌن و‪ ٫٠‬وٹ‪٥‬ص ظىٸٳ ‪٬‬ىًي‪ ،‬مث ؤ‪ ً٬‬ظ‪ٙ‬ٱُٿ خڀربودڄؿ ٔعفً ؤوً ظىٸٳ ‪٬‬ىً زًخَص خڀُوَنت ‪:‬‬

‫ڄسدُ٘ش‬
‫‪.‬‬ ‫خِن ٸڃ زع٭ًَٿ ‪ PUSH EBP‬بذل ‪ RETN‬مث ٘ٱٿ خڀربودڄؿ‪ ،‬ؤعفً ؤن خڀُٔدڀص دل ظ٭ً ظ‪٩‬هُ زٿ ُٔ‪٩‬هُ ڀٻ خڀربودڄؿ‬

‫‪ .2.2‬املجاٍ ايجاْ‪َ : ٞ‬طبع س‪ٛ‬اض ‪ٜ‬عٗط عٓس اإلقالع نتٓب‪ ٘ٝ‬عً‪ ٢‬اْتٗا‪َ ٤‬س‪ ٠‬اغتدساّ ايدلْاَر‬

‫ٌٍي خڀ‪َُ٥‬ٹص ؤٴ‪١‬ٿ ڄه خٔعىًخڂ ‪ MsgBox‬لُػ ظ‪ٝ‬٭ٍر ‪٬‬ځً خؼبهىًْ خڀ٭ٽٍٕ ڄهمعً‪.‬‬

‫٘ٱٿ خڀربودڄؿ خؼبُٴٷ ‪ٔ Color‬عفً ؤڄدڄٻ ودٴٍش ڄّ‪٬‬فص ‪ Splash‬زبربٺ زدوعهدء خؼبًش خڀعفَُسُص ‪:‬‬

‫ڀځعىځ‪ ٛ‬ڄىهد ضبٍٿ خڀربودڄؿ يف ‪ OllyDbg‬وخٌٌر بذل ٸٕڃ خڀًوخپ و‪ ٫٠‬وٹ‪٥‬ص ظىٸٳ ‪٬‬ځً خڀًخڀص ‪ٔ( vbaNew2‬عفً ؽبد ؤټؽُ ڄه‬
‫ڄٽدن؛ ڀٍخ ‪ ٫٠‬وٹ‪٥‬ص ظىٸٳ ‪٬‬ځُهد صبُ٭دً) مث ٘ٱٿ خڀربودڄؿ‪ٔ ،‬عفً ؤوً ٸً ظىٸٳ ٌىد ‪:‬‬

‫ٸڃ زدڀععس‪ ٫‬ٸځُالً ٔعفً ؤن خڀىدٴٍش َعڃ خٔعً‪٬‬دئٌد ڄه ٌٍخ خڀىًخء ‪:‬‬

‫ڀعفدوِ خڀىدٴٍش ؤوط ؤڄدڂ وُدََه ‪:‬‬

‫‪٬ )1‬مٿ ‪ NOP‬ڀځىًخء خڀٌٍ َٕعً‪ ٍ٬‬خڀىدٴٍش‪.‬‬

‫‪ )2‬خڀ‪ٝ‬٭ىي بذل زًخَص خڀُوظٌن وظ٭ًَٿ ‪ PUSH EBP‬بذل ‪.RETN‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪548‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫يرفرلاخ‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪٬‬ىًٌد ٔعفً ؤوً ٸً مت ذبدوِ خڀىدٴٍش‪ ،‬وؤ‪ٜ‬سك زةڄٽدوٻ خڀًوىپ ڀځربودڄؿ‪.‬‬

‫‪Bad Boy‬‬ ‫‪ .3‬ثايجاً‪ MsgBox :‬ختطز عٓس إزخاٍ ب‪ٝ‬اْات تػذ‪ ٌٝ‬غرل قش‪ٝ‬ش‪١‬‬
‫ڀٹً ُ٘لىد ٴُمد ٔسٷ ټُٳ َعڃ خڀعىځ‪ ٛ‬ڄه خڀـ ‪ ، MsgBox‬وٌٍ ‪َُ٤‬ٹص يبٽه ظ‪٥‬سُٹهد ‪٬‬ځً ‪ً٬‬ش زُخڄؿ ٴال يخ‪ ٍ٪‬ڀځعٽُخَ‪.‬‬

‫‪ .4‬ضابعاً‪ :‬إغالم ايدلْاَر يٓؿػ٘ عٓس اْتٗا‪ ٤‬املس‪ ٠‬ايتذط‪ٜ‬ب‪ ١ٝ‬أ‪ ٚ‬عٓس إزخاٍ ب‪ٝ‬اْات غرل قش‪ٝ‬ش‪١‬‬
‫٘ٱٍٿ خڀربودڄؿ خؼبُٴٷ ‪ٔ Finsh‬عفً ؤوً ُٔعڃ بٰالٸً ز٭ً ؼالغ ؼىخنٍ‪ ،‬وٌٍي ؼٱُش يبٽه خڀعىځ‪ ٛ‬ڄىهد زٕهىڀص‪.‬‬

‫ضبٿ خڀربودڄؿ يف ‪ OllyDbg‬وخٌٌر بذل ٸٕڃ خڀًوخپ‪ ،‬و‪ ٫٠‬وٹ‪٥‬ص ظىٸٳ ‪٬‬ىً خڀًخڀص ‪٘ . VbaEnd‬ٱٍٿ خڀربودڄؿ‪ ،‬وخوع‪ ُ٩‬ؼالغ غوخنٍ‬
‫ٔعفً ؤن خڀربودڄؿ ز٭ًٌد ٸً ظىٸٳ ‪٬‬ىً خڀًخڀص ‪: VbaEnd‬‬

‫ڀځعٱځر ‪٬‬ځً ڄ‪ٙ‬ٽځص بٰالٶ خڀربودڄؿ ڀىٵًٕ ٴإوط ؤڄدڂ لځٌن‪:‬‬

‫‪٬ )1‬مٿ ‪ NOP‬ڀځىًخء خؼبٕاوپ ‪٬‬ه بٰالٶ خڀربودڄؿ‪ ،‬وخڀٌٍ ظُخي ؤڄدڄٻ‪.‬‬

‫‪ )2‬خڀ‪ٝ‬٭ىي بذل زًخَص خڀُوظٌن وظ٭ًَٿ ‪ PUSH EBP‬بذل ‪.RETN‬‬

‫وز٭ًٌد ٔعفً ؤن خڀربودڄؿ ڀه َٹىڂ زةٰالٶ وٵًٕ ب‪٤‬الٸدً‪.‬‬

‫‪ .5‬خاَػاً‪َ :‬كاضْ‪ ١‬ايػط‪ٜ‬اٍ اذتك‪ٝ‬ك‪ ٞ‬بايػط‪ٜ‬اٍ ارتاط‪٧‬‬


‫خغبٹُٹٍ‬
‫‪.‬‬ ‫ڄٹدَوص خڀَُٕدپ خغبٹُٹٍ زدڀَُٕدپ خڀٌٍ ًَوځً خؼبٕعىًڂ ؼٱُش سبٽه خؼبهىًْ خڀ٭ٽٍٕ ڄه ٸى‪ ٛ‬خڀَُٕدپ‬

‫٘ٱٿ خڀربودڄؿ خؼبُٴٷ ‪ٔ Serial‬عفً ؤوً َ‪٥‬دڀسٻ زدڀعٕفُٿ‪ ،‬و‪٬‬ىً بيودڀٻ ألٌ َُٔدپ ُٔىعٵٍ خپَِ‪ ،‬ؤع‪٩‬هُ ڀٻ ‪٬‬سدَش ظًپ ‪٬‬ځً ؤن‬
‫خڀَُٕدپ و‪٥‬إ‪ ،‬وٌٍخ ٌټدء ڄه خؼبربڄؿ؛ ألوً دل َٕعىًڂ خڀـ ‪ MsgBox‬خڀيت ظٕهٿ ټُٕ خڀربودڄؿ‪.‬‬

‫وڀٽه ټُٳ َعڃ ټُٕ خڀربودڄؿ وٸى‪ ٛ‬خڀَُٕدپ خغبٹُٹٍ؟‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪549‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫يرفرلاخ‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ٌىدڀٻ ‪َُ٤‬ٹعدن ‪:‬‬

‫‪ .5.1‬ايطط‪ٜ‬ك‪ ١‬األ‪ٚ‬ىل ‪ :‬اغتدساّ ‪OllyDbg‬‬

‫ضبٍٿ خڀربودڄؿ يف ‪ OllyDbg‬وٸڃ زع‪ٙ‬ٱُځً مث ‪ ٫٠‬وٹ‪٥‬ص ظىٸٳ ‪ BP __vbaStrComp‬يخوٿ خؼبُز‪ ، Command ٫‬وخ‪٠‬ٱ‪ ٣‬ڄه‬
‫ڀىلص خؼبٵدظُك خڀَّ ‪: Enter‬‬

‫خِن ٸڃ زةيودپ ؤٌ َُٔدپ ود‪٤‬ث؛ ڄؽالً ‪ sndybad :‬مث خ‪٠‬ٱ‪ ٣‬خڀَّ ظٕفُٿ‪ ،‬و‪٬‬ىًٌد ٔعفً ؤن خڀربودڄؿ ٸً ؤ‪٨‬هُ ڀٻ خڀَُٕدپ‬
‫خغبٹُٹٍ يف خؼبٽًْ ‪٬‬ه ‪َُ٤‬ٷ ڄٹدَوعً زدڀَُٕدپ خڀٌٍ ؤيوځعً ‪:‬‬

‫‪ .5.2‬ايطط‪ٜ‬ك‪ ١‬ايجاْ‪ : ١ٝ‬اغتدساّ األزا‪vbaStrCmp.2.1 ٠‬‬

‫‪٬‬ه ‪َُ٤‬ٷ خأليخش خڀٕمَُص ‪ vbaStrCmp.2.1‬وخڀيت ظٹىڂ زٹى‪ ٛ‬زُدودض خڀعٕفُٿ خػبد‪ٜ‬ص زـ ‪: vb6‬‬

‫‪٠‬ٱ‪ ٣‬ظٕفُٿ‬ ‫خوٕه خڀربودڄؿ ‪ Serial‬وخڀ‪ٝ‬ٹً يف ؾبځً خأليخش‪ ،‬مث ٸڃ زع‪ٙ‬ٱُځً ڄه يخوٿ ؾبځً خأليخش‪ ،‬وؤيوٿ ؤٌ َُٔدپ ود‪٤‬ث‪ ،‬مث خ‬
‫و٘دًٌ ڄد ٔعٵ٭ځً خأليخش ‪: vbaStrCmp.2.1‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪550‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫يرفرلاخ‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ڀٹً ٸدڄط خأليخش زٹى‪ ٛ‬خڀَُٕدپ خڀ‪ٝ‬مُك ټمد ظ‪ٙ‬دًٌ يف خؼبٕع‪ُ٥‬ٿ خألضبُ‪ ،‬ز٭ً ڄٹدَوعً زدڀَُٕدپ خػبد‪٤‬ث‪.‬‬

‫ټدڄٿ‬
‫ڄد ‪٬‬ځُٻ خِن بال ؤن ظٽعر خڀَُٕدپ خڀٌٍ ٸى‪ٝ‬عً‪ ،‬وهتدوُىد مت ټُٕ خڀربودڄؿ وؤ‪ٜ‬سك ڄٕفالً ز‪ٙ‬ٽٿٍ ‪.‬‬

‫زٍڀٻ وٽىن ٸً خوعهُىد ڄه ٌٍخ خڀًَْ وخغبمً هلل‪.‬‬


‫وخڀٱدَص ڄه خڀًَْ ‪ :‬ؤن ظٽىن ؤوٍ ڄربڄؿ ‪٬ vb6‬ځً زُىص ڄه ضبدَعٻ؛ حبُػ ظ٭ُٲ وٹد‪٢‬‬
‫ٸىهتد و‪٠‬٭ٵهد‪ ،‬وحبُػ ظٹىڂ زدٔعىًخڂ ٌٍي خڀ‪ُ٥‬ٶ ټعمىًَ ڀځمهىًْ خڀ٭ٽٍٕ ؤو ذبً ؽبد‬
‫ـبُـدً ًَٕ ٌٍي خڀؽٱُش‪.‬‬
‫َىـً زُودڄؿ َ‪ٝ‬٭ر ټُٕي‪ ،‬وؤٸىي‬ ‫ظٍټُ يخجمدً ؤوً ال َىـً زُودڄؿ ال َٽُٕ‪ ،‬وڀٽه‬
‫خغبمدَدض ٌٍ خغبمدَص خڀيت ظسعٽٌُد زىدض ؤٴٽدَٺ وظ‪ٝ‬ى٭هد ؤودڄځٻ‪ ،‬ؤڄد خغبمدَدض خؼب٭ځّسص‬
‫وخعبدٌّش‪ ،‬ٴهٍ ټدڀىـسدض خڀَُٕ٭ص ال ظٕمه وال ظٱين ڄه ـى‪.٪‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪551‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫يرفرلاخ‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫محاية الدوىغل‪Dongle Protection‬‬

‫‪َ .1‬كسَ‪١‬‬

‫‪ .1.1‬تعط‪ٜ‬ـ ايس‪ْٚ‬ؼٍ ‪ ٚ‬أْ‪ٛ‬اعٗا‬

‫خڀًووٱٿ ‪٬‬سدَش ‪٬‬ه ٸ‪ ٫٥‬ش ٴَُّدجُص (‪َ )Hardware‬عڃ ضبدَص خڀربؾبُدض هبد‪ ،‬و ڀٽٍ َ٭مٿ خڀربودڄؿ ز‪ٙ‬ٽٿ ـًٍُ وټدڄٿ هبر ؤن ظٽىن‬
‫ٌٍي خڀٹ‪٥‬٭ص ڄع‪ٝ‬ځص ڄ‪ ٫‬خغبدٔر‪ ،‬و ؤ‪ٜ‬سك خِن ٌىدڀٻ ؼالؼص ؤوىخ‪ ٪‬ڄىهد‪:‬‬

‫‪ Parallel‬و خڀؽدوُص ‪ USB‬و خڀؽدڀؽص ‪ Smart Card‬وٌٍ خأللًغ‪.‬‬

‫ڀٕىد وربخء بڀٽعُووُدض ڀٽٍ و‪ُٙ‬ق خڀًووٯ پ ڂ ن خڀًخوٿ‪ ،‬و ڀٽه لٕر ڄد ٸُؤود ٴهٍ ‪٬‬سدَش ‪٬‬ه ٌخټُش‪ ،‬ټٿ ڄد زًخوځهد ڄ‪ٙ‬ٵُ‪ ،‬وال‬
‫يبٽه ٸُخءظً حبدپ ڄه خأللىخپ زًون ‪ Keys‬و ىبعځٳ خڀع‪ٝ‬مُڃ ڄه ُ٘ټص ڄ‪ٝ‬ى٭ص ألوُي‪.‬‬

‫لُػ ظ٭عمً خڀ‪ُٙ‬ټدض ‪٬‬ځً وىخَِڄُدض ظ‪ٙ‬ٵًن؛ ڄؽٿ (‪ RSA‬و ‪ )... AES‬ڀځٹُخءش ؤو خڀٽعدزص ‪٬‬ځً خڀًووٱٿ؛ وٌڀٻ دل و‪ ٫‬خغب‪ٝ‬ىپ ‪٬‬ځً‬
‫ؿبعىَدظً‪.‬‬

‫‪ .1.2‬حمل‪ ١‬عٔ ايؿطنات املكٓع‪ ١‬يًس‪ْٚ‬ػٌ‬

‫بٌخ ڄد حبؽط يف خإلوعُوط ٴٕىٲ ذبً ؤن ُ٘ټص (‪ safenet )Sentinel‬خؼبىع‪ٝ‬ص يف و‪٩‬ڃ خغبمدَص ٌٍ خڀيت ظعُز‪٬ ٫‬ځً ‪ ُٖ٬‬خڀ‪ُٙ‬ټدض‬
‫خؼب‪ٝ‬ى٭ص ڀځًووٱٿ ‪ ،‬وٌٍخ ڄىٸ٭هد (‪ . )http://www.safenet-inc.com‬وؤلً ڄىعفدهتد ٌى خڀًووٱٿ‪ ،‬و خڀٌٍ َ٭عرب ؿب‪ ٣‬خو‪٩‬دَ‬
‫صبُ‪ ٫‬خڀٽُخټُ‪ ،‬و ٌڀٻ ڀ‪ٙ‬هُظً و خٔعىًخڄً زٽؽُش ڄه ٸسٿ ُ٘ټدض خڀربؾبُدض‪.‬‬

‫‪ٜ‬ىَش ڀځًووٱٿ خػبد‪ ٚ‬هبڃ ‪:‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪552‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫يرفرلاخ‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ڄالل‪٩‬ص ‪ :‬ټدن خٔڃ ٌٍي خڀ‪ُٙ‬ټص ‪ Rainbow‬يف خألٔسٷ ٸسٿ ؤن ظعمىپ بذل ‪.Safenet‬‬

‫خڀ‪ُٙ‬ټص خڀؽدوُص ٌٍ َٖټص ‪٬‬الء خڀًَه خإلُٔخجُځُص ( وٕإپ خهلل ظ٭دذل ؤن َإيت خڀُىڂ خڀٌٍ َسًُ ٴًُ ٌٍخ خڀٽُدن خڀ‪ٝ‬هُىين )‪ ،‬و خؼب٭ُوٴص زـ‬
‫‪ , HASP‬وٌٍخ ڄىٸ٭هد (‪ ,)http://www.aladdin.com/hasp‬وٌٍ ؤَ‪١‬دً ُ٘ټص َخجًش يف ٌٍخ خجملدپ‪ ،‬وڀٽه ڀُٓ زٹىش‬
‫خڀ‪ُٙ‬ټص خڀٕدزٹص ال ڄه لُػ ‪ً٬‬ي خڀّزدجه‪ ،‬وال ڄه لُػ ٸىش خغبمدَص‪ .‬وٌٍي ‪٬‬دجځعهد خعبًًَش ‪:‬‬

‫ٌىدڀٻ ُ٘ټدض ؤوُي‪ ،‬ڄىهد ‪:‬‬

‫‪ SmartDongle‬األمزيكية‪ ،‬وموقعها‬
‫‪ Matrix‬أملاىية الصيع‪ ،‬وموقعها‬
‫خالل‬ ‫و ي ودٺ خڀ٭ًًَ ڄه خڀ‪ُٙ‬ټدض خألوُي‪ ،‬ويبٽه خغب‪ٝ‬ىپ ‪٬‬ځً ڄ٭ځىڄدض ‪٬‬ىهد ڄه‬
‫صفرة الويكي ‪:‬‬

‫‪ .2‬اذتُا‪ ١ٜ‬باغتدساّ ايس‪ْٚ‬ػٌ‬


‫ڄ‪ ٫‬خألٔٳ ؤټؽُ خڀىدْ ‪ -‬وو‪ٛ‬و‪ٜ‬دً يف ‪٬‬دؼبىد خڀ٭ُيب‪َٕ -‬عىًڂ خڀًووٱٿ ز‪َُ٥‬ٹص ًٰن ‪ٜ‬مُمص‪ ،‬فبد َايٌ زدڀىً خَص بذل ټُٕ خڀربودڄؿ خحملمٍ‬
‫ٌٍخ َ٭ين ؤنّ خپزُودڄؿ ؤ‪ٜ‬سك ڄه خڀ‪ٝ‬٭ر ټُٕي ؤو‬
‫ضبدٌ خڀربودڄؿ ٲ‬
‫زً زؽىخنٍ ؛ لُػ ؤنّ خڀٽؽًن ڄىهڃ َ٭عٹً ؤوً دبفُي خٔعىًخڂ خڀًووٱٿ يف ش‬
‫ال يبٽه ټُٕي هندجُدً ‪ ,‬ڄؽٿ ٌاالء ټمؽٿ خڀٌٍ ڀًًَ يزدزص ؾبهّش زدڀ٭ًًَ ڄه خأل ٔځمص زًخوځهد‪ ،‬ظٕع‪ ًٜ ٫ُ٥‬خڀٽؽًن ڄه ؤ وىخ‪ ٪‬خؽبفمدض‬
‫خڀيت يبٽه ظىٵٌٍُد ‪ ،‬وڀٽىهڃ َ‪٥‬ٵحىن ٌٍي خڀًزدزص و هبځٕىن ودَـهد ‪ ،‬وَٽعٵىن زدڀٹىپ‪ :‬بوىد مبعځٻ يزدزص ٴال وبدوپ ؤلً خؽبفىڂ ‪٬‬ځُىد؛‬
‫ألوً ڀه َٕع‪ٌّ ٫ُ٥‬يبعىد !!‬

‫خپي ووٱٿ ٌٍ يڄؿ ؤو َز‪ ٣‬ضبدَص خڀًووٯپ )‪ (Dongle‬يف خڀربنخڄؿ وٵًٕ‪ ،‬وٌٍخ ڄد َٹىڂ زً خؼبربڄؿ‬
‫خڀىٹ‪٥‬ص خأل‪٠‬٭ٳ يف ضبدَص ؤٌ زُودڄؿ ذ‬
‫وڀُٓ خڀ‪ُٙ‬ټص خؼب‪ٝ‬ى٭ص ڀځًووٯپ )‪ ,(Dongle‬ٴدڀ‪ُٙ‬ټص خؼب‪ٝ‬ى٭ص ڀځًووٯ پ ظ٭‪ُ٥‬ٻ خأليوخض و خألٔځمص ڄ‪ُ٘ ٫‬ق ڀٽٿ ؤيخش وټُٵُص‬
‫خالٔعىًخڂ خألڄؽٿ ؽبد‪ ,‬وڀٽه ڄد ٌور خڀ‪ُٙ‬ټص خؼب‪ٝ‬ى٭ص بٌخ دل ظٹُؤ ڄد ؤ‪٥٬‬عٻ بَدي؟!‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪553‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫يرفرلاخ‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ؤٰځر خڀ‪ُٙ‬ټدض ظځفث بذل ضبدَص ڄىعفدظًخ زًووٱٿ ‪٬‬ىًڄد َٽىن ڄىعفهد ٰدرل خڀؽمه‪ ،‬وڀٽه ٰدڀسدً ڄد َٽىن خؼبربؾبىن يخوٿ ٌٍي خڀ‪ُٙ‬ټدض‬
‫هبهځىن سبدڄدً ڄًي ٸىش خڀٽُخټُ و خأليوخض خڀيت ڄ٭ً‪ ,‬هبهځىن سبدڄدً ؤن ڀًًَ ‪ debug tool‬حبُػ سبٽىً ڄه خؼب‪٬ ٍٙ‬ځً خڀٽىي خػبد‪ ٚ‬زًڂ‬
‫و‪٥‬ىش خب‪٥‬ىش‪ ,‬هبهځىن ُ٘حدً آوُخً خظبً خڀع‪ٙ‬ٵًن‪ ،‬وؤوً يبٽه خٔعىًخڄً غبمدَص خڀع‪٥‬سُٹدض ؤَ‪١‬دً وڀُٓ ٴٹ‪ ٣‬خڀسُدودض‪.‬‬

‫يف خغبٹُٹص بن ټٿ خڀٽُخټُ ڄعٵٹىن ‪٬‬ځً ؤنّ خغبمدَص زدڀًووٱٿ ٌٍ ڄه ؤ‪ٜ‬٭ر خغبمدَدض‪ٌٍ ,‬خ ٴُمد بٌخ مت خٔعىًخڄهد زدڀ‪َُ٥‬ٹص خڀ‪ٝ‬مُمص‪،‬‬
‫وبڀُٻ ز٭‪ ٟ‬خڀى‪ٝ‬دجك خؽبدڄص خڀيت هبر ‪٬‬ځُٻ خظسد‪٬‬هد ‪٬‬ىًڄد ظًَُ ؤن ظٹىڂ زدٔعىًخڂٌٍي خغبمدَص ‪:‬‬

‫‪Dongle‬‬ ‫‪ْ .3‬كا‪٥‬ح ذتُا‪ ١ٜ‬تطب‪ٝ‬كو بؿهٌ د‪ٝ‬س باغتدساّ ايس‪ْٚ‬ػٌ‬

‫اٍ ‪SDKs‬‬
‫اٍ ‪ٚ Manuals‬االطالع عً‪ ٢‬ـ‬
‫‪ .3.1‬قطا‪ ٠٤‬ـ‬

‫‪٬‬ځً خؼبربڄؿ ؤن َٹُؤ خپـ ‪ Manuals‬ؤو خپـ ‪ SDK‬خڀيت ظ٭‪ ً٥‬ڄ‪ ٫‬خڀً ووٱٿ‪ ,‬و ٌٍ ؤٌڃ و‪٥‬ىش يف ‪َُ٤‬ٹٻ غبمدَص خڀً ووٱٿ ز‪ٙ‬ٽٿٍ‬
‫َؤٌ خڀٽؽًن ڄه خڀىدْ خڀٍَه َٕعىًڄىن ضبدَص خڀًووٱٿ يون ٸُخءش ٔ‪ ُ٥‬وخلً يف خپـ ‪ Manual‬خڀٌٍ َإيت ڄ‪ ٫‬خڀًووٱٿ‪,‬‬
‫‪ٜ‬مُك‪ ,‬وٸً ود‬
‫وڀ٭ځهڃ َٕع‪ٝ‬٭سىن خألڄُ و هبًووً ڄ٭ٹً خً؛ حبُػ َس٭ًٌڃ ‪٬‬ه ٸُخ ءظً‪ .‬لُػ ؤنّ خڀع٭دڄٿ ڄ‪ ٫‬خپيووٱٿ ڀُٓ ‪ Standard‬زٿ ىبعځٳ ڄه‬
‫ُ٘ټص ڄ‪ٝ‬ى٭ص ڀ‪ُٙ‬ټص ؤوُي‪ .‬و ټٿ ُ٘ټص ؽبد ظىخز٭هد و ڄٽعسدهتد خػبد‪ٜ‬ص‪ ،‬وهبر خال‪٤‬ال‪٬ ٪‬ځُهد ټځهد‪ ,‬زٿ و سبمُ‪ٝ‬هد‪.‬‬

‫‪ .3.2‬بعجط ت‪ٛ‬ابع اغتسعا‪ ٤‬ايس‪ْٚ‬ؼٍ )‪(Distribute Function Calls‬‬

‫ٸڃ زعىَِ‪ ٫‬خپـ ‪ Function calls‬خػبد‪ٜ‬ص زدڀًووٱٿ يف زُودؾبٻ‪ ،‬و ڀُٓ ٴٹ‪ ٣‬خٔعً‪٬‬دءٌد ‪٬‬ىً بٸال‪ ٪‬خڀربودڄؿ‪٤ ,‬س٭دً ٌٍخ ٔىٲ َ‪ٝ‬٭ر‬
‫‪٬‬ځً خڀٽُخټُ خؼبهمص؛ ٴةِخڀص ‪ً٬‬ش خٔعً‪٬‬دءخض ڂز٭ؽُش يف خڀع‪٥‬سُٷ ؤ ‪ٜ‬٭ر زٽؽًن ڄه خٔعً‪٬‬دء وخلً َعڃ ‪٬‬ىً بٸال‪ ٪‬خڀع‪٥‬سُٷ ‪ .‬هبر ؤن َٽىن‬
‫خالٔعً‪٬‬دء خأل وپ ‪٬‬ىً زًخَص خڀربودڄؿ ٴٹ‪ٌ ٣‬ى زىخزص خؼبعدٌص خڀيت ٔىٲ ًَون هبد خڀٽُخټُ ‪ .‬ؤَ‪١‬دً خـ٭ٿ خڀٵم‪َ ٛ‬عڃ يف ؤٰځر خڀ٭مځُدض‬
‫خؽبدڄص خڀيت َٹىڂ هبد خڀربودڄؿ؛ ڄؽٿ خڀ‪٥‬سد‪٬‬ص و‪٬‬مٿ خغبٕدزدض خؽبدڄص وًٰن ٌڀٻ‪.‬‬

‫‪ .3.3‬ؾشل َتهطض )‪(Frequent Check‬‬

‫هبر ؤن ظٹىڂ ز٭مٿ ظٵم‪ ٛ‬ڀىـىي خڀً ووٱٿ ز‪ٙ‬ٽٿ ڄعٽَُ ‪ ,‬ؤٌ ؤن ظٹىڂ زٵم‪ ٛ‬وـىيي ټٿ يٸُٹص ڄؽالً ‪ ,‬ٴځُٓ ڄه خؼب٭ٹىپ ؤن َعڃ‬
‫ٌٍخ ٔىٲ يبٽه خؼبٕعىًڂ ڄه خٔعىًخڂ ‪ً٬‬ش وٕه‪ ,‬ټُٳ؟؟!‬
‫خڀٵم‪ ٛ‬ٴٹ‪٬ ٣‬ىً زًخَص ٴعك خڀربودڄؿ؛ ٲ‬

‫ظى‪ُٝ‬ر ‪ً٬‬ش وٕه ‪٬‬ځً ‪ً٬‬ش لىخُٔر ڄعٹدَزص ڄه ز٭‪١‬هد‪ ,‬وڀى ٴُ‪٠‬ىد ؤوٻ ظٹىڂ زٵم‪ ٛ‬وـىي خڀًووٱٿ ٴٹ‪٬ ٣‬ىً زًء‬
‫ڀى ٸدڂ خؼبٕعىًڂ ذ‬
‫خڀع‪ٙ‬ٱُٿ‪ٔ ,‬ىٲ َ‪ ٫١‬خڀً ووٱٿ يف خغبدٔر خأل وپ و َ‪ٙ‬ٱٿ خڀربودڄؿ ٴُ٭مٿ ‪ ,‬و ڄه مث َْ‪١‬٭ً يف خغبدٔر خڀؽدين و ڄه مث َ‪ٙ‬ٱٿ خڀربودڄؿ‬
‫ٴُ٭مٿ و ٌٽٍخ ‪ ..‬وڀى ټدن ٌىدٺ ٴم‪ ٛ‬ڄعٽَُ ڀىـىي خڀًووٱٿ ڄؽالً زدٔعىًخڂ ‪ Timer‬ؼبد سبٽه خؼبٕعىًڂ ڄه ٴ٭ٿ ٌٍخ ‪ ,‬ټمد ويبٽىً‬
‫‪٬‬مٿ ‪ Hibernate‬ڀألـهّش ڀعسٹً خڀربخڄؿ ٘ٱدڀص‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪554‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫يرفرلاخ‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪ .3.4‬اغتدساّ شانط‪ ٠‬ايس‪ْٚ‬ؼٍ‬

‫خٔعىًڂ ٌخټُش خڀً ووٱٿ يف ؤڄىَ ذب٭ٿ ڄه ‪٬‬مٿ خڀربودڄؿ زًوهند ڄٕعمُال ؛ً ڄؽالً ـّء ڄه خڀٽىي ٌدڂ ـًخً ‪ ,‬ڄؽالً َٽىن ٌٍخ‬
‫خڀٽىي ي و خؼبٕاوپ ‪٬‬ه بٸال‪ ٪‬خڀربودڄؿ‪ ,‬و َعڃ ـځسً ڄه خڀًووٱٿ و ب‪٠‬دٴعً بذل خڀربودڄؿ ‪٬‬ىً زًء خڀع‪ٙ‬ٱُٿ‪.‬‬
‫ز٭‪ ٟ‬خڀسدَخڄعُخض وخؼبعمىالض خؽبدڄص ڀ٭مٿ خڀربودڄؿ‪ ,‬و َعڃ ـځسهد ؤَ‪١‬دً ڄه خڀًووٯپ يف ټٿ ڄُش كبعدـهد‪.‬‬
‫بٌخ ټدن ڀًَٻ وىخَِڄُدض ظ‪ٙ‬ٵًن ڄد ظٕعىًڄهد يف خڀربودڄؿ‪ ,‬ٴ‪ ٫١‬خپـ ‪ Keys‬خخلخ‪ٜ‬ص هبد يخوٿ ٌخټُش خڀًووٱٿ‪.‬‬
‫ز٭‪ ٟ‬خألَٸدڂ خڀ٭‪ٙ‬ىخجُص يف خڀٍخټُش و خڀٱًن ڄٕعىًڄص ظٹىڂ زٵم‪ ٛ‬وـىيٌد وظ‪٥‬دزٹهد ڄه خڀربودڄؿ‪.‬‬
‫يبٽىٻ ؤَ‪١‬دً ٴعك ڄُّخض ؤو ظبدلُدض يف زُودؾبٻ زىدء ‪٬‬ځً ٌخټُش خڀًووٱٿ ؛ وڀٽٿ ڄُّش شبىهد‪ .‬وڀعى‪ُ٠‬ك خڀٵٽُش ؤټؽُ‪ :‬ڀى‬
‫ٴُ‪٠‬ىد ؤن خڀربودڄؿ خڀٌٍ ظٹىڂ ز‪ ٫‬ڄځً َٹىڂ زدڀٹُخءش و خڀٽعدزص ڄه ڄځٳ ‪ ,‬ٴُمٽه ‪٬‬مٿ وٕىعٌن ڄه خڀربودڄؿ ‪ :‬خألوذل ڀٿٸُخءش‬
‫ٴٹ‪ ,٣‬و خڀؽدوُص ڀٿٸُخءش و خپټعدزص ‪ .‬و ټٿ وٕىص ؽبد شبىهد‪.‬‬

‫‪ .3.5‬ال تػتدسّ ؾط‪ٚ‬ط ؾشل بػ‪ٝ‬ط‪١‬‬

‫ز٭ً ٸُخءش ٸُڃ خؼبعمىالض ڄه ٌخټُش خپيووٱٿ خٔعىًڂ ُ٘و‪ ٢‬ٴم‪ ٛ‬ڄ٭ٹًش ز٭‪ ٟ‬خڀ‪ٍٙ‬ء ‪٬‬ى‪٠‬دً ‪٬‬ه ُ٘و‪ ٢‬خڀٵم‪ ٛ‬خپ‪٬‬ديَص‪٬ P‬ځً ٔسُٿ‬
‫خؼبؽدپ ‪ :‬بٌخ ؤَيض ٴم‪ ٛ‬ٸُمص ڄعمىپ ظٕدوٌ ‪ 255‬ٴال ظٹڃ زٵم‪ٝ‬هد هبٍخ خڀ‪ٙ‬ٽٿ ‪:‬‬

‫ټىي‪:‬‬
‫‪If (MyVar = 255)…..‬‬

‫و بمبد لدوپ خٔعىًخڂ ‪ُٜ‬ٱص ڄ٭ٹًش ؤټؽُ؛ ڄؽالً ‪:‬‬

‫ټىي‪:‬‬
‫‪If ((MyVar + 90)/7 = SQRT (MyVar)*3)…..‬‬

‫‪ًٜ‬ٶ ؤن خپـ ‪ٔ Cracker‬ىٲ يب‪ ٍ١‬خڀٽؽًن ڄه خڀىٸط پٴهڃ ٌٍي خڀ‪ُٝ‬ٱص‪ ،‬و و‪ٝ‬ى‪ٜ‬دً ؤنّ خڀٽىي خڀٌٍ َُخي ڄىىٵ‪ ٟ‬خؼبٕعىي‬
‫(ؤظبسځٍ)‪.‬‬

‫اٍ ‪ Key‬ارتام باٍز‪ْٚ‬ػٌ‬


‫‪ .3.6‬اغتدساّ ـ‬

‫يخوځهد ‪ ,‬و يبٽه ‪٬‬مٿ خڀٽؽًن ڄه خأل ڄىَ زدٔعىًخڂ ود‪ُٜ‬ص‬


‫ؤٰځر ٌٍي خغبمدَدض ظإيت خڀُىڂ حبُػ ظٕع‪ ٫ُ٥‬و‪ 128 bit key ٫٠‬ذ‬
‫خڀع‪ٙ‬ٵًن وٴٻ خڀع‪ٙ‬ٵًن؛ ڄؽالُ وٹىڂ زع‪ٙ‬ٵًن ز٭‪ ٟ‬خڀٹُڃ زدٔعىًخڂ خڀربودڄؿ خڀٌٍ َإيت ڀربؾبص خپيووٱٿ ‪ ,‬وزبَّه ٌٍي خڀٹُڃ يف خڀع‪٥‬سُٷ ڄ‪ٙ‬ٵُش‪,‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪555‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫يرفرلاخ‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ز٭ًٌد وٹىڂ بذَٔدپ خڀى‪ ٛ‬خڀٱًن ڄ‪ٙ‬ٵُ بذل خپيووٱٿ ڀُٹىڂ زع‪ٙ‬ٵًني زدٔعىًخڂ خپـ ‪ Key‬و َ٭ًُ خڀىعدجؿ ڀىٹىڂ دبٹدَوعً ڄ‪ ٫‬خڀٹُڃ خؼب‪ٙ‬ٵُش ‪.‬‬
‫ٴةٌخ ټدوط ڄع‪٥‬دزٹص وٹىڂ زع‪ٙ‬ٱُٿ خڀربودڄؿ و بال وٹىڂ زةٮالٸً‪.‬‬

‫‪ .3.7‬ا غتدسّ اذتُا‪ ١ٜ‬ارتاق‪ ١‬بايؿطن‪ ١‬أ‪َ ٚ‬ا ‪ٜ‬عطف بايـ ‪Shell‬‬

‫يخجمدً َإيت زُودڄؿ ڄه خڀ‪ُٙ‬ټص َٹىڂ حبمدَص خڀربودڄؿ ز‪ٙ‬ٽٿ ظځٹدجٍ ‪ ،‬ولىت زًون ټعدزص ؤٌ ٔ‪ ُ٥‬ټىي ‪ ,‬ٴٹ‪٥َ ٣‬ځر ڄىٻ خڀربودڄؿ ڀٽٍ‬
‫َٹىڂ حبمدَعً‪ ,‬ڄه خالٴ‪١‬ٿ خٔعىًخڂ ٌٍي خغبمدَص ٴىٶ خغبمدَص خڀيت ظٹىڂ هبد ؤوط ‪ ،‬ٴهڃ َٹىڄىن ‪٬‬ځً خألٰځر زع‪ٙ‬ٵًن خڀٽىي يخوٿ خڀع‪٥‬سُٷ‬
‫لٕر خپـ ‪ 128 bit key‬خؼبىّن يخوٿ خپيووٱٿ ‪ ،‬و َعڃ ٴٻ خڀع‪ٙ‬ٵًن ‪٬‬ىً ذيء ظ‪ٙ‬ٱُٿ خڀربودڄؿ‪ ,‬و َ‪١‬٭ىن خڀٽؽًن ڄه خغبمدَدض و‬
‫خڀ٭ٹسدض خڀيت ظ٭ُٷ ظٹًڂ خڀٽُخټُ يف ټُٕ خڀربودڄؿ‪ ،‬و ٌٍ ڄٵًُش ـًخً‪.‬‬

‫ڄؽال َٹًڄىن ضبدَدض ټدڀعدرل ‪:‬‬

‫‪Compress sections.‬‬
‫‪Merge sections.‬‬
‫‪Protect Sections.‬‬
‫‪Force Trim Sections.‬‬
‫‪Quit if debugged.‬‬

‫اٍ ‪Emulator‬‬
‫‪ .3.8‬اذتُا‪ َٔ ١ٜ‬ـ‬

‫ڄد ٌى خپـ ‪ Emulator‬؟‬

‫ٌى ‪٬‬سدَش ‪٬‬ه زُودڄؿ ‪ software‬وبدوپ ؿبدټدش ‪ ،‬ؤٌ ظٹځًُ ‪٬‬مٿ خپيووٱٿ ‪ ،‬حبُػ َ٭مٿ خڀربودڄؿ زًو ن وـىي خپيووٱٿ خأل‪ٜ‬ځٍ‪ ،‬و بمبد‬
‫زدٔعىًخڂ ٌٍخ خپـ ‪ Software‬لُػ َ٭عمً ڄسًؤ ‪٬‬مځً ‪٬‬ځً خڀعى‪ٝ‬ط ‪٬‬ځً خپ ـ ‪ Port‬خػبد‪ ٚ‬زدپيووٱٿ ڀًنخٸر صبُ‪ ٫‬خؼبىُـدض و‬
‫خؼبًوالض ‪٬‬ځً ٌٍخ خپـ ‪ Port‬و ز٭ًٌد ڀُٹىڂ زعٹځًٌُد‪ .‬ؤ ‪ٜ‬سمط ٌٍي خڀربخڄؿ خڀُىڂ ټؽًنش خالوع‪ٙ‬دَ‪ ,‬وڀٽه ؽبد يوخء ودـ‪ ٫‬و ٘دٲٍ‪ ,‬وٌى‬
‫ظىڀًُ ؤَٸدڂ ‪ٙ٬‬ىخجُص زدٔعىًخڂ خڀعدز‪ Random ٫‬ڄؽالً و بَٔدؽبد بذل خپيووٱٿ ڀُعڃ ظ‪ٙ‬ٵًنٌد‪ ،‬و ڄه مث وٹىڂ زةَٔدپ خڀٹُڃ خؼب٭ديش (خؼب‪ٙ‬ٵُش)‬
‫ڀٽٍ َعڃ ٴٻ ظ‪ٙ‬ٵًني خ‪ ،‬و ڄه مث وٹدَهند ڄ‪ ٫‬خڀٹُمص خڀسًخجُص خڀيت مت ظىڀًٌُد زىخٔ‪٥‬ص خڀعدز‪. Random٫‬‬

‫ڄؽدپ ظى‪ُ٠‬مٍ ‪:‬‬

‫ڀى ٴُ‪٠‬ىد ؤوً مت ب‪٬‬ديش خڀُٸڃ ‪ 364732‬ڄه والپ خڀعدز‪ Random ٫‬ز٭ً بَٔدڀً بذل خپيووٱٿ ڀُٹىڂ زع‪ٙ‬ٵًني )‪(Encrypt‬زدٔعىًخڂ‬
‫‪128 bit key‬ل‪ٝ‬ځىد ‪٬‬ځً خڀٹُمص ‪ 894837199‬مث وٹىڂ زة‪٬‬ديش بَٔدڀً بذل خپيووٱٿ ڀُٹىڂ زٵٻ ظ‪ٙ‬ٵًنٌد )‪ (Decrypt‬ٴةٌخ ل‪ٝ‬ځىد‬
‫‪٬‬ځً خڀٹُمص ‪ 364732‬وعإټً ؤن خپيووٱٿ ڄىـىي‪ ،‬وؤنّ خڀٹُڃ دل َعڃ ب‪٬‬ديهتد زدٔعىًخڂ ‪ Emulator‬لُػ ؤنّ خپـ ‪Emulator‬‬
‫‪ٙ٬‬ىخجًٍ‪ ،‬ٴمدٌخ ٔىٲ َٕفٿ خپـ ‪ Emulator‬؟!‬
‫خ‬ ‫َ٭عمً ‪٬‬ځً خڀعٕفُٿ‪ ،‬و دبد ؤنود وٕعىًڂ خڀعدز‪ Random ٫‬ٲُٔٽىن خڀعىڀًُ‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪556‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫يرفرلاخ‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ڄالل‪٩‬ص‪ :‬صبُ‪ٌٍ ٫‬ي خغبمدَدض ربعىٌ ‪٬‬ځً ظىخز‪ ٫‬ظ‪ٙ‬ٵًن و ٴٻ خڀع‪ٙ‬ٵًن ڀٹُڃ و‪َٛ‬ص ظُٔځهد بذل‬
‫خپيووٱٿ ‪ ،‬و َعڃ ٌٍخ خڀع‪ٙ‬ٵًن زدٔعىًخڂ وىخَِڄُدض ظ‪ٙ‬ٵًن ڄ٭ٹًش )‪ (AES‬زدٔعىًخڂ ڄٵعدق‬
‫ظ‪ٙ‬ٵًن ‪.128 bit‬‬

‫يف خڀىهدَص‪ :‬بٌخ خظس٭ط خڀى‪ٝ‬دجك خؼبىـىي ؤ‪٬‬الي ٲبن ٘دء خهلل ٔىٲ َ‪ٝ‬سك ڄه خؼبٕعمُٿ ټُٕ زُودؾبٻ زًون ل‪ٝ‬ىپ خپـ ‪٬ Cracker‬ځً‬
‫خپيووٱٿ ‪ ،‬و ؤٰځر بن دل َٽه ‪ %99‬ڄه خپ ‪ Crackers‬ڀُٓ ڀًَهڃ شبه خپيووٱٿ خأل‪ٜ‬ځٍ‪ ،‬و ڀه َٹىڄىخ ز‪ُٙ‬خجً ټٍ وبدوڀىخ ټُٕ‬
‫زُودؾبٻ‪ ،‬و لىت ڀى خٔع‪٥‬د‪ ٪‬ؤلًٌڃ خغب‪ٝ‬ىپ ‪٬‬ځًُ ٔ‪ٝ‬سك خؼب‪ٙ‬ىخَ ز٭ًُ خً ـًخً ‪٬‬ځً خپـ ‪ Cracker‬و‪ًٜ‬ٶ ٔىٲ َٹ‪ ٍ١‬خڀٽؽًن ڄه‬
‫ظ‪٥‬سُٷ؛ حبُػ ال َٕع‪ ٫ُ٥‬ظٍوٸً زدڀ‪ٙ‬ٽٿ خؼبىدٔر‪.‬‬
‫خڀىٸط ڀٽٍ َٕع‪ ٫ُ٥‬ټُٕي‪ ,‬و و‪ٝ‬ى‪ٜ‬دً بٌخ و‪٠‬٭ط ز٭‪ ٟ‬خڀٵځٵٿ و خؼبځك ‪٬‬ځً خپ‬

‫‪٤‬س٭دً بٌخ وٸ‪ ٫‬يووٱٿ ڄد زًُ ټُخټُ ‪ ،‬ٲوٹ‪٥‬ص خڀ‪١‬٭ٳ ٔىٲ ظٽىن ز٭ً ظ‪ٙ‬ٱُٿ خڀربودڄؿ ‪ ،‬ٲٔىٲ َٽىن ٌىدٺ وٕىص ًٰن ڄ‪ٙ‬ٵُش ڄه‬
‫خڀربودڄؿ يف خڀٍخټُش ‪ ،‬و ز٭ًٌد َٕع‪٬ ٫ُ٥‬مٿ ‪ Dump‬و ڄه مث خٔعىال‪ ٚ‬وٕىص ًٰن ڄ‪ٙ‬ٵُش ‪ ،‬و ز٭ًٌد َٕع‪ ٫ُ٥‬خڀع٭دڄٿ ڄ٭هد ټمد ٌى‬
‫خغبدپ يف خڀربودڄؿ خڀٌٍ ٸمط زٽُٕي‪.‬‬

‫ڄ‪٥‬ىَو ُ٘ټص خپيووٱٿ خټع‪ٙ‬ٵىخ ٌٍخ خڀ‪ٍٙ‬ء؛ ڀٍڀٻ ظُخٌڃ َٹٕمىن خڀربودڄؿ بذل ٸ‪ ٫٥‬ټؽًنش‪ ،‬و ڀٽىهد ڄ‪ٙ‬ٵُش‪ ،‬و ظسٹً ٸ‪٥‬٭ص وخلًش ًٰن‬
‫ڄ‪ٙ‬ٵُش‪ ،‬و ٌٍ خڀيت ظٹىڂ زٵٻ ظ‪ٙ‬ٵًن ؤٌ ٸ‪٥‬٭ص ڄه ٌٍي خڀٹ‪ ٫٥‬لٕر خڀ‪٥‬ځر ‪ .‬و َْٽىن ڄه خڀ‪ٝ‬٭ر ـًخً ‪٬‬ځً خڀٹُ‪ٜ‬دن ذبمُ‪ٌٍ ٫‬ي‬
‫خڀٹ‪ ٫٥‬و خٔعىال‪ ٚ‬زُودڄؿ ًٰن ڄ‪ٙ‬ٵُ‪.‬‬

‫هبد‬
‫و ٌٍخ ټځً َعڃ زدٔعىًخڂ ؤيخش خغبمدَص خڀيت َىٴُوهند ڄ‪ ٫‬خڀًووٱٿ؛ ڀٍڀٻ ڄه خڀ‪ُ١‬وٌَ خال‪٬‬عمدي ‪٬‬ځُهد ٴىٶ خغبمدَص خڀيت ظٹىڂ ‪.‬‬

‫‪َ .4‬ػا‪ ٨ٚ‬اغتدساّ اٍز‪ْٚ‬ػٌ يف سِا‪ ١ٜ‬ايدلاَر َكاضْ‪ ١‬باي‪ٛ‬غا‪ ٌ٥‬األخط‪٣‬‬


‫ظٽځٵص ب‪٠‬دٴُص ظ‪١‬دٲ بذل ٔ٭ُ خپزُودڄؿ‪ ,‬ٴٕ٭ٌُد ظٹَُسد زٌن ‪ 40 -20‬يوالَخً؛ ڀٍڀٻ َعڃ خٔعىًخڂ ٌٍخ خڀىى‪ ٪‬ڄه خغبڃ خَدض يف خڀربخڄؿ‬
‫خؼبُظٵ٭ص خڀٕ٭ُ‪.‬‬

‫دبد ؤهند ٸ‪٥‬٭ص ‪ Hardware‬ٴهٍ ٸدزځص ڀځعځٳ ٺزدٸٍ خڀٹ‪ ،٫٥‬و ڀٽه خڀ‪ُٙ‬ټدض خؼب‪ٝ‬ى٭ص ‪٬‬ديش ڄد ظٹًڂ ټٵدڀص ؽبد‪.‬‬

‫‪ٜ‬٭ىزص بَ‪ٝ‬دؽبد بذل خؼبٕعىًڄٌن ‪ ،‬ٴُفر ٘مه خپيووٱٿ زىخٔ‪٥‬ص ُ٘ټدض خڀ‪ٙ‬مه ‪ ,‬وبمبد يف خڀ‪ُ٥‬ٶ خالوُي يبٽه ‪٬‬مٿ ڄىڀً ألَٸدڂ‬
‫خڀعٕفُٿ ڄه والپ ڄىٸ‪ ٫‬بوعُوط‪.‬‬

‫ٸدزځص ڀځُٕٸص ڄه ‪٬‬ځً خغبدٔر ‪ ،‬وٌٍي لًؼط ڄ‪ ٫‬ټؽًن ڄه خڀ‪ُٙ‬ټدض خڀيت ن‪ُ٬‬ٴهد‪ ،‬وزدڀعدرل وٕدَش خڀىٕىص؛ ألنّ ُ٘ټص خڀربؾبُدض ڀه‬
‫ظ٭‪ُ٥‬ٻ يووٱٿ ؤوُي زٕهىڀص‪.‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪557‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫يرفرلاخ‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫ڄى‪٨‬ٳڄٕاوالً ‪٬‬ىهد‪.‬‬
‫خً‬ ‫ٰدڀسدً ڄد ظ‪٥‬ځر‬
‫‪ٜ‬٭ىزص بيخَهتد ڄٹدَوص زدڀ‪ُ٥‬ٶ خألوُي‪ ,‬ٲ‬

‫ظ٭عمً يف ٸىهتد ‪٬‬ځً ٸىش و‪ٜ‬الزص خڀ‪ُٙ‬ټص خؼب‪ٝ‬ى٭ص‪ ,‬ويف لدپ خڀعمٽه ڄه ټُٕ خپيووٱٿ ٴَُّدجُدً ؤو خڀعمٽه ڄه خوعُخٶ خپـ ‪ SDK‬خػبد‪ٜ‬ص‬
‫زدڀ‪ُٙ‬ټص ٴهٍخ َ٭ين خوعهدء ضبدَص زُودؾبٻ زدڀٽدڄٿ‪.‬‬

‫‪َٛ .5‬ان‪ٝ‬ع شات قً‪ ١‬بامل‪ٛ‬ن‪ٛ‬ع َٔ املٓتس‪: ٣‬‬


‫‪http://www.at4re.com/f/showthread.php?t=2787‬‬
‫‪http://www.at4re.com/f/showthread.php?t=2783‬‬

‫دليك اقرتاح أو سؤال حول هذه الطبعة؟ اضغط هنا‬ ‫‪2009‬‬ ‫‪558‬‬
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫انخاذًح‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫اخلامتة‬

‫{ َوأَوْ َزلَ انهَّهُ عَهَيْكَ انْكِتَبةَ وَاْنحِكْمَةَ وَعَهَّمَكَ مَب نَمْ تَكُهْ تَعْهَمُ َوكَبنَ فَضْمُ انهَّهِ عَهَيْكَ عَظِيمًب}‬

‫[خڀىٕدء ‪] 113 :‬‬

‫‪ٚ‬أخرلاً ‪ٚ‬ي‪ٝ‬ؼ آخطاً ‪ْ ..‬كٌ َعهِ إىل ْٗا‪ ١ٜ‬املطاف بعس إٔ أعطْا بهِ يف زض‪ٚ‬ؽ َتٓ‪ٛ‬ع‪ َٔ ١‬عًِ‬
‫اشلٓسغ‪ ١‬ايعهػ‪ٚ ١ٝ‬بأزم تؿاق‪ًٗٝ‬ا‪.‬‬

‫ؾبعس إٔ نإ املػتدسّ ايعط ب‪ٜ ٞ‬بشح يف ايؿبه‪ ١‬ايعٓهب‪ٛ‬ت‪ ١ٝ‬عٔ أ‪ ٟ‬ؾ‪ ٤ٞ‬س‪ ٍٛ‬اشلٓسغ‪ ١‬ايعهػ‪١ٝ‬‬
‫‪ٚ‬بعض ؾط‪ٚ‬عٗا ثِ ال جيس إال زضغاً َت‪ٛ‬انعاً أ‪َ ٚ‬كاي‪ ١‬زتتعأ‪ ،٠‬أقبح بإَهاْ٘ اي‪ ّٛٝ‬إٔ ‪ٜ‬كطأ ايهجرل س‪ٛ‬شلا‪،‬‬
‫‪ٖٚ‬صا األَط مل ‪ٜ‬هٔ عٔ ؾطاؽ أ‪ٜٗ‬ا ايكاض‪ ٨‬ايهط‪ ،ِٜ‬بٌ نإ أعها‪ ٤‬ايؿط‪ٜ‬ل ‪ٜ‬عًُ‪ ٕٛ‬ظس ‪ْٚ‬ؿاطٍ ‪ٚ‬زأبٍ ز‪ ٕٚ‬دعا‪ ٍ٤‬أ‪ٚ‬‬
‫ؾه‪ٛ‬ض‪ٚ ،‬غتًُؼ شيو َٔ خالٍ َا قسَٓا‪ ٙ‬يو يف اإلقساض األ‪ َٔ ٍٚ‬نتابٓا (َسخٌ إىل اشلٓسغ‪ ١‬ايعهػ‪َٔٚ ،)١ٝ‬‬
‫خالٍ َا ططسٓا‪ ٙ‬يف اإلقساض ايجاْ‪( ٞ‬اشلٓسغ‪ ١‬ايعهػ‪ : ١ٝ‬خط‪ ٠ٛ‬إىل األَاّ ) ‪ َٔٚ ،‬خالٍ َا ْؿهط بططس٘ يف‬
‫اإلقساض ايجايح إٕ ؾا‪ ٤‬اهلل‪.‬‬

‫ْأٌَ إٔ حيكل ٖصا ايهتاب َا ْكب ‪ ٚ‬إي‪ َٔ ٘ٝ‬إ‪ٜ‬كاٍ ٖصا ايعًِ يًذُ‪ٝ‬ع‪ٚ ،‬ضؾس املدلزتني بايططم‬
‫ٌٍ أزم ‪ٚ‬أسلٌ‪.‬‬
‫‪ٚ‬اي‪ٛ‬غا‪ ٌ٥‬اييت جتعًِٗ قازض‪ ٜٔ‬عً‪ ٢‬ايتعاٍّ َع بطزت‪ٝ‬اتِٗ بؿه‬

‫ايًِٗ يو اذتُس نً٘ ‪ٚ‬يو ايؿهط نً٘ ‪ٚ‬إي‪ٝ‬و ‪ٜ‬طدع األَط نً٘‪ٚ ،‬ايكال‪ٚ ٠‬ايػالّ عً‪ ٢‬خرل األْاّ ‪ٚ‬عً‪٢‬‬
‫آي٘ ‪ٚ‬قشب٘ ‪ٚ‬غًِ‪.‬‬

‫‪ٚ‬آخط زع‪ٛ‬اْا إِٔ اذتُس هلل ضب ايعاملني‪...‬‬

‫ايؿط‪ٜ‬ل ايعطب‪ ٞ‬يًٗٓسغ‪ ١‬ايعهػ‪١ٝ‬‬

‫‪Arab Team 4 Reverse Engineerin‬‬

‫‪2009‬‬ ‫‪559‬‬
AT4RE :‫انفريك انعرتي نههُذسح انعكسيح‬ INDEX .‫ خطىج إنى األياو‬:‫انهُذسح انعكسيح‬

INDEX

431 ,ExeInfo PE 348 ,326 ,313 ,294 ,Net.


158 ,138 , 137 ,132 ,131 ,130 ,129 ,5 ,FGInt 512 ,ACProtect
156 ,150 ,5 ,FGIntRSA 223 ,Advenced OllyDbg Plugin
108 ,77 ,Fix Dump 289 , 253 ,Anti reversing
153 ,Flirt signatures 273 ,253 ,9 ,ANTI-ANALYSIS
44 ,32 ,20 ,GetOpenFileNameA 222 ,AODD Trick
33 ,22 ,21 ,20 ,2 ,GetStartupInfo 384 ,369 ,ARM
,241 ,240 ,238 ,42 ,38 ,37 ,24 ,20 ,GetThreadContext 102 ,4 ,ASPROTECT
243 ,242 ,427 ,176 ,161 ,150 ,141 ,68 ,67 ,AT4RE FastScanner
524 ,GUID 445 ,444
236 ,Hardware Breakpoints ,337 , 335 ,326 ,251 ,247 ,245 ,119 ,10 ,8 ,Brute Force
243 ,241 ,240 ,239 ,238 ,237 ,236 ,8 ,HWBP 341 ,339
,384 ,375 ,372 ,370 , 369 ,290 ,153 ,151 ,150 ,11 , IDA 170 ,167 ,35 ,23 , 20 ,2 ,CloseHandle
,517 ,422 ,415 ,414 , 411 ,408 ,392 ,391 ,386 ,385 271 ,269 ,241 ,240 ,239 ,42 ,38 ,37 ,25 ,24 ,CONTEXT
521 ,520 43 ,38 ,35 ,34 ,31 ,20 ,2 ,ContinueDebugEvent
102 , 80 ,74 ,67 ,3 ,Import REConstructor 176 ,CrackMe
234 ,ImporterAutoFixIAT 437 ,436 ,272 ,194 ,193 ,192 ,6 ,CRC32
234 ,ImporterAutoSearchIAT 30 ,CREATE_PROCESS_DEBUG_INFO
108 ,ImpRec 29 ,CREATE_THREAD_DEBUG_INFO
115 ,111 ,110 ,Inline Patching ,44 ,37 ,34 ,33 ,31 ,24 ,23 ,22 ,20 ,2 ,CreateProcess
106 ,Inline Patchinging 238
36 ,28 ,20 , Int3 176 ,CryptoMe
512 ,255 ,254 ,8 ,IsDebuggerPresent ,348 , 334 ,326 ,313 ,303 ,299 ,295 ,294 ,9 ,Deblector
438 ,273 ,176 ,150 ,132 ,121 ,Kanal 351 ,349
532 ,522 ,44 ,Kernel Detective 43 ,42 ,38 ,37 ,35 ,34 ,27 , 26 ,DEBUG_EVENT
239 ,Kernel Dispatcher 283 ,44 ,31 ,20 ,2 , DebugActiveProcess
201 ,KeyFileMe 32 ,Debugger
176 ,KeygenMe 215 , Debugger Detection
,520 ,517 ,438 ,361 ,358 ,150 ,139 ,10 ,Keygenning debugger detection ‫ اّظش‬DEBUGGER DETECTION
521 118 ,Decryption
451 ,106 ,72 ,70 ,69 ,68 ,67 ,20 ,3 ,Loader 83 ,Delphi component
191 ,176 ,162 ,161 ,LordPE 438 ,DES
522 ,Malwares Hooking 107 ,106 ,Dump
106 , MUP 458 ,dUP
98 ,ODBG_Pluginaction 444 ,eBook Workshop
95 ,ODBG_Plugininit 138 ,132 ,131 ,129 ,5 ,ElGamal
97 ,ODBG_Pluginmenu ,408 ,407 ,406 ,404 ,402 ,399 ,398 , 397 ,14 ,Emulator
,254 ,107 ,106 , 102 ,64 ,59 ,46 ,45 ,3 ,OdbgScript 548 ,423 ,415 , 413 ,411 ,410
265 ,258 ,256 118 ,Encryption
93 ,OllyDbg Plugin Exceptions ‫ اّظش‬Exception
73 ,67 ,OllyDump Plugin 42 ,38 ,37 ,28 ,EXCEPTION_BREAKPOINT
190 ,189 ,188 ,187 ,36 ,OP Code 29 ,28 ,27 ,EXCEPTION_DEBUG_INFO
25 ,OPENFILENAME 28 ,EXCEPTION_RECORD
260 ,220 ,78 , 71 ,67 ,Exceptions
2009 560
AT4RE :‫انفريك انعرتي نههُذسح انعكسيح‬ INDEX .‫ خطىج إنى األياو‬:‫انهُذسح انعكسيح‬

283 ,238 ,34 ,26 ,20 ,2 ,WaitForDebugEvent 68 ,PC-Guard


394 ,WINCE 393 ,385 ,384 ,Petran
402 ,394 ,11 ,Windows Mobile 139 ,Private key
281 ,238 ,37 , 36 ,23 ,20 ,2 ,WriteProcessMemory 22 ,PROCESS_INFORMATION
292 ,33 ,24 ,20 ,2 ,ZeroMemory 139 ,Public key
93 ,OllyDbg ‫إضافاخ‬ 490 ,444 ,189 ,178 ,176 ,164 ,161 ,6 ,RadAsm
139 ,5 , ‫ش اىَرْاظش‬ٞ‫ش غ‬ٞ‫اىرطف‬ ,223 ,222 ,221 ,220 ,219 ,218 ,217 ,215 ,7 ,RDTSC
393 ,373 ,243 ,105 ,104 ,88 ,87 , ‫اىشساىح اىَضػجح‬ 261 ,228 ,227 , 226 ,225 ,224
444 ,‫ح‬ّٞٗ‫اىنرة اإلىنرش‬ 267 ,243 ,43 ,36 ,22 ,20 ,2 ,ReadProcessMemory
‫اىَقثض اّظش ٍقثض‬ 234 ,ReadProcessMemoryFixed
337 ,118 ,4 ,‫ْغ‬ٞ‫اىٖاض‬ 74 ,Rebuild import
273 ,68 ,‫تشاٍج فذع‬ ,324 , 316 ,315 ,313 ,299 ,298 ,295 ,294 ,9 ,Reflector
67 ,‫تْاء اىذٗاه اىَسرذػاج‬ 361 ,358 ,356 ,354 , 353 ,348 ,326
,353 ,326 ,316 ,313 ,295 ,294 ,10 ,9 ,‫تطبيكات الزوت ىت‬ 458 ,Resource Hacker
361 ,358 ,151 , 150 ,147 ,146 ,141 ,140 ,139 ,120 ,119 ,5 ,RSA
,227 ,187 ,176 ,108 ,105 ,31 ,28 ,26 ,21 ,7 ,4 ,‫خ‬ٞ‫ذْق‬ 544 ,202 ,158
450 ,351 ,291 ,283 ,264 ,261 139 ,5 ,RSACrypt
36 ,35 ,34 ,33 ,32 ,3 ,2 ,‫خ‬ٞ‫ديقح اىرْق‬ 144 ,140 ,RSAdecrypt
,130 ,129 ,121 ,119 ,118 ,83 ,6 ,4 ,‫ش‬ٞ‫اخ اىرطف‬ٍٞ‫خ٘اسص‬ 148 ,146 ,140 ,RSAencrypt
202 ,193 ,176 ,150 ,139 384 ,369 ,S60
517 ,507 ,88 , ‫و‬ٞ‫ح اىرسج‬ٍٞ‫خ٘اسص‬ 45 ,Scripting
107 ,106 ,66 ,65 ,46 ,45 ,‫ثد‬ٝ‫سنش‬ 208 ,SearchNReplace
‫ثد‬ٝ‫ْغ اّظش سنش‬ٞ‫ثر‬ٝ‫سنش‬ ,241 ,240 ,239 ,238 ,37 ,25 ,20 ,2 ,SetThreadContext
78 ,68 , 67 ,3 ,78 ,73 ,70 ,68 ,3 ,‫ح‬ٝ‫فل اىذَا‬ 242
90 ,‫ح‬ٞ‫ش ضشط‬ٞ‫قفضج غ‬ 125 ,438 ,SnD Reverser Tool
90 ,‫ح‬ٞ‫قفضج ضشط‬ 21 ,STARTUPINFO
,275 ,266 ,254 ,253 , 225 ,222 ,221 ,215 ,8 ,‫مطف اىَْقخ‬ 393 ,386 ,384 ,11 ,Symbian
278 175 ,173 ,161 ,Table Extractor
,167 ,166 ,96 ,95 ,36 ,30 ,29 ,25 ,24 ,23 ,22 ,‫ٍقثض‬ 25 ,22 ,Thread
268 ,257 ,239 , 226 ,183 ,182 ,180 ,170 ,169 517 ,TMG Ripper Studio
83 ,ٜ‫ٍنّ٘اخ دىف‬ 91 ,88 ,86 ,85 ,Trial Version
355 ,86 ,85 , ‫ح‬ٞ‫ث‬ٝ‫ّسخح ذجش‬ 369 ,Ultra RscEditor
81 ,70 ,69 ,54 ,30 ,‫ّقطح اىذخ٘ه‬ 371 ,369 ,UnMakeSIS
,50 ,49 ,48 ,42 ,41 , 40 ,37 ,36 ,35 ,28 ,8 ,2 ,‫ّقطح ذ٘قف‬ 292 ,234 ,230 ,229 ,8 ,7 ,Unpacker
,223 ,219 ,218 ,195 , 144 ,133 ,122 ,88 ,73 ,72 ,53 488 ,478 ,477 ,476 ,471 ,12 ,Uppp
,263 ,261 ,258 ,243 , 238 ,231 ,230 ,229 ,227 ,224 22 ,VA
,304 ,300 ,291 ,285 , 283 ,281 ,275 ,268 ,266 ,265 535 ,13 ,VB6
,436 ,434 ,432 ,429 , 425 ,418 ,417 ,351 ,334 ,307 538 ,VBExplorer
542 ,541 ,540 ,539 ,509 ,440 538 ,VBReFormer

2009 561
‫‪AT4RE‬‬ ‫انفريك انعرتي نههُذسح انعكسيح‪:‬‬ ‫يُكى و انيكى و انسالو عهيكى‬ ‫انهُذسح انعكسيح‪ :‬خطىج إنى األياو‪.‬‬

‫‪2009‬‬ ‫‪562‬‬

You might also like