CreakMe系列是逆向入门的一个很棒的系列。
今天我介绍一个很简单的CreakMe002。

程序很简单,输入一个密码,程序会自动比对密码是否正确,正确输出you are right,错误输出you are wrong。
逆向分析工具我选择的是ida,windows下的调试工具我选择的是OD。
用OD加载该程序,寻找该程序进行密码比对的部分
经过分析,我初步定位了一个函数点
F7步入该函数
发现了输出正确错误的语句,证明我们的具体思路还是正确的
寻找到了接受字符串的函数
执行完发现我们输入的12345678储存在储存器EAX中,接着我们发现了一个可疑函数00401000,猜测这个函数就是判断函数。F7跟入。
单步调试之后发现程序加载了一串可疑字符串,储存在EDI中
接着单步调试,发现了一个解密逻辑
加载的可疑字符串经过解密逻辑之后会形成一串有语义的字符串,猜测这个就是该程序的密码。
经过运行后发现该密码储存在ESP储存器中
接下来会加载我们输入的字符串
接下来程序会将两个字符串加载到两个寄存器DL,BL中,然后进行对比。
这里因为我们输入的是错误的,因此会跳转到输出错误的语句

当我们输入N0problem是,程序就成功输出正确并跳转到正确的逻辑
