x32dbg、x64dbg逆向微信发送信息
一、流程分析
- 进行逆向之前,先分析一下微chat程序,构思一下整体思路。
PC端微chat使用的协议我们可以通过对每种协议相关的API设置断点来确定是哪个协议。一般PC端客户端程序的通信协议常用的是tcp和udp。
关于tcp,udp的API:
协议 | 函数 |
---|---|
tcp | send |
udp | sendto |
因此我们可以通过断点send,来寻找我们需要的发送消息事件。
- 打开Exeinfo PE分析一下WeChat.exe(桌面的是.lnk文件,为快捷方式,可能找不到,因此我们右键-打开文件所在位置,找到该位置的WeChat.exe分析),如下图所示,分析得出是32位的程序(可能有的系统安装的是64位的程序),再一看是c++写的。未发现加壳。
二、输入文字逆向
首先我们打开x32dbg,然后导入WeChat.exe,F9运行到程序跑起来,打开到聊天窗口(在此,以文件传输助手为例),如下图所示:
然后我们往聊天窗口里写入文字,在x32dbg下send断点、然后观察堆栈窗口,观察有无我们输入的文字信息。
观察很久,未发现有我们输入的文字信息,于是判断为采取异步方式,于是分析send函数:
int send(SOCKET s,const char FAR* buf,int len,int flags
);
这里buf是存储我们输入的信息,我们在send处断下点,返回上一层,buf是第二个参数,找到如图所示call
双击进,如图所示,F4将光标运行到此,然后在内存窗口下硬件断点,F9运行
接下来,在下图所示处断下,F4将光标移动到此,分析许久无果
于是在堆栈寄存器中发现下图所示东西,分析名称newsendmsg,应该是new send message 的缩写,于是在wechatwein.dll即当前模块下寻找newsendmsg字符串
搜索结果如下,然后删除其他断点,双击此处字符串,下断点
F9运行起来,重新发送数据,然后发现程序断下了,在堆栈中往下即找到我们输入的信息。
三、发送API逆向
然后我们在上述的堆栈寄存器里找到我们输入的内容(最后一个内容),他的上方有个返回上一层,单击它,回车过去,如下图所示:
上图框选处是我第二次发送后显示出来的,我备注了一下,大致分析此处为发送信息的函数。
记录一下:
weChatwin 基址为:5C370000
函数动态地址为:5C47CA65
故偏移值为:0x10CA65
剩下的就需要采用hook技术验证是否正确了,由于博主为逆向入门,hook技术没到位,也暂时无法验证此函数是否就是我们需要的API,因此,本篇博客到此结束。
记录学习历程,码字不易,还请给个支持,点个赞,谢啦
Thanks♪(・ω・)ノ
x32dbg、x64dbg逆向微信发送信息相关推荐
- python微信发送消息过于频繁_微信发送信息频率上限?
请问有人知道微信发送信息频率上限是多少吗? 自己的机器人碰到的问题... 希望大家可以来帮助讨论下 先谢过啦 简单介绍下背景: 功能上基本上就是群发,且群发的信息对不同人是不一样的. 然后希望能够越准 ...
- 利用Python定时让微信发送信息
利用Python让微信发送实时信息 首先要在电脑中导入open CV的库 按快捷键win+R输入cmd 输入代码pip install python-opencv 安装成功如图所示(有可能出现一次未成 ...
- tkinter + wxpy 实现微信发送信息 接收消息 并保存聊天记录的功能(GUI)
'''导入相关库''' import tkinter #界面库 from wxpy import * #微信库def loginWeChat():'''Function:登录微信'''global b ...
- php微信 发送信息,PHP微信企业号主动给用户发送消息接口代码
php微信企业号主动给用户发送消息接口代码 $corpid = "wx690e2a9380e2440dyt"; $secrect = "3g9l6dHy8qjYqYMWX ...
- Android之调取本地通讯录、发送短信、邮箱、微信发送
前言:在我们开发中会遇到一些信息发送开发需求,我们那时就会用到我们要选择我们要发送的客户对象.选择发送的方式如短信.邮箱.微信等等方式来进行信息的发送. 如下str为要发送的内容,account 为我 ...
- PC微信逆向:分析微信发送文件call
文章目录 发送文件call的结构体参数分析 组合数据call的分析 定位发送文件的call 接上一篇文章,PCXX逆向:发送与接收消息的分析与代码实现:https://blog.csdn.net/qq ...
- mysql当数据改变时_当数据库里面的价格变化时,发送信息到企业微信中
当数据库里面的价格变化时,发送信息到企业微信中 发布时间:2020-08-13 14:49:29 来源:ITPUB博客 阅读:100 作者:czxin788 mysql insert 触发器 添加in ...
- Django+itchat+apscheduler实现向指定微信群和微信好友定时发送信息和文件
Django+itchat+apscheduler实现向指定微信群和微信好友定时发送信息和文件. 想法的来源:每天需要在部门群中发送工作日报,有时候想早点休息但是又不想太早发送日报到群里(原因你懂得. ...
- 使用微信企业机器人发送信息
今天收到公司指示,要企业微信定时提醒用户, 比如上班时提醒网络安全,文明上网 下班提醒带走垃圾,关闭电源 以及各种需求! 既然都提出需求了,那不得首先百度找找有没有现成的工具可以使用,翻了一圈,好像也 ...
最新文章
- LeetCode实战:回文数
- 牛!Python 也能实现图像姿态识别溺水行为了!
- **Apache Options指令详解
- 关于Android 构建
- 读书笔记2014年第1本:《赤裸裸的统计学》
- PHP判断客户端的浏览器类型
- anaconda的安装与使用详细教程
- Java 反射(Array相关)
- php多级控制,thinkphp5多级控制器是什么?怎么使用?
- 奥威软件大数据bi_商业智能BI软件就是数据可视化工具吗?
- Docker与.Net项目类型
- plc编程不是c语言,PLC编程中的五个常见问题
- 家庭网络布线工程图布线方案
- 递归实现指数型枚举(递归)
- 如果应用闪退,怎么获取相关日志?
- HashMap常见面试题汇总:建议初步了解源码后再细品
- 国产开源项目管理软件ZenTao
- INF443 Amphi 2: Calculs d‘Illumination
- Java中 [I@4554617c 问题解决
- python(十二)Uiautomator2搭建UI自动化框架实战
热门文章
- JAVA - JDK 环境配置
- Dockerfile制作镜像
- 读书笔记-Coordinated Deep Reinforcement Learners for Traffic Light Control
- 带你看数据挖掘与机器学习-厦大EDP上课出勤预测
- python中zerodivisionerror是什么意思-python里的raise是什么意思
- 【转】YV12 and NV12
- BUUCTF-2020寒假刷题记录
- Git使用时无.ssh目录:/.ssh: No such file or directory
- PyCharm敲代码光标变黑框
- o.s.s.s.TaskUtils$LoggingErrorHandler : Unexpected error occurred in scheduled task