ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:318.24KB ,
资源ID:17965415      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/17965415.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(使用OllyDbg从零开始Cracking 第四十章OllyDbg脚本的编写Word格式文档下载.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

使用OllyDbg从零开始Cracking 第四十章OllyDbg脚本的编写Word格式文档下载.docx

1、我们来看看日志信息。我们可以看到最后一次异常是一个非法指令异常,现在我们不勾选的忽略非法指令异常选项。这里我们去掉Invaild or privileged instruction这个选项的对勾,加载UnPackMe_PELock1.06,运行起来。断在了异常处,如果我们按Shift + F9也可以继续运行下去。也就是原版OD是就算你勾选了忽略非法指令异常这一项,OD并没有自动忽略。如果是仅仅有一个这类异常,我们按一下Shift + F9也没什么。但是如果目标程序会产生200或者300个这样的异常,难道我们也手工去按Shift + F9不成(PS:连续按Shift + F9 200多次,那还不

2、得疯掉哇,哈哈)。我们再次勾选上Invaild or privileged instruction这个选项,运行起来,再次弹出了错误框。下面我们来尝试修复OD的这个BUG,再新开一个OD。选择新的OD主菜单中的File-Attach。定位到弹出错误框的OD所在的进程。定位到弹出错误框OD所在的进程,单击Attach(附加)。断在了这里,我们运行起来。接着我们来看一下区段列表窗口。现在我们可以看到OllyDbg的各个区段情况,接下来我们给MessageBoxA这个API函数设置一个断点。由于我们单击错误消息框上面的OK按钮,就到达MessageBoxA函数的RET指令处,我们给该RET指令处也设

3、置一个断点。弹出错误消息框后,我们单击Aceptar(OK)按钮。就会断在MessageBoxA这个API函数的返回RET指令处,我们单击F7键单步。下面我们查看一下字符串列表,看看有没有消息框提示的错误信息字符串。我们看看有没有字符串里面含有bypass这个单词。我们可以看到我们要找到字符串在这里,我们在这个字符串上面双击。我们可以看到这里有几处JNZ可以跳过弹出错误消息框的代码,这里我们将435260处的JE修改为JMP 43528D,保存到文件中。接下来我们看看Patched4这个OD该处的代码是怎么样的。这里我们可以看到435260处的条件跳转被修改为无条件跳转,即修改为了JMP 43

4、528D,这样就能跳过填出错误消息框的代码。这就是Patched4修复非法指令这个BUG的原理。大家可以自行给OD打补丁也可以直接用Patched4 这个OD。知识点2就是要给大家演示如何编写脚本,我们需要用到OllyScript0.92.dll这个插件,将其放到OD的插件目录下。打开Patched4这个OD。我们可以看到主菜单中出现OllyScript的插件子菜单项。现在我们加载UnPackMe_PELock1.06,下面我们编写一个简单的脚本让该壳无法检测到我们设置的硬件断点。关于这个插件的使用说明大家可以参考插件文件夹下面的readme.txt。这个脚本的思路很简单:每次异常触发后都会断

5、在KiUserExceptionDispatcher,接下来就会由操作系统去调用异常处理函数,这个时候我们设置硬件断点可以被检测到,所以这个脚本要做的就是当前断在KiUserExceptionDispatcher时,清除掉硬件断点,当断在下面的CALL ZwContinue时再将硬件断点恢复。由于这是我们要编写的第一个脚本,所以不会让大家写太难的。首先给KiUserExceptionDispatcher和ZwContinue分别设置断点。现在我们开始编写脚本。一般来说脚本都有一个开始标签:beginning:设置这个标签可以让我们方便的JMP beginning,接下来我们来设置硬件断点,举个

6、例子:bphws 12ffc4, “r”bphws - 该命令可以对指定地址设置硬件断点,这里是对12ffc4设置硬件断点, “r”表示读取,”w”表示写入,”x”表示执行。bphws 12ffc4,“r”work:设置完硬件断点以后我们再来添加一个work标签。eob to_processrun这里的eob,-表示在下次中断发生时,跳转到指定标签处,这里该标签是to_process,即当程序中断下来时将跳转到to_process标签处,接下来run命令表示运行起来。这里就是关键的部分了,当前OD中断后,我们就需要检查是否断在了KiUserExceptionDispatcher入口处,所以我们

7、在to_process标签下面来进行检查。to_process:cmp eip,7C91EAECje to_clearcmp eip,7C91EB03je to_recoverjmp to_final我这里7C91EAEC是KiUserExceptionDispatcher的入口地址,当断在KiUserExceptionDispatcher入口处时,eip为7C91EAEC,所以跳转到to_clear标签处清除硬件断点,接下来当断在CALL ZwContinue指令处时,就跳转到to_recover标签处恢复硬件断点。清除内存断点如下:to_clear:bphwc 12ffc4jmp work

8、当前跳转到to_clear标签以后,通过bphwc 命令删除12ffc4处的硬件断点,接着跳转到work标签处继续运行程序。另外一个to_recover标签处是当断在CALL ZwContinue处时重新设置硬件断点的。to_recover:jmp beginning接下来就是直接跳转到开头beginning标签处了,也就是将重新设置硬件断点。接下来就是程序断在硬件断点处时,也就是jmp final。jmp final最后是:final:MSGYN “是否继续?”cmp $RESULT,1je beginningret这里的MSGYN 命令会将指定消息,显示到一个对话框中,这个对话框上面有”是

9、”,”否”按钮。如果点击”是”,保留变量$RESULT等于1,否则保留变量$RESULT等于0。如果我们想继续的话,就单击”是”,这样就会跳转beginning标签处继续执行脚本,如果我们不想继续,就单击”否”,这样就会直接ret,脚本就执行完毕了,OD就会停在硬件断点处。整个脚本就是这样的:该脚本的整个执行流程,大家可以参考下图中的解释,这里我就不再赘述了。我们将上面的脚本保存到一个txt文本中,接着用OD加载UnPackMe_PELock1.06,然后给KiUserExceptionDispatcher入口处和call ZwContinue指令处分别设置一个断点,接着在主菜单中找到OllyScript插件。这里我们看到断在了硬件断点处,如果要继续执行脚本的话,单击YES按钮。这里我们可以看到完美运行,我们来看看硬件断点窗口。这里我们可以看到硬件断点设置成功了,也可以正常断下来,达到了我们预期的效果。本章到此结束,下一章我们来介绍如何编写脚本修复PELock的IAT。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1