خوب فكر مي كنم تا الان و با خوندن
مقاله قبليم تا حدودي با كرك آشنا
شده باشيد.
در اين مقاله سعي دارم شما رو با
يكي ديگر از شيوه ها و ابزارهاي
كرك آشنا كنم.
خوب امروز شما ياد مي گيريد چطوري سريال درست
يه برنامه رو بدست بياريد.
خوب به چه ابزارهايي نياز داريم:
چه برنامه اي بايد كرك بشه:
خوب برنامه همون برنامه قبليه ولي
اينبار يه تغيير كوچيك توش دادم و
اينبار كد درستو بدست مياريم
ابتدا برنامه اي كه دادم رو
دانلود كنيد حالا بازش كنيد. يه
همچين چيزي رو ميبينيد.
يك نام و كد الكي بديد. به اين
صورت :
ارروري مبني بر اشتباه بودن كد
مي بينيد
متن اررور رو يك جا ياداشت يا
به خاطر بسپاريد
تا اينجا مثل مقاله قبل بود. اگر
هنوز مقاله قبلي رو نخوندين مي
توانيد به اين
لينك برين
قسمت جديد كار اينجاست اگر ما فايل 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.....
حالا ممکنه شما بپرسید
دستیابی به کدهای یک نرم افزار به
چه دردی می خوره؟
بیشترین کاربرد کرک
برنامه ها تغییر زبان هست. ممکنه
شما هم با برنامه هایی مثل مسنجر
فارسی برخورده باشید ، و از خودتون
بپرسید که چگونه می توان یک برنامه
رو فارسی کرد؟
برنامه به نام Hack resource هست که می
توانید در گوگل با جستجو کردن از
سایت سازنده اون دانلود کنید و برای
فارسی کردن برنامه ها در قسمت Open
مسیر فایل exe رو بهش بدین ، بعدش می
تونید همه نوع تغییری در زبان
برنامه ، منوها و حتی تصاویر موجود
در برنامه رو به راحتی ایجاد کنید.
فقط هحواستون باشه اگه برنامه زمان
تغییر خطای اینکه The exe commpress32.. رو
داد باید مراحل بالا رو طی کنید تا
بتونید برنامه رو از حالت protect
دربیارید .
ديدين چقدر راحته
بازم ميگم يه كركر خوب بايد برنامه
نويسي بلد باشه و به اسمبلي مسلط
اميدوارم تونسته باشم كار
مفيدي كرده باشم و شما استفاده
لازم رو برده باشيد
نویسنده
: علی لفظی قاضی - HackMan
|