这里记录下android逆向之前需要准备的一些环境配置
1.Java环境
我配置的是1.8的jdk,可以配置到自己需要的文件夹下。下载完毕后,配置下环境变量,这样就能直接使用了,打开cmd,输入java -version,如果显示版本号,那说明配置成功。有兴趣的可以下载个java的编辑器,还是需要正向的java学习的
2.apktool 反编译
反编译apk的命令是
java -jar apktool.jar d -f xxx.apk
或者
apktool -d xxx.apk
反编译后可以进入lib文件查看so文件,主要目的是为了查看apk是否加固。各种厂商的so文件特征不一样,大家可以自行谷歌
3. 脱壳
我这里用的xposed里的模块Fdex2,安装进xposed后进行下软重启。点击进入Fdex2中对想进行脱壳的apk进行脱壳,脱壳后会显示目录。然后返回打开app刷两下,防止脱壳失败
4.adb命令
adb devices 查看当前的连接设备
adb shell 进入手机
su 获取超级用户权限
cd到刚才脱壳后显示的目录中查看是否脱壳成功,看是否有dex文件,将文件发送到电脑自己想要的文件夹中
还有更多的命令我这里就不打了,谷歌一大堆。
ps:我在自己手机中装了mt文件管理,直接压缩了文件,然后发送到电脑上,还有个比较便捷的地方就是mt文件管理查看apk时是可以看到apk是否加固
5. jadx
安装jadx,这个我就不赘述了,网上搜索就行了
6.jpype
不要直接pip,去找自己python版本对应的包,网址https://www.lfd.uci.edu/~gohlke/pythonlibs/,这里的这个包的作用是将java代码能让python调用,代码示例
#需要先将java代码变成class文件,然后将class文件变成jar
jarpath = r"D:/xxx/xxx.jar"
#到自己的jdk路径下找dll
jvm_path = r"C:/Program Files/Java/jdk1.8.0_121/jre/bin/server/jvm.dll"
startJVM(jvm_path, "-ea", "-Djava.class.path=%s" % (jarpath))
JClass2 = JClass('xxxx') #需要调用的class名
我这里是在window下的调用,并没有在虚拟机上。下面是
//将java文件变成class文件
javac xxxx.java
//将class文件变成jar
jar cvf xxx.jar xxxx.class
7.frida
pip install frida
pip install frida-tools
frida-server装到手机中先adb查看手机设备
adb shell getprop ro.product.cpu.abi
然后安装相对应的版本包
adb push frida-server-xxxxxxx /data/local/tmp/frida-server,将包放入这个路径下
进入路径中,修改文件权限
chmod 777 frida-server
运行文件
./frida-server
然后保证运行请不要关闭命令敞口,另起个cmd或者shirft + 右键打开powershell输入
adb forward tcp:27042 tcp:27042
adb forward tcp:27043 tcp:27043
来启动监听端口
最后检查是否成功
# 输出进程列表
frida-ps -U
# 进行连接,选择一个进程
frida -U -f com.xxxxx.xxxxxxx
xposed安装不赘述
此文只是记录下安卓方面需要的安装包和环境,写的只是大概的东西,还有很多细节的东西,后面会app逆向的文章会将用到的再写出来