本帖最后由 encoderlee 于 2019-6-16 13:51 编辑
本文是原创文章,转自本人博客,为新手学习Android逆向过程中的心得总结,文章内容为初级知识,高手勿喷
《Android抓包指南①: 使用Fiddler抓HTTP/HTTPS包》
上一章,我们使用Fiddler对应用抓HTTP/HTTPS包,并且解决了Android7.0及以上的抓不到包的问题。
本章,我们借助DevTools,同样可以实现对第三方应用内嵌的WebView与服务端的HTTP/HTTPS通信进行抓包分析,还可以调试页面Javascript,多种手段多管齐下,助力对第三方应用的逆向分析。
DevTools 原本的用途,是Google提供给Android开发者的一个调试工具,用于调试自己开发的APP内嵌的WebView中的内容,具体用法可以参考Google官方文档:
https://developers.google.com/web/tools/chrome-devtools/remote-debugging/
https://developers.google.com/web/tools/chrome-devtools/remote-debugging/webviews
将手机与电脑通过USB线连接,打开手机的USB调试功能,然后在电脑上打开Chrome浏览器,在地址栏输入
chrome://inspect
就可以看到连接的Android手机和打开的WebView页面,点击 [inspect] 就可以打开调试大门。
和Chrome调试普通WEB页面没有什么太大区别,点击[刷新]就可以看到所有HTTP/HTTPS请求内容。除了可以实现抓包效果,还可以进一步分析它的AJAX请求是怎么构造的请求参数,从而自行编码模拟发送请求,从而实现一些 Interesting 的自动化效果,嘿嘿嘿。。。
WebViewDebugHook
但是这个调试方法有一个前提,就是APP自身必须调用WebView.setWebContentsDebuggingEnabled(true); 才会允许被DevTools调试,毕竟这是一个给开发者在开发阶段调试自身应用的功能,而不是提供给你窥探别人APP内容的工具,出于安全考虑,当然不可能随便调试别人的应用。但是,还记得我们之前在《Windows抓包指南①:Proxifier+Fiddler对第三方程序强制抓包》中说的吗?
有条件要上,没有条件创造条件也要上!
Root手机,安装Xposed框架,使用WebViewDebugHook模块干它
WebViewDebugHook项目源代码:https://github.com/feix760/WebViewDebugHook
其实也可以自行编写Xposed模块,这里毕竟很简单,只需要在目标APP进程中调用静态方法 WebView.setWebContentsDebuggingEnabled(true); 就打开了调试大门。当然,使用WebViewDebugHook的理由是懒惰,拿来就用。同时WebViewDebugHook针对腾讯的部分加壳做了处理,可用性更高。
Root和Xposed的重要性
最后,不得不说,Root和Xposed框架对Android应用逆向分析人员来说是非常重要的,强烈推荐Google亲儿子手机Nexus/Pixel等,方便Root,方便安装Xposed,甚至还可以自行编译Android AOSP烧写,想怎么改就怎么改,操作系统都在你的掌控之中,何况是跑在上面的应用呢。只要修改了系统API,想给程序返回什么结果,就返回什么结果,就算你APP检测Xposed都没用,你检测不到的,因为我根本没有安装Xposed,仅仅是修改了操作系统源代码而已。玩弄APP于股掌之间。
Let's Go
最后晒一下我购入的Google亲儿子,老一代的Pixel,几百元而已,爱不释手:
本文由encoderlee发表于CSDN博客: https://blog.csdn.net/CharlesSimonyi/article/details/90518367 转载请注明出处
|