تبليغاتX
HackMind
All About Computer
آموزش كرك نرك افزار قسمت دوم !! 
خوب فكر مي كنم تا الان و با خوندن مقاله قبليم تا حدودي با كرك آشنا شده باشيد.
در اين مقاله سعي دارم شما رو با يكي ديگر از شيوه ها و ابزارهاي كرك آشنا كنم.
خوب امروز شما ياد مي گيريد چطوري سريال درست يه برنامه رو بدست بياريد.

 سريع ميريم سر اصل مطلب
 
خوب به چه ابزارهايي نياز داريم:

Ollydbg 1.09 :  لينك دانلود
 
چه برنامه اي بايد كرك بشه:
خوب برنامه همون برنامه قبليه ولي اينبار يه تغيير كوچيك توش دادم و اينبار كد درستو بدست مياريم


 روش كرك:

 ابتدا برنامه اي كه دادم رو دانلود كنيد حالا بازش كنيد. يه همچين چيزي رو ميبينيد.

 

 يك نام و كد الكي بديد. به اين صورت :

 

 ارروري مبني بر اشتباه بودن كد مي بينيد

 

 متن اررور رو يك جا ياداشت يا به خاطر بسپاريد
تا اينجا مثل مقاله قبل بود. اگر هنوز مقاله قبلي رو نخوندين مي توانيد به اين لينك برين

 قسمت جديد كار اينجاست اگر ما فايل crackme2.exe كه بايد كرك بشه رو با Ollydbg باز كنيم و دنبال متن  ها و رشته هايي كه در برنامه هست بگرديم مي بينيم هيچ متني از اررور وجود نداره.
پس چه اتفاقي افتاده؟ چون اينجا ما برنامه رو با UPX كه بالا لينكشو گزاشتم پك (pack)  كرديم

ها... اي كه گفتي يعني چه

compressor ها، protection ها و  crypter ها ابزارهايي هستند كه كدهاي اصلي يه برنامه مثل همين crackme2.exe رو مخفي ميكنند تا كار يك كركر رو سخت كنند.البته در نوع اول در اصل برای کم کردن حجم فایل می باشد. مثل همين upx

 

compressor ها يا فشرده كننده ها كارشون فشرده كردن يه فايل احرايي exe يا ديناميك فايلها dll ها هست البته بايد بگم خيلي خفن حفاظت نمي كنند ولي كدهاي برنامه رو مخفي ميكننند و براي يه تازه كار ممكنه كار رو مشكل كنه و خيلي راحت هم برنامه فشرده شده رو مي شه از اين حالت خارج كرد يا به عبارتي UnPack كرد.

  protection ها crypter ها يه نمه خفن تر از قبلي هستند و بجز فشرده كرده فايل اون رو رمزي و در مقابل ديباگر هايي همچون Ollydbg يا SoftIce حفاظت مي كنند
 
يه نكته كه بايد بگم اينه كه اكثر اين ابزارها يعني compressor ، protection ، crypter  ضدشون هم وجود داره و مي شه گفت اين چيزا كار يه  كركر حرفه‌اي اصلا سخت نمي كنه خصوصا اونايي كه مجاني هست. 

 چقدر توضيح شد اصلا يادم رفت موضوع سر چي بود.

 خوب حالا براي اينكه بفهميم فايل crackme2.exe  با چي پك شده از برنامه PEid استفاده ميكنيم

برنامه PEid : كه لينكش رو بالا دادم باز كنيد روي اون دكمه كه سه تا نقطه روش هست كليك كنيو و مسير فايل crackme2.exe رو بهش بدين. مانند شكل زير


اونجايي كه علامت زدم نوع پكر هست كه اينجا 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 برگرديم.
شكل رو نگاه كنيد :

 

 خوب شكل شايد در نگاه اول يكم پيچيده باشه. ولي به مرور ميبينيد چقدر سادس
 
حالا برسي مي كنيم(شما هم اين مراحل رو دنبال كنيد تا بفهميد چي به چيه):
دستور 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  رو باز كنيد نام قبلي كه الكي دادين رو بدين و به جاي كد هم كد جديد كه بدست آمد

 
WOW.....

ديدين چقدر راحته

بازم ميگم يه كركر خوب بايد برنامه نويسي بلد باشه و به اسمبلي مسلط

 اميدوارم تونسته باشم كار مفيدي كرده باشم و شما استفاده لازم رو برده باشيد

تا بعد؛
|+| نوشته شده توسط آرش در دوشنبه هفدهم بهمن 1384 | موضوع: آموزش کرک
بالا