برگزیده های پرشین تولز

اموزش مهندسي معكوس يا (craking)

darklord

Registered User
تاریخ عضویت
23 آپریل 2005
نوشته‌ها
1,085
لایک‌ها
1
محل سکونت
System32
سعید جان شما لطف داری... ما هم مشتاق دیداریم.

اگه لطف کنی و در مورد UnPack کردن به صورت دستی توضیح بدی واقعا ممنون می شم.

شاد و پیروز باشی.
 

saeedsmk

مدیر بازنشسته
تاریخ عضویت
6 سپتامبر 2003
نوشته‌ها
1,518
لایک‌ها
4
سلام
خوب هستيد
باشه
چشم روي چشم
 

saeedsmk

مدیر بازنشسته
تاریخ عضویت
6 سپتامبر 2003
نوشته‌ها
1,518
لایک‌ها
4
به نام خدا
میخواهیم در مورد ان پک کردن فایل های پک شده صحبت کنیم .
خوب پك كردن يعني چي؟
يعني اينكه اطلاعات فايل اگزه بصورتي فشرده شده و سپس حين اجرايي برنامه اين اطلاعات توي حافظه انپك شده و سپس مثل يك برنامه معمولي اجرا ميشود
پس روش كار برنامه هاي پك كننده به اين صورت است :
1- اجرا شدن لودر پكر براي اينكه برنامه اصلي را ازحالت پك خارج كند
2- ان پك شدن اطلاعات برنامه و جاگذاري در حافظه
3- تصحيح جدول فايل هاي ايمپرت شده ( هميشه انجام نميشه )
4- پرش به ابتداي برنامه و اجرا برنامه

خوب اين يك تئوري كوچك در مورد نحوه اجرا فايل هاي پك شده و حالا تمرين
براي تمرين برنامه notepad به عنوان هدف انتخاب شده و برنامه پك كننده نيز upx انتخاب شده است
وسايل لازم
1- فايل پك شده ( اتچ شده است )
2- ديباگر ollydbg 1.0 با پلاگ اين هاي ollydumpو command line
3- برنامه ImportREC ورژن 1.6

خوب حالا ميرسيم به نحوه كار:
براي شروع ابتدا برنامه مورد نظر را با ollydbg باز كرده و گزينه اي كه اخطار ميدهد اين فايل پك شده است را رد ميكنيم
حال برنامه ما اماده اجرا است . خوب بر اساس ساختار فايل هاي اگزه ميدانيم كه اين فايل هاي داراي سكشن هاي است كه هر كدام براي انجام كاري اختصاص داده شده اند . سكشن كد براي كد هاي اجرايي است . پس برنامه بايد قسمتي را انپك ميكند درون اين قسمت قرار دهد تا بتواند ان را اجرا كند ( بصورت كلي اين قضيه معمولا درست است ) . حال توي og با زدن Alt+M و يا انتخاب منوي view وبعد memeory مدول هاي كه در حافظه هستند به نمايش در مي ايد
درون ليست Notepad را پيدا كرده و سپس روي سكشن اي كه داراي توضيحات كد است كليك راست كرده و گزنه break point on write را انتخاب ميكنيم يعني اينكه هر موقع روي اين سكشن عمليات نوشتن اتفاق افتاد برنامه را متوقف كن . در ضمن اين سكشن از 1011000 شروع ميشود
خوب با زدن f9 و يا دكمه پلي برنامه را اجرا ميكنيم
اولين محل توقف ما جايي است مثل كد زير

attachment.php


