160个Crackme014

查壳

在这里插入图片描述

还是个VB写的程序,没有壳

分析程序

在这里插入图片描述

既然是单纯的一个序列号的保护方式 就没有必要分析算法了,直接追踪序列号就行

在这里插入图片描述

首先,根据错误的字符串提示向上找跳转

在这里插入图片描述

这两句一共有三个跳转,也就是说对序列号进行了三次判断

在这里插入图片描述

首先来到403704这个位置的跳转

在这里插入图片描述

这里是比较字符串的长度是否为9,不是则报错

在这里插入图片描述

接着再来到403A04这个位置的跳转

在这里插入图片描述

这里会根据vbaVarTstNe的比较结果来判断是否进行跳转,这个函数的VB常用的比较函数,可以肯定这里就是比较正确的序列号的地方了

等待程序断下后,来观察两个参数的内容,var18固定为0,var28是个字符串

在这里插入图片描述

首地址+8才是真正的内容

在这里插入图片描述

是字符3,理论上来说这里应该是个序列号,但是只出现一个字符,也就是说这个软件比较序列号的方式是逐个字符的比较,

再来看一下判断的部分

在这里插入图片描述

比较di之后,如果不相等则跳转到报错的地方,如果相等则继续往下走,后面两句相当于i++,然后跳转到循环开始处,

也就是说只要在vbaVarTstNe比较之后跳转之前修改ZF标志位,就能看到每个正确的序列号

正确的序列号是301674501

验证结果

输入得到的结果,提示正确

在这里插入图片描述

需要相关文件的可以到我的Github下载:https://github.com/TonyChen56/160-Crackme

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鬼手56

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值