تو ExeCryptor که هر از چندي يک WaitForSingleObject با پارامتر انتظار Infinite فراخواني ميشه. با اين ترفند کافيه ترد مربوطه رو kill کنيد تا بقيه ترد ها متوقف بشند. ساختار دستور WaitForSingleObject رو که حتما بلديد اگه احيانا نديديد، تو راهنماي دلفي براي SDK هست.
فقط بايد دقت بشه که اين فراخواني تابلو نباشه.
.
.
.
push -1
test eax,eax
mov eax,-1
xor eax,ecx
mov ebx, esp
mov edx, ebx
push edx
je @chert1
xor eax, ecx
xor ecx, ecx
@chert1:
add ebx,4
mov edx,ss:[ebx]
xor eax,ecx
cmp edx,eax
jne @invalidparameter
push thread_id
push 4
call random
mov ebx, eax
mov ebx, [hash_search_functions+ebx * 4]
mov eax,wfso_hash ;WaitForSingleObject مربوط به hash کد
call ebx
call get_kernel32_baseaddr
call get_ith_export_func
test esi, esi
je @api_error
mov dx, [esi]
mov cl, dl
add cl, 3
cwd
xor cl, $CF
je @int3_detected
xor cl, $D0
jne @continue1
mov dl, dh
sub dl, 3
mov edx, ecx
je @int3_detected
@continue1:
call esi ;در حال کاره يا نه thread_id اين براي بررسي اينه که ترد
mov esi, eax
.
.
.
در مورد hash_search_func هم بايد بگم که آرايه اي از آدرس توابع بايد باشه. اين توابع بايد بر اساس کد hash ورودي، انديس تابع export شده تو kernerl32 رو بر گردونه.
بقيه توابع هم که از اسمشون پيداست چکار ميکنن.