0x1下载cm  2.通过cm名字可知道是一个小游戏,打开后有提示,要求输入对应的按键,否则程序退出
   3.手速太慢的小菜鸟这游戏玩不通关,只能想办法开挂了。 0x2调试分析  1.“工欲善其事必先利其器”,先去某论坛下载工具stduy pe,一会用来去除重定位表,方便调试。   2.把程序拖进stduy pe,如图所示:
   3.发现程序没壳,32位程序,点一下密码学检测,没发现什么,我的电脑是win7,为了一会调试方便,直接点固定基址,然后将保存出来。   4.因为是32位程序,所以选择OD进行调试,直接Shift+F9跑起来,这肯定是失败的,看一下失败提示的字符串,如下图所示:
   5.接下来试试能不能爆破,通过OD搜索字符串,找到关键跳两处: - 004014DB |. /75 26 jnz short 2.00401503 ; 第一处
- 004014DD |. |FF75 10 push [arg.3]
- 004014E0 |. |FF75 14 push [arg.4]
- 004014E3 |. |68 707A4100 push 2.00417A70 ; key is %s (%s)\r
- 004014E8 |. |E8 86050000 call 2.00401A73
- 004014ED |. |E8 31FFFFFF call 2.00401423
- 004014F2 |. |68 807A4100 push 2.00417A80 ; \rUDDER FAILURE! http://imgur.com/4Ajx21P \n
复制代码- 00401563 |. /75 21 jnz short 2.00401586 ; 第二处
- 00401565 |. |FF75 0C push [arg.2]
- 00401568 |. |FF75 10 push [arg.3]
- 0040156B |. |68 707A4100 push 2.00417A70 ; key is %s (%s)\r
- 00401570 |. |E8 FE040000 call 2.00401A73
- 00401575 |. |68 D07A4100 push 2.00417AD0 ; UDDER FAILURE! http://imgur.com/4Ajx21P \n
复制代码
  6.通过字符串搜索,找到有两个跳向失败的地方,发现游戏运行时,一定会暂停在这两个地方,改变寄存器z标志,就能让它跳走,程序继续执行。   7.那么会不会运行结束后flag自己出来呢?将这两处改为jmp,复制到可执行文件保存出去。
   8.运行程序,得到flag:no5c30416d6cf52638460377995c6a8cf5,如果所示:
 0x3总结  1.以结果为导向,分析为什么会失败,找到失败的原因进行解决。
  2.在没有思路不知道下什么断点的时候,不妨试试爆破,也许会有惊喜。
  3.善用工具,固定基址,寻找程序弱点。
|