前人栽树,后人吃桃。

准备入坑 安卓 xposed hook 微信(及时通信),好吧,第一步当然是论坛里面搜索啦,像掷骰子、计步器什么的都是小孩子过家家入门级别的,当然是要搞就搞(及时通信)。微信 apk都60多M了,总不能反编译后全部取看一边一点一点的摸索吧,那样的话对于我来说简直就是惨绝人寰,这种事情别人肯定是做过的,于是乎,又用上了搜索功能满世界的查找。

微控工具xp模块-开发版[微信(wechat)二次开发模块]

付费入群,高级功能要钱,这不符合我的原则。这不符合我的原则。对不住只能XX了。

一不小心就找到了这个xp模块,我想作者会恨我。作者绝对会恨我的。我下载了大的模块,大致的用 jeb2.0 看了一下,好像似乎大部分hook方法都写在native里面了。应该是 libwtool.so 里面了吧,怎么办好捉急呀。呀!忽然灵光一闪。不对呀~,Xposed 只能 hook java应用层,那么问题来了,他把核心代码放到native里面,到头来还是要调用:

XposedHelpers.findClass

XposedHelpers.findAndHookMethod

XposedHelpers.findAndHookConstructor

XposedHelpers....

那么我们只要把xposed 的 XposedHelpers 类 hook 起来,就可以知道原作者调用了微信的那些api,配合反编译的微信分析 api 相关的功能。当然 自己hook也是必不可少的。这样下来至少可以节约 1 个月的工作量。

当hook遇上hook,神奇的事情即将发生。

当下全网都找思域,那么接下来就得用我们吉利美人豹(cydia substrate 老掉牙,停产,不更新)对战 十代思域(Xposed)了。

findClass hook 源码:

MS.hookClassLoad("de.robv.android.xposed.XposedHelpers", new MS.ClassLoadHook() {

public void classLoaded(Class> clazz) {

Log.w(TAG, "classLoaded: " + clazz.getName());

Method[] methods = clazz.getMethods();

for (final Method method : methods) {

MS.hookMethod(clazz,method,new MS.MethodAlteration(){

@Override

public Object invoked(Object thiz, Object... args) throws Throwable {

if ("findClass".equals(method.getName())){

//public static Class> findClass(String className, ClassLoader classLoader)

Log.w(TAG, "findClass: "+  args[0]);

}

return invoke(thiz, args);

}

});

}

}

});

logcat:

W/wechat: initialize

W/wechat: classLoaded: de.robv.android.xposed.XposedHelpers

W/wechat: findClass: android.app.ActivityThread.AppBindData

W/wechat: findClass: com.android.server.ServerThread

W/wechat: findClass: android.app.ApplicationPackageManager

W/wechat: findClass: android.app.ActivityThread$ResourcesKey

W/wechat: findClass: android.app.ActivityThread$ResourcesKey

W/wechat: findClass: android.app.ActivityThread$ResourcesKey

W/wechat: findClass: android.app.ActivityThread$ResourcesKey

W/wechat: findClass: android.app.ActivityThread

W/wechat: findClass: android.app.ActivityThread

W/wechat: findClass: android.app.ActivityThread

W/wechat: findClass: com.tencent.mm.app.Application

W/wechat: findClass: com.tencent.tinker.loader.app.TinkerApplication

W/wechat: findClass: android.app.ActivityThread$ResourcesKey

W/wechat: findClass: com.tencent.smtt.sdk.WebSettings

W/wechat: findClass: com.tencent.mm.pluginsdk.ui.tools.s

W/wechat: findClass: java.lang.String

W/wechat: findClass: java.lang.String

W/wechat: findClass: java.lang.String

W/wechat: findClass: java.lang.String

W/wechat: findClass: java.util.HashMap

W/wechat: findClass: com.tencent.mm.bg.g

W/wechat: findClass: java.lang.String

W/wechat: findClass: java.util.HashMap

W/wechat: findClass: com.tencent.mm.bg.g

W/wechat: findClass: com.tencent.mmdb.database.SQLiteDatabase

....

总结以及后续

大概的一个思路就是这样的了,我们还可以加上 findmethod callmethod hook 进行更加详细的分析,以后在慢慢的分析具体的功能吧,我也会做一些重点笔记同步到论坛。希望大家支持哦。还有原作者真心对不住了,把核心的api都用c++ 写我也知道很累人。但是我不借鉴分析的话也很累人呀!

连续3篇精华了,这篇会上么?

