暂时先写这么多,有时间慢慢加一些进去

环境配置:java 8(jdk1.8) 以上

一、反编译查看代码:

1、使用工具:dex2jar

该工具文件夹下执行命令:(当前目录打开命令窗口,按住shift+鼠标右键)

./d2j-dex2jar.bat xx.apk       //执行命令后输出一个名为xx-dex2jar.jar的包
2、然后用jd-gui或者luyten工具打开jar包可查看代码

使用时候互为补充。个人喜欢先用jd-gui,先看个大概结构,如果出现jd-gui打开代码文件出现INTERNAL ERROR 的错误提示,说明反编译失败,转用 Luyten就能查看。搜索一些内容时会常用Luyten

反编译luac的工具安卓 lua反编译工具安卓版_反编译

二、反编译:

1、使用工具:apktool

https://ibotpeaches.github.io/Apktool/install/ 要使用这个工具需要把工具目录加入系统变量

//该工具目录下执行命令:
apktool.bat d xx.apk         //执行命令后输出一个文件夹,与上面反编译查看的代码对应

这时,可对文件夹中代码进行修改或其他操作。

2、APP评估中可在该文件夹中AndroidManifest.xml文件中检查的两项:

(1)allowbackup备份权限,ture则存在备份数据泄露风险(未配置的情况下,默认为TRUE
(2)Debuggable属性,true则存在应用信息篡改泄露风险(未配置的情况下,默认为FALSE

3、APP评估中可在该文件夹下检查开发者证书,位于original / META-INF下的RSA文件:

(1)开发者证书不规范,导致开发者身份信息不明(根据单位需求评估)

.\keytool.exe -printcert  -file .\CERT.RSA     //Java安装目录下自带工具keytool
4、APP评估中可在xx文件夹中修改某些内容以检查代码保护不足项:

(1)可以重新编译打包(可修改其中某些.smali文件后重新编译、签名并安装)

三、APK信息

1、使用工具:GetApkInfo

可查看APK信息,包括app版本、MD5等。

java -jar GetApkInfo.jar XX.apk                //查看APK信息及签名版本
2、APP评估中可检查是否存在Janus漏洞

(1)Janus漏洞(基于Janus漏洞,攻击者可以修改APP而不影响其原始签名,篡改后的APP可以成功安装运行。应同时使用V1+V2签名)

四、反汇编:

1、使用工具:apktool

简称打包,对代码进行修改后重新打包。

apktool.bat b xx  (xx为反编译后的目录)           
//反汇编后xx目录下多出两个文件夹build和dist,其中dist下的apk文件为重新打包后的apk

五、签名:

将重新打包后的apk重新签名:

java安装目录下自带签名工具可签名:

.\keytool.exe -genkey -alias D:\abc.keystore123 -keyalg RSA -validity 20000 -keystore D:\abc.keystore123     
//编写签名,密钥库口令可随便设置,应用时也需要输入。完成设置后询问是否正确时输入Y可保存,直接回车可修改。保存时会再次验证密钥库口令,与上一致即可。   

.\keytool.exe -importkeystore -srckeystore D:\abc.keystore123 -destkeystore D:\abc.keystore123 -deststoretype pkcs12       
//输入上条命令行会提示:JKS 密钥库使用专用格式。建议使用以下命令迁移到行业标准格式 PKCS12。

.\jarsigner.exe -verbose -keystore D:\abc.keystore123 "F:\APP Test\apktool\xx\dist\xx.apk" D:\abc.keystore123  
//将这个签名应用到重新打包后的apk

图为设置签名:

反编译luac的工具安卓 lua反编译工具安卓版_Android_02