吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 6908|回复: 5
收起左侧

[其他转载] 利用INT 2DH 反调试

[复制链接]
Hmily 发表于 2010-1-30 01:12
取材于rootkit.com的一篇文章,因为简单就不按照原文严格翻译了。原文链接
第2dh号中断处理函数是KiDebugService,执行Int 2dh指令时,进程如果没有处于被调试状态,将会抛出异常,如果在被调试状态则能够正常执行。我们可以利用这一点检测调试器的存在。



;Besidesthis,int2Dhcanalsobeusedascodeobfuscationmethod.
;Withattacheddebugger,afterexecutingint2Dh,systemskipsonebyte
;afterint2Dh:
;
;int2dh
;noneverexecuted
;...
;原文的这一段说执行完 int 2dh指令后会跳过一字节指令的描述貌似有问题。实际测试了下,还是照常执行的。
OllyDbg的行为比较特别。被OllyDbg调试时如果Int 2dh指令之后的下一条指令长于一字节,那么会引起异常,下一指令自然不执行。如果等于一字节长度那么不会引起异常,下一指令被跳过不执行。
顺便贴下我测试用的例子。

#includeWindows.h
#includestdio.h

DWORDdwTest=0;
DWORDtest
...
voidmain
...
__except)
...
system;
}

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

nevsayno 发表于 2010-1-30 01:29
看来od应该又快有加强版了:)eee
wxhwhmanshan 发表于 2011-1-2 14:33
GhostEx 发表于 2012-2-7 16:44
XinChenK 发表于 2012-8-20 17:07
值得借鉴
zhdzhdzhd 发表于 2014-3-22 11:53
怎么应用啊。在od要怎么才能断下哦
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-16 00:36

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表