首页
社区
课程
招聘
[求助]请教个简单找call的问题
发表于: 2018-2-26 02:24 3457

[求助]请教个简单找call的问题

2018-2-26 02:24
3457
请教:有程序客户端A,我想找到它发送心跳包的call,我知道它向服务端发送的包中包含明文heatbeat,我用od调试用bp send和ctrl f9发现转了半天是发送线程在操作发送队列追不到组包的地方,只怪自己水平太次,我又用ce搜索明文 heatbeat 发现每次地址都不一样,请问这种情况要怎么才能定位到程序组包的地方?麻烦高手们给个思路!谢谢!

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

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 32
活跃值: (18)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
hr  "heatbeat"  (address)
2018-2-26 08:58
0
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
一看楼上就是高手
2018-2-26 09:00
0
雪    币: 194
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
losegames hr "heatbeat" (address)
谢谢指点,这样定位不到啊。我说的用ce能搜索到地址是指在发包过后的内存中找到的(发送线程中),和我用bp  send的效果是一样的,没跳出发包线程就找不到组包的地方,组包的过程中出现的heartbeat可能是一闪而过所以没有搜索到,或者说有没有什么断点能做到只要内存中出现过“heartbeat”就断下来,因为组包的时候肯定会要用类似memcpy(msgType,"heartbeat")这种操作,想过断memcpy  ,好像又不能带条件...求指点
2018-2-26 09:39
0
雪    币: 1795
活跃值: (63)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
5
本人菜鸟,下面是本人的一些疑惑和愚见。如有说错,请见谅。
1.心跳包的发送,采用的协议确定是tcp?有没可能是udp?
2.看你的描述像是tcp,只断过send,有没有看过微软的WSASend之类的函数?
3.系统工具应该能看到客户端网络通信的部分线程,能否从这块入手?
4.这种发送报文的内容hearbeat是固定的,所以可能不存在你所说memcpy操作

这种心跳包一般是另外单开线程,你可能在调试过程中,运行其中一个线程,禁用其他线程,然后监控数据包是否产生。。

2018-2-26 10:34
0
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
只是找Call应该和协议无关吧
2018-2-26 12:17
0
雪    币: 110
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
现在内存窗口多下几个断点,运行,找出解码字符串位置(这过程有点烦),然后在  hr  address  ,  小白解答小白
2018-2-26 14:42
0
雪    币: 194
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
小剑 现在内存窗口多下几个断点,运行,找出解码字符串位置(这过程有点烦),然后在 hr address , 小白解答小白
解码也是在发送线程里的事了,那里不是组包的call使用的位置,组包的call把packet放入队列,等发送线程取走发送,所以ce里搜索到的字符串也是发送线程里的,不知道  有没有可以监视内存里读取或者写入一个字符串的方法?如果有那就能轻松找到组包call的位置了。
2018-2-26 22:09
0
雪    币: 194
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
myangel 本人菜鸟,下面是本人的一些疑惑和愚见。如有说错,请见谅。 1.心跳包的发送,采用的协议确定是tcp?有没可能是udp? 2.看你的描述像是tcp,只断过send,有没有看过微软的WSASend之类 ...
谢谢热心回复  ,可能我说的和你说的1、2、3点没有太多联系,我只是找call与协议没什么关系,而且bp  send可以断下并找到发送的内容。至于第4点,内容固定也会有组包(组织发送内容的过程)吧,因为这个包里还有其它信息。
2018-2-26 22:12
0
游客
登录 | 注册 方可回帖
返回
//