【问题标题】:How to check obfuscation results of flutter app?如何检查颤振应用程序的混淆结果?
【发布时间】:2018-12-22 20:30:02
【问题描述】:

在原生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

如果我在颤振 apk 上使用此脚本,我看不到任何包含与我的原始代码相关的任何文件。

【问题讨论】:

标签: android flutter obfuscation minify


【解决方案1】:

Flutter的dart代码编译成native并嵌入到flutter.so运行时,所以反编译flutter不像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。

【讨论】:

  • 谢谢 - 但这是从哪里来的?我的系统上没有安装 arm-linux-androideabi-objdump。
  • 您下载了Android NDK吗? developer.android.com/ndk/downloads
  • 我阅读了与此相关的文档:github.com/flutter/flutter/wiki/Obfuscating-Dart-Code - 它指出“代码混淆隐藏了您编译的 Dart 代码中的函数和类名称,使攻击者难以对您的专有应用程序进行逆向工程。 "
  • 我尝试了 ndk 下载并查看了 libflutter.so 上的输出,但它似乎与我的原始代码没有任何关系?
猜你喜欢
  • 1970-01-01
  • 2021-02-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-17
  • 2018-11-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多