worawit / blutter

Flutter Mobile Application Reverse Engineering Tool
MIT License
760 stars 128 forks source link

Precompiled release binaries request #12

Open pwnipc opened 8 months ago

pwnipc commented 8 months ago

Hello @worawit , please add a binary release pipeline, I've spent hours trying to get the project to run on my machine.

got this on a debian based machine

-- Build files have been written to: /home/research/Downloads/blutter/build/blutter_dartvm3.0.3_android_arm64
[1/22] Building CXX object CMakeFiles/blutter_dartvm3.0.3_android_arm64.dir/cmake_pch.hxx.gch
FAILED: CMakeFiles/blutter_dartvm3.0.3_android_arm64.dir/cmake_pch.hxx.gch 
/usr/bin/c++ -DDART_COMPRESSED_POINTERS -DDART_PRECOMPILED_RUNTIME -DDART_TARGET_OS_ANDROID -DDART_TARGET_OS_WINDOWS_UWP -DEXCLUDE_CFE_AND_KERNEL_PLATFORM -DFRIDA_TEMPLATE_DIR=\"/home/research/Downloads/blutter/scripts\" -DHAS_TYPE_REF -DNDEBUG -DPRODUCT -DTARGET_ARCH_ARM64 -DU_USING_ICU_NAMESPACE=0 -D_HAS_EXCEPTIONS=0 -I/usr/include/capstone -isystem /home/research/Downloads/blutter/packages/include/dartvm3.0.3 -O3 -DNDEBUG -std=c++2a -O3 -fno-rtti -fvisibility=hidden -fvisibility-inlines-hidden -fno-omit-frame-pointer -Winvalid-pch -x c++-header -include /home/research/Downloads/blutter/build/blutter_dartvm3.0.3_android_arm64/CMakeFiles/blutter_dartvm3.0.3_android_arm64.dir/cmake_pch.hxx -MD -MT CMakeFiles/blutter_dartvm3.0.3_android_arm64.dir/cmake_pch.hxx.gch -MF CMakeFiles/blutter_dartvm3.0.3_android_arm64.dir/cmake_pch.hxx.gch.d -o CMakeFiles/blutter_dartvm3.0.3_android_arm64.dir/cmake_pch.hxx.gch -c /home/research/Downloads/blutter/build/blutter_dartvm3.0.3_android_arm64/CMakeFiles/blutter_dartvm3.0.3_android_arm64.dir/cmake_pch.hxx.cxx
In file included from /home/research/Downloads/blutter/build/blutter_dartvm3.0.3_android_arm64/CMakeFiles/blutter_dartvm3.0.3_android_arm64.dir/cmake_pch.hxx:5,
                 from <command-line>:
/home/research/Downloads/blutter/blutter/src/pch.h:12:10: fatal error: format: No such file or directory
   12 | #include <format>
      |          ^~~~~~~~
compilation terminated.
ninja: build stopped: subcommand failed.
Traceback (most recent call last):
  File "/home/research/Downloads/blutter/blutter.py", line 138, in <module>
    main(args.indir, args.outdir, args.rebuild, args.vs_sln)
  File "/home/research/Downloads/blutter/blutter.py", line 120, in main
    cmake_blutter(blutter_name, dartlib_name, macros)
  File "/home/research/Downloads/blutter/blutter.py", line 76, in cmake_blutter
    subprocess.run([NINJA_CMD], cwd=builddir, check=True)
  File "/usr/lib/python3.9/subprocess.py", line 528, in run
    raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['ninja']' returned non-zero exit status 1.

and this on sonoma 14.1

