alwshady 发表于 2020-7-25 18:24

【萌新肥宅160crackme日记】--02 Afkayas

最近上岸了,准备趁着离职与入职之间的蜜汁暑假刷刷160 crackme(虽然很多大佬公布了逆向的方法,但本肥宅就是想记录一下自己的点点滴滴),熟悉熟悉常规逆向的思路和各种工具的使用吧,也算为以后接单积累点经验。废话不多说,走起。。。{:5_123:}{:5_123:}{:5_123:}{:5_123:}{:5_123:}{:5_123:}{:5_123:}{:5_123:}{:5_123:}{:5_123:}{:5_123:}{:5_123:}
今天日的就是这玩意。



按ok的话会出现消息框,嗯,很常规。

然后拖入PEID发现是VB程序。

既然是VB程序,点OK后还会弹消息框,那不如直接下API断点咯。于是下了个rtcMsgBox函数的断点。当然,查字符串也是OJBK的。

点一下OK按钮就断下来了,然后回到程序领空。发现上面应该有关键跳。

然后往上翻,果不其然,关键跳就在这里,(试试Z标志位就知道了),只要NOP掉就OJBK了。

到这里,爆破就已经完事了。但也太简单了,所以不如分析下代码,看看序列号是如何产生的。虽然我不懂VB,也不熟悉VB的汇编特征,但看着OD给的注释发现,生成序列号的代码应该还在上面。

继续往上翻,发现一堆可以的地方,于是在00402415处下个断点。测试时假名为233,假码为11111。

断下之后发现若不其然,会获取名字的长度来作为生成序列号的依据。

然后一步一步F8下去,观察发现序列号的生成流程是:'AKA-'拼接一个字符串,暂且叫s,而s=转换成字符串(十进制(名字字符串长度*0x17cbf+名字字符串的第一个字符的asc码值))。即假设名字是233,则序列号为AKA-292643。




知道算法后,注册机就简单如拉屎了。python只要2行就行。。。



一开始还以为序列号的生成会在一个CALL里,害。{:5_188:}

拿着雪糕 发表于 2022-1-31 14:12

十分感谢大佬

WXRTMEJ 发表于 2022-2-27 11:39

感谢楼主

SuCRI 发表于 2022-2-27 12:42

感谢楼主

UpjaxeJ67380 发表于 2022-2-27 13:18

感谢楼主

CxkOPmt 发表于 2022-2-27 13:52

感谢楼主

GSkulFOjfAW 发表于 2022-2-27 14:20

不知道来晚了没有

vthcFOTW02 发表于 2022-3-1 01:20

感谢楼主

IDKvFTstaq 发表于 2022-3-24 05:08

感谢楼主

tzxM48 发表于 2022-3-24 06:11

每天都能学到新知识,赞!
页: [1] 2 3 4 5 6 7 8 9
查看完整版本: 【萌新肥宅160crackme日记】--02 Afkayas