تحلیل فایلهای اجرایی با استفاده از IDA
۱- مقدمه
۲- آشنایی با Disassembler ها
۳- Debug کردن (اشکال زدایی)
۴- آشنایی با IDA
۵- چگونگی تبدیل کردن برنامه سطح بالا به برنامه سطح پایین
توابع
صدا زدن تابع به صورت مستقیم
صدا زدن تابع با استفاده از اشاره گر
صدا زدن تابع با استفاده از اشاره گر و محاسبه پیچیده آدرس مقصد
پیاده سازی CALL با استفاده از JMP
حذف Ret اضافی از کد
توابع Start-Up
تابع Main
تابع WinMain
تابع DllMain
توابع Virtual
صدا زدن تابع
صدا زدن تابع به صورت خالص
سازنده ها و مخرب ها
سازنده ها و مخرب ها
سازنده ها و مخرب ها به متغییر عمومی
اشیاء و ساختارها و آرایه ها
کار با ساختار
شباهت بین متغییر معمولی و ساختار
مقایسه بین متغییر معمولی و ساختار
ارسال یک ساختار به یک تابع
شئی از یک ساختار
تعریف یک متغییر داخل یک کلاس و یا یک ساختار
تعیین هویت یک شی از یک کلاس
اشاره گر ها
عمگر هایnew و delete
توابع کتابخانهای
متغییر توابع
طرز کار پاس کردن متغییر های یک تابع
پاس کردن متغییر های یک تابع در ++Visual C
پاس کردن متغییر های یک تابع در ++Borland C
خروجی یک تابع
صدا زدن از نوع stdcall
صدا زدن از نوع cdecl
صدا زدن از نوع PASCAL با ++Visual C
صدا زدن از نوع PASCAL با ++Borland C
تشخیص stdcall و PASCAL
صدا زدن از نوع PASCAL با Turbo Pascal تحت ویندوز
پاس کردن متغییر های با استفاده از رجیسترها
در ++Visual C
در ++Borland C
در Watcom C
مشکل fastcall
پاس کردن متغییر های ممیز دار
در ++Visual C
در ++Borland C
در Watcom C
Turbo Pascal تحت ویندوز
پاس کردن متغییر this به صورت ضمنی
پاس کردن متغییرهای با داشتن حالت پیش فرض
پاس کردن متغییرهای با آدرس
انواع متغیر خروجی یک تابع
خروجی یک تابع از نوع ساختار
خروجی یک تابع از نوع ممیز دار
خروجی یک تابع از نوع رجیستر
خروجی یک تابع از نوع inline
خروجی یک تابع از نوع آدرس معمولی
خروجی یک تابع از نوع آدرس در Heap
خروجی یک تابع از نوع عمومی و static
خروجی یک تابع از نوع پرچم
متغییر های عمومی در Stack
در ++Visual C
در ++Borland C
کار با رجیستر ها ومتغییر های موقتی
کار با متغییر های عمومی
ارسال متغیر عمومی به صورت صریح
ثابت ها و Offset ها
صدا زدن یک تابع به صورت غیر مستقیم
متغییر رشته
در C
در Pascal
کار با IF-THEN-ELSE
انواع Flag ها
متغییر های ممیز دار
مقدار گیری رجیسترها با استفاده از Flag ها
چگونگی محاسبه پرش ها
مقایسه اعداد صحیح در در ++Visual C و ++Borland C
بررسی عملیات پیچیده مقایسه ای
بررسی مرحله به مرحله کد بهینه شده و بهینه نشده کامپایلر
کار با switchcasebreak
کار با LOOP
بررسی while و do/while در ++Visual C و ++Borland C
بررسی for در ++Visual C و ++Borland C
بررسی break در ++Visual C و ++Borland C
بررسی continue در ++Visual C و ++Borland C
عملگر های ریاضی
عملگر جمع (+)در ++Visual C و ++Borland C
عملگر تفریق (-)در ++Visual C و ++Borland C
عملگر تقسیم (/)در ++Visual C و ++Borland C
عملگر باقیمانده (%)در ++Visual C و ++Borland C
عملگر ضرب (*)در ++Visual C و ++Borland C
++
۶- چگونگی مقابله با Trace کردن
۷- مکانیزم حفاظت
۸- کد کردن
۹- Exception Handling
۱۰- مقابله با BP
۱۱- استفاده از WriteProcessMemory
۱۲- تله گزاری برای برنامه های جابجا پذیر
۱۳- چک کردن خود و حفاظت از برنامه
۱۴- Anti Unpacking
برای دریافت اطلاعات بیشتر از برگزاری این کلاس ها با شرکت
مهندسی مهران رایانه تماس حاصل نموده یا با آدرس ایمیل
Training@ImenAntiVirus.com مکاتبه کنید .
|