首页
社区
课程
招聘
[原创]记一次UltraISO 9.7.5的逆向破解
2021-2-5 12:41 5628

[原创]记一次UltraISO 9.7.5的逆向破解

2021-2-5 12:41
5628

0x00 前言

在官网下载UltraISO 软碟通的安装包,一顿操作安装好之后,打开程序之后弹出尚未注册的窗口,输入注册码提示需要重启软件,猜测在打开软件之后会通过某些操作比较输入的注册码。 image-20210205112643381

0x01 寻找注册码验证方式

既然猜测是在程序启动的时候有一些操作验证注册码,不妨使用火绒剑对主程序(UltraISO.exe)进行监控看看它在启动的时候做了什么事情。

通过简单的观察发现了一处可疑注册表读取操作,大胆猜测我们之前输入的注册码就是通过注册表来保存,并且在程序重启的时候进行验证。 image-20210205113707569

用x32dbg和IDA打开UltraISO.exe进行分析,并在x32dbg中对RegOpenKeyA下断点,通过栈回溯结合IDA的反编译结果定位到了读取注册表中注册码的函数。 image-20210205114824635 image-20210205114951562

CTRL+F9跑出这个函数看看后面哪里用到了我们的注册码,在0x0040190C函数里用到了我们输入的Name和Key,这里应该就是验证算法函数了,结合红绡枫叶前辈的帖子UltraISO注册算法&keygen分析虽然地址不同不过汇编代码都是大致相同的,本文的核心还是在破解部分对于验证算法的分析我就不班门弄斧了,可以去看红绡枫叶前辈的分析帖子。

接着F8往下走,遇到一个比较跳转的部分,先让跳转生效看一下效果。 image-20210205115820215

打开依旧还是未注册版本,我们返回去给0x7C8F84下断点看看后面还有哪些地方用到了,接着跳过未注册窗口运行起来,又断在了一个比较跳转地方,在IDA里面的这一条语句也包含了下一个的跳转。 image-20210205120822604 image-20210205120844600

因为我们现在肯定是错误的注册码,所以先以相反的方向执行跳转然后在运行起来看是否注册成功,运气很好这三个跳转修改掉之后就注册成功了。 image-20210205121110411

最后还有一个小坑,上面修改完文件保存会闪退,x32dbg下CreateFileA断点然后栈回溯在结合IDA发现在文件另存为和保存的时候会再次判断注册码。 image-20210205200226375 image-20210205200250741

0x02 总结

总共就是要Patch 4个地方,生成的新应用程序覆盖掉之前的UltraISO.exe就可以了

0x004030A8  74 -> EB
0x00423C61  75 15 -> 90 90
0x00423C76  74 -> EB
0x0044BBD0   74 -> EB

本程序的验证算法部分还是有难度的,不过结合火绒剑等分析工具破解对于新手试手还是比较友好的,不知道为什么没有遇到网上以前的分析文章遇到的ASPack壳




[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。

最后于 2021-2-5 20:06 被Jev0n编辑 ,原因: 保存文件有个小坑
收藏
点赞3
打赏
分享
最新回复 (6)
雪    币: 57
活跃值: (88)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
istigatore 2021-3-4 01:33
2
0


UltraISO Premium Edition 9.7.5.3716 - от 19.12.2020 with kg
http://95.141.193.17/noload2/files/074/UltraISO-RSLOAD.NET-.rar
user: rsload.net
pass: rsload.net

最后于 2021-3-4 01:34 被istigatore编辑 ,原因:
雪    币: 30
活跃值: (3385)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
肇事孤儿 2021-3-4 09:30
3
0
为什么部修改0X7C8F84与0X67E0C0的值呢,看看哪儿写入的改掉就ok了
雪    币: 2055
活跃值: (3836)
能力值: ( LV4,RANK:55 )
在线值:
发帖
回帖
粉丝
Jev0n 2021-3-4 11:01
4
0
肇事孤儿 为什么部修改0X7C8F84与0X67E0C0的值呢,看看哪儿写入的改掉就ok了
我记得直接改掉修改变量的地方应该也是可以的,破解的方法肯定不止一种
雪    币: 856
活跃值: (385)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
开心一族 2021-3-6 20:22
5
0
看了2次还是没有太明白,先收藏再慢慢消化,刚入门学。
雪    币: 31845
活跃值: (7105)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
ninebell 2021-3-6 22:36
6
0
开心一族 看了2次还是没有太明白,先收藏再慢慢消化,刚入门学。

原因很简单,实践破解的数量不够。无法做到听话听音,锣鼓听声,看到的永远没有实践动手得到的多!

其实当你破解的数量够多时,用下顺序跟+字符串对比,再看到附近的比较判断点,改成功的几率很高。

编个自动化提取批量输出补丁效果的软件是非常Happy的。

最后于 2021-3-6 22:38 被ninebell编辑 ,原因:
雪    币: 2055
活跃值: (3836)
能力值: ( LV4,RANK:55 )
在线值:
发帖
回帖
粉丝
Jev0n 2021-3-7 10:10
7
0
ninebell 开心一族 看了2次还是没有太明白,先收藏再慢慢消化,刚入门学。 原因很简单,实践破解的数量不够。无法做到听话听音,锣鼓听声,看到的永远没有实践动手得到的多!其实 ...
前辈说的在理
游客
登录 | 注册 方可回帖
返回