吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 16164|回复: 87
收起左侧

[原创] Voicemeeter Potato 3.0.2.2 完美破解方法(32位/64位)

  [复制链接]
longs75 发表于 2022-6-10 18:16
本帖最后由 longs75 于 2022-6-10 22:11 编辑

官方网站下载原版:
https://vb-audio.com/Voicemeeter/potato.htm
在下面这个帖子里,我已经提供了破解的方法:
虚拟声卡Voicemeeter8的爆破:https://www.52pojie.cn/thread-1047885-23-1.html

因为破解思路讲得比较笼统,有坛友跟帖希望我写个详细的分析过程。
其实在破解时走了一些弯路,最后给出的破解补丁用的话完全没问题,但并不是最完美,所以就借这个机会总结一下,给出一个完美的破解。
我认为的完美破解,就是以最少的修改量,达到最佳的破解效果。

言归正传。
Voicemeeter Potato 的保护方法就是用户名(邮箱)+注册码,重启会验证注册信息是否正确,算是比较传统的保护方法了,只是有一个特殊之处,重启验证的功能要等到一段时间之后才会出现,所以只破解注册框的话,明明显示已破解成功,但重启验证时仍然通不过。这个软件没有加壳,代码完全裸奔,新人练手很合适。
对于这一类的保护方法,最好从破解重启验证入手,因为重启验证一但通过,软件直接就是已注册状态了。
调试工具:x96dbg(x64dbg + x32dbg)

首先安装 Voicemeeter Potato 3.0.2.2,然后把系统时间往后调1年,让软件直接过期,运行软件(32位或64位)后,重启验证后提示:Unregistered Version,如下图:
image.png

先调试32位的主程序。
用x32dbg载入主程序,按一下F9,EIP暂停在主程序入口处。在主窗口处点击右键,选择:“搜索”——“当前模块”——“字符串”,出现字符串窗口后,搜索:Unregistered Version,有一条汇编指令对应这个字符串,双击这条指令,来到这个代码段。如下图:
image.png

这条指令一但执行,意味着软件已经进入未注册的处理流程了,在这条指令上边,一般会有另一个分支,即注册成功的处理流程。左边两条跳转分支线很清楚的表明,那才是正确的流程。
再往上看,其实还有一些分支是可以跳过未注册代码的:
image.png

分析这些分支代码:
首先,jmp指令是个标志,出现jmp指令,意味着下面的指令不可能再执行,也就是说,下面的指令,一定是从jmp后面的一条指令开始执行的,而且流程是从别处跳转过来的,所以jmp指令之前的代码段与我们分析的内容无关,我们只看它后面的代码就行了。当然有些复杂情况,我们还要追踪它从哪儿跳过来,一步一步往前分析,幸好,这个软件没那么复杂。
其次,jmp下面的跳转语句分成两组来对比一下,第1组判断条件稍微复杂一些,而且跳转的也比较远。第2组明显是在判断一个标志:标志为0,进入未注册代码,标志不为0,直接跳过未注册代码,来到子程序返回处。
通过上面分析,我们很清楚,要从第2组跳转指令入手,进行分析。

013E6510 | 833D A8CE5D01 00            | cmp dword ptr ds:[0x15DCEA8],0x0                               |
013E6517 | 0F85 34010000               | jne voicemeeter8.13E6651                                       |
013E651D | 833D ACCE5D01 00            | cmp dword ptr ds:[0x15DCEAC],0x0                               |
013E6524 | 0F85 27010000               | jne voicemeeter8.13E6651                                       |


有些人看到这里,就急着用jmp爆破,跳过未注册的代码段,不就完事了吗?答案是:不行!

重要提示:
这一类的软件注册,一般会有一个或多个注册标志,在程序运行期间,可能会反复多次去验证,仅仅跳过”未注册“的提示是不行的,那是自欺欺人,软件即便不显示”未注册“的信息,依然会限制软件的使用。根本的解决办法,就是找到软件在哪里对标志写数据,然后修改指令让它永远写入正确数据。

这里有两个注册标志,一个个分析。
现在我们知道,[0x15DCEA8]的值为0,就是”未注册“的标志,我们得想办法让它的值永远不为0。

对内存地址[0x15DCEA8]下硬件写断点,重新运行程序。
先是运行到这里断下来:
image.png

这段代码很显然是循环批量赋初值,不用管它。

按F9继续运行,然后再次中断到这里:
image.png

这里要把EAX的值填到标志位里,而且EAX=0。记住这里。
再往下运行(需要Shift+F9跳过异常),程序进入界面,显示未注册信息,再也没有中断了,说明上面这个写操作很关键,把EAX=0写到注册标志里了。
EAX的值是从哪儿来的?一般都是它上面的代码段计算出来的,而且上面一般都会有个关键的CALL是用于计算的。

01398D63 | E8 F86CF6FF                 | call voicemeeter8.12FFA60                                      |

反汇编这个CALL。x32dbg有个很好的功能,就是流程图,可以帮我们快速分析代码。在代码处点右键,选”流程图“,然后看这个CALL的流程最后的内容:
image.png

