首页
论坛
课程
招聘
[原创]APICloud解密本地资源到逆向APP算法到通用资源解密
2019-2-16 13:22 17400

[原创]APICloud解密本地资源到逆向APP算法到通用资源解密

2019-2-16 13:22
17400

前言:

昨天下午有群友问这个用HTML写的APP怎么逆向

 

当时就认出来了这是APICloud(https://www.apicloud.com) 家的产品,网页转APP,网页资源文件加密储存在本地 看下图:



下面开始分析:

1.      既然是网页实现就少不用WebView X5之类的框架来加载呈现 先看看界面的结构


是一个WebView控件,

顺手就打开远程调试:


很遗憾,在WebView Debug = true的情况下没有接入端口,只能从源代码分析了.

2.      APP并没有壳,直接JEB打开


结构也很简单,厂家的SDK占了大部分内容(因为是网页开发APP,要逻辑都在JS)

先思考APP对资源的加载流程

可能为:

1)WEBVIEW - > 加载页面 -> 拦截/查找本地文件 有 -> 解密/写回数据

2)WEBVIEW - > 加载页面 -> 拦截/查找本地文件 无 -> 请求网络文件

这里有个共同的点都是需要 拦截,而 WebView 只有一个实现这个功能的接口: WebViewClient.shouldInterceptRequest

下面是摘抄博客对API的介绍:


2.1   在JEB里面搜索这个方法:

下图:


只有这个地方有实现.继续往下看逻辑

a.d -> z.a -> 



获取URL的文件后缀.

a.e -> z.d ->


 

判断是不是需要管理的URL

This.b

this.a

分别处理俩种情况的文件:

 

到了这里 SDK 接管资源的痕迹就很明显了,再往下我相信可以找到怎么加载&解密文件 但是我的目的只是dump出原来的明文资源就好,到这里就可以停止了

2.2   关注 new i(v1, new c(v2, v0)); 这行

点进去看下:


是WebResourceResponse(String mimeType, String encoding,InputStream data) 的实现

再往下就是WebView内部了,SDK也没法做什么改变了,相信InputStream就是标准的数据了,从 new c(v2, v0) 入手用Xposed Hook出数据看一下.


运行APP,查看Logcat


成功….

原来:


DUMP:


3.      解密APP通讯数据

抓包看下:


双向加密:

我们从DUMP出来的资源中搜索 “/api.php”


顺路发现了可能用来加解密的可疑算法.. 来试试

解请求:


解返回:


成功:

不得不说通讯用的加密算法就好像是路边捡回来的.

4.      制作通用工具

从前面的分析可以看出,SDK是混淆过的


上面的HOOK只能针对某一个APP,换个APP又得重新分析,如果APP加了壳那还得脱壳才能分析

下面给出通用的DUMP且无视加壳的代码(我这只是其中一种,还有很多种写法)


加壳&多DEX注意处理attach



草樣年華

2019/02/16



第五届安全开发者峰会(SDC 2021)议题征集正式开启!

最后于 2019-3-3 14:21 被jiaqq编辑 ,原因:
上传的附件:
收藏
点赞10
打赏
分享
打赏 + 2.00
打赏次数 1 金额 + 2.00
 
