selph
selph
发布于 2023-03-15 / 110 阅读
0
0

Audio Converter Plus v6.3.0 破解分析


title: Audio Converter Plus v6.3.0 破解分析 date: 2023-03-10T10:01:15Z lastmod: 2023-03-10T14:57:12Z


Audio Converter Plus v6.3.0 破解分析

软件基本信息

软件名称软件版本编程语言加壳情况难度难度说明练习日期
Audio Converter Plusv6.3.0delphi无壳简单好定位,好修改2023.03.10

功能:音频格式转换器

image

破解过程:

暴力破解:

在启动弹窗的时候,根据调用堆栈,定位弹窗函数:

image

这里整个流程大概是:

image

获取用户输入,处理一下,用序列号计算md5,然后跟内置的100组md5比较,如果有一组是相同的,给bl设置为1,表示验证通过

点击Register进行注册,发现没有任何提示说明是否注册成功,点击帮助的注册,依然是这个界面:

image

再次定位这个界面的逻辑:

image

可以看到,这里的逻辑和之前启动NAG弹窗的处理逻辑是一样的,但是不在一个地址

一份代码写了很多遍看来

搜索一个这个验证逻辑的特征:就是进行100个比较:

image

发现,这里搜出来了5次这样的操作

patch思路1:对5段代码分别进行patch,让这个对比跳转失效,nop掉

能不能改的字节少一点呢?

这里观察这里的跳转条件:call之后直接jne指令,执行到call指令的时候,ZF=0,执行完出来的时候,ZF=1,那是不是可以去修改这个call呢?

查看引用得知,这个call被8次地方调用,其中5次是验证逻辑里需要的

image

经观察,剩下三个调用不用管他好像也没啥问题

patch思路2:patch这个比较call,进去之后直接ret

完成爆破:

image

经测试,转换音频之后,大小没有缩为50%,表明爆破成功

去除更新提示

完成爆破后,虽然没有注册NAG了,但还有个更新提示弹窗:

image

用同样的方法去调用堆栈定位弹窗逻辑,然后一层一层向上追,追到没有弹窗信息的那一层:

image

发现这里就是一个跳转来选择是否调用这个最终会显示弹窗的call,所以只要patch这里,就不会弹出更新提示了

再往上看看:

image

启动代码一般就启动的时候执行一遍,这里对比版本更新信息,然后判断是否弹窗,这里的思路是直接修改je跳转为jmp,强制跳过弹窗环节


通过查软件的流量,发现发送的请求地址是域名:

image

如果想要禁用该软件的网络连接,可以去patch网络相关的函数调用,或者对程序里保存的域名进行篡改,变成无效域名进行访问


评论