شكل1​
خوب دوباره با زدن alt+M و انتخاب notepad و بعد كليك راست روي سكشن كد گزينه Remove memory BreakPoint را ميزنيم .
اگر مقدار edi را نگاه كنيم ميينم كه اين مقدار برابر 1011000 است روي edi اي كه توي اين خط است كليك راست كرده و گزينه flow in dump را ميزنيم و بعد memeory address را انتخاب ميكنيم با تريس ( زدن f8) ميبينم كه اين محل حافظه براي كار هاي بعدي اماده ميشود
خوب روي خطي كه در شكل مشخص است بريك پوينت ميگذاريم و اف 9 رو ميزنيم .حال در موقعيت مورد نظر برنامه مي ايستد . يعني اين لوپ انجام شده است يعيني حافظه اماده شده ست .
براي اينكه ان پك شدن صورت گيرد بايد لوپ اي تشكيل شود اين لوپ را لوپ اصلي نام گذاري ميكنيم .( ل.1)
حال ما يا هنوز در لوپي ل.1 هستيم يا نه ؟
شما چي فكر ميكنيد
براي فهميدن به راحتي ميشه اف 9 را فشار داد اگر دوباره روي اين بريك پوينت متوقف شديم يعني بله اين كد داخل لوپ ل.1 است وگرنه بايد برنامه را اجرا كرده و بعد دوباره تمامي دوباره شروع كنيم
خوب اف 9 را ميزنيم ميبينيم كه متوقف شديم با كمي دفت در پرش ها ميبينم كه پرش اي در حدود اين پرش به پايين قرار ندارد كه به بالاتر از اين ادرس پرش كرده باشد پس ميتوانيم نتيجه بگيريم كه شايد انتهاي لوپ اينجا باشد ( چون معمولا پكرها بصورت بسيار فشرده اند چون اگر پكري لودري داشته باشد كه خيلي زياد باشد باعث ميگردد ريت پك كردن زياد كوچك نشود )
خوب روي خط بعدي جامپ بريك پوينت ميگذاريم و بريك پوينت روي خط بالاي جامپ را بر ميداريم ( با رفتن روي اين خط و زدن اف 2 بريك پونت برداشته ميشود و با رفتن روي خط بعدي جامپ و زدن اف 2 بريك پوينت ست ميشود )
حال اف 9 را ميزنيم
دينگو اين قسمت از لوپ رد شد .
خوب حالا با زدن اف 8 كد ها را تريس مكينم
attachment.php

شكل2​

همانطور كه در شكل2 ميبينم به يك لوپ ديگر بر ميخوريم يعني اينكه بايد يه جوري ردش كنيم . روي خط بعدي محل پرش يك bp مگذاريم و اف 9 رو ميزنيم . حال با زدن اف 8 كد ها را تريس ميكنيم تا دوباره بعد از چند بار تريس دوباره به Bp3 ميرسيم يعني اينكه اينكه يك لوپ ديگر داشته ايم
توي شكل زير اين محل مشخص شده است
attachment.php

شكل 3​

خوب روي خط بعدي ان بريك پوينت ميگذاريم و bp3 را بر ميداريم حال اف 9 را ميزنيم
و اين لوپ را هم رد ميكنيم . ما ميخواهيم ببنيم كجا پكر كار خودش را تمام كرده ( يعني قسمت هاي پك شده را انپك كرده ) و به ايتداي برنامه خودمان OPE مي پرد
خوب با زدن اف 8 كد هاي بعدي را رد ميكنيم . اگر دقت كنيد حين رد كردن كدها شما در پنجره توضيحات اسم هاي مثل kernel32 و ... ميبينيد كه يعني اين قسمت دارد جدول فايل هاي خارجي – همون توابع api و ocx و ... – را لود ميكند . اين قسمت از كد كار ساختن import table را انجام ميدهد پس اينجا هم لوپ ديگري داريم . يعني قسمت ان پك كردن كدها تمام شده است . اطلاعات ابتدا انپك ميشودو بعد جدول IT ساخته ميشود كه ادرس دهي ها درست انجام گيرد .
خوب به محل انتهاي لوپ ميرسيم همانطور كه در شكل 4 ميبينيم روي دو خط بعدي bp ميگذاريم و اف 9 را ميزنيم ( معمولا روي كال هاي بعد از جامپ bp نگذاريد )

attachment.php

شكل 4​

