网站大量收购独家精品文档,联系QQ:2885784924

Linux反跟踪技术(迷惑调试器).pdf

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Linux反跟踪技术(迷惑调试器) 作者:Silvio Cesare 翻译:王筱[AKA] - Silvio Cesare silvio@.au - .au/~silvio - - January 1999 目录 概述 反汇编失效 侦测断点 设置无效断点 侦测跟踪 概述 这篇文章介绍x86 平台上的反跟踪技术(虽然这些技术不是x86 平台所特有的) 。这一技术可以 迷惑,终止和改变对目标程序的跟踪。这一技术可以用来开发病毒和那些需要被保护的软件。 反汇编失效 这是一流的技术可以使反汇编所列出的代码失效。这是用跳转到指令的中间来做到的。实际代 码的开始点是在指令的中间,但是反汇编是用完整的代码来进行处理,因此后面断续的反汇编就不 能还原真实的代码。 jmp antidebug1 + 2 antidebug1: .short 0xc606 call reloc reloc: popl %esi jmp antidebug2 antidebug2: addl $(data - reloc),%esi movl 0(%esi),%edi pushl %esi jmp *%edi data: .long 0 -- $ objdump -d a.out . . . 8048340: 55 pushl %ebp 8048341: 89 e5 movl %esp,%ebp 8048343: eb 02 jmp 0x8048347 8048345: 06 pushl %es 8048346: c6 e8 00 movb $0x0,%al 8048349: 00 00 addb %al,(%eax) 8048353: 00 8048359: ff 804835a: e7 00 outl %eax,$0x0 804835c: 00 00 addb %al,(%eax) 8048363: 90 8048364: 90 nop . . . 侦测断点 一个断点是用一个 int3 中断例程(0xcc)重写其断点地址来定义的。如果一个程序正被追踪(查看 ptrace man 页)那么一个int3 中断将使其进程停止。这一行为将使其调试父进程取得控制权。继续执 行将进入调试器将原有的中断例程重设后的中断例程。因此侦测一个断点,简单的做法是检查 int3 中断的中断例程。另一种方法是检查代码映像和。如果检查代码映像和失败,则代码已被修改过并 且一个断点可能以被植入其中。 void foo() { printf(Hello\n); } int main() { printf(BREAKPOINT\n); exit(1); } foo(); } -- $ gdb (gdb) file a.out Reading symbols from a

文档评论(0)

xina171127 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档