记一次UltraISO 9.7.5的逆向破解

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

0x02 总结

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

0x004030A8  74 -> EB0x00423C61  75 15 -> 90 90 0x00423C76  74 -> EB

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

THE END
喜欢就支持以下吧
点赞1
分享
评论 抢沙发
  • 管埋员

    昵称

  • 取消
    昵称