Android 如何检查颤振应用程序的模糊结果?
在原生android开发中,我可以检查我的minifyEnabled是否生效 我使用了这个脚本(在linux中),它允许我提取apk并查看java文件,以查看我的代码是否可读,或者是否已被混淆:Android 如何检查颤振应用程序的模糊结果?,android,flutter,obfuscation,minify,Android,Flutter,Obfuscation,Minify,在原生android开发中,我可以检查我的minifyEnabled是否生效 我使用了这个脚本(在linux中),它允许我提取apk并查看java文件,以查看我的代码是否可读,或者是否已被混淆: #! /bin/bash d2j=/work/installs/dex2jar-2.0 jdgui=/work/installs/jd-gui-1.4.0.jar apk_loc=/work/projects/my_app/build/app/outputs/app-release.apk mkdir
#! /bin/bash
d2j=/work/installs/dex2jar-2.0
jdgui=/work/installs/jd-gui-1.4.0.jar
apk_loc=/work/projects/my_app/build/app/outputs/app-release.apk
mkdir -p /work/tmp/dex
rm -rf /work/tmp/dex/*
cd /work/tmp
cp $apk_loc ./app-release.zip
unzip app-release.zip -d dex
cd dex
chmod +x $d2j/*.sh
$d2j/d2j-dex2jar.sh classes.dex
java -jar $jdgui classes-dex2jar.jar
如果我在Flatter apk上使用此脚本,我看不到任何包含任何与我的原始代码相关的文件。Flatter的dart代码被编译为本机代码并嵌入到Flatter.so运行时,因此反编译Flatter不像java/kotlin的字节码那么容易 但是,反编译.so文件是可能的。您可以使用android ndk中的工具链来执行您想要的反汇编类型
./android-ndk-r15b/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/bin/arm-linux-androideabi-objdump -T "flutter.so | less
但这只是给你一个objdump。所以没有可读性吗?如果OP假设flatter编译成Java类,它就没有了。看:谢谢-但这是从哪里来的?我的系统上没有安装arm linux AndroidAbi objdump。你下载过Android NDK吗?我阅读了这篇与此相关的文档:-它指出“代码混淆在编译的Dart代码中隐藏函数和类名,使攻击者难以对您的专有应用程序进行反向工程。”我尝试了ndk下载,并在libflight.so上查看了输出,但它似乎与我的原始代码没有任何关系,我能辨别出来吗?