首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

CM003_Afkayas.2算法逆向及注册机实现

“以无厚入有间”,只要找到关键,切入主要,问题往往能迎刃而解。

与003相比同样是VB程序,但这里加了浮点汇编的相关指令。惯例,先运行它,看一下注册机制与003没有什么不同,也无壳。查字符串,从push ebp开始往下分析。

下面的分析比较分散,捡重点讲。

首先我们测试用的Name“imypp”; Serial“43214321”结果是“Try again!”不通过。

在上图push ebp处下断,单步往下分析

004081F5_vbaLenBstr取用户名长度len=5

0040820D rtcAnsiValueBstr取Name的首字符“i”的ASCII和0x6C818相加,等于0x6C881

无关的汇编代码略过。。。

004082E9 _vbaR8Str字符串转换浮点数444545.00

fld fdiv fstsw faddp ….均是浮点指令集,在此不过多陈述,以后单独开篇细讲。

ST0浮点寄存器将ST0除以一个常数,得到的结果加上Key的值,形成一个新的Key

ST0/5.0=2.0在faddp中再将已转换成浮点数的444545.00加上2.0,等于444547.00

00832D _vbaStrR8将浮点444547.00转换字符串——》UNICODE ”444547”

再往下,需要特别注明,否则新手朋友可能看不太明白。

上面计算的Key是’444547”,经过004083FB的fmul之后,发现ST0= 1333641.00

那么倒推,444547*??=1333641.00答案是3.0所以在此处是Key*3.0=1333641.00

00408404做了个减法Key-2.0=1333641-2.0=1333639.00

此处与乘3.0的操作相同,倒推得1333639+15.0= 1333654,加数是15.0

往下继续走,004085F1有一个序列号与key的除法操作。

最后一处:

注册机实现:

微信扫一扫,关注公众号“Cracker之家”

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180514G1OABU00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券