loading...
SECURITY PROJECTS
IMAIL

ایمیل مدیر سایت

ErfanLeon@gmail.com

تغییر سایت

توجه

نسخه ی جدید و کامل این سایت را میتوانید در ادرس زیر ببینید

WWW.ASTONISHMENT.IR

عرفان حامدی بازدید : 171 جمعه 09 خرداد 1393 نظرات (0)

آغازي براي كراكينگ
بهترين روش براي فراگيري كراك كردن يا نفود، استفاده از كاربردهاي قديميتر كه طرحهاي
حفاظتي قديميتري نيز دارند ميباشد. (منظور از كراك يا نفوذ، يعني اختصاصي كردن، احاطه پيدا
كردن، حذف يا به تعويق انداختن يا تسليم شدن در برابر يك يا چند طرح حفاظتي داخل يك
نرمافزار كاربردي( وقتيكه شما كد اصلي برنامه را در دسترس نداريد) ميباشد) بدينوسيله شما
تكنيك اصلي مزاحمت را به سرعت فرا ميگيريد. فراموش نكنيد كه سير تكاملي طرحهاي حفاظتي
هميشه به يك صورت نيست.
شما احتما ً لا در برخي موارد حقههاي زيركانه جديدي را، درخواهيد يافت اما در بيشتر مواقع شما
اين حقه را به زانو درخواهيد آورد.
مشكلي نيست، اطلاعات واقعي برنامه نويسان اغلب خيلي محدود است و آنها بيشتر تمايل دارند
به جاي تكنيكهاي جديد از همان روشهاي حفاظتي قديمي استفاده كنند. (گرچه ممكن است كمي
آنها را تغيير دهند يا حتي در برخي موارد پيشرفتهايي هم بدست آورند). اين حالت معمو ً لا زماني
اتفاق ميافتد كه كسي در عوض پول يا براي لذت خودش كاري را انجام دهد. اين نوع تمايلات
تجاري، كوركورانه توسط افراد نادان و پول پرست تشويق ميشود، يعني همانهايي كه ما مجبوريم
با آنها زندگي كنيم.
بهمين دليل من با استفاده از مثالها، برخي كاربردهاي قديمي و برخي حقههاي قديمي از درس
سوم به بعد، آنها را به شما ياد ميدهم بطوريكه بعدها ما خواهيم توانست حقههاي حفاظتي جديدتر
را نيز با آن پوشش دهيم و شما يادخواهيد گرفت كه چگونه بر آنها پيروز شويد. و به شما خواهم
گفت كه در چه جاهايي مي توانيد برنامههاي زيادي براي كراك كردن پيدا كنيد. البته نه براي
پولدار شدن!
اين خودآموز براي افرادي است كه ميخواهند كراك كردن را شروع كنند. شايد شما به فكر كراك
كردن باشيد و هدف شما هم موفقيت در اين زمينه باشد، پس استفاده از اين خودآموز و شروع با
حقهها و پروسيجرهاي آن، شما را در همان مسيري كه ميخواهيد قرار ميدهد.
البته من قول نميدهم آنچه ميخواهيد با اين خودآموز بدست آوريد اما من بهترين كار ممكن را
براي شما انجام ميدهم. بعبارت ديگر اگر شما قب ً لا كدهايي را به كمك اسمبلر كراك كرده باشيد يا
به برخي طرحهاي حفاظتي نفوذ كرده باشيد، اين خودآموز براي شما بعنوان يك مبتدي مفيد
را فشار دهيم، “go” خواهد بود. (اگر ميخواهيد كمي مفاهيم پايهاي را تكرار كنيم، حركتي نكنيد تا
پس همينجا بمانيد).
براي يك كراك موفقيت آميز، شما به چهارچيز اصلي احتياج داريد:
- يكسري اطلاعات در مورد زبان يك اسمبلر (براي داشتن معلومات بيشتر، و همچنين يك كراك
سريعتر و بهتر).
- مقداري بينش
- كمي كمك از يك كراكر با تجربه
- يك تفكر غيرتجارتي (كه در اين مورد بعداً بيشتر صحبت خواهيم كرد ).
كاربردهايي كه شما براي فراگيري از آنها استفاده خواهيد كرد به چند دسته زير تقسيم ميشوند:
١- كاربردهايي كه با يك كلمه عبور محدود شده است (از همه براي كراك كردن سادهتر است).
٢- كاربردهايي كه بر اساس زمان، يا تعداد روزي كه شما از آن استفاده مي كنيد محدود شدهاند
(تقريبًا براي كراك كردن آسان است).
٣- كاربردهايي كه بر اساس آخرين تاريخي كه شما از آنها استفاده كرديد، محدود شدهاند (آسان
براي كراك كردن).
٤- كاربردهايي كه داراي تعداد فانكشن (تابع) هستند. غيرفعال (برخي آسان، برخي مشكل).
٥- كاربردهايي كه براي كار كردن با آنها، نياز به دسترسي به ديسك ميباشد (اين نوع طرح
حفاظتي امروزه چندان استفاده نميشود).
كم و بيش همان روشها بكار گرفته شده، اما نه به آن صورتي كه قب ً لا ) CD-ROM با حضور
تعريف شده بود) (خيلي آسان براي كراك كردن).
يعني يكي از طرحهاي حفاظتي قبلي، اما داراي زحمت ) CRYPTOGRAFEED ADDSON -٦
كردن) SHRL كردن و XOR) . بيشتر يا استفاده از كدهايي كه خودشان، خودشان را اصلاح ميكنند
(تقريبًا براي كراك كردن آسان است).
٧- هيچيك از حالات فوق (برخي مواقع براي كراك كردن مشكل است).
مواد مورد نياز را از كجا تهيه كنيم.
ي رايج روي جلد مجلات، ثروتي براي همه كراكرهاست! بعد از مدت CD ROM DEMO
كوتاهي، آنها اعلام ميكنند، شما همه كپيهاي باقيمانده كه غيرفروشي هستند را در آينده مجاني
هاي روي سيديها به شما اجازه ميدهد كه خيلي سريع، DEMO . دريافت خواهيد نمود
كاربردهاي زيادي را  چه كهنه و چه نو  جمع آوري كنيد كه هريك از آنها به طريقي حفاظت
شدهاند (كه در برخي مواقع با طرحهاي جالب توجهي حفاظت شدهاند) . در واقع با يك دنياي
عجيب كراك مواجه ميشويد. بعداً بدون هيچ پولي شما مي توانيد روي يك سيدي كاربردهاي
يا هر نام ديگري) كه براي ٣٠ روز، يا ٢٠ بار دسترسي به wordper fect يا Microsoft لوتوس (يا
آن، تنظيم شده باشد، كراك كنيد و در آن صورت براي استفاده بيشتر و بيشتر و يا قرار دادن آن
بعنوان هديهاي گرانبها روي وب براي تهي دستاني كه هيچ پول يا هوشي ندارند،به آن نفوذ كنيد.
بازيها به نحو آشكاري، از اين روش پيروي نمي كنند. آنها از اين نظر دورنماي جالبي،وراي
حفاظت، براي كراكرها دارند. يعني اينكه طرحهاي حفاظتي سطح بالا داخل فايلهاي كوچك آنها
پنهان شدهاند. به همين سادگي و آساني براي شكستن و حذف يك طرح حفاظتي داخل يك فايل
طولاني كه همديگر را DLL ٣٥٠٠٠ بايتي قابل اجرا بايد آنها را داخل مجموعهاي از چندين
پوشش مي دهند و هريك مي توانند طولي به اندازه ٢٠٠٠٠٠٠ بايت داشته باشند، پيدا كنيد.
گروههاي برنامهنويسي پيشرفته و در عين حال تنبل،به طور سيستميك. طرحهاي حفاظتي را طوري
پنهان مي كنند كه مثل نيش جانوري در يك بيابان پهناور مي ماند. در واقع آنها قادر نيستند برنامه
را داخل يك اسمبلر بكار گيرند. آنها از زبانهاي چرب و نرمي مثل ويژوال بيسيك، دلفي يا ويژوال
استفاده ميكنند (نگران نباشيد، من چگونگي كراك كردن آن هم سريع با اين كاربردها را به C++
شما خواهم آموخت).
دليل ديگر استفاده از بازيها بجاي كاربردها در اين مطالعه اين است كه اغلب همان طرح حفاظتي
ساده (و كوتاهي) كه شما در يك بازي اشتراكي به آن نفوذ كرديد بعداً براي يك كاربرد گرافيكي با
ارزش و گران قيمت استفاده مي شود به همين دليل در اين خودآموز ما بيشتر به طرحهاي حفاظتي
بازيها، نفوذ خواهيم كرد تا اينكه در آينده از آنچه آموختيم، براي نفوذ به طرح حفاظتي يك برنامه
،(remote كاربردي تجاري، يا براي نفوذ و دسترسي به روتينهاي حفاظت شده سرورهاي دور (يا
صندوق ناظر هزينه) استفاده كنيم. ) ATM يا حتي ،BBS يا
در اينجا، يك مثال كراك كردن را در ذيل ميبينيد كه من اميدوارم به اين وسيله شما به هنر ما پي
ببريد. اجازه دهيد بعنوان مقدمه، با هم به اين كاربرد حفاظت شده، نفوذ كنيم. بعداً در درس ٤ شما
ياد خواهيد گرفت كه كليه كاربردهايي كه بر اساس زمان محدود شدهاند (يعني مدت زماني كه
شما مي توانيد كار كنيد يا تعداد دفعاتي كه مي توانيد كار كنيد) طرحهاي حفاظتي آنالوگي دارند.
(اگرچه با وجود بزرگي، تنوع چنداني ندارند).
١- ممكن است آنها شمارندهاي داشته باشند كه هربار يكي اضافه مي شود: آن را بيابيد و غير
فعال كنيد.
كنند و در ماشين شما قرار دهند: FETCH ٢- ممكن است آنها وقفههاي زمان ساعت را
خودتان از اينكار جلوگيري كنيد.
٣- ممكن است آنها يك مقدار تصادفي را با يك متغير مقايسه كنند: با اين حالت هيچ كاري
نميتوانيد بكنيد.
٤- ممكن است آنها بصورت تصادفي تاريخ ساير فايلهاي روي هارد شما را (حتي آنهايي كه
بي ربط هستند) بررسي كنند: در اين حالت شما بايد روتيني كه اينكار را انجام مي دهد
هاي آن را بر عكس كنيد! JUMP پيدا كند و
حالا من مي خواهم با يك مثال پيشرفته از اين حالت حفاظتي استفاده از شمارندهها، شروع كنم. در
ي خيلي رايج را DEMO اين وضعيت احساس كراك كردن به شما دست خواهد داد و من يك
براي اينكار انتخاب كردهام كه شما هم خيلي راحت ميتوانيد آن را پيدا كنيد. براي نمايش برخي
مشكلاتي كه ممكن است شما با آن روبرو شويد، ما از اين مثال استفاده مي كنيم. (شما روش نفوذ
كار و اثربخش را طي درسهاي آينده خواهيد آموخت).
مثال: ARCADE POOL, Demonstration version, PC Conversion
by East Point Software Ltd, (c) Team 17 Software Ltd 1994
از طريق تعدادي از مجلات روي سي دي رام در طول سال ١٩٩٥ منتشر شده است. DEMO اين
آنچه در ذيل ميآيد، حتي اگر شما اين مثال را نداشته باشيد، براي شما قابل استفاده مي باشد. اما
ي رايج را به منظور فهم بهتر نكات زير تهيه كنيد. DEMO در عين حال شما بايد يك كپي از اين
ي زيبا، يك بازي بيليارد است كه بر اساس مدت زمان استفاده از آن محدود شده. DEMO اين
يعني شما فقط ٢ دقيقه ميتوانيد بازي كنيد. و بدنبال آن در يك پنجره به شما اعلام ميشود كه از
كجا و چگونه ميتوانيد نسخه اصلي اين برنامه را تهيه كنيد. اين بهترين حفاظت درهم و برهم
ميباشد. خب حالا چطور و از كجا ميخواهيد شروع كنيم؟ انچه شما ميتوانيد انجام دهيد، در ادامه
آمده است:
تان بارگذاري كنيد. درس ٢ يعني ابزارهاي Config.sys را بگيريد و آن را در فايل [SOFT-ICE]
MARQUIS DE بوسيله [SOFT-ICE] ٢ برنامه / مزاحمت در مورد اين ديباگر را ببينيد. نسخه ٦
كراك شده و بصورت مجاني روي وب، يافت ميشود. ، SOIREE
ذخيره همه بردارها قبل از بارگذاري آنها) ) vecs s-
[Pooldem.exe] start-
شده). hook مقايسه بردار، ذخيره يك پرينت از كليه بردارهاي ) vecs c -
كجا مي رود و ما كجا پرسه مي زنيم، چند بار ، [pooldemo.exe] - براي فهم اينكه چه چيزي در
شويد و از آن خارج شويد. soft-ice وارد
(شما هميشه بايد بيش از يكبار يافتههايتان را موقع جستجو كنكاش كردن، چك كنيد هيچ چيز به
غيرفعال و قديمي نمي تواند نكات و روشهاي پيچيده را براي ما روشن كند). dos اندازه همان
حافظه مورد استفاده بياندازيد. map ( - نظري به (نقشه يا
Snap . در آن مستقر شده ذخيره كنيد [pooldemo.exe] حافظه اصلي را. جايي كه snap - حالا
(snap-sane) كردن يعني ذخيره تصاويري از نواحي حافظه
- هيچ كاري انجام ندهيد و اجازه دهيد ثانيهها سپري شوند.
ها را مقايسه كنيد snap - هر دو يا سه ثانيه بدون اينكه چيزي را روي صفحه بازي جابجا كنيد
هيچ چيزي، حتي كليك موس) بنابراين اميدواريم تنها تغييراتي كه باعث فعال ) (snap-compar)
شدن شمارنده مي شوند
ذخيره شوند.
در ثانيه : 00:٥٩ و در ثانيه ١:٠١ snap دوبار در ثانيه -مقايسه snap - مقايسه
(nag screen يا ) nag صفحه snap درست قبل و بعد از محدوديت زماني و ، snap - مقايسه
هايتان را جمع آوري كنيد. حالا بطور واضح روي صفحات snap هاي data - حالا با دقت پرينت
هاي روي داده را بنويسيد. snap مختلف
- حالا لحظه زيباي كراك كردن فرا رسيده. حالا با يك ودكاي مارتيني بنشينيد (فقط ودكاي
روسي) و به محلهاي مختلفي كه روي پرينتها داريد فكر كنيد. محلي را پيدا كنيد كه در آن مقايسه
دچار تغيير شده، آناليز، تغيير و معادل سازي كنيد. snap
هي، چيزهايي اينجا و آنجا صيد شدهاند (شما خوش شانس هستيد با كمي تغييرات شما اينكار را
انجام داديد، در اين حالت فقط دو دوجين).
بگذاريد. يعني محلي كه فكر break point - در حال اجرا روي محلي كه پيدا كردهايد، يك
مي كنيد شمارنده از آنجا فعال مي شود. بعبارت ديگر محلي كه در يك زمان خاصي، با صفر
شدن آن اجراي برنامه خاتمه مييابد.
كردن در لحظهايكه محتويات محل مورد نظر در break را بوسيله BPX - حالا معادل شمارنده
حال تعويض است، در آن جا قرار دهيد. بدين وسيله، شما باعث مي شويد برنامه از اول شروع به
اجرا كند. (به اندازه يك ثانيه براي شروع مجدد طول مي كشد). استفاده از شمارنده معادل، مثل
يك اجراي يك مرحلهاي در طول حيات برنامه شما ميباشد!.
3، قرار مي گيريد. سطر تعويض در زير DD در اين حالت شما به سرعت در محل تعويض يعني 0
آمده است:
xxxx:3DCC C706F1013C00 MOV WORD PTR [01F1], 003C
3 را در اين محل C يك شمارنده بايت ميباشد. يعني برنامه xxxx:3DD 3 در آدرس 0 C كه بايت
آن را مرحله به مرحله. كم ميكنند يعني DEC بارگذاري مي كند و سپس دستورهاي
38,39,3 و .... تا 0 و وقتيكه به صفر رسيد، بينگو! كاربر نادان يك ثانيه از وقتش براي A,3B
بازي را از دست داده است.
براي حذف حفاظت ،nag screen اگر شما جستجوي بيشتري براي يافتن محل صحيح مربوط به
انجام دادهايد، حالا وقت آن است كه همان اولين سطح ويزارد مربوطه را حفظ كنيد. اما اگر فكر
مي كنيد آن را قب ً لا بدست آوردهايد ولي خاطرتان نيست كه از چه روشي استفاده كردهايد، اين
اصل را بخاطر بسپاريد: ”فقط يكبار شما مي توانيد اثر يك حفاظت را حذف كنيد، پس بيش از اين
كاري انجام ندهيد“.
اكثر مواقع اين گفته درست است كه : شما هميشه احتياجي به حذف يك حفاظت نداريد (مگر
آنكه شما دقيقًا براي اينكار مطالعه كرده باشيد). معمو ً لا حذف اثر يك طرح حفاظتي آسانتر (و
سريعتر) ميباشد كه متأسفانه در مثال ما كار درستي نخواهد بود.
در اينجا شما تصور مي كيند شمارنده را قب ً لا پيدا كردهايد. در واقع شما، شمارندهايكه ساعت طرح
حالا شايد فكر كنيد كه مي توانيد مقدار . [pooldemo.exe] حفاظتي را تنظيم ميكند، پيدا كردهايد
را هم تمرين كنيد... اما هميشه FF ، تغيير بدهيد، (ها EE 3 به C يدكي را پيدا كنيد و آن را به جاي
تمرين كردن روي مقادير اضافي در موقع كراك كردن خيلي خوبست) شما بايد چهار دفعه براي
بازيتان زمان بگيريد تا طرح حفاظتي غيرفعال شود.
تغيير دهيد. براي كار روي بايتها شما بايد از يك EE 3 به C را از xxxx:3DD پس محل 0
كه به صورت اشتراكي (parity solution يا ) [ Psedit.exe ] يعني PSEDIT ويرايشگر هگز مثل
هم اجرا مي شود استفاده كنيد (بخش ابزار مزاحمت را ببينيد) ولي هميشه امكان كار با
براي شما فراهم نيست (درس ٢ را ببينيد). حالا فايل [symdeb] يا [debug] ديباگرهايي مثل
ايكه با كپي آن كار كرديد بخاطر بياوريد. [*.exe]dead
ren POOLDEMO.EXE POOLDEMO.DED
symdeb POOLDEMO.DED
-s (cs+0000):0 Lffff C7 06 F1 01 C3 <- this string
corresponds to the
refill line).
cs:3E85 <- symdeb gives you two locations as answer
cs:3EEA
-e cs:3E85+4 EE <- refill changed from C3 to EE
-w
ren POOLDEMO.DED POOLDEMO.EXE
موقتي خودتان را اجرا كنيد. گمان ميكنيد آن را كراك كردهايد و احساس pooldemo حالا شما
خشنودي ميكنيد.. اما لوو! هيچ چيزي در مجموع تغيير نكرده است. همه چيز به سختي قبل است.
شما فقط دو نوبت براي بازي وقت داريد. چطور مي خواهيد حريف را ناكام كنيد بطوريكه نتواند
هيچ كاري انجام دهد؟
خب براي شروع شما به اندازه كافي مراقب نبوديد! جستجو در ديباگر دو محل را به شما مي دهد،
شما ناداني كرديد و آن را كه درست بود تشخيص نداديد. چك كنيد، آن وقت است كه خواهيد
يك منطقه با كنترل آينهاي ميباشد (در اين مورد بعداً بيشتر صحبت (CS:3EEA) ديد دومين محل
خواهيم كرد) . در برخي مواقع دو محل وجود دارد كه با استفاده از يك روتين دوبل،كار سريعتر
مي شود. گاهي دومين محل آينه اولي مي باشد و در مواقع لزوم آن را تصحيح ميكند. پس شما
بايد اين يكي را هم اصلاح كنيد. مثل قبل رفتار كنيد. اما اين بار به كمك يك ديباگر سطر زير را
وارد كنيد:
-E CS: 3EEA+4 EE
تغيير نام دهيد و بعد آن را اجرا كنيد. لوو ! exe و آن را به deal قبل از نوشتن برگرديد به فايل
هوو!
ي شما، حالا بدون حفاظت است. فكر ميكنيد حالا pooldemo.exe ؟ يواش! شما آنجا هستيد
بتوانيد مثل احمقها ١٢ دقيقه واقعي بازي كنيد، حتي اگر معتقد باشيد طرح حفاظتي (و شمارنده)
تنها دو دقيقه به شما وقت مي دهند.
پس شروع به بازي كنيد، ثانيهها خيلي آهسته ميگذرند و همه چيز خوب به نظر مي رسد. اما نه!
يعني شما .« دو دقيقه تمام شد » در صفحه ثانيه ٢٨ ، شما تصويري را ميبينيد كه به شما ميگويد
واقعًا اشتباه كرديد، برنامه زمان صحيح را از تايمر ميگيرد و شما بطرز احمقانهاي فقط شمارنده
روي صفحه نمايش را اصلاح كردهايد.
پس بايد برگرديد براي كراك كردن و اوقاتتان تلخ است بطوريكه راههايي را كه از آغاز كراك
كردن طي كردهايد فراموشتان شده. پس بايد حالا كارتان را تكميل كنيد. شروع كنيد به چك كردن
[soft-ice] را بداخل pooldemo را ديديد كه vecs-save شده (قب ً لا روتين hook بردارهاي
استفاده كنيد). و بعضي vecs-compare بارگذاري مي كرد و بعد از آن شما مي توانستيد از
چيزهاي جالب را ببينيد.
بطور غير مستقيم INT- اين بيشتر شبيه آن چيزي است كه شما چيزي در مورد آن نمي دانيد. 8
را در IRQ- را كنترل مي كند. كليپ ساعت 8253 ، يك وقفه سخت افزاري 0 INT-1C وقفه تايمر
يا روتين سرويس دهنده ) ISR محدوده 18.2 وقفه در ثانيه توليد مي كند كه باعث انتقال كنترل به
0 باشد CD1:17AC اشاره مي كند، مي شود و ... اين بايد در آدرس INT- وقفه) كه در اينجا به 08
1 گير افتاده. EFD:84C در 6 pooldemo.exe اما در اينجا بوسيله
داخل باياس انجام مي دهد آنست كه يك وقفه INT- يكي از كارهايي كه روتين وقفه مربوط به 08
فراخواني مي شود كه درست در همين حال جلو پاسخگويي ماژولهاي INT-1C نرمافزاري براي
نرمافزاري داخل سيستم، گرفته مي شود. و چنانچه ممانعتي بعمل نيايد، محتويات پيش فرض
1 وقوع يك دستور نابجا در باياس سيستم را اعلام مي كند. بنابراين هيچ C مربوطه به بردار وقفه
كاري انجام نمي گيرد.
CPU مربوط به INT- از 08 ISR جلوگيري كند تا هر INT-1C بطور نرمال يك محافظ بايد از
و يك شيوه فراخواني وقفه براي (fetch محتويات بردار وقفه صحيح را از حافظه فراخواني كند (يا
باشد ولي بجاي آن محتوي هر F كه آن ادرس (كه بايد شامل دستور مربوطه در آدرس 000:9876
چيزي كه فكرش را بكنيد شده است)ميباشد.
شده در حاليكه يك hook ، پس  شما گمان مي كنيد  طرح حفاظتي اينجا مستقيمًا با وقفه 08
طرح حفاظتي پيوسته و تشكيل در اينجا استفاده شده. خب حالا چكار كنيم؟ به جاي اينكار به
توضيحات زير توجه كنيد:
كنترل شده، و در آدرس mask كه به وسيله بيت صفرم رجيستر IRQ- وقفه تايمر سطح 0
به 1، تنظيم شد (يا mask قرار دارد بايد غيرفعال شود. وقتيكه بيت صفرم رجيستر I/O 0021h
نخواهد شد كه متأسفانه نبايد اينطور IRQ شد) هيچ كمكي به وقفهها براي تشخيص سطح set
باشد. اما اين تفكيك جالبي است كه بهتر است شما آن را ياد بگيريد، كه در اين حالت شما در
جاي ديگر به آن نياز داريد.
(+ORC نوشته ،IRQ-0 masking ) ...حقهاي براي غيرفعال كردن تايمر
بزنيد، كمي بعد خواهيد ديد كه ساعت enter يعني نمايش زمان) تغيير دهيد و ) $t اعلان سيستم را
را اجرا كنيد. با استفاده از DEBUG.com . در طول اجراي اين حقه چطور عمل خواهد كرد dos
اسمبل كنيد: `a` فرمان
* Assemble using the command 'a'
- a
in al,21
or al,1
out 21,al
ret
RETURN
RETURN <- twice to exit immediate assembler
- g 100 <- to run the tiny program.
- q <- to quit debug.
هورا! پيشرفت ساعت :enter نمايش زمان) هنوز فعال است، كمي بعد از زدن )$t اعلان فرمان
متوقف شده!
را mask بارگذاري كرديد، بيت ،AL جاري را به داخل mask توضيحات: شما محتويات رجيستر
بود) و بالاخره مقادير برگشتي به IRQ- در محل بيت صفرم، تنظيم كرديد (كه مربوط به وقفه 0
هستيد دوباره IRQ- را بروز رسانديد. وقتيكه شما آماده فعال كردن مجدد رخداد 0 mask رجيستر
مجدداً راهاندازي كنيد. ،IME را با فرمان DOS ديباگ را اجرا كنيد. و سپس ساعت متوقف شده
- a
in al,21
and al,fe
out 21,al
ret
RETURN twice
- g 100
- q
در واقع با غيرفعال كردن كليك تايمر، برخي پروسهها، صحيح عمل نمي كنند. يكبار شما به درايو
ديسكت دسترسي پيدا مي كنيد، پس از آن موتور، اجاي برنامه را تا بينهايت ادامه خواهد داد و الي
آخر.
ي ما كه شما حالا در حال جستجوي آن [pooldemo.exe] متأسفانه تكنيك فوق نميتواند با
EOI هستيد و فكر مي كنيد طرح حفاظتي را پنهان كرده، كار كند. در اين مورد، شما بايد بلافاصله
را پيدا كنيد. هر دوي كنترل OUT 20h,AL , MOV AL,20h يعني انتهاي وقفه را از طريق
0)مي باشند، كه دستورات از آن گرفته a0h كنندهها، داراي يك پورت دوم آدرس در 20 ( يا
20 ) ميباشد. اين دستور، انتهاي هندلر وقفه را تعيين ميكند h)EOI مي شود كه مهمترين آنها فرمان
و معادل كنترل كننده را براي وقفه بعدي، آزاد ميكند. اگر كسي يك هندلر وقفه بهينه شده بنويسيد
(همانطور كه برخي طرحهاي حفاظتي انجام مي دهند). اين امر، او را موفق به ديدن انتهاي هندلر
0 مي كند. a0h 20 يا پورت h 20 ) نوشته شده براي پورت h) EOI فرمان
فراخواني)ها، بعد از يك )call هاي معمول، سپس برخي (push) پوش ،EOI بعد از ادامه
،out ميشود، كه به نظر ميرسد مشابه احياء تايمر باشد (دستور out 40, AL فراخوانياي منجر به
40 معادل شمارنده / تايمر، انتقال مي دهد). براي - را به يك پورت خروجي و پورتهاي 42 data
FAR نگهداري، يك فراخواني دوبل، يك فراخواني شرطي و سپس يك فراخواني مرموز از نوع
خواهد داشت كه فراخواني نهايي را PTR[970C] لازم است كه بستگي به بايت CS:[AA91]
ميكند. POP تعيين خواهد كرد. پس روتين كليه رجيسترها را
مي كنيد. بداخل هريك از فراخوانيها نظر dis assembling شما آهي ميكشيد و شروع به
در محل ورودي ،breakpoint مهندسياي مياندازيد، (روش سريعتر در اين حالت، استفاده از
ديگري از اين طرح حفاظتي محدود به زمان پيدا ميكنيد يا نه). call مي باشد كه ببينيد كه آيا
شما كار كرديد و كار كرديد و كار كرديد. و در مجموع هيچ چيزي پيدا نكرديد. حفاظت اين برنامه
اينجا نيست.
ها، ما خيلي زود آن را به حال خود رها كرديم. snap برگرديد به آناليز پرينت
نگاه كنيد،متوجه خواهيد شد DS: و 0 DS:FFFF اگر با دقت بيشتري به مقايسه محلهاي محدوده
كه يكي از آنها خيلي آهسته از 0 به 1 به 2 به 3 و ... تغيير مي كند. در حاليكه تغيير مكانهاي قبلي
و DS: را طي ميكرد، يك شمارنده در محل 0009 FF.. خيلي سريع بوده و سيكل كامل 0
3C ، حالا اين چقدر طول ميكشد؟ خب ما در بالا ديديم كه شارژ كردن در هر ثانيه ! DS:0004
معادل ١٢٠ ثانيه است. يعني ، X خواهد شد كه 78 X3C*x78=X1C ميباشد بنابراين در كل 20
محدوده زماني دو دقيقه.
قرار ،CS:offset 1 بگرديد (زمان حفاظتها، اكثراً در شروع بخش C حالا داخل كد بدنبال مقدار 20
دارند) و شما به سرعت به آنچه در ذيل آمده خواهيد رسيد:
در محل كد زير قرار دارد: ،[pooldemo.exe] حفاظت در
CS:0A8A 813E20A7201C CMP WORD PTR [A720], 1C20
compare location A720 with limit 1C20
CS:0A90 7C07 JL okay_play_a_little_more
CS:0A92 E834FD CALL beggar_off_time_is_up
BINGO!: FOUND!
Now let's quickly crack it:
حالا اجازه دهيد به ان سريعًا كراك كنيم:
CRACKING POOLDEMO.EXE (by +ORC, January 1996)
ren pooldemo.exe pooldemo.ded
symdeb pooldemo.ded
- s cs:0 Lffff 81 3E 20 A7 20 1C
xxxx:yyyy <- this is the answer of the debugger
- e xxxx:yyyy+5 4C <- this time limit is much better
- w
- q
ren pooldemo.ded pooldemo.exe
در اينجا ما يك كراك طولاني انجام دادهايم ولي در عوض خودمان را با يك محدوده زماني (بهتر)
٤ دقيقه) به جاي ٢ دقيقه تغيير داديم. اگر دستور ) 4C 1 به 20 C وفق داديم، آن را از 20
پرش به هر طريق) تغيير مي داديم ما بطور وضوح ) JMP را به دستور (Jump lower)JL
توانستيم يك كراك ريشهاي انجام دهيم. در اين حالت براي گرفتن نتيجه ايكه در درس ٤ بيان
خواهد شد، شما لازم است يك نفوذ كام ً لا ظريف را در برخورد با يك طرح حفاظتي محدود به
زمان، انجام دهيد.
همانطور كه ديديد، طي اين نفوذ ساختگي، ما طرح حفاظتي را پس از كمي جستجوي مخفيانه در
اطراف، پيدا كرديم. اما همانطور كه در درسهاي آينده خواهيد ديد، ما براي نفوذ به يك طرح
حفاظتي، از روشهاي مختلفي ميتوانيم استفاده كنيم. بعنوان مثال، همين حفاظت را شما به روشهاي
انجام trace ديگري نيز ميتوانيد انجام دهيد: مث ً لا روي محدودهاي از حافظه براي برنامه، يك
روي break point را به اولين قسمت آن محدود كنيد) . با قرار دادن يك trace دهيد. البته بايد
300 بيندازيد. اگر هيچ چيزي را - شده 400 trace گاهي به آخرين دستورهاي ،nag screen
جابجا نكنيد، هرچيزي، يك الگوي تكراري خواهد داشت تا اينكه حفاظت روي كدهاي زير
شود: snap
...
JL 0A99
CMP BYTE PTR [A72A],01
...
JL 0A99
CMP BYTE PTR [A72A],01
...
for ages and ages and then...
...
JL 0A99
E834FD CALL 0759 <- BINGO! (CALL beggar_off_time_is_up)
راههاي ديگري هم براي اينكار يافت ميشود (اما ظاهراً، اين روش بهترين است ولي متأسفانه
nag هاي شما و فاصله بين حفاظت و break خيلي بيثبات است. چون بستگي به محدوده
دارد. بنابراين ممكن است بطريقي تكميل شود ولي اطميناني كه به روشهاي قبلي داشتيم، screen
را در اينجا نخواهيم داشت.
علت اينكه نزديكي به محل مورد نظر در كراك كردن موفقيت آميزتر از كار با بردارها ميباشد
آنست كه بيشتر برنامهها هيچوت به سختي حفاظت نشدهاند. بنابراين، يافتن حفاظت آنها چندان
مشكل نخواهد بود. (و اينكه كراك كردن به آنها، براي مطالعه، واقعًا ارزشمند است).
گاهي اوقات شما حتي نيازي به كراك كردن همه چيزها نداريد، برخي كاربردها، تعداد زيادي
درآورده شدهاند. demo فانكشن (يا تابع) دارند اما كام ً لا عجولانه، براي انتشارشان بصورت يك
برنامههاي تجاري فقط پولشان مهم است و حتي برايشان اهميتي ندارد كه ما چكار مي كنيم و
چندان مراقبتي براي اينكار ندارند. بهمين منظور مقدار ساير چيزهاي روي هارد كه ممكن است
كاربر آنها را از طريق ماژولهاي برنامه اصلي بهم بريزد، براي آنها اهميتي ندارد. يك مثال از اين
است كه در تابستان ٩٥ به SSI از [Panzer General] يdemo نوع، روش بهم ريخته مربوط به
بازار آمد. كه آن در واقع تكميل شده نسخه بتاي بازي بود. شما در واقع بايد يكي از دو نسخه
مجاز را از بين بيش از ٢٠ نسخه بتا، براي بازي مجاني، پيدا ميكرديد. ... شما حتي نيازي به كراك
كردن هم نداشتيد.
را از اول تا zen ي بالا نبايد شما را از اصل كراك دلسرد كند. دقت كنيد و آناليز pooldemo مثال
آخر، قبل از اينكه مجبور به انجام روشهاي پيچيده شويد، انجام دهيد. بخاطر داشته باشيد كه شما
مي خواهيد به طرح حفاظتي بهر طريق ممكن نفوذ كنيد و نيازي به خط سير برنامهنويسي كه آن
برنامه را نوشته نداريد. فقط از شما خواسته شده به اين برنامه نفوذ كني.
خب خواننده عزيز اينهم از اين درس. همه درسهاي من روي وب نيستند..
بزنيد. شايد شما كلكهايي بلد باشيد كه من هنوز كشف نكردهام. من همان قبليها را mail به من
ميدانم اما اگر چيز جديدي باشد اعتبار شما را خيلي زياد ميكند. حتي اگر اينطور هم نباشد من
ميفهم كه شما خيلي روي موضوع كار كردهايد. در آنصورت من درسهاي باقيمانده را براي شما
خواهم فرستاد. انتقادات و پيشنهادات شما در مورد چرندياتي كه من نوشتم، هميشه براي من
خوشآمد خواهد بود.

ارسال نظر برای این مطلب
این نظر توسط سامانه پیامک در تاریخ 1393/04/20 و 3:57 دقیقه ارسال شده است

با سلام خدمت شما مدیر محترم

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

جهت ثبت نام به آدرس زیر مراجعه نمائید

sms5002.ir/register.php


کد امنیتی رفرش
اطلاعات کاربری
  • فراموشی رمز عبور؟
  • آرشیو
    نظرسنجی
    دوست دارید چه نوع نرم افزار هک در سایت قرارگیرد؟
    آمار سایت
  • کل مطالب : 59
  • کل نظرات : 9
  • افراد آنلاین : 1
  • تعداد اعضا : 14
  • آی پی امروز : 17
  • آی پی دیروز : 2
  • بازدید امروز : 56
  • باردید دیروز : 1
  • گوگل امروز : 0
  • گوگل دیروز : 0
  • بازدید هفته : 173
  • بازدید ماه : 135
  • بازدید سال : 1,499
  • بازدید کلی : 20,273
  • کدهای اختصاصی

    درس سوم هک پیشرفته بخش1

    My QR-Code

    پروفایل مدیر سایت

    برای دیدن پروفایل مدیر روی علامت زیر کلیک کنیذ