能力值:
( LV3,RANK:30 )
|
-
-
2 楼
就这点信息很难看出原因,崩溃很多情况下是栈平衡的问题 但这种问题往往是必挂的,偶现的话可能是缓冲区溢出可能
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
刚才广海有人说多半是线程安全问题,请问有这个可能吗?该怎么避免?
|
能力值:
( LV6,RANK:80 )
|
-
-
4 楼
call 00529530
这个改成
MOV EAX,00529530
CALL EAX
call 指令后面4个字节是偏移。
call 00529530反汇编再写到目标进程,目测直接崩溃。
还有LZ可以调试,在新线程中中断,就能看到具体情况了
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
楼上可能说对了。写call要这样的格式。
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
这个今天广海有人也这样说了 call eax 不过我改过来以后还是一样的 大概注入10次左右就崩溃了 运气差点3次就崩溃 一般是10-30内必异常
|
能力值:
( LV4,RANK:40 )
|
-
-
7 楼
这个确实是线程安全问题
|
能力值:
( LV3,RANK:30 )
|
-
-
8 楼
解决方法:把代码拷贝到堆栈里面,然后修正下重定位,然后调用。
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
|
能力值:
( LV4,RANK:50 )
|
-
-
10 楼
mark.....原来也碰到过这样的问题,一直没能解决。
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
这个真心不会弄,我用OD测试了N次发现崩溃的地方在call的子程序里面的子程序…的子程序,而且不是老崩溃在一个地方。
|
能力值:
( LV4,RANK:50 )
|
-
-
12 楼
那你有可能把他给溢了..
|
能力值:
( LV3,RANK:30 )
|
-
-
13 楼
你跟下游戏自己调用CALL后有没有资源释放。有的游戏每次调过CALL 都会释放资源。
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
平衡堆什么的!
|
能力值:
( LV2,RANK:10 )
|
-
-
15 楼
多半是线程同步问题,只能进主线程去调用,不然必崩
|
能力值:
( LV2,RANK:10 )
|
-
-
16 楼
让游戏主线程调用
|
能力值:
( LV2,RANK:10 )
|
-
-
17 楼
怎么让主线程调用call呢?
|
能力值:
( LV2,RANK:10 )
|
-
-
18 楼
老早的帖子,近期才知道是什么问题
确实是线程同步问题,而且这样的问题经常遇到,解决办法是向程序发送时钟消息,让主程序自己去调用,用到的函数是SetTimer,百度一下就有原型了
|
能力值:
( LV3,RANK:30 )
|
-
-
19 楼
线程同步~
|
能力值:
( LV2,RANK:10 )
|
-
-
20 楼
sendmessage
|
能力值:
( 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();
...
}
}
|
能力值:
( LV1,RANK:0 )
|
-
-
22 楼
需要需要 ,谢谢 ,新手学习找不到原因呢
|
能力值:
( LV1,RANK:0 )
|
-
-
23 楼
就是开始调用没问题 一会后就崩了
|
能力值:
( LV1,RANK:0 )
|
-
-
24 楼
mistyes
老早的帖子,近期才知道是什么问题
确实是线程同步问题,而且这样的问题经常遇到,解决办法是向程序发送时钟消息,让主程序自己去调用,用到的函数是SetTimer,百度一下就有原型了
求教下 新手小白...不太理解 我在别人的模块内找到一个时钟调用的 汇编 但是 速度超级慢 是时钟慢?还是什么原因?
|
能力值:
( LV1,RANK:0 )
|
-
-
25 楼
mistyes
老早的帖子,近期才知道是什么问题
确实是线程同步问题,而且这样的问题经常遇到,解决办法是向程序发送时钟消息,让主程序自己去调用,用到的函数是SetTimer,百度一下就有原型了
前台很快毫秒就反映 后台就好几秒才反映一下
|
|
|