吾爱汇编

 找回密码
 立即注册

QQ登录

绑定QQ避免忘记帐号

查看: 4978|回复: 6

[转载技术] 第二十三章-OllyDbg反调试之ProcessHeap_NTGlobalFlag_OutputDebugStringA

[复制链接]
Shark恒 发表于 2015-1-20 16:36 | 显示全部楼层 |阅读模式

       第二十三章-OllyDbg反调试之ProcessHeap,NTGlobalFlag,OutputDebugStringA
本章是反调试的最后一章,本章将介绍ProcessHeap和NTGlobalFlag标志位以及如何通过这两个标志位进行反调试,介绍完这部分内容我们就掌握了常见的反调试技巧。反调试的手法还有很多,我们介绍的只是最基本,最常见的。像一些保护壳,比如说Execryptor的反调试是比较厉害的,我们后面再介绍。Execryptor壳除了我们介绍的这几种反调试以外,还有别的反调试手法,它的每个新版本都会增加一些新的反调试选项,这都是后话了,我们先来把常规的反调试手法介绍完。
HideOD插件中提供绕过这个两个标志检测的选项,我们来看看。
image002.jpg
HideOD插件见附件,上一章也提供了,红圈标注的就是绕过ProcessHeap和NTGlobalFlag两个标志位的选线,我们首先还是来手工绕过这个两个标志位的检测吧。
这两个标志置位的话表示当前进程正在被调试,很容易定位到这两个标志位。不知道大家还记得不得IsDebuggerPresent对应的那个调试标志位是如何定位的,如果你不记得的话,回头去看看第19章,如果你弄明白如何定位那个标志位的话,那么这两个标志位也就好定位了,因为这两个标志位就在那个标志位的附近。
image004.jpg
由于勾选上HideNtDebugBit选项,就会绕过ProcessHeap和NTGlobalFlag的检测,这里我们不勾选。
这里我们的实验对象是Cruehead’a的CrackMe,我们首先来定位这两个标志位。
我们用OD加载该CrackMe,并确保HideOD插件的配置如上图所示。
image006.jpg
好了,我们现在来看看如何手工定位和修改ProcessHeap和NTGlobalFlag这两个标志位。
我们先定位到第19章介绍过的IsDebuggerPresent的那个标志,最简单的做法就是EIP在入口点处时找到EBX寄存器的值,然后单击鼠标右键选择-Follow in Dump。完整的定位流程你可以回头看第19章。
image008.jpg
我们在数据窗口中定位到该标志位,我机器上的这个地址可能与你的不同,而且,该程序每次重新启动该地址也可能不同。
image010.jpg
我们知道IsDebuggerPresent是获取该标志位来检测是否被调试的,NTGlobalFlag就在它的隔壁,嘿嘿,我们只需要将EBX的值加上0x68就可以定位NTGlobalFlag标志位,当前,EBX的值为7FFDA000,加上0x68等于7FFDA068。
image012.jpg
这就是NTGlobalFlag标志位,当前不为零表示正在被调试,我们来手工将其修改为零。
image014.jpg
这里把该标志修改为零了。
image016.jpg
我们可以看到NtGlobalFlag标志清零了。
现在我们来定位另一个标志ProcessHeap,也很容易定位。
同样是EIP在入口点处时定位到EBX的值,然后将EBX的值加上0x18,我机器上ProcessHeap的值为0x140000,这是程序刚启动的时候创建的一块堆内存空间,该内存是用来保存一些重要的数据的,好了,我们知道这些就够了。
image018.jpg
我们来看看堆中保存了些什么。
image020.jpg
我们选中这4个字节,单击鼠标右键选择-Follow DWORD in Dump就可以在数据窗口中定位该堆空间了。
image022.jpg
偏移0x10的位置的4个字节就是HeapFlags标志了,当前为零,表示当前没有被调试,这是加载了HideOD和HideDebugger插件的原因,我们不加载这两个插件然后打开该CrackMe。
image024.jpg
现在该DWORD就不为零,表示当前正在被调试,但是使用了某些插件的话,即使我们不设置绕过ProcessHeap的选项,该DWORD也会变为零。
现在我们勾选上HideOD插件的HideNtDebugBit的选项。
image026.jpg
我们重新启动cruehead’a的CrackMe。
image028.jpg
断在入口点处,我们定位到IsDebuggerPresent以及NtGlobalFlag标志,可以看到都是零,我们再来看看ProcessHeap标志。
image030.jpg
也是零,说明HideOD插件起作用了。至此,我们就学会了如何手工定位和修改ProcessHeap和NTGlobalFlag标志。
接下来我们看看OutputDebugStringA选项。
image032.jpg
image034.jpg
这里要提到一点就是:
OllyDbg存在一个bug-当被调试程序通过OutputDebugString输出超长的一串调试字符串的时候,OllyDbg无法处理导致崩溃。我们可以通过上面的插件中的OutputDebugStringA选项来修复OD的这个bug。这里我引用Juan Jose的execryptor脱壳教程中一段话来解释:
image036.jpg
上图中Juan Jose的说法是:
“可以通过OutputDebugStringA输出一长串%s字符串,OD无法处理这么长一串字符串,就会发生错误。我们可以使用HideDebuggger插件来修复这个bug。这里我给OutputDebugStringA传递的参数是长度为100的%s字符串。”
以上就是Juan Jose的教程中描述。通过HideDebuggger插件的OutputDebugString exploit选项我们可以修复OD的这个bug。
好了,这里给大家留一个小练习,名字叫做antisocial1。在这里例子中大家可以看到我们前面介绍过的反调试技巧,同时还夹杂着其他的反调试,嘿嘿,大家发挥自己的想象来解决这个反调试吧。
(下面一点点是作者关于这个练习的提示,这里就不做翻译了,挺绕的,嘿嘿,下一章里面对这个例子会有详细介绍)

