这里记录下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逆向的文章会将用到的再写出来