免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动!
内容参考于:图灵Python学院
正常来爬一个app的数据,在没有加密的情况下,就不需要去逆向,app没有加密也就可以正常爬数据不需要解密,遇到加密的情况下就需要一些逆向的技术去跟它进行对抗,只有对抗成功才能拿到想要的(得到解密的方式),然后有些app有签名有加固,但是不管app怎么处理,它的加密或加固的操作全部都是在前端做的(app里做的),也就是说在app里(或者说是客户端里)肯定能找到它们的一些信息,所以才对逆向来说有迹可循,假设这些东西都在服务器这逆向就没法做了,在服务器的东西需要搞渗透
app逆向的流程
首先对于逆向来说要先去下载app,以安卓为例,app的安装包是.apk后缀,可以去各个网站下载,比如豌豆荚,下图是豌豆荚的官网,豌豆荚就可以下载很多app
比如想下载大麦app,在下图红框就搜索大麦
然后会搜索很多app,然后点查看
点了查看之后,然后一个app它会有很多版本,然后再点下图红框位置可以下载app的历史版本
然后点下图红框
然后会出来很多历史版本,如果有些app强制更新可以逆向找它更新的地方给hook掉
然后为什么要说历史版本这件事呢?如果逆向搞不定,可以去搞它历史的版本,比较低的版本,app会向下兼容,搞不定高版本可以搞低版本,到这就是怎么下载app,下载完之后它是一个.apk文件,这种.apk文件可以直接装到安卓手机里面,前端(客户端)的代码也都在apk文件里面,下图是一个apk文件,它就可以直接放到安卓手机里进行安装
然后如果豌豆荚里没有想要的app咋办?百度搜索 app名字 + app下载,比如淘宝app下载这样的关键字,去搜索,如下图红框是通过搜索的是淘宝app下载 ,会搜出很多下载地址,然后这种的搜索可能下载到有病毒的app,app是可以重新打包的,所以要专门准备一个手机或者模拟器,不要用再用的手机,这样如果下载到病毒直接初始化手机就完了
以上是怎么下载app文件,然后接下来是查看apk有没有壳,如果有壳的话要把壳砸开才能看源码,有砸壳的工具后面会给,砸了壳之后就可以看到源码了,源码一般是用java语言写的,然后假设没有壳的话就可以用jadx-Gui对apk进行反编译,发编译之后就可以看到源代码了
然后假设把源码分析完了,如果有签名加密的东西就给它们hook掉获取到明文,然后就可以写爬虫了,这是app逆向的一个流程
下图是通过jadx反编译apk之后的源码,是java代码
前言:
然后安卓逆向电脑需要16G内存以上,要不然有些apk因为太大在加载的时候会打不开或者内存就满了
然后app反编译之后的源码是java语言,所以后面会写java基础,java基础只写到可以应付逆向位置并不会把java基础写全
java基础搞完会写安卓开发基础,如果不会正向(安卓开发)逆向也没法逆,因为完全不知道app是怎么个写法逆向的时候也就不知道怎么下手
然后安卓基础完了之后再写java爬虫
java爬虫完了之后会是frida hook,使用jadx反编译之后它的数据和走向使用jadx没法关联起来就不好分析,这个时候frida的作用就来了,frida可以把参数(代码)hook掉这样就能看到参数的值是什么了,然后有些app会检测frida所以还会写绕过frida的检测,公司里上班也会用frida这个技术
然后Xposed hook,它是跑在安卓手机里的,它会采用LSPosed框架
整完这些安卓逆向就差不多了
然后设备:
一加 ace2 安卓13,也可以使用模拟器 雷电、雷神都可以模拟器使用安卓9,然后如果买不起一加 ace2,可以在淘宝买个pixel4它是安卓10系统(要找商家确认好安卓10系统),大约500元左右,买的时候记得让商家给root和解锁一下
安卓7往后它就不信任用户证书了,这就需要把抓包证书放到系统下面,手机需要root,然后模拟器它是可以直接开启root权限的,开启完之后就可以直接把证书放到系统下了
然后有个scrcpy软件可以把手机屏幕投到电脑上
以上是安卓逆向的说明