开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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


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

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

查看: 8089|回复: 33
收起左侧

[技术专题] Adnriod实战WebView调用JS分析

[复制链接]

结帖率:100% (34/34)
发表于 2019-3-29 12:14:57 | 显示全部楼层 |阅读模式   江苏省南通市
近日,拿到一个app,他直接告诉我需要分析的是请求头中的key值
123.png
凭感觉,像是md5后的32位hex值,app无壳,说干就干,反编译,搜索相关的关键字,结果你能猜到的,java伪代码里没有发现有价值的线索。

难道它是在so里面实现的?

由于xposed替换了系统的api,在这台手机上就能充当god的角色,前题是你能正确分析到相关函数,和写出相应的hook代码。

于是,这里,它如果是在so里实现的加密,那么,我们可以去hook系统加载so的方法

说干就干,写代码,编译插件,看看这个app到底加载了哪些so文件。
12.png


很遗憾,加载so,也没有啥可用的信息。

但看到它加载了libwebviewchromium.so,让我们眼前一亮,

既然调用了webview,那么它是把html,或者js放在app中的吗?
用压缩软件打开app/assets目录看一看,
1.png
果然有,用文档程序打开html和js看一看,
1.png
很遗憾,都是经过处理了的。。不能肉眼识别。。

我们知道,Chromium是谷歌的开源项目,360极速浏览器、枫树浏览器、太阳花浏览器、世界之窗极速版、傲游浏览器和UC浏览器等等国产浏览器,都是基于它进行包装的。

好,那么重点来了,如果它是基于Chromium实现的,那么通过百度查询可知:
Android通过WebView调用 JS 代码
对于Android调用JS代码的方法有2种:
1. 通过WebViewloadUrl()
2. 通过WebViewevaluateJavascript()
并且,如果不让调试内置的WebView,需要调用WebView对象的setWebContentsDebuggingEnabled方法。WebView对象名称可能被混淆掉,但setWebContentsDebuggingEnabled是不能被混掉的,于是,我们就去反编译的伪代码中搜索setWebContentsDebuggingEnabled,看看有什么发现.
12.png
果然有所发现,在a方法中,带入了z参数,如果猜得没错,带入false,让webview对象不能被调试,下面的c方法中,还有两串像base64编码后的字符串,也顺便看看。
从c方法的c.c方法,一路跟过去,发现果然是base64编码
base.png
于是,把c方法中的那两串字符,手动base64解码得到:
de.robv.android.xposed.installer
com.saurik.substrate

看来它不仅把字符中明文给编码了一次,还检测了xposed和substrate两款hook框架。

行,既然如此,那就玩个偷懒的玩法,直接在上面base64解码方法进行hook,如果发现返回值是上面两串字符的时候,把返回值给换成其它任意字符,以过掉反hook吧。


剩下的就是a方法,设置setWebContentsDebuggingEnabled了,把a方法也hook一遍,把带入的参z设置成true,让WebView变得可以被调试。
hook.png
OK,重新编译插件,开始跑起来:
hook2.png
从log中可以看到它果然调用了setWebContentsDebuggingEnabled方法。
这下就可以使用chrome对它进行远程调试了
调试不是重点,重点是上面的分析过程。
result.png
好了,今天就啰嗦到这里,再见。
长期接 Js加密解密 APP算法逆向分析 Android T壳等业务 有需求的滴滴,手游App 直播App App破解不接。
易语言POST/JS/APP交流群: 270587 欢迎交流学习  QQ:46660816

发表于 2019-9-13 08:13:51 | 显示全部楼层   广东省深圳市

感谢发布原创作品,精易因你更精彩!
回复 支持 反对

使用道具 举报

发表于 2019-5-25 07:00:47 | 显示全部楼层   湖北省武汉市
66666666666666666666
回复 支持 反对

使用道具 举报

结帖率:71% (32/45)
发表于 2019-5-3 02:40:17 | 显示全部楼层   广东省广州市
直接chrome remote调试会不会快一点
回复 支持 反对

使用道具 举报

结帖率:82% (28/34)
发表于 2019-4-30 10:22:58 | 显示全部楼层   湖南省永州市
无敌的存在·
回复 支持 反对

使用道具 举报

结帖率:100% (2/2)

签到天数: 1 天

发表于 2019-4-5 02:02:07 | 显示全部楼层   广东省汕头市
感谢分享,收藏一下再看

回复 支持 反对

使用道具 举报

结帖率:78% (21/27)
发表于 2019-4-4 11:24:10 | 显示全部楼层   安徽省阜阳市
感谢分享,收藏一下再看
回复 支持 反对

使用道具 举报

结帖率:82% (9/11)

签到天数: 9 天

发表于 2019-4-4 06:39:32 | 显示全部楼层   辽宁省丹东市
学习学习~~
回复 支持 反对

使用道具 举报

签到天数: 29 天

发表于 2019-4-3 23:47:31 | 显示全部楼层   江苏省镇江市
#在这里快速回复#感谢分享!!!!~~
回复 支持 反对

使用道具 举报

结帖率:63% (12/19)
发表于 2019-4-3 22:55:22 | 显示全部楼层   广东省茂名市
看看。。。。。。。。。。
回复 支持 反对

使用道具 举报

结帖率:100% (1/1)

签到天数: 26 天

发表于 2019-4-3 21:31:15 | 显示全部楼层   湖北省鄂州市
感谢分享!!!!~~
回复 支持 反对

使用道具 举报

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

本版积分规则 致发广告者

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

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

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