نرم افزارهای مورد نیاز واسه این بخش:
Ollydbg
PEid
UPX 1.24 : برای مشاهده این لینک/عکس می بایست عضو شوید !برای عضویت اینجا کلیک کنید ] ، برای مشاهده این لینک/عکس می بایست عضو شوید !برای عضویت اینجا کلیک کنید ]
برای مشاهده این لینک/عکس می بایست عضو شوید !برای عضویت اینجا کلیک کنید ]
ابتدا برنامه اي كه دادم رو دانلود كنيد حالا بازش كنيد. يه همچين چيزي رو ميبينيد.
يك نام و كد الكي بديد. ارروري مبني بر اشتباه بودن كد مي بينيد :
متن اررور رو يك جا ياداشت يا به خاطر بسپاريد
تا اينجا مثل مقاله قبل بود. اگر هنوز مقاله قبلي رو نخوندين مي توانيد به
برای مشاهده این لینک/عکس می بایست عضو شوید !برای عضویت اینجا کلیک کنید ]برين !
قسمت جديد كار اينجاست اگر ما فايل crackme2.exe كه بايد كرك بشه رو با Ollydbg باز كنيم و دنبال متن ها و رشته هايي كه در برنامه هست بگرديم مي بينيم هيچ متني از اررور وجود نداره.
پس چه اتفاقي افتاده؟ چون اينجا ما برنامه رو با UPX كه بالا لينكشو گزاشتم پك (pack) كرديم.
قسمت جديد كار اينجاست اگر ما فايل crackme2.exe كه بايد كرك بشه رو با Ollydbg باز كنيم و دنبال متن ها و رشته هايي كه در برنامه هست بگرديم مي بينيم هيچ متني از اررور وجود نداره.
پس چه اتفاقي افتاده؟ چون اينجا ما برنامه رو با UPX كه بالا لينكشو گزاشتم پك (pack) كرديم
خوب حالا براي اينكه بفهميم فايل crackme2.exe با چي پك شده از برنامه PEid استفاده ميكنيم :
اونجايي كه علامت زدم نوع پكر هست كه اينجا UPX 0.89.6 - 1.02 / 1.05 - 1.24 -> Markus & Laszlo رو نوشته يعني همون UPX كه لينكشو بالا دادم
بسته به سليقه خودتون يه نوعشو دانلود كنيد(گرافيكي يا خط فرمان)
نسخه گرافيكي كه نياز به توضيح نداره برنامه رو داخلش باز كنيد Decompress رو بزنيد
نسخه خط فرمان هم كه به اين صورت:
upx -d crackme2.exe
حالا كه برنامه UnPack شد براي اطمينان مي تونيد دوباره با PEid چك كنيد اين بار بايد اينو بنويسه Microsoft Visual Basic 5.0 / 6.0 كه اين يعني با visual basic درست شده.
خوب الان بايد با Ollydbg كار كنيم
Ollydbg يكي از ديباگر هاي بسيار قوي و معروف براي ويندوز هست باهاش تغريبا هر كاري مي توانيم بكنيم.
ديباگر ها هم ابزارهايي هستند براي پيدا كردن باگها و ايرادهاي يه برنامه كه بعدش ممكنه منجر به ساخت يه اكپلويت بشه....بگزريم...فقط بگم بهترين ديباگر در دنيا براي ويندوز SoftIce هست كه يه محيط خط فرماني و سياه داره كه حتي باهاش ميشه هسته ويندوز را كرك كرد. بعد softice هم Ollydbg در دنيا معروفه !
حالا ollydbg رو باز كنيد و از منوي File>open فايل crackme2.exe رو داخلش باز كنيد. مانند شكل بايد چنين دستوري اول قرار بگيرد
بعد اجراي برنامه داخل olly روي پنجره اي اصلي كه CPU هست راست كليك كنيد و از منوي ظاهر شده Search for و بعد گزينه All referenced text strings رو انتخاب كنيد اينجا جايي هست كه شما تمام متن ها و رشته هاي داخل برنامهاي كه داخل olly باز كرديد مي بينيد.
لازم به ذكره كه اگر برنامه pack شده باشد اين قسمت خالي و چرت و پرت خواهد بود و بعد UnPack كردن تمام متنها ديده مي شه
حالا همين صفحه رو كمي پايين بياريد و دنبال متن اررو بگرديد. يه راه آسونتر هم اينه كه رو اين صفحه راست كليك كنيد و گزينه Search for text رو انتخاب و قسمتي از متن اررو رو بهش بدين (به بزرگ و كوچيك بودن حروف حساس است)
مانند شكل بايد اين قسمت رو پيدا كرده باشيد.
روي متن اررو كه در عكس هم مشخص كردم دوبار كليك كنيد تا به پنجره اصلي Olly يعني CPU برگرديم.
شكل رو نگاه كنيد :
خوب شكل شايد در نگاه اول يكم پيچيده باشه. ولي به مرور ميبينيد چقدر سادس :1. (38):
حالا برسي مي كنيم(شما هم اين مراحل رو دنبال كنيد تا بفهميد چي به چيه):
دستور PUSH در اول عكس فرماني هست كه كدي كه توسط برنامه درسته شده در يه حافظه قرار ميده.
اينجا جايي هست كه ما بايد برنامه رو متوقف كنيم و كد رو از حافظه برداريم. در ادامه توضيح ميدم
PUSH دومي هم كدي كه ما داديم رو در حافظه قرار ميده.
دستور Call كه در عكس مشخص كردم در واقع تابعي هست در ويژوال بيسيك كه دو رشته رو با هم مقايسه ميكنه و اگر يكسان باشه مثلا مقدار 0 رو برمي گردونه و در صورت نادرست بودن يه مقدار ديگه
دستور JNZ هم همون JNE كه در مقاله يك هم توضيح دادم. كه چك مي كنه كه اگر مقداري كه توسط اون تابع برگردانده شد 0 بود پيامي مبني بردرست بودن كد بده و اگر يه عدد ديگه بود پيامي مبني بر اشتباه بودن گد ميده.
كه همونطور كه در مقاله يك هم گفتم با تغيير اين دستور به JE فرمان برعكس عمل ميكنه... بگزريم چون مربوط به اين مقاله نميشه!
خوب قبل اينكه ادامه بدم چنتا كليد پركاربرد در olly رو بايد ياد بگيرد :
1- كليد F2 : شما با اين دكمه در قسمتي از برنامه كه خودمون تعيين مي كنيم يه نشانه قرار ميديم كه هر موقع برنامه به اون قسمت كه ما نشانه گزاشتيم رسيد متوقف شود. اين كار و Breakpoint مي گن
2 - كليد F9 : باعث اجراي برنامه مي شود
3- كليد F12: باعث متوقف شدن موقت برنامه ميشه همون Pause
4- كليد F8: با زدن اين دكمه مي توانيد برنامه رو خط به خط اجرا كنيد به صورت سطحي و داخل توابع نميشه
5- كليد F7: با زدن اين دكمه هم مي توانيد برنامه رو خط به خط اجرا كنيد با اين تفاوت كه داخل توابع هم ميشه
حالا روي PUSH اولي با كليد F2 يه breakpoint در اين ناحيه قرار ميديم چون مي دونيم كه كد اصلي از اينجا ميگزره مانند شكل
كليد F9 رو ميزنيم تا برنامه اجرا بشه. يه نام و كد الكي مي ديم و enter مي زنيم !
خوب مي بينم برنامه جايي كه خواستيم متوقف شد.و كد واقعي در پايين مانند شكل نمايان ميشود.
خوب حالا كد رو يجا يادداشت كنيد چون كار ما اينجا تموم شد. (مثل اون فیلمی که پست بالا آموزش دادم)
از Olly خارج بشين... فايل crackme2.exe رو باز كنيد نام قبلي كه الكي دادين رو بدين و به جاي كد هم كد جديد كه بدست آمد
تبریک میگم. برنامه کرک شد :1. (21):