-- Build files have been written to: /Users/research/Public/blutter/build/blutter_dartvm3.0.3_android_arm64
[6/10] Building CXX object CMakeFiles/blutter_dartvm3.0.3_android_arm64.dir/src/CodeAnalyzer_arm64.cpp.o
FAILED: CMakeFiles/blutter_dartvm3.0.3_android_arm64.dir/src/CodeAnalyzer_arm64.cpp.o
/opt/homebrew/opt/llvm@15/bin/clang++ -DDART_COMPRESSED_POINTERS -DDART_PRECOMPILED_RUNTIME -DDART_TARGET_OS_ANDROID -DDART_TARGET_OS_WINDOWS_UWP -DEXCLUDE_CFE_AND_KERNEL_PLATFORM -DFRIDA_TEMPLATE_DIR=\"/Users/chalie/Public/blutter/scripts\" -DHAS_TYPE_REF -DNDEBUG -DPRODUCT -DTARGET_ARCH_ARM64 -DU_USING_ICU_NAMESPACE=0 -D_HAS_EXCEPTIONS=0 -I/opt/homebrew/Cellar/capstone/5.0.1/include/capstone -isystem /Users/research/Public/blutter/packages/include/dartvm3.0.3 -O3 -DNDEBUG -std=c++20 -arch arm64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.0.sdk -fexperimental-library -O3 -fno-rtti -fvisibility=hidden -fvisibility-inlines-hidden -fno-omit-frame-pointer -Winvalid-pch -Xarch_arm64 -include/Users/research/Public/blutter/build/blutter_dartvm3.0.3_android_arm64/CMakeFiles/blutter_dartvm3.0.3_android_arm64.dir/cmake_pch_arm64.hxx -MD -MT CMakeFiles/blutter_dartvm3.0.3_android_arm64.dir/src/CodeAnalyzer_arm64.cpp.o -MF CMakeFiles/blutter_dartvm3.0.3_android_arm64.dir/src/CodeAnalyzer_arm64.cpp.o.d -o CMakeFiles/blutter_dartvm3.0.3_android_arm64.dir/src/CodeAnalyzer_arm64.cpp.o -c /Users/chalie/Public/blutter/blutter/src/CodeAnalyzer_arm64.cpp
/Users/chalie/Public/blutter/blutter/src/CodeAnalyzer_arm64.cpp:5:10: fatal error: 'source_location' file not found
#include <source_location>
         ^~~~~~~~~~~~~~~~~
1 error generated.
[9/10] Building CXX object CMakeFiles/blutter_dartvm3.0.3_android_arm64.dir/src/main.cpp.o
ninja: build stopped: subcommand failed.
Traceback (most recent call last):
  File "/Users/research/Public/blutter/blutter.py", line 138, in <module>
    main(args.indir, args.outdir, args.rebuild, args.vs_sln)
  File "/Users/research/Public/blutter/blutter.py", line 120, in main
    cmake_blutter(blutter_name, dartlib_name, macros)
  File "/Users/chalie/Public/blutter/blutter.py", line 76, in cmake_blutter
    subprocess.run([NINJA_CMD], cwd=builddir, check=True)
  File "/Users/research/.pyenv/versions/3.11.0/lib/python3.11/subprocess.py", line 569, in run
    raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['ninja']' returned non-zero exit status 1.
spr234 commented 8 months ago

Yes, I had this problem as well,

I overlooked the disclaimer

"This application uses C++20 Formatting library. It requires very recent C++ compiler such as g++>=13, Clang>=15"

and I am pretty sure your compiler version is old,

You should use Debian Trixie as it has updated package manager and everything can be setup by running

sudo apt install python3-pyelftools python3-requests git cmake ninja-build \ build-essential pkg-config libicu-dev libcapstone-dev

mragonias commented 8 months ago

Same error here. Im working in Ubuntu WSL distribution on Windows), with latest g++ 13.2.0, and also latest clan. Here same error when trying to build CXX object as first post. But works perfectly on Kali WSL distribution with same g++ version.

findxlabs commented 8 months ago

Thanks @spr234 , updating clang and g++ fixed it on debian image

Dart version: 3.0.3, Snapshot: 90b56a561f70cd55e972cb49b79b3d8b, Target: android arm64
-- Configuring done
-- Generating done
-- Build files have been written to: /home/research/blutter/build/blutter_dartvm3.0.3_android_arm64
[22/22] Linking CXX executable blutter_dartvm3.0.3_android_arm64
-- Install configuration: "Release"
-- Installing: /home/fresearch/blutter/blutter/../bin/blutter_dartvm3.0.3_android_arm64
libapp is loaded at 0x7f6bc2000000
Dart heap at 0x7f6a00000000
Analyzing the application
Dumping Object Pool
Generating application assemblies
Generating Frida script
worawit commented 7 months ago

No precompiled binary for this project. There are too many Dart release versions.

For Linux environment setup, the cmakefile supports only g++ with default distro path. So the Debian trixie and Ubuntu 23.10 should be ok.