خوب ميبينم كه كدها تمام ميشود ( رسيدن به 00 00 و....) و همچنين تمامي كار ها انجام شده است يعني كد ها انپك شده است ( بريك پوينت 4 را كه رد كرديم لوپ اصلي ان پك تمام شد) ، و بعد از ان هم جدولIT توليد گرديد .
نكته بعدي هم رسيدن به popad است . ببنيد لودر پكر بايد حافظه را جوري بعد از اتمام كارش تغيير بده كه انگار لودر وبندوز اين حافظه را در اختيار برنامه قرار داده است يعني تمامي ثبات بايد با ثبات اي كه برنامه اجرا ميشه و ويندوز انرا در اختيار برنامه پك نشده قرار ميدهد يكي باشد . براي اينكار معمولا از دو دستور pushad و popad استفاده ميشود . دستور اول يعني اينكه از همه چيز را بك اپ بگير و درون حافظه قرار بده و دومي يعني همه چيز را از بك اپ بصورت اول در بيار .
* در تمامي فايل هاي پك شده با upx لودر پكر با pushad شروع شده و بعد با popad و jmp به اتمام ميرسد .
با اين توضيحات با زدن اف 8 و پريدن به خط 0100739D ما در OPE قرار ميگيريم .
براي ذخيره فايل ان پك شده از پلاگ اين olly dump استفاده ميكنيم .
از منو پلاگ اين ollyDump را انتخاب كرده و گزينه Dump debuging process را ميزنيم . تمام گزينه پيش فرض را به حال خود رها كرده بجز Rebuild IT…. كه تيك ان را بر ميداريم و دكمه dump را زده و خروجي را با نام notepadUnpack ذخيره ميكنيم .

