Reverse Code Engineering

逆向工程代码 обратная код машиностроения

Reverse Code Engineering

逆向工程代码 обратная код машиностроения

Reverse Code Engineering

Share what I know............... learn what I don’t

(انجام پروژه های مرتبط، برای اطلاعات بیشتر به صفحه "ارتباط با من" مراجعه کنید)

آخرین نظرات

۳ مطلب با کلمه‌ی کلیدی «تحلیل بدافزار» ثبت شده است

تابع call ebp :
این تابع دارای چندین حلقه هستش که دایما دارن محتویات رو تغییر میدن و دستورات جدید رو رمزگشایی میکنن و در آدرسی که بعد از این تابع قرار دارد و قرار است به اون jump زده شود قرار می دهند. اگه دستورات آدرس 401018 رو قبل و بعد از این تابع ببینید خواهید دید که کلی دستور جدید تولید شده.


اینکه روش رمزگشایی رو بررسی کنیم توی این مرحله برای ما مهم نیس و ما نیازی به دونستش نداریم. پس این تابع رو با F8 رد میکنیم.

دستور بعد از این تابع یک دستور بی اثر هستش و بعد از اون هم یک پرش.

این همون پرشی هستش که به کدهای رمزگشایی شده انجام میشه.


خوب همونطور که گفته بودیم دستور int 2dh باعث میشه که از آدرس 413BC0 پرش کنیم و همچین آدرس 413BC1 هم اجرا بشه و در آدرس 413BC2 متوقف بشیم.

pop esi چی کار کرد؟

آدرس 413BB9 که توسط Call در آدرس 413BB4 در پشته پوش شده بود رو پاپ میکنه. پس الان ESI ما محتوی مقدار 413BB9 هستش.

در ادامه از این 9 واحد کم میشه و الان ESI محتوی 413BB0 هستش.

دستور lodsd یا بعبارتی (LODS DWORD PTR DS:[ESI]  ) مقدار آدرس 413BB0 رو به اندازه 4بایت(Dword) در EAX لود میکنه.  پس الان EAX ما مقدار 0 میگیره. و خود ESI هم 4 بایت کاهش پیدا میکنه.

 

یکی از کارهای دوست داشتنی در مهندسی معکوس آنالیز بدافزار هستش

کاری که شمارو با ابعاد مختلف مهندسی معکوس آشنا می کنه مثل انواع آنتی ها, حقه ها, نحوه ی استفاده از امکانات سیستم عامل, نحوه ی سواستفاده از این امکانات, Zero Day ها و خیلی چیزای دیگه...:)

نمیدونم شروع این سری آموزشی بجا باشه یا نه, ولی فک کنم روند آموزشیمون نیاز به یه چالش داشته باشه.البته در کنار این سری آموزشی سعی میکنم روند آموزشی قبل رو هم ادامه بدم.

ما قراره سری آموزشی Dr.FU که تحلیل یه نسخه ی قدیمی از بدافزار ZeroAccess که بهش Max++ هم میگن هستش رو اینجا قرار بدیم.

 

ما فرض می کنیم که شما با مسائل پایه مهندسی معکوس مثل X86 asm , Debugging , OS و زبان برنامه نویسی آشنایی مختصری دارید, اگه این اطلاعات رو ندارید میتونید آموزش های قبلی این وبلاگ رو بخونید.

موارد مورد نیاز در طول این آموزش:

1- یک راه انداز ماشین مجازی مثل Virtual Box یا Vmware

2- ویندوز XP سرویس پک 2 برای نصب در VMWare

3- IDA Pro , OllyDbg یا ImmDbg

4- یک هگزادیتور

5- WinDbg

6- Wireshark

7- ZeroAccess (نسخه ای که قراره آنالیز کنیم رو اینجا می تونید دانلود کنید)

 

نکته: ویندوز میزبان ما XP-SP2 هست و VM رو در این ویندوز نصب کردیم و یه ویندوز XP-SP2 مجازی هم راه اندازی کردیم.

نکته دوم: قبل شروع آنالیز حتما یه snapshot از VM خودتون بگیرد.

 

طریقه ی راه اندازی یک ماشین مجازی رو احتمالا باهاش آشنا هستید اگه اینطور نیست می تونید از دکتر Google بپرسید:)

 

 

وقتی فایل رو در IDA باز میکنیم: