selph
selph
发布于 2023-03-20 / 90 阅读
0
0

ArtGem v1.3 破解分析


title: ArtGem v1.3 破解分析 date: 2023-03-16T09:19:29Z lastmod: 2023-03-16T09:54:11Z


ArtGem v1.3 破解分析

软件基本信息

软件名称软件版本编程语言加壳情况难度难度说明练习日期
ArtGemv1.3C++无壳简单2023.03.16

image

也不知道是干嘛的,但这个老软件在Windows10上跑的界面很抽象

破解过程:

暴力破解

搜索字符串:

image

定位进去:

image

发现弹窗判断逻辑都在这里,从函数头开始分析:

image

这个函数很长,函数开始的地方,可以看到,这里从参数取一个值,然后和0x110比较,这个行为实际上是窗口过程函数的分支判断语句

0x110是WM_INITDIALOG,是初始化的时候执行的内容

这里的窗口过程应该是注册窗口的窗口过程函数,所以我们需要找到按钮的处理逻辑,一般来说,按钮使用的消息号是0x111,WM_COMMAND

往下跳转去看下一个判断:

image

是0x111,这就是我们要看的分支了,由于有2个按钮,这里可能是还有两个分支要判断,一个长的,处理注册判断和弹窗,一个短的关闭对话框

直接往下看就行

image

这个跳转是关键跳转,决定是去弹窗成功还是失败,如果是弹窗成功的路线,中间会经过一个注册表操作,写入一些东西,来表示注册成功了

这个跳转的判断依据来自上面的call,那个就是验证函数了

点进去可以看到,验证函数被调用了2次,应该就是启动的时候验证一下,然后点击注册的时候验证一下:

image

验证函数很长,乍看之下做的只是数值运算和判断,没有修改到其他的地方,所以这里大胆修改注册函数直接返回1即可:

image

结果发现还是不行,后面进行注册成功判断使用了一个全局变量:

image

对该全局变量下访问断点,发现断下的地方只有上图两个地方,而且在注册成功之后,这个全局变量又会被设置为0,所以这里的思路是,在注册函数里多写一行,给这个全局变量赋值位1:

image

成功注册:

image

注册信息:

image

启动时:

image


评论