吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 26797|回复: 50
上一主题 下一主题
收起左侧

[Android 原创] 【第一篇】【安卓微信】HOOK微信发消息,当HOOK遇上HOOK。

[复制链接]
跳转到指定楼层
楼主
unity 发表于 2018-1-24 03:26 回帖奖励

前人栽树,后人吃桃。

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

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

Xposed Module Repository

付费入群,高级功能要钱,这不符合我的原则。这不符合我的原则。对不住只能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篇精华了,这篇会上么?

免费评分

参与人数 19吾爱币 +28 热心值 +19 收起 理由
qtfreet00 + 9 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
jiaoxicai2013 + 1 + 1 用心讨论,共获提升!
笙若 + 1 + 1 谢谢@Thanks!
珍惜幸福涙 + 1 + 1 用心讨论,共获提升!
Ravey + 1 + 1 谢谢@Thanks!
djmcxiaole1005 + 1 + 1 说了这么多 求也看不懂 直接坐等软件
a1069942474 + 1 + 1 谢谢@Thanks!
dwq308 + 1 + 1 我很赞同!
silvanevil + 1 + 1 谢谢@Thanks!
栀蓝 + 1 + 1 谢谢@Thanks!
skdxg + 1 + 1 我很赞同!
360573078 + 1 + 1 谢谢@Thanks!
跳跃的灵魂 + 1 + 1 用心讨论,共获提升!
武装Swat + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
夏雨微凉 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
♂偶是屌丝℡ + 2 + 1 我很赞同!
xuanle6 + 1 + 1 谢谢@Thanks!
zhaojunkai + 1 + 1 我怎么看到‘烛光与香水’说的咬牙切齿的。。哈哈哈哈
烛光与香水 + 1 + 1 我是原作者,放心,我不介意!!!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

头像被屏蔽
推荐
晨熙_ 发表于 2018-1-24 15:30
提示: 作者被禁止或删除 内容自动屏蔽
推荐
bjhrwzh 发表于 2018-1-24 09:54
这个思路确实不错,不过貌似这样也只是能辅助分析吧,大概知道他hook了什么方法, 具体业务逻辑不知道, 处理方式还是得自己分析了,估计也不太会省力气,这个我也看过,比较佩服作者都用c++实现防源码逆向。
沙发
ljm115 发表于 2018-1-24 07:02 来自手机
3#
debug_cat 发表于 2018-1-24 07:17 来自手机
思路很嗨皮
4#
psp7456 发表于 2018-1-24 07:32 来自手机
java的东西就算不开源也能弄到源码,还不如直接开源~
5#
poaxcb 发表于 2018-1-24 07:53
谢谢.很不错  
6#
没有验证码 发表于 2018-1-24 08:05
思路很清晰,赞
7#
zhu628 发表于 2018-1-24 08:08
啥都没看懂。
8#
pjrra 发表于 2018-1-24 08:25
6666666666666....
9#
15013138868 发表于 2018-1-24 08:31 来自手机
虽然不知道说什么,但感觉好历害的样子
10#
lqq197 发表于 2018-1-24 08:36 来自手机
都没看懂+1,所以作者大大是打算出个小窗口提示消息的意思吗
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 19:57

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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