X
تبلیغات
رایتل
چهارشنبه 30 اردیبهشت‌ماه سال 1388 ساعت 01:26 ب.ظ
اصلا این کار به چه درد می خوره؟


شاید برای شما پیش بیاد که برنامه‌ای از اینترنت دانلود می کنید ولی هیچ کرک و سریال یا Path براش پیدا نمی کنید اینجاست که باید خودتون دست به کار بشین و برنامه رو کرک کنید(عالیه نه)


البته بگم این روش بسیار ساده هست و الان فکر نمی کنم برنامه‌ای باشه که به این شکل کرک بشه ولی برای شروع خوبه. و وقتی کسی به این زمینه علاقه مند بشه دیگه معتاد به این کار میشه.


حالا اگه وقت و جونی برامون موند یکم پیشرفته تر کار میکنیم البته باید بگم من الان بیشتر یه مبتدی به حساب میام ولی می خوام هر چی بلدم به شما هم یاد بدم. شاید تونستم شما رو هم علاقه مند کنم.


یه کرکر واقعی چه چیزایی باید بدونه؟


1- زبان اسمبلی : هر چی تسلط به این زبان در شما بیشتر باشه کار براتون لذت بخش ترو راحتتره
2- آشنایی به API های ویندوز
3- آشنایی با دیباگر ها و دی اسمبرها و ....
4- مهندسی معکوس
6- بجز اسمبلی تسلط کامل به یک زبان برنامه نویسی دیگه
و ...(فعلا همینا یادمه)
 
البته الان به همه اینا احتیاج نداریم فقط چند دستور اسمبلی یه دی اسمبلر و یک هگز ادیتور


به چه ابزارهایی نیاز داریم:
W32Dasm 8.9 : لینک دانلود
Hacker view : لینک دانلود


این دو برنامه رو دانلود کنید
چی رو باید کرک کنیم:


یه برنامه کوچولو با ویژوال بیسیک من ساختم که یه یوزر و پسورد میگیره اگر درست بود پیامی مبنی بر درست بودن میده اگر نه پیامی مبنی بر اشتباه بودن.


 
نحوه‌ی کرک:


ابتدا فایلی که گزاشتم رو بگیرید بعد دانلود بازش کنید حالا یه همچین چیزی در صفحه شما نمایش داده میشه
 


یه یوزر و پسورد الکی میدیم به این صورت


چون یوزر و پسورد اشتباه هستن ارروری مبنی بر اشتباه بودن یوزر و پسورد می گیریم به این صورت



حالا ما باید متن پیام رو یک جا یاداشت کنیم یا به خاطر بسپاریم.
بعد وارد برنامه W32Dasm میشیم.
نکته : W32Dasm یک دی اسمبلر یا Disassembler هست و کارش تبدیل یک فایل اجرایی به زبان اسمبلی می باشد.
 
حالا از منوی File>Open ‌فایل مورد نظر یعنی crackme1.exe  را باز میکنیم.
نکته: اگر نوشته های نمایش داده شده چرت و پرت و قابل خواندن نبود به منوی File>Font>Select Font فونتی انتخواب کنید که دستورات اسمبلی درست نمایش داده بشن.


حالا از منوی Refs گزینه String Data References انتخاب کنید. الان لیستی از متنهایی که در برنامه وجود دارد رو مشاهده می کنید. دنبال ارروری که قبلا یادداشت یا به خاطر سپردید بگرد(کار سختی نیست) بعد روش دوبار کلی کنید و از این لیست خارج و به صفحه اصلی W32Dasm‌ برین


الان باید همچین چیزی رو ببینید


خوب الان اررور رو در تصویر می بینید. حالا اون شماره چیه؟ اون شماره آدرسه جایی هست که یک دستور شرطی برسی میکند اگر یوزر و پسورد اشتباه یا صحیح بود چه ارروری رو نشون دهد.


بزارین واضح تر بگم


