crack you

国庆有一点点时间,把几个月前的工作记录一下。

我最讨厌是留下手尾给我的人,果断处理掉这个人。剩下的工作我花了 2 天处理完了。

 


就一个 从 内存 dump 出已经自解密后的程序,再从这个 解密后的程序中 逆向找到 注册码的算法 的小 任务,尽管原作用了多种加密手段、小技巧,但 API 的调用却隐藏得不好。

 从网上随便下了个  IAT  表修复工具,发现功能不够强大,果断放弃了 dump 出解密后的内存程序,直接把 IDA  append 到运行中的程序去逆向。

 剩下的就是调试的艺术了

 

程序 启动后先通过 一个 windows 内核驱动程序去得 硬盘等等的 相关OEM码作为当前计算机的指纹去计算 机器码 MathCode,再从 MathCode 去计算 注册码 KeyCode

原来还想写一个 注册码的反向算法 直接算出注册码,但分析完后发现原作 用 大数求余 的计算空间太小了,就改为直接暴力碰撞破解。

 

 


# ./a.out 6N0VBB9B3
..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
FIND A KeyCode: L1SQBAAA868AAAAAAAAAAAAAAAAAAL

通过 暴力搜索的结果 发现有 很多 AAAA 说明只是 字典的最开头就已经碰撞成功了,就是因为原作的求余计算太小的 bug 加速了破解的速度。

哦,输入注册码后可以使用了,但在保存时出错,后面调试发现原作是在 保存前面输入的注册码时,会把这个注册码做一点小修改,对应的解决方法也 很简单,字典中不使用这些字符做碰撞就是了

 

在逆向的过程中发现了原作都用了很多类似这样的 障人耳目 的小技巧,像 优化过的 int64 求余算法,但 终归是一些消耗逆向者耐心的绕路而已。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值