首页
社区
课程
招聘
问大虾,如把call改为ret ,如何改最好
发表于: 2007-3-31 23:23 5221

问大虾,如把call改为ret ,如何改最好

2007-3-31 23:23
5221
有一个程序,把某一错误指向一个call,我把这把这个指向nop掉了,程序就正常,
但是要改很多指向,有几十个,改得手都软
所以想把这个错误的call改为ret 返回,这样就不用改那么多,但改后说读写什么指令引用什么内存,该内存不能为read,点确定终止,
如何改最好,请指点

新的论坛版块就是比以前不同,呵呵

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (10)
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
平栈被 还能怎么办
2007-4-1 01:26
0
雪    币: 2506
活跃值: (1030)
能力值: (RANK:990 )
在线值:
发帖
回帖
粉丝
3
进这个CALL,把第一句改成 ret。如 CALL 的第一句是这个:

PUSH EBP

直接改成 ret 试试,如果这个CALL有参数,看一下调用CALL前的参数个数,改成 ret 参数个数×4 的16进制值试试。如参数个数为2,可以改成 ret 8。
2007-4-1 13:44
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
好方法,汇编强啊
2007-4-1 16:15
0
雪    币: 93
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
此call应调用浮点出错,可能该文件那里有校验,但找不出
0041E05E      FF15 F0114000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaErrorOverflow>]      ;  MSVBVM60.__vbaErrorOverflow

call里的内容
734690D2 >  6A 06           PUSH 6
734690D4    E8 BCC5F4FF     CALL MSVBVM60.733B5695
734690D9    FF7424 04       PUSH DWORD PTR SS:[ESP+4]
734690DD    E8 CDAEF3FF     CALL MSVBVM60.733A3FAF
734690E2    833D C40E4A73 0>CMP DWORD PTR DS:[734A0EC4],0
734690E9    8B40 0C         MOV EAX,DWORD PTR DS:[EAX+C]
734690EC    75 09           JNZ SHORT MSVBVM60.734690F7
734690EE    8B40 14         MOV EAX,DWORD PTR DS:[EAX+14]
734690F1    8B40 0C         MOV EAX,DWORD PTR DS:[EAX+C]
734690F4    C2 0400         RETN 4
2007-4-1 21:07
0
雪    币: 2506
活跃值: (1030)
能力值: (RANK:990 )
在线值:
发帖
回帖
粉丝
6
系统CALL,不好直接改的。根据出错时的调用堆栈,查查别的地方的原因。
2007-4-1 21:30
0
雪    币: 146
活跃值: (72)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
强。。。偶汇编太差。
2007-4-2 08:22
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
其实这个问题,应该挺常见,请大虾们给个例子可以吗?
2007-4-2 09:48
0
雪    币: 214
活跃值: (40)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
9
那是处理错误的系统call,根本原因是程序错,改call只是不让系统处理,治标不治本
2007-4-2 12:03
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
试了CCDebuger大虾的方法,很好用。但是能解释一下,为什么这样改吗?
谢谢
2007-4-9 17:43
0
雪    币: 14958
活跃值: (4738)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
11
如果一个函数ERROR,里面就是个NAG调用.你想屏蔽掉.但是又有多个地方CALL ERROR,一个一个改CALL好还是直接改了这个函数好?
2007-4-9 18:02
0
游客
登录 | 注册 方可回帖
返回
//