首页
社区
课程
招聘
[旧帖] 求个思路,双进程的 0.00雪花
发表于: 2011-9-30 19:08 4587

[旧帖] 求个思路,双进程的 0.00雪花

2011-9-30 19:08
4587
是这样的,该程序要运行两个程序,A为主程序,B为辅程序,B程序的主要作用就是进行发送封包,所以下断S ENd只能下在B程序中,也就是说A程序是调用B程序进行发包的,这样的话我该如何找到关键CALL或者关键跳啊

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

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 878
活跃值: (496)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
下断B中代码,单步跟踪返回到A
2011-9-30 19:51
0
雪    币: 86
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
返回不到A,只在系统领空处就停止了
2011-9-30 20:06
0
雪    币: 143
活跃值: (17)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
在A中断CreateRemoteThead
2011-10-7 13:31
0
雪    币: 335
活跃值: (55)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
按照你所说的,B的发送数据肯定来源于A,就应该知道A是通过何种方式将数据发给B的。

    进程间的数据通讯,你可以看看 《windows核心编程》这本书。里面有介绍。比如通过共享内存、文件映像、管道或者通过进程间的内存写入等。

    可以对B进程的send函数的发送BUF进行回溯,肯定能回溯到数据的来源。
2011-10-9 16:08
0
雪    币: 145
活跃值: (85)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
6
据说先要分离进程的 好像穿山甲壳
2011-10-10 08:35
0
雪    币: 1839
活跃值: (295)
能力值: ( LV9,RANK:370 )
在线值:
发帖
回帖
粉丝
7
大部分游戏都是这样实现的。多线程控制。

线程A:主角动作是一个线程,每个动作需要发的数据,压入一个队列。
线程B:去队列中取出数据,然后发送。

我觉得你是不是在说,,在线程B中用bp Send,虽然可以断,但是无法返回到线程A的Call里面。

这个一般情况下用内存写入断点,可以找到线程A的写入数据的Call。
但是有的游戏要发的数据经过N次Copy,而且每次Copy,就释放了原始Buf,所以不好搞。
这个情况下,你首先跟Recv,找到 心跳包,在心跳包的处理过程Call中,必然可以找到线程A的SendCall。
2011-10-11 18:24
0
游客
登录 | 注册 方可回帖
返回
//