躲bpx检测方法总结

1:

detect_bpx: 00401762 56 push esi 00401763 51 push ecx 00401764 8BF0 mov esi,eax 00401766 B9 05000000 mov ecx,5 0040176B 33C0 xor eax,eax 0040176D AC lods byte ptr ds:[esi] 0040176E 35 99000000 xor eax,99 00401773 83F8 55 cmp eax,55 ; -- av 跳过 00401776 74 24 je short Anunnaki.0040179C 00401778 83F8 54 cmp eax,54 ; -- av 跳过 0040177B 74 1F je short Anunnaki.0040179C 0040177D 83F8 09 cmp eax,9 ; -- av 跳过 00401780 74 1A je short Anunnaki.0040179C 00401782 83F8 71 cmp eax,71 ; -- av 跳过 00401785 74 15 je short Anunnaki.0040179C 00401787 83F8 70 cmp eax,70 ; -- av 跳过 0040178A 74 10 je short Anunnaki.0040179C 0040178C 83F8 63 cmp eax,63 ; -- av 跳过 0040178F 74 0B je short Anunnaki.0040179C 00401791 83F8 62 cmp eax,62 ; -- av 跳过 00401794 74 06 je short Anunnaki.0040179C 00401796 ^ E2 D3 loopd short Anunnaki.0040176B 00401798 33C0 xor eax,eax 0040179A EB 03 jmp short Anunnaki.0040179F 0040179C 33C0 xor eax,eax 0040179E 40 inc eax 0040179F 59 pop ecx 004017A0 5E pop esi 004017A1 C3 retn 

以上的比较值0x55,0x54,0x9,0x71,0x70,0x63,0x62时,几乎不会引起任何scanner的警觉,但当上述值与0x99做xor操作后,即明白是检测bpx的操作。
 
0x55 xor 0x99 - > 0xcc (int 3) 0x54 xor 0x99 - > 0xcd (int 0) 0x09 xor 0x99 - > 0x90 (nop) 0x71 xor 0x99 - > 0xe8 (call rel32) 0x70 xor 0x99 - > 0xe9 (jmp rel32) 0x63 xor 0x99 - > 0xfa (cli) 0x62 xor 0x99 - > 0xfb (sti) 

你可能感兴趣的:(c,byte)