app安全逆向 - 入门级别-环境准备

前言

 

最近感觉爬虫-逆向圈越来越卷了,平均每周一个新技术,web端和app端简直各种骚操作,一篇混乱,稍微不看群消息又错过一个新技术名词,所以准备暂时主攻app逆向了(主要是感觉web端骚操作已经跟不上了)

 

本篇文章来聊聊怎么配置一个app逆向的环境,虽然网上已经有很多教大家配置逆向环境的文章了,不过我还是想写一篇,方便大家对照,当然我也不敢保证我会写的比那些大佬写的好

 

环境需要

硬件准备

  • 一台电脑,内存最好8G+(其实稍微大型点的apk,开个jadx 8G基本就没了) 
  • 一台手机,已root,刚开始可以用模拟器,但是后期最好有真机,可以在某鱼或者肉师傅的小店里买二手的,几百块,不算贵
  • 一根数据线

 

系统准备

 

win/mac都可以

 

 

软件准备

 

  • python3+:用于爬虫脚本执行
  • adb:一个在电脑终端里可对手机设备做一定操作的工具
  • objection:用于逆向操作,针对apk的java层,嘎嘎乱杀的存在,依赖于frida,可以说是frida的集成工具,但是只支持java层调试
  • frida:用于做逆向操作,hook之类的,不止针对java层,Native层也可以
  • xposed:类似frida,后期会用到,目前暂时用不到,所以本篇文章暂时略过
  • jadx:查看apk或者dex源码的工具,可以说是作为逆向的关键工具
  • jeb:类似jadx,很多情况下针对app源码的还原要比jadx好,不过并不能完全替代jadx
  • vscode:写逆向脚本的编辑器,你用pycharm写也一样的
  • IDA:针对so文件的调试

 

 

 

开始配置

 

这里我就用我的电脑为例,mac,然后是一台n5手机,已root

python环境配置就不说了。

 

配置adb

 

去这个网站下载adb:https://www.androiddevtools.cn/

 


 

 选择你对应的版本,然后别人也提示了,怎么做

  

 

 

 

下载完,解压,放到目录里即可,mac的话

 

 

 

然后直接执行adb即可用,你为了方便可以把adb配置上bash_profile里。

 

还有个比较简单的方法就是直接brew安装:

 

brew cask install android-platform-tools

 

 

安装完了之后,手机打开设置,设置里面,关于本机,然后狂点系统版本号5次,开启开发者模式,点击进入开发者模式,开启usb调试

 

 

 

然后插上数据线连上电脑,adb devices看是否有设备

 

 

 

有就可以了,第一次插上电脑的时候可能会有是否允许的相关提示,点【允许】即可。如果没有,检查你的usb数据线,有些数据线只有充电的功能,没有传输数据的功能,所以你可以换一根线试试

 

 

jadx配置

直接去github里搜索

 

 

第一个就是了,点这边的releases

 

 

选择你对应的系统支持的文件,我的是mac,就选的第一个

 

 

下载完之后解压,双击jadx-gui就可以执行打开,如果你的是win电脑的,双击jadx-gui.bat文件即可打开

 

 

打开的界面如下:

 

 

jeb配置

 

jeb的官网:https://www.pnfsoftware.com/

如果慢的话,可以去这里下载:https://shareappscrack.com/jeb-decompiler/,或者在吾爱破解(一个很权威的逆向网站,里面大佬众多,没事可以去读读大佬们的文章)的爱盘里搜索jeb,当然你可以在网上自己找

 

 

下载完毕之后,解压,在终端里执行sh文件

 

 

 提示无权限,改下权限再执行,提示没有找到jvm执行环境

 

我看了下我电脑的java环境,这个没记错貌似是mac自带的java环境

 

 

 

 

原来是版本过高了,去oracle官网下载jdk1.8:https://www.oracle.com/java/technologies/downloads/#java8-mac 

 

安装完之后:

 

 

 

 

 

 

进入bash目录配置:

vi .bash_profile

 

将下面的加入文件并保存:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home CLASS_PATH="$JAVA_HOME/lib" PATH=“.$PATH:$JAVA_HOME/bin”

 

 

 

 

然后执行命令让环境生效:

source .bash_profile

 

再次执行那个sh,报了新的错。

 

 

 

 

就发现程序启动完毕立马一闪而过,那说明,可能当前我的系统版本过高不适用这个版本的jeb。换了这个帖子里的jeb版本:https://bbs.pediy.com/thread-268316.htm

 

再次执行:

 

 

