
Flutter मोबाइल एप्लिकेशन रिवर्स इंजीनियरिंग टूल
Flutter मोबाइल एप्लिकेशन रिवर्स इंजीनियरिंग टूल, Dart AOT रनटाइम को कंपाइल करके
वर्तमान में एप्लिकेशन केवल Android libapp.so (केवल arm64) को सपोर्ट करता है। साथ ही, एप्लिकेशन वर्तमान में केवल हाल के Dart संस्करणों के विरुद्ध काम करता है।
उच्च प्राथमिकता वाली लापता सुविधाओं के लिए, TODO देखें
यह एप्लिकेशन C++20 फ़ॉर्मेटिंग लाइब्रेरी का उपयोग करता है। इसके लिए बहुत नए C++ कंपाइलर की आवश्यकता होती है जैसे g++>=13, Clang>=16।
मैं Linux OS (केवल Debian sid/trixie पर परीक्षित) का उपयोग करने की सलाह देता हूँ क्योंकि इसे सेटअप करना आसान है।
नोट: केवल Debian/Ubuntu संस्करण का उपयोग करें जो अपने मुख्य रिपॉजिटरी से gcc>=13 प्रदान करता है। पुराने Debian/Ubuntu संस्करण में पोर्ट किया गया gcc काम नहीं करता।
apt install python3-pyelftools python3-requests git cmake ninja-build \
build-essential pkg-config libicu-dev libcapstone-dev
python scripts\init_env_win.py
brew install cmake ninja pkg-config icu4c capstone
pip3 install pyelftools requests
brew install llvm@16 cmake ninja pkg-config icu4c capstone
pip3 install pyelftools requests
apk फ़ाइल से "lib" निर्देशिका निकालें
python3 blutter.py path/to/app/lib/arm64-v8a out_dir
blutter.py स्वचालित रूप से flutter इंजन से Dart संस्करण का पता लगाएगा और libapp.so से जानकारी प्राप्त करने के लिए blutter के निष्पादन योग्य को कॉल करेगा।
यदि आवश्यक Dart संस्करण के लिए blutter निष्पादन योग्य मौजूद नहीं है, तो स्क्रिप्ट स्वचालित रूप से Dart स्रोत कोड को चेकआउट करेगी और उसे कंपाइल करेगी।
आप git pull का उपयोग करके अपडेट कर सकते हैं और निष्पादन योग्य को पुनः बिल्ड करने के लिए --rebuild विकल्प के साथ blutter.py चला सकते हैं
python3 blutter.py path/to/app/lib/arm64-v8a out_dir --rebuild
मैं Windows पर Blutter विकसित करने के लिए Visual Studio का उपयोग करता हूँ। --vs-sln विकल्प का उपयोग Visual Studio समाधान उत्पन्न करने के लिए किया जा सकता है।
python blutter.py path\to\lib\arm64-v8a build\vs --vs-sln