吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5830|回复: 17
收起左侧

[原创] 八哈春节版之让自动化穷举爆破为你扫除疑云

  [复制链接]
冥界3大法王 发表于 2021-2-23 12:20
本帖最后由 冥界3大法王 于 2021-2-24 09:06 编辑

让自动化穷举式爆破为你扫除疑云

作者:冥界三大法王
你是否遇到过以下这样的问题?
  • 条件分枝太多
  • 步经路线太长
  • 来到顶层,穷途末路
  • 某个地方看不清走势
  • 不知哪跳来的?
  • 事件出现点和成功转换点就在附近区间点上
  • 活人不太好弄清到底该修改哪里?
七哈逆袭:由一条吊带外露引发的悲剧 章节中,我们遇到几个困扰,就是上表中提到的这些。
这时我们就要思考了。如何拆解问题,降低难度呢?论坛老魔头经常说,自己脑补自己脑补自己脑补,如果都能想通,还问你做啥?
我们都希望在困难之时有人在旁指点一下啊
最终总是滔滔不绝就像大姨奶一样唠叨,最后说啥没经验,没窍门,全是脑补来的。
求人难,求人难,求人难。
所以这就告诉我们说要自立更生,掌握方法和技巧,总结一套属于自己的打狗棒法。
image.png
方法是从哪来的?当然是自己花费时间总结和实践,通过查看论坛教程、精华文章,再深入实践再学习再总结再编程再发现问题和解决问题中不断完善中来的啦~~
静心思考过后,你会想到如下的问题:
  • 如何降低难度?               自动注释上,IDA地图,活人分析函数加上注释或标签,分析出函数的开始和结束部分
  • 修改点位于何区间?        当然是.text段了
  • 如何更有效的修改代码? 两头凑方针
  • 看着2进制代码能否直接想到汇编指令长啥样?(后两种刚刚掌握到一点门径,说得可能不对,就别贻笑大方了)
  • 根据场上情形猜测可能编程实现的思路是啥样?



装载字符串的方式:
1. 直接量的:用时就push 地址,或mov xxxx dword ptr 这种就好处理!
2.先读用载: 这种就比较纠结了难掌握了,比如很多共享软件启动过程中某个call中循环调用LoadString(当然未必都是这个函数,这里只不过举例而已)
但是都会把注册成功,注册失败的信息统统的载入到内存中,某个地方条件成立时,转向调用注册状态!
。。。。。。。
然后现在想想应用到爆破软件时。。。。。
我看到了注册成功的信息,注册失败的位置也已经找到。。。
但是二者缺少必要的联系,和成立跳转的关键时机。。。
如何让条件成立,直接转向。。。


下文我们就用这个相对来说比较简单一点的程序: 第一个CrackMe,请指教! 这个来说事吧。
  • 任何一个能动态调试的程序,你都得保证第一步先能正确的断下来
在断的过程中,你得先想一想,为啥你能正确的断下来?
为啥有时断下来却费了牛羊劲?
正确和失败都是有其内因的!
断下来的是啥? 执行过程,函数过程,调用过程,基于事件机制

  • 关键条件成立时的跳转时机
程序不会自己主动的告诉你我的关键点在哪里。
也不会自己告诉你,我走过了哪些分支和路线。
看过刘青云 《大时代》的知道里边有借运、借势、借蛊一说。
对于我们爆破和逆向PJ来说,也是一样的道理。要学会各种“借力”。在借的同时要明确主攻方向在哪?这样才不会在代码的海洋中迷失。
如果我们有一张类似于仙剑里的宝物坐标的地图不就好了(或者是航海地图)
这时,我们就会想到IDA的符号导入库,通过插件,我们可以导入到x36dbg来识别某些区域内代码。
image.png
然后呢,现在看起来是不是好一些?
但是很多时候,我们来到的地方要先Ctrl+A分析一下,这样程序才会识别的更好一些
image.png
(跳转的标线更清晰一些)
我们现在是不是还缺点什么?
对,那就是加注释
但有时,我们还需要大量的自动化的注释。。。
这包括以下几个方面
功能性,模块化说明的注释,这个可以通过插件来自动的识别某一些
image.png
接下来,我们要站在菜鸟的眼光,思考目标这个易语言CrackME如何断下?
image.png
程序都途径了哪些路线(算法)
经过了关键的跳转。。。实现注册失败。。。。或注册成功?


比如我们用Delphi编程时==》拖动一个按钮上去==》双击按钮==》自动化生成了事件过程。
当你点按钮时,就会发生相应事件。。。

有人说易语言按钮事件啊。。。
Ctrl+B==>FF 55 FC 或FF 55 FC 5F 5E
楼主要说的是给你两个大嘴巴子,外加两脚。
如果就像论坛中的贴子所说,我们编个工具,专门把 这个特征码做一些保护呢。。。
此时,你就狗屁断不到了。

