能力值:
(RANK:350 )
|
-
-
2 楼
我见过些程序是由系统的执行保护引起的。
|
能力值:
( LV4,RANK:50 )
|
-
-
3 楼
不是执行保护的原因
已经找到原因了 是因为我根据玩命大大的 文章,用了这么一个反调试函数:
D_Heap_ForceFlags:
assume fs : nothing
mov eax, fs:[30h]
mov eax, dword ptr [eax+18h] ; PEB.ProcessHeap
mov eax, dword ptr [eax+10h] ; PEB.ProcessHeap.Flags
int 3
test eax, eax
jnz Found_FD_Heap_ForceFlags
jz End_FD_Heap_ForceFlags
Found_FD_Heap_ForceFlags:
call xxx
End_FD_Heap_ForceFlags:
通过加入断点后调试,发现eax的值在xp和vista下是不同的 xp下为0;但vista下不是0,导致跳转错误。
这是什么原因呢?是vista的堆管理机制跟xp不同吗?
|
|
|