Anti Debug 二

利用GetTickCount API的Anti Debug的例子, 反汇编代码:

004088C8  |.  FF55 EC       CALL DWORD PTR SS:[EBP-14]               ;  GetTickCount
004088CB  |.  8945 F8       MOV DWORD PTR SS:[EBP-8],EAX;得到第一个GetTickCount值
004088CE  |.  68 96000000   PUSH 96
004088D3  |.  FF55 E8       CALL DWORD PTR SS:[EBP-18]               ;  Slepp
004088D6  |.  FF55 EC       CALL DWORD PTR SS:[EBP-14]               ;  GetTickCount
004088D9  |.  8945 F4       MOV DWORD PTR SS:[EBP-C],EAX;得到第二个GetTickCount值
004088DC  |.  68 96000000   PUSH 96
004088E1  |.  FF55 E8       CALL DWORD PTR SS:[EBP-18]               ;  Sleep
004088E4  |.  FF55 EC       CALL DWORD PTR SS:[EBP-14]               ;  GetTickCount
004088E7  |.  8945 F0       MOV DWORD PTR SS:[EBP-10],EAX;得到第三个GetTickCount值
004088EA  |.  8B45 F4       MOV EAX,DWORD PTR SS:[EBP-C]
004088ED  |.  2B45 F8       SUB EAX,DWORD PTR SS:[EBP-8]
004088F0  |.  83F8 64       CMP EAX,64     ;第二个GetTickCount与第一的差不能大小于等于0x64
004088F3  |.  7D 11         JGE SHORT IMG012_J.00408906
004088F5  |.  8B45 F0       MOV EAX,DWORD PTR SS:[EBP-10]
004088F8  |.  2B45 F8       SUB EAX,DWORD PTR SS:[EBP-8]
004088FB  |.  3D FA000000   CMP EAX,0FA   ;第三个GetTickCount与第一的差不能大小于等于0xFA
00408900  |.  7D 04         JGE SHORT IMG012_J.00408906
 ...
00408906 ...

DWORD dwTickCount1 = 0, dwTickCount2 = 0, dwTickCount3 = 0;
dwTickCount1 = GetTickCount();
Sleep(0x96);
GetTickCount2 = GetTickCount();
Sleep(0x96);
GetTickCount3 = GetTickCount();
if ((GetTickCount2 - GetTickCount1 >= 0x64) || (GetTickCount3 - GetTickCount1 >= 0xFA))
{
 //Format (c:, d:, e:, f:);
 exit(1);//或者打转转
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值