ok,成功打开,拖入一个apk,正常打开,搞定了

 

 

 

 

 

 

 注意,如果你的电脑可能因为一些项目依赖,早就安装过非默认版本的java时,但由于jeb需要低版本的jdk,网上很多说是用jdk1.8.121,也就是我上面下载的那个,那么你需要先卸载已有的java环境:

 

1.输入sudo rm -fr /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin
2.输入sudo rm -fr /Library/PreferencesPanes/JavaControlPanel.prefpane
3.查找当前版本ls /Library/Java/JavaVirtualMachines/
4.输入sudo rm -rf /Library/Java/JavaVirtualMachines/(你要删除的jdk版本),mac默认的那个版本建议别删

 

之后再安装你想安装的版本即可

 

 

frida配置

因为frida有很多个版本,不同系统架构的手机也得用对应的frida,所以,先看看你的手机是多少:

adb shell getprop ro.product.cpu.abi

 

 

 

 

 去这里下载对应架构的frida-server :  https://github.com/frida/frida/releases,下面这个就是我们要的了

 

其实最稳的是frida-server12版本,不过不重要,后面实际用到的时候再换

 

 

下载好双击解压

 

 

 

然后用adb push命令,把这个frida-server文件push到手机里,一般是放在手机的/data/local/tmp/目录下,因为这个目录权限等级不高

 

 

 

然后,可以用adb shell命令进入手机,进入刚才的目录查看权限,如果没有【x】权限则需要chmod +X  frida-serverxxx 改权限,这里已经有了我就不改了,我这里由于买的肉师傅的手机,所以已经有很多个版本的frida了,15.1.14才是我刚才push进去的

 

 

 

此时,最好改下文件名,因为有的app的风控回检测文件名是不是有frida之类的字眼

 

启动frida

 

/data/local/tmp/frida-server/frida-server-15.1.14-android-arm

 

启动的时候,如果还是提示权限问题,切换为root用户执行:

 

 

 

 

没报错即启动成功了。更多的说明以后会详细介绍

 

 

映射端口

 

 

在pc端电脑,装adb的机器上使用如下命令映射端口

 

 

adb forward tcp:27042 tcp:27042

 

adb forward tcp:27043 tcp:27043

 

此时有的风控也会检测是否有开启27042和27043端口,所以你可以改下,只要在0-65535范围内没用过的端口即可

 

这就算是配置好frida了

 

 

objection配置

 

同样的搜索

 

 

 

 

 

下载压缩包

 

 

解压:

 

 

搞定了

 

 

vscode配置

 

这个就没啥难度了,直接在官网下载,https://code.visualstudio.com/

然后安装需要的插件即可,比如python,frida等的环境,安装完可以有代码提示,写起代码来非常的丝滑

 

 唯一要注意的是vscode的环境问题,如下,当import  frida时,执行,  

 

 

 

执行如下就说没有安装frida,但其实我用pycharm执行相同打码是不会报这个错的,而且我也非常确定我是安装了frida的 

 

这里的解决方法就是,点左下角,切换python解释器

 

 

 

切换成最后那个即可:

 

 

 

 

再次执行就不会报错了

 

 

IDA配置

 

由于我的电脑系统版本是mac12.0.1(忍不住,手贱更新了),所以网上找了好久都不能用,最后已经忘记是在哪个网站找的了,下载下来,解压执行:

 

 

 

 

然后随便打开一个apk文件的so,即展示如下:

 

 

 

配置完毕

 

下载地址

 

链接: https://pan.baidu.com/s/1vwwaBWqQ_XCi0OnSpW2LzA 提取码: o299

 

一劳永逸配置

 

你可以用肉师傅的r0env的虚拟机(肉师傅的公众号里有下载地址,B站里也有肉师傅自己录制的配置视频:https://www.bilibili.com/video/BV1qQ4y1R7wW?from=search&seid=3800968160265425973&spm_id_from=333.337.0.0),因为r0env就是在kali linux上配置好的,所有能用到的逆向工具基本都有了,你把虚拟机镜像下载下来,然后用vmware打开即可

 

然后很多逆向工具在win平台目前来看是最全的,但是win上调试又可能会出现很多奇怪的问题,所以,长期来看,真机win+虚拟机r0env是最完美的方案,当然真机用mac的也可以的,只是有些工具,像GDA(类似IDA)之类的逆向工具,我貌似没找到mac版,win版是有的

 

r0env相关的开箱使用,以及mac下usb连接到虚拟机里遇到的问题解决,可以看我之前写的一篇:https://www.cnblogs.com/Eeyhan/p/15645609.html

 

 

 

搞定,后面就可以开始你的逆向之旅了.......

 

posted @ 2023-04-28 14:44  Eeyhan  阅读(334)  评论(0编辑  收藏  举报