随笔分类 - WeChat PC Hook
1
摘要:(目录) 逆向开发经常有这个需求:拦截局部数据。一般的做法是hook,通过修改代码的流程来获得数据。还有一种办法是下断点调试。这里聊聊怎样通过下断点来拦截局部数据。 零、原理简介 下断点拦截数据,原理就是对目标进程进行下断点调试。 设置断点的原理就是在某个地址写入0xCC。对某个地址设置断点之后,当
阅读全文
摘要:前言 上一篇,聊到函数的调用关系是一条线的。这一篇,聊下函数的调用关系是分叉的,应该怎么分析。目的是内存直接读取通讯录。 分析 通讯录,是数据。 全局数据直接读取,局部数据间接拦截。 通讯录要经常用到,写成全局数据,方便读取。 看着和个人信息一样,是全局数据,内存里直接搜索。 但用什么搜索呢?并没有
阅读全文
摘要:前言 这一篇,用到找偏移的第三个方法:日志;第四个方法:字符串;第五个方法:系统函数;第六个方法:第三方库。目标是收发文本消息。 一、发送消息 分析 1、发送信息的一般流程 1、界面上编辑消息 2、点击发送按钮 3、消息存入数据库 4、通过网络发送出去 2、可以切入的点 1、界面 2、数据库 3、网
阅读全文
摘要:前言 这一篇,用到找偏移的第二个方法:界面;第四个方法:字符串;第六个方法:第三方库。目标是刷新二维码。 Duilib WX的界面模块是第三方库:Duilib。 关于Duilib的介绍和分析,已经分享了《Dump微信PC端的界面Duilib文件》。 这里梳理一下Duilib的主要流程: 1、Duil
阅读全文
摘要:前言 这一篇,开始实战。用到找偏移的第一个方法:内存搜索。目的是获得用户信息。 一、找偏移 1、分析 用户信息,属于获得数据。 全局数据搜索,局部数据拦截。 对于经常用到,又不怎么变动的数据,用全局变量会比较方便。 用户信息,基本不会变动,也很多地方会用到,猜测是用全局变量存储。 2、方法 对于全局
阅读全文
摘要:前言 老话,工欲善其事,必先利其器。这篇聊聊逆向分析用到的工具。不聊工具细节,自行百度学习。重要的是理清:使用工具,是为了解决什么问题。 工具 1、CE 找偏移的方法中聊到,最直接就是在内存里面搜索。 CE(CheatEngine又称CE修改器),就是用来搜索内存里面东西,得到内存地址。 2、IDA
阅读全文
摘要:前言 找到偏移之后,就是写辅助工具了。这一篇聊聊写辅助工具的原理。具体的代码细节,等到实战会展开细说。 明确一下 逆向两个目的 1、调用功能 2、获取数据 对应的实现方法 1、调用功能 找到偏移,直接调用。 2、获取数据 对于全局数据,找到偏移,直接得到。 对于局部数据,拦截代码,间接得到 。 写外
阅读全文
摘要:前言 上一篇,聊到逆向分析是找偏移,有依据地找,效率会快。这一篇聊下找偏移方法。只说概念,具体的细节,后续会配合实战再展开细说。 找偏移的方法 1、内存 逆向的目的,是找功能或者数据在内存的地址。最直接的方法,就是在内存里面搜索。 对于数据:可以直接在内存搜索。 对于功能:如果知道代码的特征码,也可
阅读全文
摘要:前言 正向开发,是先写代码,再编译成软件。而逆向分析,到手的只有软件。从软件入手,推测对应的代码,需要了解一下编译之后的软件是怎么跑起来的。 软件运行过程 1、软件加载到内存。 2、CPU读取内存的指令。 3、根据指令,再读取数据,进行运算。 4、运算的过程,数据是存在CPU里面的寄存器。 5、运算
阅读全文
摘要:前言 一开始小白,学了些教程。 大多教程说了找功能的具体过程,但没说为什么要这么找。导致自己找新的功能时,容易不知道怎么下手。 也没找到把逆向分析这事说明白的资料,只能自己搜集零碎的信息,慢慢形成对逆向分析的整体认知 。 学习过程,也加入一些逆向的圈子。接触下来,交流的氛围不太理想。小白能百度的不百
阅读全文
摘要:看下wetool提供的功能,可以群发信息,可以清粉,可以自动管理微信群等等 其实都是用微信基本的功能进行组合的 比如群发,就是通讯录加上发送信息 比如清粉,就是通讯录、申请添加好友和删除好友 但这些基本功能微信并没有开放出来,所以wetool只能用技术手段获取 怎样获取这些基本功能呢? 实际上所有功
阅读全文
摘要:零、有啥用 网上大多数的微信逆向思路,是CE搜索数据得到地址,OD下访问断点,然后在堆栈里面大海捞针的找Call,效率太低了。 其实微信的界面是用Duilib做的,Duilib的界面布局写在XML文件。然后界面的消息处理,是通过控件名处理的。比如发送按钮,XML文件里面是"send_btn",代码里
阅读全文
摘要:先上两张图,看下微信的架构 各个模块的功能分别如下: Application协议:微信用的是google的protobuf Handshake协议:安全地协商出对称加密密钥 Alert协议:用于通知对端发生错误,希望对端关闭连接 Record协议:使用对称加密密钥进行安全的通信 理论上的流程就是:
阅读全文
摘要:今天想看亦无所知公众号的历史文章,遇到一个麻烦的情况:只能在微信默认的浏览器里面看。 1、打开公众号历史记录 2、用默认浏览器是打开 3、提示:请在微信客户端打开链接。 顺手写了一个小工具,支持自己的浏览器打开。 这里说明一下 1、只是想看个文章,不能用个小工具就封号吧,所以确保安全不封号,功能简单
阅读全文
摘要:一、环境 1、微信版本 2、WeChatWin.dll基址 基址=0FD30000 大小=018A2000 (25829376.) 入口=10A0AA01 WeChatWi. 名称=WeChatWi 文件版本=2.8.0.121 路径=C:\Program Files (x86)\Tencent\W
阅读全文
摘要:方案一:CE搜索内存数据,OD断点查看堆栈方案二:使用旧版本的特征码,在新版本搜索方案三:借鉴WeTool的dll,用ida分析获取地址方案四:ida静态分析微信,看字符串和输出日志 源码: https://github.com/KongKong20/WeChatPCHook
阅读全文
摘要:Windows加载dll的特性 1、Windows系统中,每个exe软件运行的时候,会加载系统模块kernel32.dll 2、所有加载进exe软件的系统模块kernel32.dll,内存地址都是一样 3、kernel32.dll中的LoadLibrary()函数用于加别载的dll 4、dll内的函
阅读全文
摘要:CE 扫描内存数据OD 动态分析代码IDA 静态分析代码汇编 阅读OD和IDA的代码 编写inline hookC/C++ 编写dll 编写主程序逻辑MFC 编写主程序界面 源码: https://github.com/KongKong20/WeChatPCHook
阅读全文
摘要:软件构成:一个主进程exe和一个注入的dll主进程exe:把dll注入到微信,发送指令给dll,接受dll的信息注入的dll:被注入到微信内部,拦截微信的数据,调用微信的功能 接收主进程的指令,执行指令对应的操作、发信息给主进程 exe和dll通讯: exe 接收消息 创建一个可见的主界面 设置接受
阅读全文
摘要:一、概述 Web端有开源代码,但新用户登录不了 PC端也有开源代码,新老用户都能登录 市场上已有的产品:发卡机器人、多群转发机器人、营销管理机器人 基本的功能:收发消息,加人加群,收账抢红包 二、原理 关注点:一是获取数据,二是调用功能 技术点:一是数据和函数地址,二是HOOK定制功能,三、DLL加
阅读全文
1