初学x64-DBG对国外一虚拟串口软件爆破-如侵权请联系删除
看了几位老师的爆破教学,正好用到一串口软件,决定尝试一下。详细操作不解释了首先查壳 利用论坛的工具PEiD ,怎么这样?难道是有壳?
换另一个ExeinfoPE ,可以看出没有加壳,为何PEiD 刚才的没检测出来?也许是版本过低。
马上把主程序拉入DBG运行。
按F9 运行,第一次按程序没有任何显示,再按一次F9才出现程序介绍窗口和注册窗口
进入主界面,点击 HELP---Register---弹出对话框,随便输入000000,得到注册码错误的提示框。记住 Invalid key关键字。进入DBG 查找关键字。找到关键字的地址如图,点击进入,向上查找关键跳转语句。
这个关键跳转是语句正是地址: 7FF7AF4805BA所对应的,跳转到地址.....7FF7AF4806B2.也就是哪个注册码错误的提示窗口。如果是正确的注册码。程序跳转到7FF7AF480622 地址对应的。所以用JMP直接跳转,即便输入错误注册码,软件也不会弹出错误信息了,反而会提示“成功”。
结果正如当初所想,在保持补丁后。从新运行软件。输入假码,软件弹出“注册成功”窗口,第一步完成!
在界面上的 UNREGISTERED 字样,看起来很显眼,消掉它!重复做查找字符串 UNREGISTERED 。
跳转到内存窗口,把3A 修改成00 。
同样寻找字符串”UNREGISTERED. Please order 64 bit license."这是出现在关于 窗口里的信息,也去掉好了。。第二步完成,
最后对于程序开始的提示注册窗口。查找字符串,找到地址
我想红框内的语句都与弹出窗口有关。全部用NOP 代替吧。
最后补丁保存为补丁主程序。虽然有点多,但是我担心那一大段语句修改后造成程序出错。最后完成。
再次运行,提示窗口没有了,界面也清爽了。
这就是我在论坛学习2天后的爆破过程,下一步我想学习算法,能真正看懂程序算法,做出真码。感谢大家!最后附上原程序,希望各位批评指教!
软件11M ,超过限制3M,有兴趣的去官网下载吧。
第一次发帖,如有违规,请版主删除
本帖最后由 woyaokafei 于 2022-6-21 12:54 编辑
关于最后一步,去掉注册提示窗口,当初是删除了好多行代码,经过后来我读代码,终于让我找到了关键跳转,直接JMP ,省去了删除大段代码的修改。关键跳转如图。
灰色底这一行代码就是关键跳转,即:“jne vspemulator.7FF71CB596BF” ,上一句“test al,al ”应该就是比较真注册码和假注册码。目前,我的功力还达不到读懂算法的深度,希望大神继续指教。既然如此,果断把jne 改成jmp ,保存补丁文件后,提示只修改了7个补丁,
运行主程序,注册码提示窗口消失。
Hmily 发表于 2022-6-13 18:28
尽量不要这么爆破,比如修改关键跳转,分析下为什么会跳转,把对应跳转上面call里的返回值修改,可能只需要 ...
感谢老师指教,刚才找到了关键跳转,但是我还是想看懂最后算法,做出真码 真爆破!185字节补丁,楼主厉害了,过程记录非常详细 楼主厉害了楼主厉害了 真爆破!185字节补丁,楼主厉害了,过程记录非常详细 发现三只鹦鹉。楼主威武。 尽量不要这么爆破,比如修改关键跳转,分析下为什么会跳转,把对应跳转上面call里的返回值修改,可能只需要修改一个地方就全破解了。 我有一个程序,能用你这方式爆破不?
学不会,谢了 没有测试一下功能是否正常? 虚拟串口,我还是比较喜欢用。Virtual Serial Port Driver
页:
[1]
2