Acid burn
这个有两个需要crack掉的,一个是左边的name和serial,另外一个是右边的serial。一点点来分析好了。

去NAG

这玩意烦的很,去掉先。
双击这里
来到这里,下个断吧。
根据栈的信息找到调用签的信息就是这个call

下个断再来,可以到这个也是函数

根据栈信息找到调用这里的代码

可以看到这里有个je,改成jmp,直接就有了

复制到可执行文件。
直接打开就没有NAG了。
单Serial
点进去是这样

信息是Try again!!

放进od 搜索字符串,有三tryagain字符串,根据两个感叹号锁定到第一个

进去之后看到有一个call后面跟着一个跳,断点下上面一些

运行一下可以看到这里local4和local3分别是堆栈里面的两个字符串,123456是我们输入的,另外一个是程序传入比较函数的,我们认为他就是serial。试试”Hello Dude!”
成功

serial和name
同样是字符串定位,

一样,call加关键跳
下个断 让他跑跑

已经可以看到不少关键信息了,比如右下角的那个cw-…字符串,没事,先记着我们先爆破一下。成功

再用用刚刚那个字符串
0019FB00 0236A5D4 ASCII “CW-8118-CRACKED”

成了,但这题还稍微多一步,它是根据name生成serial,我们换个name就不一样了。那么接着往上面琢磨。在这里下个断

这里有个跳,对前四位name字符做好处理后判断了一下,如果不足四个字符就直接tryagain了

这里是关键,代码取第一个字符,然后和431750被赋值的0x29相乘,然后add自己,作为数字

可以写keygen了。
sName="axxxx"
nTemp=ord(sName[0])*0x29
sKey=str(2*nTemp)
sAns="CW-"+sKey+"-CRACKED"
print(sAns)

成功