赞赏  junkboy   +2.00 2019/02/16 感谢分享~
最新回复 (32)
雪    币: 10942
活跃值: 活跃值 (66)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
junkboy 活跃值 2019-2-16 14:37
2
0
支持
雪    币: 15617
活跃值: 活跃值 (15017)
能力值: (RANK:75 )
在线值:
发帖
回帖
粉丝
Editor 活跃值 2019-2-16 14:45
3
0
感谢分享~
雪    币: 200
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
羽傲天 活跃值 2019-2-16 16:45
4
0
感谢~~~~~~~~~~
雪    币: 402
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
DWwinter 活跃值 2019-2-18 11:00
5
0
雪    币: 8264
活跃值: 活跃值 (2257)
能力值: (RANK:200 )
在线值:
发帖
回帖
粉丝
LowRebSwrd 活跃值 4 2019-2-18 12:16
6
0
雪    币: 370
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
司空仲平 活跃值 2019-2-18 15:57
7
0
感谢大佬分享!
雪    币: 36
活跃值: 活跃值 (225)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
芃杉 活跃值 2019-2-18 17:51
8
0
mark,感谢分享
雪    币: 240
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
爱奇速 活跃值 2019-3-1 16:30
9
0
学习下,感谢分享!
雪    币: 182
活跃值: 活跃值 (259)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
红颜小学生 活跃值 2019-3-2 20:13
10
0
最后于 2020-2-26 04:42 被红颜小学生编辑 ,原因:
雪    币: 442
活跃值: 活跃值 (20)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
jiaqq 活跃值 2019-3-2 21:27
11
0
红颜小学生 我想请教一下这个pathMkdirs函数是怎么写的,我是新手
file.getParentFile.mkdirs();
file.createNewFile();
雪    币: 112
活跃值: 活跃值 (62)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
lov520ing 活跃值 2019-3-2 22:39
12
0
谢谢  学习了
雪    币: 3
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
mb_grdrgspg 活跃值 2019-5-29 08:52
13
0
uzmap dump这个app如何使用啊?
雪    币: 3
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
mb_grdrgspg 活跃值 2019-5-29 08:55
14
0
我等小白觉得很厉害啊,但是看不懂。从乱码到明文的过程,一下子就到了,过程操作不是很明白。
雪    币: 269
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Jackaka 活跃值 2019-5-29 14:22
15
0
感谢大佬分享
雪    币: 269
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Jackaka 活跃值 2019-5-29 14:50
16
0
小白,问一下。hook包源码能发一份我吗?jackchen6@qq.com,谢谢大佬。
雪    币: 237
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
深林雨溪 活跃值 2019-6-4 14:27
17
0
问一下楼主 , js文件怎么解密的,用的什么工具,谢谢大佬 。
雪    币: 29
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
mb_phzcjtts 活跃值 2019-6-12 11:29
18
0
有个项目可以跟你合作吗
雪    币: 19
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
mb_mrvqxfew 活跃值 2019-6-22 14:42
19
0
感谢大佬分享
雪    币: 33
活跃值: 活跃值 (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ni已承诺 活跃值 2019-9-9 12:01
20
0
感谢大佬分享,非常感谢
雪    币: 266
活跃值: 活跃值 (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
gqm 活跃值 2019-9-23 23:40
21
0
您好,可以找您定做一些东西吗?
雪    币: 200
活跃值: 活跃值 (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
荧光之夏 活跃值 2019-9-24 12:58
22
0
真是及时雨  百度了半天 终于找到正主了
雪    币: 227
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
skywhite 活跃值 2020-2-20 21:59
23
0
正需要,GOOD
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
mb_gywrowji 活跃值 2020-2-26 00:24
24
0
无用的教程,明明该讲的地方你却不讲。
这位大佬,明确告诉你,你讲的没卵用,详细研究了一下,对解密前端代码几乎没有任何帮助。
仅仅一个思路和方式有用。方式就是解密APIcloud的一个思路。
恰恰就是这个思路你没有说明任何有用的,对解密js css html无用。
谁解密功底深厚可以看看,其他人看了没有一点帮助。
雪    币: 182
活跃值: 活跃值 (259)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
红颜小学生 活跃值 2020-2-26 04:41
25
0
mb_gywrowji 无用的教程,明明该讲的地方你却不讲。 这位大佬,明确告诉你,你讲的没卵用,详细研究了一下,对解密前端代码几乎没有任何帮助。 仅仅一个思路和方式有用。方式就是解密APIcloud的一个思路。 恰恰 ...
你真是个憨憨,他分享自己的心得,怎么就刺激到你了?网络乞丐也耍大爷脾气了?
游客
登录 | 注册 方可回帖
返回