1.使用OD分析
1.1加载目标文件进行调试
目标文件TraceMe.exe
链接:https://pan.baidu.com/s/1LKZVxg0OAi1TQXRjT7D4vg
提取码:3ddp
该小程序能完成序列号的验证。过程如下:
加载好后,程序中断在TraceMe的第一条指令。寄存器面板显示当前各个寄存器的值。
1.2获取输入的方法
由于我们从该程序的运行结果可分析出,该程序会调用GetDlgItemTextA函数从编辑框中取出字符,所以我们首先在GetDlgItemTextA处设置一个断点。Ctrl+G打开跟随表达式窗口,在文本框中输入"GetDlgItemTextA"。按ok键之后,来到该函数入口地点。在此处设置断点。如下图:
可以单步步入运行程序也可以使用Alt+F9返回到调用函数的地方。下图为返回到函数调用的地方之后。
GetDlgItemTextA函数执行后,会把取出的文本放在IpString指定的位置,在调用该函数之前,查看eax寄存器内地址上的数据,调用之后,就可在此处,看见我们输入的用户名。假设我们输入的用户名为:admin。