吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3875|回复: 33
收起左侧

[原创] 一个字符串禁止Ollydbg调试

  [复制链接]
忆魂丶天雷 发表于 2023-3-26 21:28
本帖最后由 忆魂丶天雷 于 2023-3-26 22:48 编辑

前言


好,成功把你骗进来来了,其实我是个标题党别往下看了(猫猫头保命😹~)

正文


OllyDebug久远的历史与现状

OD作为一款Ring3级的调试器,他的地位与名声想必大家都有所耳闻,在前些年它还是最流行的调试工具(为什么说前些年?当然是因为开源的X64dbg的崛起)......而今虽然逐渐败落,但是使用人数依旧很多,这得当然得益于各种强大的OD插件和各位大牛二改版本,使得OD强行续命残喘至今,但是因为其本身作为一款闭源软件,又加之年久失修无人维护,存在在很多致命的缺点,比如不支持64位应用调试(据说作者有开发OD2.0但是....有兴趣可以自行搜索),又比如今天的主题,一个字符干掉OllyDebug.

从一种老掉牙过时的反调试手段说起

相信如果有学习反调试的朋友应该都有见过或则听说过一种针对OllyDebug。
名为OD漏洞攻击的反调试方法。
演示代码如下:

#include <Windows.h>
int main(int argc, char* argv[])
{
        MessageBox(NULL, TEXT("程序开始运行!"), NULL, MB_OK);
        OutputDebugStringA(TEXT("%s%s%s"));                      //
        MessageBox(NULL, TEXT("程序正常运行!"), NULL, MB_OK);
}

原理如下:

程序调用OutputDebugString()会产生一个特殊标志的软件异常,如果程序正在被调试那么调试器线程的WaitForDebugEvent函数会将此异常捕获并转化为OUTPUT_DUBGU_STRING_EVENT调试事件,OD在捕获此调试事件后会接着调用Sprintf()将OutPutDebugString中的字符串打印出来。而Springf函数并不会对参数进行检查,如果OutputDebugStringA(TEXT("%s%s%s")),OD中是Springf(目标缓冲区,"调试字符串"),因为现在调试字符串是“%s%s%s”,那么Springf(目标缓冲区,“%s%s%s”,X1,X2,X3),而此X1,X2,X3就会随机从栈中取出数据作为字符换的首地址,所以很容易取到的数据是一个无效指针会产生缓冲区异常。

值得注意的是,目前多数版本的OD已经将此漏洞修复(感恩前面说的强大的插件)

%s%s%s的死灰复燃(活了但没完全活)

是的,很遗憾,如前面所说,通过OutputDebugString输出一下%s%s%s就可以让OD崩溃的漏洞被修复了,但是%s%s%s好像还能抢救一下,这里也不卖关子,其实只是一个很简单的操作,将任意文件的文件名重命名%s%s%s.exe即可

经过测试,咱们论坛的吾爱破解专用版Ollydbg完败,如图所示:
1.jpg
2.jpg
当然,也并不是所有的OD都可以打败,例如我跪舔的一位技术大牛表哥集成的一款二改OD就可以完美的避免这个问题(默认配置就可以过VMP反调试哦~当然我只白嫖到3.6现在都好像出VMP3.8了不知道反调试有没有改进)。
3.jpg

更为牛逼的字符串

好 本贴结束🐶

可惜,%s%s%s的确很强大,但是在各大OD插件的魔法攻击下,它最终还是没活过来(除非你的对手用的是吾爱破解专用OD~,继续猫猫头保命😹)。
但是这也引发了我们一个思考,既然都是字符串,那么是否还存着其他的更为强大的字符串呢?答案是肯定的!

忆想当年,谁不是一个非主流的中二少年(bushi~)你多多少少也用过几个非主流的网名吧。比如じ浅夏♕初雨又比如꧁碎花小裙子꧂,总有一个你用过吧

那么我们给软件穿上重命名꧁碎花小裙子꧂呢?
4.jpg

如图所示,强大到直接无视VMP反调试,碾死%s%s%s的OD竟然败在了碎花小裙子下。而且更为牛逼,直接显示无法定位文件,OD连加载文件都加载不了。

wow 1.gif 碎花小裙子牛逼,还等什么?赶紧去给你的软件穿上碎花小裙子!

小菜的测试结果

好,言归正传,其实真正牛逼的并不是什么碎花小裙子,而是其中的特殊字符

这就是一个字符串的力量,这里可以简单的说一下小菜(我)的测试结果,碎花小裙子通杀了我收集的包括吾爱破解专用OD在内的17款OD,均无法直接定位文件,也就是说如果你想把文件直接拖到OD里调试,那不好意思,没门。

