知识点:
WM_COMMAND消息
窗口回调函数
菜单类CALL分析
Jiack调试软件
1、用Jiack打开扫雷程序。(用郁金香的OD打开跟随时看不到代码)
2、查看菜单中点击窗口。
3、窗口中右击刷新。
4、选择扫雷程序右击跟随ClassProc。
5、当我们选择扫雷程序中的菜单时,都会向主窗口的回调函数发送一个叫WM_COMMAND的信息。
6、设置调试条件断点。WM_COMMAND==msg。注意条件断点下错了也不会有提示。
7、再次访问菜单,则该断点会断下来。
8、根据窗口过程的参数可以看出。
第一个参数为窗口句柄。
第二个参数为消息WM_COMMAND。
第三个为菜单的ID。(关键部分)
第四个为控件的句柄。
9、用代码注入器注入信息。
push 0 (控件句柄)
push 20A (菜单ID)
push 0x111(WM_COMMAND)
push 601AC(窗口句柄)
call 01001BC9(注入的地址)
10、选择出入一次则扫雷程序会跳到中级(中级的地址为20A)。
扫雷程序中不同菜单选项的地址:
初级:209
中级:20A
高级:20B
自定义:20C
计算器程序菜单CALL分析:
1、用Jiack打开计算器程序。
2、点击运行直到左侧显示运行状