1)字符串搜索关键词,找到相应位置注释掉跳转。
解决的不太完美,但基本可用。
2)因为1)没有找到完全的对应位置(实际在其中一个dll里面而非exe),跟踪进入了mfc库和user32库,非用户空间;
所以使用button click事件(202 按键弹起事件) 来捕捉中断,具体是在查看-->window窗口,然后找到对应按键,然后右键 找到相应事件中断。
在上面实现后在mem map窗口,找到代码 rdata text段,设置中断,运行时 能跑到用户空间,这样再去找到到相应的字符串就准确了。
3)实际在2)里面依然比较难找到,通过ida静态反编译,可以很清楚的看到一些条件跳转,这样对于mfc程序库里的代码 理解起来比较方便。
4)在跟踪调试过程中,发现输入字符串和从硬件生成的设备号,同时出现,跟踪进去,在打印函数vfsprint里面,看到了一个和硬件设备号关联的字符串,经验证是注册码。
5)上面有些混乱,注册码如何传到外面,打印出来,注册机如何写,算法如何还原,这些都没有做到。
实际是把用户输入的注册码替换为 硬件号生成的注册码,pass验证过程。