但是,遗憾的是,部分OD依旧可以通过附加功能,在进程列表中找到进程,然后测试发现可以正常进行附加调试,当然也有部分OD在进程列表中直接找不到含有特殊字符的进程,变相的实现了进程隐藏,但是具体原因不明,推测是某些插件起了作用。

当然,对于先进的X64dbg而言,自然不存在这种BUG,毕竟OD是年龄摆在那里。但是,也不是说绝对通杀所有的OD,我的测试结果只能证明,可以通杀我收集到的17款。

那么有字符串可以干掉X64dbg吗?

我的答案是,有,

为什么?因为,之前的群里聊到本主题相关内容时有大牛演示了。

那么这个字符是什么?

我也想知道,但是被打马赛克了,我甚至百度了有没有马赛克解码工具。(真的没什么其他用途!)

引发的反思与闲谈

经此一文,大家应该初识了字符串的神奇威力,其实发生在我们身边因为字符串导致的严重安全隐患还是很常见的,例如在QQ群流行的各种卡屏代码,尤其是对手机端造成的影响甚至可以达到让你必须清空QQ数据才能重新正常打开QQ(别问我怎么知道的,谢谢),又例如21年Win10爆出的严重漏洞,一段字符串\:$i30:$格式化你硬盘,再例如苹果IOS也发生过多起因为字符串导致的严重BUG,比如特殊字符串WIFI名称直接让手机断网,又例如某应用超长字符串导致手机卡死重启。

所以,真的不要小看一个小心的字符串,有时候会给你带来意想不到的的后果。

好了,到这里,这个水贴是真的结束了,就技术含量上来说,毫无技术含量,就实用性上来说,也几乎为0,毕竟虽然一个特殊字符串可以保护你的软件不会被OD加载,但是应该不会有人不会重命名吧,不会吧,不会吧,不会吧。

最后的最后,虽然说,应该不会有那种无聊的人在下面吐槽“没什么用”“垃圾”之类的攻击性言论,但咱们还是有言在先,如果真的觉得没用,对你帮助的意义不大,那么请如前言中所说,我是个标题党,你可以直接关贴。因为小菜身体不大好,受不了气,不能激动,请饶我狗命一次。

点评

CpuDbg也存在这个问题。  发表于 2023-3-26 21:41

免费评分

参与人数 13威望 +1 吾爱币 +31 热心值 +12 收起 理由
haoyeeh + 1 + 1 用心讨论,共获提升!
WZYang + 1 我很赞同!
Hmily + 1 + 20 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
hk9186 + 1 热心回复!
BananaLi + 1 + 1 热心回复!
daxia2002 + 1 + 1 用心讨论,共获提升!
Item0000 + 1 + 1 温故知新!
gunxsword + 1 + 1 热心回复!
Rzzz820 + 1 热心回复!
Natu + 1 + 1 用心讨论,共获提升!
E式丶男孩 + 1 + 1 666
成熟的美羊羊 + 2 + 1 谢谢@Thanks!
homehome + 1 + 1 楼主热心地解释了这么多,值得尊敬,谢谢

查看全部评分

本帖被以下淘专辑推荐:

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

Asympto69 发表于 2023-3-27 23:54
感觉一开始制定各类字符的计算机表示规范的时候就很不严谨,才有了现在这么多的问题哈哈哈哈
 楼主| 忆魂丶天雷 发表于 2023-3-29 17:38
孽小帅才 发表于 2023-3-26 22:35
woqu 我去!!!调试值钱修改文件名字不就可以了么

是的,正如文章末尾所说,解决这个问题的方法很简单就是对文件进行重命名。但是我需要强调的一点是,文章中本质上只是简单粗暴的对OD存在的一个BUG进行了复现,至于如何运用这一个BUG,这正是大家需要思考的问题。
 楼主| 忆魂丶天雷 发表于 2023-3-26 21:30
henry307 发表于 2023-3-26 21:43
如果可以,各位大牛出此破解调试的基础课吧,针对新手的 OllyDebug
coder_LGB 发表于 2023-3-26 21:45
回头试试看
enzospace 发表于 2023-3-26 22:01
收藏了,感谢分享
Natu 发表于 2023-3-26 22:06
道高一尺魔高一丈,楼主分享的文章挺好的,免费评分呈上,略表敬意!
思想者 发表于 2023-3-26 22:22
简单易懂, 学习了
孽小帅才 发表于 2023-3-26 22:35
woqu 我去!!!调试值钱修改文件名字不就可以了么

免费评分

参与人数 1吾爱币 +1 收起 理由
LzSkyline + 1 瞎说什么大实话,人家水文章不要面子的吗。。

查看全部评分

Rzzz820 发表于 2023-3-26 23:13
见识了!!
larrybbb 发表于 2023-3-26 23:27
太厉害了!!学习了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-23 01:39

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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