开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 88331|回复: 41
收起左侧

[使用教程] [原创-首发]Xposed 框架 Hook 和 调试 安卓APK 任意方法

[复制链接]
结帖率:0% (0/1)
发表于 2016-8-1 01:07:04 | 显示全部楼层 |阅读模式   湖南省常德市
本帖最后由 228 于 2016-8-1 01:13 编辑

      前端时间一直想学动态调试APK应用,看了 idea ida 等各种乱起八糟的动态教程贴,自己测试断点一直不成功,而且调试过程中总安卓程序是一卡一卡的,只好放弃了,动态调试这东西无非就是下个断点,查看下相关变量的内容和信息;
     以前都是用 反编译 --> 修改代码(加入log 输出代码) --> 正编译 打印信息的,但是问题又来了。 修改 smail 代码后经常性的出现各种错误,毕竟 smail 类似于 汇编代码,插入的位置不正确肯定容易出现各种错误。。经常性的需要再次转换成jar分析。
     终于一次偶然的机会看到了 Xposed 框架,使用 Xposed 这货我们可以轻松的在不修改 APK 文件的基础上 HOOK 任意方法(不包括接口),查看相关的参数 返回值 并且 修改参数和返回值。
   
   废话不多说来点干货。有人说我是个骗子(关于花椒源码贴) 那么我就以花椒为教程吧。
   首先准备一个脱壳的花椒 apk;
   

我对花椒的 socket 长连接感兴趣,我想知道他是怎么加密和传输的;
这个时候我通过静态分析找到了 一个和
socket 加密有关的东东。




通过静态分析找到了上面这个加密的类。可惜完全被混淆了。我嗯 阅读一下这个类


看到这里,这是个RC4不会错了 即便不是 RC4 把这个类文件贴到java 或者翻译成易语言都不会太辛苦。

那么我们现在就需要搞明白加密 传输的数据 和 和密钥了。

这里我们需要 HOOK 包 com.huajiao.comm.c 类 k 的  public byte[] b(byte[] arg2) 方法 和 private byte[] f(String arg9) 方法

现在我们开始编写 Xposed 模块

打开 adt 开发环境 并且新建一个安卓工程。




不创建界面

设置个图标 我的昵称228吧 认证一下


还是不创建界面

这个是工程文件结构图。

在manifest 文件中插入

这些都需要看一下xposed的开发入门教程。自己百度学习下。不是太复杂。

编辑好源码后,运行。





选中我们的模块 并软重启(模拟器) 手机的话要真重启


hook 失败了 看下错误日志 入口类名错误,
xposed_init  写成大写的HOOK了 重新修改下在打包



恩看到了 了他们加密的钥匙和加密的内容了;

总结:
其实这个过程就是自己开发一个apk;
高级点的 你需要自己懂java反射原理 (入门级别不需要)
学的东西不是很多 就那么几个方法。。

动态调试我没搞成功过,可能自己技术不行。。
但是用xposed还是可以做到动态调试做不到的东西,比如修改成参数内容,返回结果。在高级点的直接在

xposed 调用其他对象方法 或者 so 都是没有问题的。

虽然我不知道动态调试什么什么样的体验 ,如果参数是一个List Map JSONobj 或者是 其他高级对象。估计动态调试很难解决。
但是用
xposed 完全可以自己写个迭代器去遍历这些对象包含的值。

最重要的是不需要去阅读 和 调试 Smail 源码 全过程都是 java 源码。
交流 QQ:12300735


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

评分

参与人数 5好评 +3 精币 +13 收起 理由
llxx123 + 1 + 2 新技能已get√
zhukanghao + 1 感谢分享,很给力!~
zjwanywn + 1 + 2 感谢分享,很给力!~
冰点 + 1 + 5 精彩文章希望继续努力
Learn + 3 看不懂但很厉害

查看全部评分

本帖被以下淘专辑推荐:

结帖率:100% (1/1)

签到天数: 20 天

发表于 2023-12-23 19:58:46 | 显示全部楼层   江苏省南京市
易语言就没有hook框架吗
回复 支持 反对

使用道具 举报

发表于 2023-5-24 19:13:35 | 显示全部楼层   山东省菏泽市
666666666666666666666666666666
回复 支持 反对

使用道具 举报

结帖率:0% (0/1)
发表于 2023-4-26 20:58:20 | 显示全部楼层   河北省唐山市
首先你会脱壳,其次要会对APK反编,重要是你还要会写JAVA代码
回复 支持 反对

使用道具 举报

签到天数: 11 天

发表于 2021-11-14 19:55:17 | 显示全部楼层   湖北省武汉市
可以的,很不错
回复 支持 反对

使用道具 举报

结帖率:0% (0/1)
发表于 2021-5-28 15:12:17 | 显示全部楼层   湖北省天门市
可以的,很不错
回复 支持 反对

使用道具 举报

发表于 2021-5-25 15:57:20 | 显示全部楼层   河南省安阳市
66666666666666666666666666
回复 支持 反对

使用道具 举报

发表于 2021-3-24 01:36:21 | 显示全部楼层   湖北省黄冈市
思路很不错 !
回复 支持 反对

使用道具 举报

结帖率:88% (7/8)
发表于 2020-3-23 17:58:43 | 显示全部楼层   河南省郑州市
学习一下            
回复 支持 反对

使用道具 举报

结帖率:100% (3/3)
发表于 2019-12-10 22:28:05 | 显示全部楼层   广东省河源市
废话不多说来点干货。有人说我是个骗子
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

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