windows逆向CreakMe系列入门:单步调试获取flag

CreakMe系列是逆向入门的一个很棒的系列。

今天我介绍一个很简单的CreakMe002。





程序很简单,输入一个密码,程序会自动比对密码是否正确,正确输出you are right,错误输出you are wrong。
逆向分析工具我选择的是ida,windows下的调试工具我选择的是OD。
用OD加载该程序,寻找该程序进行密码比对的部分


经过分析,我初步定位了一个函数点





F7步入该函数





发现了输出正确错误的语句,证明我们的具体思路还是正确的





寻找到了接受字符串的函数





执行完发现我们输入的12345678储存在储存器EAX中,接着我们发现了一个可疑函数00401000,猜测这个函数就是判断函数。F7跟入。





单步调试之后发现程序加载了一串可疑字符串,储存在EDI中





接着单步调试,发现了一个解密逻辑





加载的可疑字符串经过解密逻辑之后会形成一串有语义的字符串,猜测这个就是该程序的密码。





经过运行后发现该密码储存在ESP储存器中
接下来会加载我们输入的字符串





接下来程序会将两个字符串加载到两个寄存器DL,BL中,然后进行对比。





这里因为我们输入的是错误的,因此会跳转到输出错误的语句








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






文章目录
|