首页
社区
课程
招聘
[求助][求助]远程注入调用call,多次后崩溃
发表于: 2012-11-27 16:21 20179

[求助][求助]远程注入调用call,多次后崩溃

2012-11-27 16:21
20179
某游戏的寻路call
mov ecx, dword ptr [8C7E70]
mov edx,[ecx+03c18]
mov ecx,[edx+6c]
push 07530
push 07530
push 03e8
call 00529530
代码注入器测试是没问题的,但是多调用几次游戏就崩溃,请问这是什么原因造成的?游戏里面寻路一直点一直点这个call实际上都是运行了的,游戏也没把频繁的操作过滤掉,但是远程注入多调用几次就崩溃

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (25)
雪    币: 51
活跃值: (61)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
就这点信息很难看出原因,崩溃很多情况下是栈平衡的问题 但这种问题往往是必挂的,偶现的话可能是缓冲区溢出可能
2012-11-27 18:57
0
雪    币: 276
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
刚才广海有人说多半是线程安全问题,请问有这个可能吗?该怎么避免?
2012-11-27 20:21
0
雪    币: 2815
活跃值: (2608)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
4
call 00529530
这个改成
MOV EAX,00529530
CALL EAX

call 指令后面4个字节是偏移。
call 00529530反汇编再写到目标进程,目测直接崩溃。

还有LZ可以调试,在新线程中中断,就能看到具体情况了
2012-11-27 21:58
0
雪    币: 2882
活跃值: (1267)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yjd
5
楼上可能说对了。写call要这样的格式。
2012-11-27 22:40
0
雪    币: 276
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
这个今天广海有人也这样说了 call eax 不过我改过来以后还是一样的 大概注入10次左右就崩溃了 运气差点3次就崩溃 一般是10-30内必异常
2012-11-27 23:12
0
雪    币: 3263
活跃值: (3306)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
7
这个确实是线程安全问题
2012-11-28 09:29
0
雪    币: 0
活跃值: (954)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
8
解决方法:把代码拷贝到堆栈里面,然后修正下重定位,然后调用。
2012-11-29 00:10
0
雪    币: 276
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
谢谢
2012-11-29 13:19
0
雪    币: 102
活跃值: (2045)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
10
mark.....原来也碰到过这样的问题,一直没能解决。
2012-11-29 13:42
0
雪    币: 276
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
这个真心不会弄,我用OD测试了N次发现崩溃的地方在call的子程序里面的子程序…的子程序,而且不是老崩溃在一个地方。
2012-11-29 13:56
0
雪    币: 220
活跃值: (117)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
12
那你有可能把他给溢了..
2012-11-29 14:01
0
雪    币: 0
活跃值: (954)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
13
你跟下游戏自己调用CALL后有没有资源释放。有的游戏每次调过CALL 都会释放资源。
2012-12-1 10:46
0
雪    币: 227
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
平衡堆什么的!
2012-12-9 23:17
0
雪    币: 215
活跃值: (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
多半是线程同步问题,只能进主线程去调用,不然必崩
2012-12-10 21:00
0
雪    币: 137
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
让游戏主线程调用
2012-12-10 21:24
0
雪    币: 161
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
怎么让主线程调用call呢?
2013-1-20 22:12
0
雪    币: 276
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
老早的帖子,近期才知道是什么问题
确实是线程同步问题,而且这样的问题经常遇到,解决办法是向程序发送时钟消息,让主程序自己去调用,用到的函数是SetTimer,百度一下就有原型了
2013-11-1 01:30
0
雪    币: 81
活跃值: (40)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
19
线程同步~
2013-11-1 20:18
0
雪    币: 60
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
sendmessage
2013-11-1 21:14
0
雪    币: 116
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
你的意思是不是说,在你的dll里settimer建立时钟,然后当你要寻路的时候,设置一个标志flag_xunlu=1,然后时钟处理的是否发现flag_xunlu=1,就执行xunlu_call,用这种方式来取代直接调用xunlu_call; 类似下面这样

xunlu(xxx)
{
flag_xunlu=1;
}
settimer(id_xunlu,1000)

ontimer(id)
{
  switch(id)
  {
     case id_xunlu:
     if(flag_xunlu == 1)
       xunlu_call();

...
}
}
2013-11-1 21:20
0
雪    币: 23
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
22
需要需要 ,谢谢 ,新手学习找不到原因呢
2019-11-23 18:36
0
雪    币: 23
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
23
就是开始调用没问题  一会后就崩了 
2019-11-23 18:37
0
雪    币: 23
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
24
mistyes 老早的帖子,近期才知道是什么问题 确实是线程同步问题,而且这样的问题经常遇到,解决办法是向程序发送时钟消息,让主程序自己去调用,用到的函数是SetTimer,百度一下就有原型了
求教下   新手小白...不太理解  我在别人的模块内找到一个时钟调用的   汇编  但是  速度超级慢   是时钟慢?还是什么原因?
2019-12-2 22:26
0
雪    币: 23
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
25
mistyes 老早的帖子,近期才知道是什么问题 确实是线程同步问题,而且这样的问题经常遇到,解决办法是向程序发送时钟消息,让主程序自己去调用,用到的函数是SetTimer,百度一下就有原型了
前台很快毫秒就反映    后台就好几秒才反映一下
2019-12-2 22:28
0
游客
登录 | 注册 方可回帖
返回
//