UltraDebug

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: A C D R G Y M Z X S P
公益项目,接受捐赠
查看: 2031|回复: 0
收起左侧

[原创] Windows逆向分析入门(收发文本消息)

[复制链接]
Tencent

主题

0

回帖

UD

新手上路

UID
12
积分
34
注册时间
2022-1-7
最后登录
1970-1-1
2022-1-20 17:47:09 | 显示全部楼层 |阅读模式
前言
这一篇,用到找偏移的第三个方法:日志;第四个方法:字符串;第五个方法:系统函数;第六个方法:第三方库。目标是收发文本消息。

一、发送消息
分析
1、发送信息的一般流程
  • 界面上编辑消息
  • 点击发送按钮
  • 消息存入数据库
  • 通过网络发送出去

2、可以切入的点

  • 界面
  • 数据库
  • 网络发送函数


3、入手方式
  • 界面入手,得跟踪Duilib的响应过程
  • 数据库入手,得监听数据库Sqlite的函数
  • 网络函数入手,数据依据加密了,难识别出来
  • 数据从产生到发送,中间会有比较长的过程。
  • 看下日志有没有可以参考的信息。

Xlog
WX的日志模块是第三方库:Xlog。

关于Xlog的介绍和分析,后续会分享了《微信日志Xlog分析——带源码》。

注入打开日志的dll

Windows逆向分析入门(收发文本消息) - Tencent_UltraDebug

随便操作界面,就有日志输出

Windows逆向分析入门(收发文本消息) - Tencent_UltraDebug

发送一个文本信息

日志看到了关键词On MsgAdd PrefixId,和 sendTextMsg。

Windows逆向分析入门(收发文本消息) - Tencent_UltraDebug


用OD搜索字符串,发现没有sendTextMsg,但是有On MsgAdd PrefixId,进行断点。

Windows逆向分析入门(收发文本消息) - Tencent_UltraDebug

触发断点
函数调用的关系有两种

1、函数A调用函数B,函数B调用函数C(一条线)

2、函数A调用函数B,函数A调用函数C(分叉开)

点击发送按钮,WX会收到操作信息,部分信息给Duilib处理,部分信息给系统自带的函数处理:ntdll.NtdllDefWindowProc_W。

堆栈里面往下翻,发现有这个函数。意味着这个断点的位置,和发送消息函数的调用的关系是一条线的。也就是说,在堆栈就能找到发送消息的函数。

Windows逆向分析入门(收发文本消息) - Tencent_UltraDebug

找函数
问题来了,堆栈这么多函数,到底哪一个呢?

一般发送消息函数的格式是:发送消息函数(参数:接收人,参数:发送的消息)

函数的调用约定有多种情况 fastcall stdcall cdecl thiscall。
还有更多的精彩内容,作者设置为付费后可见
UltraDebug免责声明
✅以上内容均来自网友转发或原创,如存在侵权请发送到站方邮件9003554@qq.com处理。
✅The above content is forwarded or original by netizens. If there is infringement, please send the email to the destination 9003554@qq.com handle.
回复 打印

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|站点地图|UltraDebug ( 滇ICP备2022002049号-2 滇公网安备 53032102000034号)

GMT+8, 2025-6-16 19:15 , Processed in 0.038253 second(s), 11 queries , Redis On.

Powered by Discuz X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表