然后呢,再想想,如果我知道事件的开始过程,或函数的开始过程的特征代码也是一样的道理。。。
所以呢,以此下断,也有可能断到。
当然你也可以内存中搜索下这个字符串,下个硬件断点或内存断点
或者利用窗口句柄。。wm_command。。。
或者E-debug等类似的工具。。。
或者跳转转移指令
image.png
又或者是 代码自行猜想与组合
image.png
或者呢,Alt+E,模块名下断点
又或者呢。
Ctrl+Shift+F
image.png
image.png
前边说了很多。。貌似是费话,然而却绝对有启发意义。
如果造按钮事件的这位高人死了呢?没有人发明这一招呢?所以说,深入的思考和反思,一切看似简单问题的深刻背后的原理才是我们发现PJ秘境的好方法。
此时,无论你用的什么方法,无论用的哪种手段,最终如能正常的断下且断在了事件开始的比较靠前的位置上,那么我要恭喜你,你第一步成功了。
接下来呢,当然第一次,我们都要习惯性的按Ctrl+F8 (如发现某个子call有问题,可以第2次时配合Ctrl+F7再深入迷宫深处发掘宝库机密)。。。
。。。经过了长途的爬山涉水。。。。漫漫长路。。。。最终我们抵达了。。。“出事目的现场”
image.png
这个程序怎么说呢,也简单,也复杂,程序按时间进行注册码的更换。。。
前边,我们说过了,我们多么希望:程序自动的、自觉的、告诉我,我途径了哪些路线,最好就像旅游时标上小黄灯,或小红旗,或导游图,告诉你地名(函数名,或此处的功能名)
然后我们可以设想下,当我们按-或ESC时,程序就会一点一点,一层一层,向上回退到最顶层处。。。
此时我们就可以利用下X32dbg/x64dbg(我们简称为x36dbg,冥界三大法王命名法)的自动跟踪功能
image.png
然后我们选择自动运行跟踪(配合Ctrl+F8 或 Ctrl+F7)
image.png
待其抵达 报错框(或目地结束点时)停止跟踪
复制全部信息到软件中处理一下
image.png
然后Alt+S到脚本窗口,粘入路径,来到最后一个ret处,按空格
image.png
1 2 3 这样的标序注释可以通过一些编程和筛选出更有效的一批来自动化的标上
image.png
然后2177处就全被自动的标上序号注释了。
然后,当你再度Ctrl+F8时,我们就能看到很多自己的地标景点了~~
如果呢,你再仔细的分析下这些汇编指令
如call
test
cmp
JCC
sete al 或 setne al 等等。。。。
复制全部
image.png
如果配合下EmEditor过滤呢。。。
image.png
那就只有不到1百个结果了,如果你再仔细的考虑下上下文,和出现弹框失败的事发地的关联性
那么最多也就几十个而已。。。
image.png
如果,我们再去写个程序呢?
image.png
image.png
我们只需要几轮粘贴,最终一手按F1另一只手喝茶就能快速简单的测试出可疑地址区间的那些地方如果被反汇编修改后的效果了。。。
由于此种爆破方法太过于暴力和强势,因此就不提供相应的工具了,这里只做参考和抛砖引玉。
具体这个程序可以反向修改sete al 或setne al
或JCC指令跳与NOP
或跟踪真码等10多种PJ方法来解决。
00401341 | 0F94C0               | sete al                                 | ====>94=>95
0040135B | 0F84 6E000000        | je crackme1.4013CF                      | =====>NOP
00401452 | 0F84 6E000000        | je crackme1.4014C6                    | ====>NOP

最后要说的是破解成功一钱不值,破解原理和方法可以深入地去思考。。。当然还有N多的知识点要去了解。
这样我们就通过自立更生,极限脑补的方式解决了对目标代码区间,危险代码的穷举式修改,快速找到合理的跳转点的位置了。
忆往昔我的旧时光都到哪里去了?!


必须掌握的基本功:

最后我们要特别感谢waweiggfnh同学对本节目的支持和赞助~~ @waweiggfnh

免费评分

参与人数 10吾爱币 +12 热心值 +9 收起 理由
深蓝浅蓝 + 1 + 1 用心讨论,共获提升!
Li1y + 1 + 1 谢谢@Thanks!
cdjjustin + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
cody8888 + 1 + 1 用心讨论,共获提升!
笙若 + 1 + 1 谢谢@Thanks!
小朋友呢 + 2 + 1 已经处理,感谢您对吾爱破解论坛的支持!
无花 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
twog + 1 小老虎你用的最溜
By丿安之若素 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
无闻无问 + 2 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

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

 楼主| 冥界3大法王 发表于 2021-2-23 12:29
沙发,那个只能是我的。
xqw826 发表于 2021-2-23 12:33
无闻无问 发表于 2021-2-23 13:12
看到…必须掌握的基本功,我独自神伤,我连三分之一都达不到
…看来混不下去了

免费评分

参与人数 1吾爱币 +1 收起 理由
冥界3大法王 + 1 啐死破vmp的大佬。。。。。。

查看全部评分

蓝枫冰笛 发表于 2021-2-23 15:51
仰望大佬
MZA1220 发表于 2021-2-23 16:29

仰望大佬
m-10306 发表于 2021-2-23 19:14
太详细了 牛皮
lhtzty 发表于 2021-2-23 22:36
谢谢分享!!!!!!!!!!!!!!!!!!
你猫临死前 发表于 2021-2-24 01:08
这插件厉害。楼主自己搞的吧。
Karry1121 发表于 2021-2-24 08:42
谢谢楼主分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-15 12:41

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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