本系列文章汉化版转载看雪论坛

感谢原作者:RicardoNarvaja(西班牙人)
原作者个人主页:http://www.ricardonarvaja.info/

感谢热心翻译的朋友:
1~3章译者:BGCoder
4~58章译者:安于此生

全集配套程序下载地址:
链接: http://pan.baidu.com/s/1eQzTWfo 密码: vytv



评分

参与人数 15HB +9 THX +10 收起 理由
花盗睡鼠 + 2 + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
厘子 + 2 + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
游侠啊 + 1
Jawon + 1
Soul1999 + 1
一路走来不容易 + 1
af521 + 1
消逝的过去 + 1
l278785481 + 1
成丰羽 + 1 [吾爱汇编论坛52HB.COM]-感谢楼主热心分享,小小评分不成敬意!
ldljlzw + 1
ghostxu + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
jaunic + 1
hnymsh + 1
lies + 1

查看全部评分

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
hackysh 发表于 2022-2-20 00:27 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
ghostxu 发表于 2022-2-25 08:01 | 显示全部楼层

这么厉害!必须给个红包鼓励下~
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
头像被屏蔽
别管我了行 发表于 2022-3-1 03:43 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
曾经沧海 发表于 2023-4-4 10:17 | 显示全部楼层

感谢分享。正在试用。
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
一生逍遥 发表于 2023-4-20 10:48 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
游侠啊 发表于 2023-4-21 16:14 | 显示全部楼层

好东西啊,谢谢楼主分享
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

警告:本站严惩灌水回复,尊重自己从尊重他人开始!

1层
2层
3层
4层
5层
6层
7层

免责声明

吾爱汇编(www.52hb.com)所讨论的技术及相关工具仅限用于研究学习,皆在提高软件产品的安全性,严禁用于不良动机。任何个人、团体、组织不得将其用于非法目的,否则,一切后果自行承担。吾爱汇编不承担任何因为技术滥用所产生的连带责任。吾爱汇编内容源于网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除。如有侵权请邮件或微信与我们联系处理。

站长邮箱:SharkHeng@sina.com
站长QQ:1140549900


QQ|RSS|手机版|小黑屋|帮助|吾爱汇编 ( 京公网安备11011502005403号 , 京ICP备20003498号-6 )|网站地图

Powered by Discuz!

吾爱汇编 www.52hb.com

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