od内存断点寻找真正的入口(OEP)--内存断.pdfVIP

od内存断点寻找真正的入口(OEP)--内存断.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
od内存断点寻找真正的入口(OEP)--内存断.pdf

od内存断点:寻找真正的入口(OEP)--内存断 点 疯狂代码 http://CrazyC/ ĵ http:/CrazyC/Security/Article71892.html Author:Lenus From: ; ; ; E-mail:Lenus_M@163.com 1.前言 ; ; ;发现论坛中很多兄弟在询问:什么是 2次内存断点 3次内存断点还有很多人对内存断点原理不是很明白其实只 要懂得壳是如何解压代码那么就完全可以按自己喜欢来下断 ; ; ; ; ; ;本文要解决问题是 ; ; ;1.什么是内存断点? ; ; ;2.如何在寻找OEP时使用内存断点 ; ; ;3.内存断点局限性 ; ; ; 2.内存断点寻找OEP原理 ; ;i.首先在OD中内存断点和普通断点(F2下断)是有本质区别 ; ;内存断点等效和命令bpm他中断要用到DR0-DR7调试寄存器也就是说OD通过这些DR0-DR7调试寄存器来 判断是否断下 ; ;普通断点(F2下断)等效于bpx他是在所执行代码当前地址个字节修改为CC(3)当运行到3时候就会产生个异常 而这个异常将交给OD处理把这个异常regEIP-1以后就正好停在了需要中断地方(这个根据系统区别会不样)同时 OD在把上面3修改回原来代码 ; ; ; ;内存断点分为:内存访问断点内存写入断点 ; ;我们知道在运行时候会有3种基本状态产生:读取写入执行 004AE242 ; ; ; ; ;A1; ; ; ; ; ; ;mov eax,dword ptr ds:[004AE24C] ; ; ; ; ; ; ; ; ; ; ; ;//004AE24C处内 存读取 004AE247 ; ; ; ; ;A3; ; ; ; ; ; ;mov dword ptr ds:[004AE24C],eax ; ; ; ; ; ; ; ; ; ; ;//004AE24C处内存 写入 004AE24C ; ; ; ; ;83C0 01 ; ; ; ; ; ; ; ; ; ; ;add eax,1 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;//004AE24C处内存执 行 ; ; ; ;那么我们应该如何中断在上面几行呢? ; ;1.当我们对004AE24C下内存访问断点时候可以中断在004AE242也可以中断在004AE247 ; ;2.当我们对004AE24C下内存写入断点时候只能中断在004AE247 ; ;3.当我们对004AE24C下内存访问断点时候能中断在004AE24C ; ;到这里你可能不明白了为什么内存访问断点能中断在004AE247这句对004AE24C写入而且还能中断在 004AE24C执行呢? ; ;其实很简单我们只要仔细体会下“内存访问”这 4个字含义遍可以知道当我们对004AE24C进行读取时候需 要“访问”他吧当我对004AE24C进行写入时候也需要“访问”他吧!!当然我们要执行内存地址004AE24C代 码时候也是还是要“访问”他! ; ;所以我们不难得出下面结论 ; ;1.内存写入中断地方定是也可以用内存访问中断 ; ;2.内存执行地方也可以用内存访问中断 ; ;如果这时你认为那么内存写入岂不是没用了呵呵~那我要告诉你当然不是如果你想快速准确定位到 004AE247这行时候那么他就大有作用了! ; ;整理总结下:内存断点不修改改原代码不会像普通断点那样修改代码被校验而导致中断失败;对于区段访问只 是区域大了点其原理和上面分析 3行代码是样 ; ;ii.如何使用内存断点来寻找OEP呢? ; ;要回答这个问题首先要回答这个问题:壳是如何解压代码? ; ;正如我们知道壳如果要把原来加密或压缩代码运行起来就必须要解压和解密原来代码而这个过程我们难道不 能将他看做是对代码段(code段)写入吗?好了解压完毕了我们要从壳代码区段JMP到原来代码段时候难道不正 是对代码段(code段)执行吗? 理清了上面关系就好办了那么如果载入OD后我们直接对code段下内存访问断点时候定会中断在壳对code段写 入代码上面就像上面004AE247这行而如果当他把code段代码全部解压解密完毕了以后JMP到OEP时候我们是 不是还可以停在OE

文档评论(0)

zhoujiahao + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档