selph
selph
发布于 2023-03-23 / 105 阅读
0
0

Internet Cyclone 2.28 破解分析


title: Internet Cyclone 2.28 破解分析 date: 2023-03-16T10:14:37Z lastmod: 2023-03-16T11:16:05Z


Internet Cyclone 2.28 破解分析

软件基本信息

软件名称软件版本编程语言加壳情况难度难度说明练习日期
Internet Cyclone2.28Delphi无壳简单可以追注册表验证逻辑,也可以追注册按钮的逻辑2023.03.16

启动Nag:

image

主界面:

image

注册界面:

image

这是个2017年的软件,比0几年的软件看起来舒服多了

破解过程:

从注册界面入手,搜索字符串

image

delphi程序的字符串操作一般流程比较长:

image

可以看到,这里上面经历了很多操作,才到这个弹窗

这里可以猜测注册成功也会有一个弹窗,就高亮这个函数调用往上找,找到关键跳转:

image

很快可以看到这里,这里是注册通过的弹窗,跳转会跳到注册失败的弹窗处,下面那一大堆都是注册成功之后的处理流程了

这里校验的是eax的值,去上面紧接着的注册函数去追踪eax的赋值:

image

eax的值最终来自于ebx,当前输入得到的eax的值是-1,最终验证成功需要的eax的值是0,这里可以直接把这条语句改成xor eax,eax​,来完成patch

注册成功弹窗:

image

打开火绒剑监控行为,监控验证通过这个分支的代码看看后面都做了啥:

image

可以看到,这里注册成功后,将Name和SerialNumber的ASCII形式写入了注册表

注册成功信息:

image

重新打开patch后的程序,无Nag了,注册成功

另一种思路

我们知道程序会使用注册表存储信息,那就可以搜索注册表的键,去定位操作注册表的地方,也许程序启动的时候的验证会去访问注册表获取信息:

image

对下面两个注册表键下断点,程序跑起来:

image

这里从注册表里获取Name和SerialNumber,然后调用一个验证函数拿到返回值,如果正常运行的话会进行跳转弹出NAG,这里将jne给改成nop即可绕过这次验证

程序再次跑起来的时候,就也是注册通过的状态了


评论