در نظر بگیرید برنامه ای ساختید که از ما اسمی رو می خواد و اگر ما اسم ali رو بدیم یک پیام بده بگه good‌ و اگه اسمه دیگه یی دادیم بگه bad


حالا دستور شرطی برای این برناه فرضی یه همچین چیزی میشه


if name = ali
    good
else
    bad


خوب حالا اگه ما دستور شرطی رو بر عکس کنیم چی می شه ؟ بله وقتی ما اسم ali رو بدین به ما میگه bad و اگر هر اسم دیگه ای بدیم میگه good


این دقیقا کاریه که یک کرکر میکنه یعنی این دستورات رو تغییر میده تا برنامه برعکس عمل کنه و هر کدی ما بدیم قبول کنه.
پس گفتم اون شماره در واقع آدرس جایی هست که این دستور شرطی قرار داره حالا به اون آدرس میریم
با دوبار کلیک راست ماوس روی اون شماره که مشخص کردم به آدرس مورد نظر میریم. به این صورت
 


خوب دستور JNE هست یعنی JUMP IF NOT EQUAL یعنی اگر کدی که دادیم درست نبود به آدرسی که روبه روی این دستور هست برو


نکته : دستور JNE یکی از دستورهای شرطی زبان اسمبلی هست که مخالف اون می شه JE


قبل تغییر دستور ما نیاز به شماره ای که در پایین برنامه W32Dasm وجود داره نیاز داریم به این صورت



همونطور که در عکس نشان دادم این Offset مربوط می شه به اون دستور یعنی JNE حالا می گم برای چی می خوایم


ولی اگه می خوایم بدونین این عدد از کجا آمده به عکس قبلی که دستور JNE رو نشون میداد دقت کنید این کدا رو میبینید


:00402B5F   7577                   JNE 00402BDB
 
زیر اون عدد خط کشیدم. این یعنی جایی که این دستور قرار داره
این عدد رو باید یجا یادداشت کنید.


خوب حالا برنامه Hacker  view باز کنید و به مسیر فایل crackme1.exe برین و بازش کنید.


با  دکمه های Alt+F2 می تونید درایو رو عوض کنید


بعد باز کردن فایل crackme1.exe در Hiew یا همون hacker view با زدن دکمه F4 منویی میاد که از داخلش Decode رو انتخاب می کنیم


حالا کلید F5 رو بزنید تا اون شماره که گفتم رو در اینجا جستجو کنیم. خوب F5 رو بزنید 2B5F را تایپ و اینتر بزنید تا جستجو کند. به شکل نگاه کنید باید همچین چیزی جلوتون ظاهر بشه



نکته : در اسمبلی دستورات بجز کد اسمبلی مثلا JNE یک کد بصورت هگز هم(که کد ماشین دستور است) دارن که برای همین دستور 75 هست.اگر به شکل نگاه کنید می بینید که به این صورته
.00402B5F: 7577                               jne
 
خوب همونطور که قبلا گفتم باید ما این شرط رو برعکس کنیم یعنی از JNE به JE تبدیل کنیم


کد هگز برای JE  عدد ۷۴ هست. پس 75 رو به 74 تغییر میدیم


ابتدا برای ویرایش کلید F3 رو میزنید حالا 74 رو تایپ میکنیم و برای ذخیره کردن کلید F9 را می زنیم. مانند شکل  



حالا با کلید Esc از Hiew خارج می شیم


خوب الان موقعشه که فایل crackme1.exe رو تست کنیم ببینیم چطور شد.


فایل رو باز کنید هر یوزر و پسوردی خواستین بدین 



تبریک می گم شما اولین برنامتون رو  کرک کردین (دیدین چقدر سادس)


حالا به مرور که تمرین کنید میبینید که چقدر لذت داره.
امیدوارم استفاده لازم رو برده باشید


del.icio.us  digg  newsvine  furl  Y!  smarking  segnalo