查看原文
其他

APICloud解密本地资源到逆向APP算法到通用资源解密

jiaqq 看雪学院 2019-09-17

昨天下午有群友问这个用HTML写的APP怎么逆向,当时就认出来了。这是APICloud(https://www.apicloud.com)家的产品。


 


网页转APP,网页资源文件加密储存在本地,看下图:





下面开始分析:


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



是一个WebView控件,顺手就打开远程调试:




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


APP并没有壳,直接JEB打开。



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


先思考APP对资源的加载流程,可能为:


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


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



   

   在JEB里面搜索这个方法:




只有这个地方有实现,继续往下看逻辑a.d -> z.a -> 




获取URL的文件后缀,a.e -> z.d ->



 


判断是不是需要管理的URL,This.b,this.a,分别处理俩种情况的文件:

 


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


关注 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:



   

   解密APP通讯数据抓包看下:




双向加密:我们从DUMP出来的资源中搜索 “/api.php”




顺路发现了可能用来加解密的可疑算法……来试试解请求:




解返回:




成功。


不得不说通讯用的加密算法就好像是路边捡回来的制作通用工具,从前面的分析可以看出,SDK是混淆过的。




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


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



加壳&多DEX注意处理attach。





- End -




看雪ID:jiaqq 

https://bbs.pediy.com/user-309072.htm  



本文由看雪论坛 jiaqq  原创

转载请注明来自看雪社区



—▼—



—▼—



往期热门回顾

1、D-Link DIR 645 远程命令执行漏洞

2、如何实现 Https拦截进行 非常规“抓包”

3、稳定多线程中的inline hook

4、汽车智能警报器的安全问题分析








公众号ID:ikanxue

官方微博:看雪安全

商务合作:wsc@kanxue.com



点击阅读原文,查看更多干货!

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存