170606 逆向-CrackMe之015

来源:互联网 发布:淘宝女模特好漂亮 编辑:程序博客网 时间:2024/05/24 07:32

1625-5 王子昂 总结《2017年6月6日》 【连续第248天总结】

A.CrackMe(15)

B.今天的一星又有点太简单了╮(╯_╰)╭不过第一次爆破掉NAG,而且还是绕了一下的,还是记一下

拖入PEiD,无壳VB5

运行,首先跳出一个Nag窗口,然后是Serial

先处理Nag,因为和001的无边框计时7s不同,直接是一个MsgBox

那思路很明显,暂停后ALT+K找到调用位置,NOP掉

然后运行。嗯?直接结束了

因为以前爆NAG的时候出现过错误,记得是在call之前push进去的参数没被函数内部pop掉,因此导致内存错误

这次虽然没有报内存错误,但也可能是被忽略掉异常了吧?试试把前面的参数全部NOP掉

再运行,仍然直接结束

那么有两种可能,一种是下文通过某种方法检测是否弹窗,例如取得弹窗的返回值之类的

另一种是弹窗的下一步才是主程序,既应该跟进去在内部处理

思考了一下,call的是VB库的MsgBox,不太可能是后者

于是上下翻翻代码看看,发现后面有一个vbaVarTstEq的API,后面在跳转分支中又有一个vbaEnd

那很明显,这个地方应该是通过某种方法判断是否弹窗成功,然后再继续运行或End

将两个判断都NOP掉,再运行,爆破成功


Serial就很简单了,在错误提示的弹窗时同样暂停后找到MsgBox的call

上下翻翻,很容易发现了正确文本,在它的上方有一个vbaStrCmp,再上方甚至直接有一串字符串显示出来了“2G83G35Hs2”

看起来就很像Serial嘛,输入试试,成功


上次014用VB Decompiler反编译出的代码很混乱可能是因为VB Decompiler比较适合P-CODE伪编译,而书上说VB的自然编译更适合用SmartCheck来逆向。研究了一下好像不支持WIN7以后的版本,只能在XP中动。兼容模式运行也没有用,可能直接拖个XP的虚拟机来搞了……

C.明日计划

计算思维第二章