BLaCkViRuS
شنبه 14 اسفند 1389, 09:54 صبح
با سلام به تمام دوستان عزیز
یه Unpack Me آماده کردم که اگر دوستان لطف کنن و آنالیز کنن و یه نمره بدن:لبخند:
البته حجم فایل خیلی کم هست . پس خیلی راحت تر آنپک میشه
هدف آنپک کامل و اجرا شدن درست فایل هست
اساتید محترم هم یک نظری بدن
ضمیمه مشکل داشت واسه همین لینک میزارم.حجم فایل 837 کیلو بایت
http://amir2x.pcriot.com/uploads/1299373873.zip
ممنون
narnia.xx
یک شنبه 15 اسفند 1389, 02:09 صبح
انپک شده .
مخصوص ایکس پی سرویس پک 2 و 3 چون روی این دو تا تست شده .
درجه سختی : دیگه چه اهمیتی داره یه پسورد بزار براش خلاص
BLaCkViRuS
یک شنبه 15 اسفند 1389, 08:01 صبح
انپک شده .
مخصوص ایکس پی سرویس پک 2 و 3 چون روی این دو تا تست شده .
درجه سختی : دیگه چه اهمیتی داره یه پسورد بزار براش خلاص
دستت درد نکنه حاج narnia:قلب:
فایل آنپک شده و کار هم میکنه
آره فکر کنم پسورد بزارم بهتر و قوی تر باشه .البته پسوردشم به کسی ندم :لبخند::بامزه:
البته کارش حالا حالا ها مونده تا یه چیز خوب بشه
Anti Debugger که نداره .ایشالا یه AntiDump و یه Anti Debugger قوی هم واسش میزارم.با اینکه زیاد تفاوتی نداره :لبخند:
البته نفر اول رهام بود آنپک کرد اما چون ظاهراً فعالاً PC نداره نتونسته بزاره اما قبلش اعلام کرد بهم اما یادم رفت بگم:لبخند:
بازم ممنون:قلب:
BLaCkViRuS
دوشنبه 16 اسفند 1389, 12:01 عصر
خب حالا دوستان عزیز زحمت کشیدن و روش کار کردن یه سری توضیحات بدم:بامزه:
Unpack Me از تکنیک های زیر استفاده میکنه که البته بهتر هم میشه:لبخند:
Anti CodeInjection
یکم Anti Dump :لبخند:
Resource Stolen
هرچی حجم فایل بیشتر باشه و از Resource Stolen استفاده بشه بهتر هست چون کار سخت تر میشه و اصلاحاً Fix کردن دستیش خیلی بیشتر طول میکشه و سختر میشه
این حالت واسه زبان هایی خیلی کاربرد داره که همه چیزشون توی ریسورس هست مثل ++VC
یکی از پروتکتور هایی که Resource Stolen قویی داره Private Exe Protector هست.البته هرچی نسخش جدیدتر باشه بهتره
تکنیک هایی که خیلی برای جلوگیری از کرک شدن مهم هستند
یکی استفاده از یک Anti Debug قوی
داشتن یک Anti Trace قوی که من زیاد توی پروتکتور ها به چشم نخورده :بامزه:
Anti Hardware BreakPoint
این هم یه سری سورس
1- ++C - چک کردن Memory BreakPoint
----------------------------------------------------------
bool MemoryBreakpointDebuggerCheck()
{
unsigned char *pMem = NULL;
SYSTEM_INFO sysinfo = {0};
DWORD OldProtect = 0;
void *pAllocation = NULL; // Get the page size for the system
GetSystemInfo(&sysinfo); // Allocate memory
pAllocation = VirtualAlloc(NULL, sysinfo.dwPageSize,
MEM_COMMIT | MEM_RESERVE,
PAGE_EXECUTE_READWRITE);
if (pAllocation == NULL)
return false;
// Write a ret to the buffer (opcode 0xc3)
pMem = (unsigned char*)pAllocation;
*pMem = 0xc3;
// Make the page a guard page
if (VirtualProtect(pAllocation, sysinfo.dwPageSize,
PAGE_EXECUTE_READWRITE | PAGE_GUARD,
&OldProtect) == 0)
{
return false;
}
__try
{
__asm
{
mov eax, pAllocation
// This is the address we'll return to if we're under a debugger
push MemBpBeingDebugged
jmp eax // Exception or execution, which shall it be :D?
}
}
__except(EXCEPTION_EXECUTE_HANDLER)
{
// The exception occured and no debugger was detected
VirtualFree(pAllocation, NULL, MEM_RELEASE);
return false;
}
__asm{MemBpBeingDebugged:}
VirtualFree(pAllocation, NULL, MEM_RELEASE);
return true;
}
----------------------------------------------------------
2 - استفاده از باگ Olly Debug که خیلی ها فیکس شده و یه جورایی قدیمی هست اما بازم بد نیست - Assembly
استفاده از BadString ها در نام فایل و یا یک رابط DLL
----------------------------------------------------------
.386
.model flat, stdcall
option casemap :none ; case sensitive
include \masm32\include\windows.inc
include \masm32\include\user32.inc
include \masm32\include\kernel32.inc
includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib
.data
DbgNotFoundTitle db "Debugger status:",0h
DbgFoundTitle db "Debugger status:",0h
DbgNotFoundText db "Debugger not found!",0h
DbgFoundText db "Debugger found!",0h
OriginalFileName db "%s%s.exe",0h
.data?
filename db 512 dup(?)
.code
start:
PUSH 512
PUSH offset filename ;%s%s.exe
PUSH 0
CALL GetModuleFileName
MOV ECX,offset filename
ADD ECX,EAX
@SeekFileName:
DEC ECX
CMP BYTE PTR[ECX],'\'
JNE @SeekFileName
MOV BYTE PTR[ECX],0
INC ECX
PUSH ECX
PUSH offset OriginalFileName ;%s%s.exe
CALL lstrcmp
TEST EAX,EAX
JNE @DebuggerDetected
PUSH 40h
PUSH offset DbgNotFoundTitle
PUSH offset DbgNotFoundText
PUSH 0
CALL MessageBox
JMP @exit
@DebuggerDetected:
PUSH 30h
PUSH offset DbgFoundTitle
PUSH offset DbgFoundText
PUSH 0
CALL MessageBox
@exit:
PUSH 0
CALL ExitProcess
end start
----------------------------------------------------------
3 - استفاده از باگ INT3 برای استفاده Anti Debug - قدیمی هست و با StrongOD و Pantom دور زده میشه
Assembly
----------------------------------------------------------
.386
.model flat, stdcall
option casemap :none ; case sensitive
include \masm32\include\windows.inc
include \masm32\include\user32.inc
include \masm32\include\kernel32.inc
includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib
.data
msgTitle db "Execution status:",0h
msgText1 db "No debugger detected!",0h
msgText2 db "Debugger detected!",0h
.code
start:
ASSUME FS:NOTHING
PUSH offset @Check
PUSH FS:[0]
MOV FS:[0],ESP
INT 3h
PUSH 30h
PUSH offset msgTitle
PUSH offset msgText2
PUSH 0
CALL MessageBox
PUSH 0
CALL ExitProcess
@Check:
POP FS:[0]
ADD ESP,4
PUSH 40h
PUSH offset msgTitle
PUSH offset msgText1
PUSH 0
CALL MessageBox
PUSH 0
CALL ExitProcess
end start
----------------------------------------------------------
این کد ها دیگه الان کاربرد زیادی ندارند اما برای آشنایی و استفاده در ایده های جدید بد نیست
اما کلاً به قول Narnia : برای درجه سختی Unpack me , Crack Me : دیگه چه اهمیتی داره یه پسورد بزار براش خلاص - اینم من اضافه کنم که پسوردشم به کسی ندم و بدم به ملت بگم اگه تونستی کرک کن:بامزه::گیج::لبخند:
شاید Unpack Me بعدیمو اینطوری ساختم چه معلوم:لبخند: شاید :گیج:
با تشکر از همه دوستان:قلب:
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.