用hook android 微信,【第一篇】【安卓微信】HOOK微信发消息,当HOOK遇上HOOK。相关推荐

  1. android微信二维码收款hook,【第一篇】【安卓微信】HOOK微信发消息,当HOOK遇上HOOK。...

    前人栽树,后人吃桃. 准备入坑 安卓 xposed hook 微信(及时通信),好吧,第一步当然是论坛里面搜索啦,像掷骰子.计步器什么的都是小孩子过家家入门级别的,当然是要搞就搞(及时通信).微信 a ...

  2. Java可以hook微信吗,【第一篇】【安卓微信】HOOK微信发消息,当HOOK遇上HOOK。

    前人栽树,后人吃桃. 准备入坑 安卓 xposed hook 微信(及时通信),好吧,第一步当然是论坛里面搜索啦,像掷骰子.计步器什么的都是小孩子过家家入门级别的,当然是要搞就搞(及时通信).微信 a ...

  3. <Android开发> Android vold - 第一篇 vold前言简介

    本系列主要介绍 Android vold,分为以下篇章 <Android开发> Android vold - 第一篇 vold前言简介 <Android开发> Android ...

  4. 我的第一篇CSDN博客--微信小程序

    我的第一篇CSDN博客 产品定位及功能介绍 微信小程序是一种全新的连接用户与服务的方式,它可以在微信内被便捷地获取和传播,同时具有出色的使用体验 小程序注册 微信小程序是一种全新的连接用户与服务的方式 ...

  5. daliu_IT学习Android笔记第一篇--Android是什么?安卓的logo来源?安卓的发展过程?

    Android是什么?安卓的logo来源?安卓的发展过程?   安卓的名字: Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公 ...

  6. Android 进阶第一篇——善用工具

    笔者本身从事的是和系统相关性比较大的系统应用的开发,在这里我总结了一下自身的经验,将工作中经常用到的一些工具做了简要罗列,我之所以将其作为进阶第一篇,是因为工欲善其事必先利其器,只有善用工具才能提升效 ...

  7. 微信小程序安卓机型调用微信支付后取消付款会重新调用一次页面的onShow方法

    onShow里面写了携带优惠券ID查询的接口,此时该优惠券已经下过单了,故会报错 安卓机型会有这个问题,苹果机型暂未发现 我这边的解决办法是在调用微信支付前定义一个全局Flag,在页面onShow里判 ...

  8. Android auto 小米 mix,安卓之父做手机:这是史上最完美的“小米 MIX”

    原标题:安卓之父做手机:这是史上最完美的"小米 MIX" 5 月 30 日,Android 系统联合创始人 Andy Rubin (安卓之父)正式发布了其创办的 Essential ...

  9. 调用微信公众平台API免费给自己发消息

    素材: 注册 微信公众平台的订阅号 开通开发者中心功能,注册公众平台测试账号.获取到appID和appsecret 摘要: 使用Python 2.7 基于 微信'公众平台测试账号'的appID和app ...

最新文章

  1. 新手探索NLP(七)——情感分析
  2. C++ leetCode 1. 两数之和 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个
  3. mysql外连接_mysql学习-mysql内连接外连接
  4. 《Effective Java》—— 对于所有对象都通用的方法
  5. java 左移 返回值_java左移右移运算符详解
  6. 前端学习(975):bootstrap轮播图
  7. 《PWA实战:面向下一代的Progressive Web APP》读书笔记
  8. [数据结构与算法]RED-BLACK(红黑)树的实现TreeMap源码阅读
  9. 从技术风口到行业应用,开启区块链与产业深度融合之路
  10. Bailian3180 整数减法【大数】
  11. HDU2050 折线分割平面【组合】
  12. 1、javascript的继承function
  13. Flask框架 之重定向、cookie和session
  14. K3CLOUD表关联
  15. Windows 8.1系统及实用软件
  16. wxPython色环电阻计算器
  17. 【Spring系列】 Ioc 实现原理,Spring获取bean的方式,创建对象的方式和懒加载
  18. python的easyocr图像文字识别
  19. 水库欧神评论雄安新区房产:999年358天
  20. 回书写时先什么后封口_‘‘问’’字在书写时先写什么,再写什么,像这样顺序书写的汉字有什么和什么?...

热门文章

  1. 实数 有理数 无理数
  2. 海康摄像头忘记密码,自己如何快速重置密码
  3. 【机器学习】数据驱动方法在电网稳定分析应用浅谈
  4. GIS理论常识——GeoJson和TopoJson
  5. 微商城应该怎样选择?
  6. c++语言程序中,main()函数必须放在程序开始的部分,C++多选题(附答案)
  7. qnap raid5升级raid6_实践出真知!100TB的RAID5到底能否重建成功?
  8. SAP Data Service操作简介
  9. docker redis
  10. Flask后端实践 连载十三 Flask输出Excel报表