re的路…

第一个逆向的分析,虽然不够全面,也是边听人讲,自己边想得出的结果.

首先把这个程序拖进od,然后F8一步一步的运行,直到停止.
发现会在一个函数停下并且程序要求你输入东西.


随便输入点东西,发现有8位,先在这个函数F2下个断点,重新启动程序,并且crtl+F8运行到断点处,然后进入F7这个函数.

进入这个函数之后继续F8单步执行.

找到了输入的函数,输入八位继续.

到这个地方的时候开始提取数据了,F2下断点之后,进入该函数.

发现他把一些数据进行了送进了栈中.同时修改了ebp-0x8的地方.

接下来就是一个比较会发现它把我们输入的第一位当作栈指针的偏移量在与0x40进行减运算,最后与0x2比较,所以可以计算出我们要输入的地址,数据就是从刚刚它送进栈中的提取.

接下来都是进行比较,注意它从输入中取得数据的位置,顺序有些打乱了.

好了…分析就这样结束了,可以看出这个地方作为一道题目是有bug的,能计算出多个答案.因为数据有相同的,所以输入地址的时候会产生多个结果…

还得继续啃土啃土呀…(ง •_•)ง