首页
社区
课程
招聘
[旧帖] [求助]用OD添加自定义功能的软件无法在win7运行,为什么? 0.00雪花
发表于: 2012-3-24 21:14 1326

[旧帖] [求助]用OD添加自定义功能的软件无法在win7运行,为什么? 0.00雪花

2012-3-24 21:14
1326
例如,我用od在扫雷程序中添加了一个小功能——暂停计时器运行。

方法是:把菜单中的一个选项的响应跳转到我自己写的一段KillTimer的程序,可以使定时器失效。
问题:
这个功能在XP下很好使,但是放到WIN7中就不行了。
不点击这个菜单项,程序依然能正常运行,
使用自定义的功能,程序立刻挂掉。。。。。

我添加的代码如下:

01004A63   > \60            pushad                                   ;  Case 250 of switch 01001EDC
01004A64   .  6A 01         push 0x1                                 ; /TimerID = 1
01004A66   .  FF35 245B0001 push dword ptr ds:[0x1005B24]            ; |hWnd = NULL
01004A6C      E8 CBC6FFFF   call <&USER32.KillTimer>
01004A71   .  61            popad
01004A72   .^ E9 E7D1FFFF   jmp 扫雷增强.01001C5E


啥原因????

高手指点一下,谢谢了~~

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (10)
雪    币: 1632
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
01004A6C      E8 CBC6FFFF   call <&USER32.KillTimer>
这里硬编码了。
2012-3-24 21:38
0
雪    币: 1632
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
你跟一下,程序在win7下运行到01004A6C这个地址时,call的还是不是KillTimer
2012-3-24 21:39
0
雪    币: 238
活跃值: (55)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
4
绝对不是,应该用重定位表里面的函数

01001C87    FF15 3C110001   call    near dword ptr ds:[<&USER32.KillTimer>]   ; user32.KillTimer
2012-3-24 22:18
0
雪    币: 30
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
嗯有问题,地址变了

那应该怎么修改呢?

直接 call KillTimer
让OD自己选择?
2012-3-24 22:18
0
雪    币: 30
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
咋整?

被这个折腾疯了快
2012-3-24 22:20
0
雪    币: 238
活跃值: (55)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
7
你查查程序原文怎么用的KillTimer,不要自己杜撰
01001C87    FF15 3C110001   call    near dword ptr ds:[<&USER32.KillTimer>]   ; user32.KillTimer
2012-3-24 22:26
0
雪    币: 83
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
查下程序导入表,有无KillTimer,没有的话符号表都没其符号信息,那就木有办法了,手工查下实际入口点,填入正确硬编码,
有的话填入IAT中函数地址符号来调用,
2012-3-24 22:30
0
雪    币: 238
活跃值: (55)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
9
从逻辑上一想就知道必然会有,而且只有一处调用,看来楼主还是需要补充IAT的知识啊
2012-3-24 22:40
0
雪    币: 30
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
[QUOTE=sierra;1056474]你查查程序原文怎么用的KillTimer,不要自己杜撰
01001C87    FF15 3C110001   call    near dword ptr ds:[<&USER32.KillTimer>]   ; user32.KillTimer
[/QUOTE]

用这个搞定了

谢谢两位,我刚开始学这个,需要继续努力~~
2012-3-24 22:43
0
雪    币: 238
活跃值: (55)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
11
建议楼主做个简单的注入外挂啥的
2012-3-24 22:50
0
游客
登录 | 注册 方可回帖
返回
//