一、流程分析

  1. 进行逆向之前,先分析一下微chat程序,构思一下整体思路。

PC端微chat使用的协议我们可以通过对每种协议相关的API设置断点来确定是哪个协议。一般PC端客户端程序的通信协议常用的是tcp和udp。

关于tcp,udp的API:

协议 函数
tcp send
udp sendto

因此我们可以通过断点send,来寻找我们需要的发送消息事件。

  1. 打开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逆向微信发送信息相关推荐

  1. python微信发送消息过于频繁_微信发送信息频率上限?

    请问有人知道微信发送信息频率上限是多少吗? 自己的机器人碰到的问题... 希望大家可以来帮助讨论下 先谢过啦 简单介绍下背景: 功能上基本上就是群发,且群发的信息对不同人是不一样的. 然后希望能够越准 ...

  2. 利用Python定时让微信发送信息

    利用Python让微信发送实时信息 首先要在电脑中导入open CV的库 按快捷键win+R输入cmd 输入代码pip install python-opencv 安装成功如图所示(有可能出现一次未成 ...

  3. tkinter + wxpy 实现微信发送信息 接收消息 并保存聊天记录的功能(GUI)

    '''导入相关库''' import tkinter #界面库 from wxpy import * #微信库def loginWeChat():'''Function:登录微信'''global b ...

  4. php微信 发送信息,PHP微信企业号主动给用户发送消息接口代码

    php微信企业号主动给用户发送消息接口代码 $corpid = "wx690e2a9380e2440dyt"; $secrect = "3g9l6dHy8qjYqYMWX ...

  5. Android之调取本地通讯录、发送短信、邮箱、微信发送

    前言:在我们开发中会遇到一些信息发送开发需求,我们那时就会用到我们要选择我们要发送的客户对象.选择发送的方式如短信.邮箱.微信等等方式来进行信息的发送. 如下str为要发送的内容,account 为我 ...

  6. PC微信逆向:分析微信发送文件call

    文章目录 发送文件call的结构体参数分析 组合数据call的分析 定位发送文件的call 接上一篇文章,PCXX逆向:发送与接收消息的分析与代码实现:https://blog.csdn.net/qq ...

  7. mysql当数据改变时_当数据库里面的价格变化时,发送信息到企业微信中

    当数据库里面的价格变化时,发送信息到企业微信中 发布时间:2020-08-13 14:49:29 来源:ITPUB博客 阅读:100 作者:czxin788 mysql insert 触发器 添加in ...

  8. Django+itchat+apscheduler实现向指定微信群和微信好友定时发送信息和文件

    Django+itchat+apscheduler实现向指定微信群和微信好友定时发送信息和文件. 想法的来源:每天需要在部门群中发送工作日报,有时候想早点休息但是又不想太早发送日报到群里(原因你懂得. ...

  9. 使用微信企业机器人发送信息

    今天收到公司指示,要企业微信定时提醒用户, 比如上班时提醒网络安全,文明上网 下班提醒带走垃圾,关闭电源 以及各种需求! 既然都提出需求了,那不得首先百度找找有没有现成的工具可以使用,翻了一圈,好像也 ...

最新文章

  1. LeetCode实战:回文数
  2. 牛!Python 也能实现图像姿态识别溺水行为了!
  3. **Apache Options指令详解
  4. 关于Android 构建
  5. 读书笔记2014年第1本:《赤裸裸的统计学》
  6. PHP判断客户端的浏览器类型
  7. anaconda的安装与使用详细教程
  8. Java 反射(Array相关)
  9. php多级控制,thinkphp5多级控制器是什么?怎么使用?
  10. 奥威软件大数据bi_商业智能BI软件就是数据可视化工具吗?
  11. Docker与.Net项目类型
  12. plc编程不是c语言,PLC编程中的五个常见问题
  13. 家庭网络布线工程图布线方案
  14. 递归实现指数型枚举(递归)
  15. 如果应用闪退,怎么获取相关日志?
  16. HashMap常见面试题汇总:建议初步了解源码后再细品
  17. 国产开源项目管理软件ZenTao
  18. INF443 Amphi 2: Calculs d‘Illumination
  19. Java中 [I@4554617c 问题解决
  20. python(十二)Uiautomator2搭建UI自动化框架实战

热门文章

  1. JAVA - JDK 环境配置
  2. Dockerfile制作镜像
  3. 读书笔记-Coordinated Deep Reinforcement Learners for Traffic Light Control
  4. 带你看数据挖掘与机器学习-厦大EDP上课出勤预测
  5. python中zerodivisionerror是什么意思-python里的raise是什么意思
  6. 【转】YV12 and NV12
  7. BUUCTF-2020寒假刷题记录
  8. Git使用时无.ssh目录:/.ssh: No such file or directory
  9. PyCharm敲代码光标变黑框
  10. o.s.s.s.TaskUtils$LoggingErrorHandler : Unexpected error occurred in scheduled task