حال اگر برنامه را اجرا كنيد ميبينيد كه برنامه اجرا نميشود چرا ؟
چون ما قسمتي كه IT را بازسازي ميكرد را حذف كردهايم براي حل كردن اين مشكل از برنامه ImportREC استفاده ميكنيم . ابتدا olly را بسته و بعد فايل پك شده را اجرا ميكنيم . حال برنامه IR را اجرا ميكنيم از كامبو باكس Attach active process برنامه در حال اجرا notepadرا انتخاب ميكنيم . حال oep را به 739d بر ميگرداينم
0100739d-01000000=739d
كه 01000000 بيس ادرس ماست
خوب حال دكمه iat auto search را ميزنيم پيغامي مبني بر پيدا كردن IT ميدهد . حال دكمه get imports را ميزنيم و بعد دكمه show invalid را ميزنيم اگر چيزي را در ليست تانكهاي ايمپرت شده قرمز كرد ( يعني ليست imported Function found) يعني مشكلي موجود است كه با تكنيك هاي كه توي مقالات بعدي انشالله توضيح داده ميشود حل خواهند شد . اما مشكلي ديده نميشود حال بايد يكسري از optin هاي برنامه تصحصح شود تا برنامه درست كار نمايد .
دكمه options را ميزنيم گزينه ها را به صورت زير اگر تنظيم شوند مشكلات بعدي بسيار كمتر است .
Create new IAT انتخاب شود
Rebuild original ft انتخاب شود
Import all by Ordinal انتخاب نشود
Fix ep to oep انتخاب نشود
در فريم Process Properties هيچكدام انتخاب نشود
در فريم Active Process Information گزينه Use PE Header From Disk انتخاب شود
در فريم Renormalize Exportsگزينه اي انتخاب نشود
در فريم Tracer L3 (TrapFlag) Options (in DECIMAL) گزينه اي انتخاب نشود
در فريمهاي (Disasm (Tracer L1 and Loader Analizer) Options (in HEXA و Tracer L2 (Hook), L3 (TrapFlag) and Plugin Options گزينه هاي پيش فرض را تغيير ندهيد

خوب ok را زده و دكمه Fix Dump را كليك ميكنم و فايل notepadUnpack.exe را انتخاب ميكنيم و دكمه open را ميزنيم . هنگامي در پنجره log پيغام ذخيره فايل خروجي با موفقيت به نمايش در امد كار ما تمام است برنامه ما ان پك شده است . اسم فايل خروجي هميشه *_.exe است كه در اين مورد اسم فايل NOTEPADUnpack_.EXE ميشود .

نميدونم توضيحات كامل بود يا نه به هر صورت
اميدوارم كمك كنه
اگر مشكلي بود بگوييد تا با همكاري دوستان تا انجا كه ميدانيم كمك تا كنيم

سعيد
 

فایل های ضمیمه

  • notepad.zip
    32.9 KB · نمایش ها: 125
  • 01.jpg
    01.jpg
    13.7 KB · نمایش ها: 349
  • 02.jpg
    02.jpg
    21.4 KB · نمایش ها: 328
  • 03.jpg
    03.jpg
    12.7 KB · نمایش ها: 326
  • 04.jpg
    04.jpg
    15.9 KB · نمایش ها: 326

darklord

Registered User
تاریخ عضویت
23 آپریل 2005
نوشته‌ها
1,085
لایک‌ها
1
محل سکونت
System32
مرسیییییییییییییییییییییییی.
 

m3hrz4d

Registered User
تاریخ عضویت
21 سپتامبر 2005
نوشته‌ها
620
لایک‌ها
1
محل سکونت
اصفهان
عالی بود.دستت درد نکنه.کلی فیض بردم :D
 

saeedsmk

مدیر بازنشسته
تاریخ عضویت
6 سپتامبر 2003
نوشته‌ها
1,518
لایک‌ها
4
سلام
خوب هستید
خوشحالم که مورد پسند قرار گرفت

خوشحال میشم شما هم کمک کنید و بگید در چه موردی بحث کنیم و خودتون هم توی این بحث ها شرکت کنید

به امید دیدار
 

m3hrz4d

Registered User
تاریخ عضویت
21 سپتامبر 2005
نوشته‌ها
620
لایک‌ها
1
محل سکونت
اصفهان
در مورد همین پک کردن...اگه برنامه ای دارین که به همین روش پک شده بذارین تا crack کنیم
 

saeedsmk

مدیر بازنشسته
تاریخ عضویت
6 سپتامبر 2003
نوشته‌ها
1,518
لایک‌ها
4
سلام
خوب هستید
این هم یک فایل تست
 

فایل های ضمیمه

  • test.zip
    2.6 KB · نمایش ها: 85

m3hrz4d

Registered User
تاریخ عضویت
21 سپتامبر 2005
نوشته‌ها
620
لایک‌ها
1
محل سکونت
اصفهان
سلام.حل شد اما فکر کنم یه جای کارم مشکل داشت چون وقتی فایل Unpack رو با OllyDebug باز میکنم alert میده هنوزم آثار UPX توش هست :D
 

فایل های ضمیمه

  • testX_.zip
    3.8 KB · نمایش ها: 65

darklord

Registered User
تاریخ عضویت
23 آپریل 2005
نوشته‌ها
1,085
لایک‌ها
1
محل سکونت
System32
بد جایی پست زدی احتمال بن شدن داری....
 

ParsPc

کاربر تازه وارد
تاریخ عضویت
4 مارس 2006
نوشته‌ها
9
لایک‌ها
0
سلام
ممنون آقا سعید
من همین الان این تاپیک رو دیدم(چقدر زود!:blush: )
در به در دنبال مقاله آموزش کرک می گشتم. دستت درد نکنه
اگه مشکلی بود میشه ازت بپرسیم دیگه؟
 

freebird

کاربر قدیمی پرشین تولز
کاربر قدیمی پرشین تولز
تاریخ عضویت
21 ژوئن 2004
نوشته‌ها
503
لایک‌ها
362
ممنون فروم تیم کرک ایرانی Unreal هم که با کاراشون زیاد برخورد کردید خیلی مطالب آموزنده و توپی در مورد کرک داره از مطالب ابتدایی تا فوق حرفه ای کرک درش مطرح میشه ( من خودم اونجا که میرم سرگیجه میگیرم چیزی نمیفهمم راستش :) )البته عضو گیریش به شدت سخته اما میشه امیدوار به ورود بهش بود

http://unreal-rce.net/forum
 

amin_pro

Registered User
تاریخ عضویت
31 مارس 2006
نوشته‌ها
39
لایک‌ها
0
ای ول .
گفتین بسم الله ما هم شروع کردیم پس رونقش بدین تا به جایی برسه .
امین رضایی هستم 18 ساله از ساری . خوشبختم از آشنایی با این فروم و شما هموطنان گرامی .
 

saeedsmk

مدیر بازنشسته
تاریخ عضویت
6 سپتامبر 2003
نوشته‌ها
1,518
لایک‌ها
4
سلام
ممنون آقا سعید
من همین الان این تاپیک رو دیدم(چقدر زود!:blush: )
در به در دنبال مقاله آموزش کرک می گشتم. دستت درد نکنه
اگه مشکلی بود میشه ازت بپرسیم دیگه؟

ممنون فروم تیم کرک ایرانی Unreal هم که با کاراشون زیاد برخورد کردید خیلی مطالب آموزنده و توپی در مورد کرک داره از مطالب ابتدایی تا فوق حرفه ای کرک درش مطرح میشه ( من خودم اونجا که میرم سرگیجه میگیرم چیزی نمیفهمم راستش :) )البته عضو گیریش به شدت سخته اما میشه امیدوار به ورود بهش بود

