Reverse Engineering Software
177 subscribers
22 photos
10 files
2 links
تست امنیت نرم افزارها
(برسی آسیب پذیری های نرم افزارها مانند: Stack buffer overflow، Heap overflow, Integer overflow ... و نحوه بهربردار از این اسیب پذیری ها)
تجزیه و تحلیل بدافزارها
(تجزیه و تحلیل تروجان ها,کرم ها,روت کیت ها... بصورت ایستا و پویا
Download Telegram
کتابخانه های وارداتی
Debug > Select import libraries > add
@ReverseEngineeringSoft
دوره دیباگ نرم افزار که درحال برگزاری می باشد ترجمه کتاب Ollydbg می باشد.
نویسندگان : jesse Russell و Ronald Cohn

@ReverseEngineeringSoft
پویشگر Object یا (Object Scaner)

این پویشگر شی فایل های Object یا (کتابخانه ای) مخصوص که هم در قالب OMF و هم در قالب COFF را گرفته و سگمنت های مربوط به کدها را استخراج کرده و سپس سعی در قرار دادن این سگمنت ها در بخش Code ماژول جاری می کند.

پس از اینکه سگمنت مورد نظر مستقر شد, پویشگر نام های موجود در فایل Object را به اطلاعات موبوط به اشکال زدایی اضافه می کند(که به آن برجسب های کتابخانه ای گفته می شود(در بخش بعدی بصورت کامل درباره ان توضیح خواهیم داد)).
این کار میزان خوانایی و درک Code و Data را بسیار بالا می برد.

پویشگر سعی در تطبیق برچسب های فایل Object با نام های تشخیص داده شده نمی کند. بنابر این قادر به شناسایی رویه های بسیار کوچک یا مانند هم(مثل رویه های که تنها در جابه جایی باهم تفاوت دارند)نیست.
نکته پایانی
(همیشه لیست هشدارها که پویشگر در پنجره Log می نویسد را برسی نمایید)
@ReverseEngineeringSoft
این پنچره را میتوانید از منوی View و انتخاب گزینه Log باز نمایید.
@ReverseEngineeringSoft
معرفی منبع برای دریافت اطلاعات درباره توابع API

به طور کلی استفاده از API و زیر برنامه های تکرار شونده، به دلیل استفاده مجدد از اونها برنامه نویسی رو آسون تر می کنن.در هر زبان برنامه نویسی، امکان نوشتن زیر برنامه وجود داره ، علاوه بر این دسته ای از زیر برنامه ها هم وجود دارند ،که توسط سیستم عامل ارائه میشن و کاربر یا برنامه نویسی می تونه با استفاده از این توابع API با برنامه های کاربردی سیستم عامل، ارتباط برقرار کنه.
برای مثال ،شما می تونید با استفاده از API موجود برای کنترل درب DVD-RW اون رو کنترل کنین و در صورت نیاز ،توسط برنامه خودتون درب اون رو باز یا بسته کنین.

همانطور که قبلا هم گفته شد, API مجموعه ای از توابع همراه سیستم عامل هستن، که هر برنامه نویسی می تونه از اونها استفاده کنه.در ویندوز حدود 1000 تا تابع API وجود داره، که هر کدوم برای اهداف خاصی هستن.ما در این بخش و بخش های بعدی، تعدادی از اونها رو که مهم و کاربردی هستن رو برسی خواهیم کرد.این توابع به دسته های زیر تقسیم بندی میشن:
@ReverseEngineeringSoft
1- توابع مربوط به رشته ها

2- توابع مربوط به فایل ها و دایرکتوری

3- توابع مربوط به درایو ها

4- توابع مربوط به Device Context

5- توابه گرافیکی

6- توابع مربوط به Font و Display

7- توابع مربوط به ریجستری
@ReverseEngineeringSoft
توابع API ویندوز در فایل های DLL قرار دارن .
پرکاربرد ترین فایل های DLL که توابع API مهم ویندوز در اونها قرار دارن در زیر نوشته شده:

- فایل User32.DLL این فایل حاوی توابعی هست ،که با استفاده از اونها می تونین واسط های بین سیستم عامل و منابعی مثل ماوس ، صفحه کلید و منوها و پنجره ها رو مدریت کنین.

- فایل Winmm.DLL این فایل، حاوی توابعی برای کنترل چند رسانه ای هاست.

- فایل Kernel32.DLL این فایل ،حاوی توابع مربوط به حافظه ، فایل ، پارتیشن درایو ها و پوشه هاست.

- فایل Gdi32.DLL این فایل، حاوی توابعی برای ترسیم کردن و گرافیک هست.

- فایل NetAp32.DLL این فایل، حاوی توابع مربوط به شبکه هست.

- فایل Comdlg32.DLL این فایل، حاوی توابعی برای کنترل کردن حالت های مختلف کادرهای محاوره ای هست.

- فایل Advapi32.DLL این فایل، حاوی توابعی برای کار روی رجیستری ویندوز هست.با این فایل در ادامه آموزش ها بیشتر آشنا خواهین شد.
@ReverseEngineeringSoft
همانطور که در قبل هم اشاره شد توابع API فراوانی وجود دارد که بخاطر سپردن تمامی این توابع کار مشکلی می باشد.
به همین دلیل Olly عزیزمون یک لیست کامل از تمامی توابع API به همراه توضیحاتی درباره انها را در خود جای داده.
البته این لیست بصورت پیش فرض بر رو olly1 ضمینه نشده است. و تنها در2 olly موجود می باشد.
اما برای اضافه کردن این راهنمای به olly1 شما میتوانید فایل Win32api and x86 Opcodes از همین کانال دانلود کنید و انرا ضمینه olly نمایید و از ان در پنچره هایی چون Disassembler, Names و همچنین Intermodular Calls(فراخوانی های درونی ماژولی), با استفاده ازکلید Ctrl+F1 استفاده کنید.

برای ضمینه کردن فایلی که درباره ان بحث کردیم میتوانید از قسمت Help و انتخاب گزینه Select API help و انتخاب فایل مورد نظر ان را به olly معرفی نمایید
(البته این گزینه( Select API help) در olly2 در بخش Directories از پنجره Options قرار دارد)
@ReverseEngineeringSoft
پیوست کردن فایل راهنما به ollydbg
@ReverseEngineeringSoft
پس از پیوست کردن فایل راهنما, با مراجعه کردن به منوی Help و انتخاب گزینه Open API help file میتوانید لیست تمام API ها را از تب Index مشاهده نمایید.
@ReverseEngineeringSoft
فایل راهنما با پسوند HLP 👆
@ReverseEngineeringSoft
با پنجره ها تا حدودی در Ollydbg اشنا شده ایم
اما به درخواست دوستان کمی بیشتر درباره پنجر CPU صحبت خواهیم کرد
@ReverseEngineeringSoft
لیستی از آرگومان های نخستین دستور انتخاب شده در بخش Disassembler را رمزگشایی میکند.
این بخش همچنین ارگومان های ضمنی مانند AL و ECX را در دستور REPE SCANSB یا ارگومان های بالای پشته را در دستور Ret نمایش میدهد.

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

اگر اطلاعات اشکال زدایی در دسترس باشد, میتواند خطای موجود در کد منبع مربوطه به بخش انتخاب شده را نمایش دهد, و یا اینکه فایل Source Code را باز نمایید.
@ReverseEngineeringSoft
توجه داشته باشد:
برای اینکه اطلاعات مربوط به Source Code در درسترس باشند, باید برنامه خود را حالت Debug کامپایل نموده باشید.
@ReverseEngineeringSoft
هر برنامه بطور گسترده از ثبات ها استفاده می کند.
بنابراین محتویات ثبات ها بطور مداوم درحال عوض شدن است.
بطور پیشفرض olly ثبات ها را تنها برای دستور جاری اجرا شده معتبر در نظر میگیرد و تنها انها را رمزگشایی میکند.
اگر میخواهید ارگومان های تمام دستورها رمزگشایی شوند مراحل زیر را انجام دهید:
از قسمت options گزینه Debugging options را انتخاب کنید
سپس در تپ Registers گزینه "decode registers for any IP " را انتخاب نمایید.
@ReverseEngineeringSoft
check decode registers for any IP
@ReverseEngineeringSoft
به درخواست برخی از دوستان در جهت اشنایی بهتر و عملی تر با دیباگر Ollydbg چند نرم افزار ساده و چند بدافزار را با استفاده از این دیباگر مورد تجزیه و تحلیل قرار خواهیم داد.
@ReverseEngineeringSoft