发现这个CALL有两个出口。出口2有一句跳不过的 xor eax,eax,也就是说这个出口是死路一条,很明显,另一个出口1才是一条生路。

分析出口1,有一句mov eax,ebx。沿着出口1向上追踪,从后往前倒着找关键路径:
image.png

image.png

image.png

经过上面的流程图分析,关键CALL从入口处开始,沿着”3—2—1“的分支流程走下去,并且在走到最后时,让EAX=1,就大功告成了。

根据这个分析,我们可以制定多种修改方案:
最直观的方案就是首先让”分支3“的最后一条指令直接jmp到”分支2“的起点,”分支2“最后一条指令直接jmp到”分支1“的起点,”分支1“最后一条指令直接jmp到后续流程,走到胜利的出口。

当然,我不是采用这个方案,我的方案是:
1、修改”分支3“一个字节,jmp到”分支2“;
2、修改”分支2“里 call voicemeeter8.12FF910 计算EAX的值,修改了1个字节,让EAX的值为1。后续流程自动走向”分支1“,自动走向那条生路。
这是一个纯属闲得蛋疼的修改方案,目的只为了最大程度减少对原程序的修改,纯爱好而已。

刚才提到,还有一个可能的标志是[0x15DCEAC],但我发现上面的修改完成后,软件已经完美破解,所以这个标志位也不管它了。

64位的主程序,破解思路完全一样,不再重复了。

最后附上x96dbg下的1337补丁,请自行调试,有什么不明白的跟帖交流,喜欢的请点个赞,谢谢。

voicemeeter8.rar (247 Bytes, 下载次数: 986)












免费评分

参与人数 22威望 +1 吾爱币 +40 热心值 +21 收起 理由
45312859 + 1 热心回复!
wwwcf1997 + 1 + 1 我很赞同!
lxgroot + 1 + 1 谢谢@Thanks!
nrevog + 1 + 1 谢谢@Thanks!
gao3226238 + 1 + 1 找了很久的破解,正好VM也过期,感谢楼主
Hmily + 1 + 20 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
溜玩音乐 + 2 + 1 谢谢@Thanks!
nxl258 + 1 + 1 我很赞同!
wangshu2 + 1 + 1 我很赞同!
daoye9988 + 1 + 1 用心讨论,共获提升!
zsksssss + 1 我很赞同!
wtujoxk + 1 + 1 补丁:https://nns.lanzoub.com/i21lI0680lsj
常胜将军 + 1 + 1 我很赞同!
笙若 + 1 + 1 谢谢@Thanks!
yyb414 + 1 + 1 热心回复!
shangpeng + 1 + 1 谢谢@Thanks!
vicky526356 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
homehome + 1 + 1 谢谢@Thanks!
j171801 + 1 + 1 我很赞同!
blindcat + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
某些人 + 1 + 1 谢谢@Thanks!
raycerlane + 1 + 1 谢谢@Thanks!

查看全部评分

本帖被以下淘专辑推荐:

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

wtujoxk 发表于 2022-6-11 09:27
补丁:https://nns.lanzoub.com/i21lI0680lsj
谢谢楼主分享!!!

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
searchjack + 1 + 1 我很赞同!

查看全部评分

chishingchan 发表于 2022-6-13 10:23
wtujoxk 发表于 2022-6-11 09:27
补丁:https://nns.lanzoub.com/i21lI0680lsj
谢谢楼主分享!!!

一直以来反感劫持补丁:生成额外的类似“病毒”的累赘库文件

下载:
https://download.vb-audio.com/Download_CABLE/Voicemeeter8Setup.exe

破解:(使用16进制编辑器,偏移是十进制)
文件:voicemeeter8x64.exe
偏移:59646:DA->DB
偏移:60170:82->08

文件:voicemeeter8.exe
偏移:60996:94->95
偏移:61391:65->09

免费评分

参与人数 1热心值 +1 收起 理由
小猫猫 + 1 谢谢@Thanks!

查看全部评分

 楼主| longs75 发表于 2022-6-10 19:38
本帖最后由 longs75 于 2022-6-10 20:08 编辑
chishingchan 发表于 2022-6-10 19:27
大神,附件破解包里的地址好像不对!

你用x32dbg、x64dbg加载补丁,然后再生成破解主程序。

image.png

image.png
raycerlane 发表于 2022-6-10 18:33
牛啊,大神,双膝膜拜!感谢分享,学习了
DCQ19890209 发表于 2022-6-10 18:36
感谢分享,学习了
July-7 发表于 2022-6-10 18:39
感谢分享...
ytlk0535 发表于 2022-6-10 18:40
感谢大神分享,学习一下
blindcat 发表于 2022-6-10 19:12
向大佬学习
j171801 发表于 2022-6-10 19:24
双膝膜拜!感谢分享
chishingchan 发表于 2022-6-10 19:27
大神,附件破解包里的地址好像不对!
1.png
2.png
hlwapj 发表于 2022-6-10 21:01
打了补丁替换后打不开
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-12-22 19:07

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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