http://unreal-rce.net/forum

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

RDG packer detector

بد جایی پست زدی احتمال بن شدن داری....

سلام
خوب هستيد
ParsPc جان حتما اگر بلد بودم كمك ميكنم . البته دوستان ديگر كه در اين كار حرفه اي هستند هم حتما كمك ميكنند

freebird جان
سايت خوبيه
اما تا حالا به ما كه اكانت نداده

amin_pro جان
دست شما هم درد ننكنه . اميدوارم با كمك دوستان يك تاپيك خوبي داشته باشيم

darklord جان كي بد جايي پست زده . آقا كم پيدايي :p

به هر حال اميدوارم با كمك دوستان اين تاپيك دوباره سر پا بشه

به اميد ديدار
 

amin_pro

Registered User
تاریخ عضویت
31 مارس 2006
نوشته‌ها
39
لایک‌ها
0
سلام . من داشتم نا امید می شدم ولی ای ول روحیه دادی .
من می خوام چند تا برنامه توپ اینجا بزارم البته با اجازه همگی .
این یه پکر شناس معروفه که م یتونه به شما کمک کنه تا انپکر برنامه رو پیدا کنید و اون رو انپک کنید .
راستی من ورژن جدیدش رو دارم میگیرم که بعدن می زارم .

در ضمن اگه میشه یه keygen me با اموزش کامل (مثل اون اموزشی که با olly dbg بود که پلاس جان زحمتش رو کشید ) بزارید که ما ها هم راه بیفتیم . ممنون از زحماتتون .:)
 

فایل های ضمیمه

  • RDG Packer Detector v0.6.4 Beta R-1.zip
    957.1 KB · نمایش ها: 306

amin_pro

Registered User
تاریخ عضویت
31 مارس 2006
نوشته‌ها
39
لایک‌ها
0
این هم پکر شناس دیگه با نام Exe Pe Info که انپکر رو هم معرفی می کنه .
از rdg پایینتره ولی بد نیست !
 

فایل های ضمیمه

  • exe info pe.zip
    334.5 KB · نمایش ها: 172
  • plugin-peid-exeinfo.zip
    29.6 KB · نمایش ها: 86

amin_pro

Registered User
تاریخ عضویت
31 مارس 2006
نوشته‌ها
39
لایک‌ها
0
خوب این رو شاید خیلی ها بشناسنش چون معروفه .
از این خیلی خوب می شه استفاده برد هم در شناسایی و هم در انپک کردن .
موفق باشید . ;)
 

فایل های ضمیمه

  • PEiD- 0.94-20060510.zip
    340.1 KB · نمایش ها: 110

amin_pro

Registered User
تاریخ عضویت
31 مارس 2006
نوشته‌ها
39
لایک‌ها
0
این پکر شناس جدیده ولی کارش بد نیست .
در ضمن اگه می خواین یه کرک حرفه ای بشین اینارو بهتره همشو داشته باشین بدرد می خوره ;) .
من بازم از اینا می زارم و یک پکیج کامل از unpacker ها هم آماده کردن که اونم می زارم .
راستی این پکر شناسا و این برنامه ها که من می زارم همش جدیده جدیده ماله همین ماه یا ماه پیشه پس حتما ازشون استفاده کنید .
 

فایل های ضمیمه

  • ProtectionID_v5.2b.zip
    105.7 KB · نمایش ها: 100
بالا