HackMind |
All About Computer |
|
آموزش كرك نرم افزار قسمت اول !!
اصلا اين كار به چه درد مي خوره؟ شايد براي شما پيش بياد كه برنامهاي از اينترنت دانلود مي كنيد ولي هيچ كرك و سريال يا 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 رو تست كنيم ببينيم چطور شد. فايل رو باز كنيد هر يوزر و پسوردي خواستين بدين ![]() تبريك مي گم شما اولين برنامتون رو كرك كردين (ديدين چقدر سادس) حالا به مرور كه تمرين كنيد ميبينيد كه چقدر لذت داره.
اميدوارم استفاده لازم رو برده باشيد لطفا هر گونه مشكل ، انتقاد، پيشنهادي دارين اطلاع بدين. موفق باشيد
|+| نوشته شده توسط BlZbB در جمعه چهاردهم بهمن 1384 | موضوع: آموزش کرک |
|
|