selph
selph
发布于 2023-08-01 / 117 阅读
0
0

Acala DVD Ripper Pro v6.1.2 破解分析

软件基本信息

软件名称软件版本编程语言加壳情况难度难度说明练习日期
Acala DVD Ripper Pro6.1.2C++简单2023.08.01

练手用的老旧软件(购买页面已经无法访问)

启动窗口:显示未注册,需要输入激活码

image

内容界面:

  • help显示未注册
  • 窗口右上角有购买和激活按钮

image

破解过程:

输入错误的license账号密码:

image

报错提示信息:Sorry - Invalid licensed name or licensed code

搜索字符串,直接定位到了关键跳转:

image

这里一边是显示注册失败,一边是显示注册成功

要注意:这里不要修改表面跳转指令(0x00479F74)进行破解,这种的破解是不完整的,每次打开程序的时候一定会再次进入这个注册窗口,因为这种方式只破解了这个窗口按下按钮时候都验证;

这个jne的判断条件是eax,eax常用作保存返回值,附近的这个call一般是验证函数,从验证函数内部打补丁来返回1会更稳妥一些,因为同一个验证函数可能会在不同地方多次调用(代码复用)

经过测试,这里的校验函数会调用1次,来判断是否打开Neg窗口,然后在Neg窗口的OK按钮中再次被调用,只要这个校验函数返回正常,Neg窗口就不会出现

跟进这个验证函数,找到给eax赋值的地方:

image

可以看到,这里应该是内部的下一个校验函数,根据其返回值来设置eax的值,因为现在已经在验证函数里面了,直接修改这个je跳转为jmp就也行(只修改了1个字节)

保存,再次打开程序:

image

没有了开头的Nag窗口,也没有了购买按钮,Help页面显示已注册,完成破解


评论