PDA

View Full Version : سوال: مفهوم بعضی اصطلاحات در قفل گذاری



Pouyan2010
جمعه 22 مهر 1390, 11:09 صبح
سلام دوستان
من تازه کارم و تازه وارده مباحث قفل گذاری نرم افزاری شدم.
چندتا اصطلاح هست که من اونا را نمی فهمم ولی خیلی به چشمم می خوره.
1- obfuscate چیست؟
2- فناوری nanomits؟
3- َAnti-hook؟
4- stolen OEP؟
البته من خیلی توی اینترنت سرچ کردم اما دقیقا" اونا را درک نکردم.
ممنون اگه کمک کنید.

Raham
شنبه 23 مهر 1390, 07:57 صبح
سلام دوست عزیز

بصورت خیلی خلاصه:
Obfuscate: تکنیک مشترک پروتکتور ها و خانواده ویروس ها>>
در این تکنیک هدف سخت تر کردن آنالیز کد ها هستش
مثلا کد زیر:

PUSH EAX

میشه

SUB ESP,4
MOV DWORD [ESP],ECX
mov ecx,3
addZ: dec esp
loop addZ
xchg dword ptr ds:[esp+4],ECX
MOV [ESP+4],EAX
ADD ESP,4

گه میبینید در کد های طولانی آنالیز کد رو خیلی میتونه سخت تر کنه.
این تکنیک خودش شاخه های مختلفی رو شامل میشه:
Self Modify, Add Junk, Code Mutationو ...

Nanomites: تکنیک قشنگی که برای اولین بار توسط Armadillo معرفی شد. در این تکنیک کد ها از حالت X86 در میان و به زبان میانه (زبانه قابل فهم خود پروتکتور) تبدیل میشن. و بجای یک پروسس 2 پروسس تشکیل میشن. که پروسس دومی در زمانی که پروسس اصلی نیاز داره کد ها رو روی اون اعمال میکنه.
به نظر من این تکنیک نمونه خیلی خیلی ساده تر VM هستش. هرچند هدف این دو تکنیک جداس ولی روش کار نانومیتس که بیاد با Context & Stack اون پروسس کار کنه میتونه شبیه VM باشه.

تکنیک بعدی Stolen OEP: فکر کنم اولین بار در ASPROTECT مشاهده شد اگه اشتباه نکنم.
ببینید هر فایل اجرایی یک سری کد اولیه داره که کارایی رو انجام میدن که فایل واسه اجرا شده آماده بشه.
به اون میگن Entrpoint و زمانی که این کد ها نباشن برنامه اجرا نخواهد شد. بصورت عادی بعد از کامپایل کلیه کد ها در فایل شما قرار دارند و بعد از پروتکت اگر دامپ بگریم سر جاش هست. اما در صورت اعمال شدن Stolen OEP که پسر Stolen CODE هستش این کدها در جای اصلی قرار ندارند بلکه به صورت Dynamic Memory Allocating در جای دیگر از حافظه قرار داده میشوند. در این صورت بعد از دامپ اون بایت های حیاتی در فایل قرار ندارند. و باید بریم دنبالش:لبخند:

Anti Hook هم میشه ضد هوک دیگه:لبخند:
حالا هوک چیه؟ اون هوک ی که شما منظورتون هستش یعنی همون patch کردن Function های. حالا اون تابع میتونه API ویندوز باشه. میتونه Function برنامه باشه. اما در واقع به Patch کردن توابع ویندوز میگن هوک



موفق باشیم
یا حق