一、准备
工具:OllyDbg
软件:Afkayas.exe
二、分析破解
先打开程序查看程序功能,该程序需要输入Name和Serial。随便输入获取错误信息。
用OD打开程序,通过EP的形式可以知道这是VB的程序。使用中文搜索引擎中的智能搜索,定位到“You get Wrong”。往上查找,找到分支的语句,将其用nop填充即可实现暴力破解。
接着向上找到过程的起点。按F8单步运行,感觉VB代码较为冗杂,很多都看不懂。但不要紧,在向下运行的同时观察寄存器和栈。直到出现我们输入的Name。
继续运行,可以发现生成Serial的算法是将输入Name的长度乘以0x17CFB然后加上第一个字符的ASCII码,接着转化为十进制。
前面加上AKA-得到最终的Serial。
然后将得到的Serial与输入的Serial进行比较从而决定结果。
总结
VB的程序反汇编感觉代码有点多,但是这个crackme较为简单,抓住关键点就还好。或者可以使用VB Decompiler等专门对VB程序进行分析的工具。
VB程序逆向反汇编常见的函数