Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何检查颤振应用程序的模糊结果?_Android_Flutter_Obfuscation_Minify - Fatal编程技术网

Android 如何检查颤振应用程序的模糊结果?

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

在原生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 -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上查看了输出,但它似乎与我的原始代码没有任何关系,我能辨别出来吗?