
StaCoAn هي أداة متعددة المنصات تساعد المطورين وصائدي الجوائز والمخترقين الأخلاقيين على إجراء تحليل الكود الثابت لتطبيقات الهاتف المحمول.

StaCoAn هي أداة متعددة المنصات تساعد المطورين وصيادي الثغرات ومختبري الاختراق الأخلاقيين في إجراء تحليل ثابت للكود على تطبيقات الجوال*.
ستبحث هذه الأداة عن أسطر مثيرة للاهتمام في الكود قد تحتوي على:
تم إنشاء هذه الأداة مع تركيز كبير على سهولة الاستخدام والتوجيه الرسومي في واجهة المستخدم.
للمستعجلين، احصل على التحميل من صفحة الإصدارات.
*: ملاحظة: يتم دعم ملفات apk فقط حالياً، ولكن ملفات ipa ستتبع قريباً جداً.
يمكن العثور على تقرير مثال هنا.
الفكرة هي أن تقوم بسحب وإسقاط ملف تطبيق الجوال الخاص بك (ملف .apk أو .ipa) على تطبيق StaCoAn وسيقوم بإنشاء تقرير مرئي وقابل للنقل لك. يمكنك تعديل الإعدادات وقوائم الكلمات للحصول على تجربة مخصصة.
تحتوي التقارير على عارض شجري مفيد لتتمكن من التصفح بسهولة عبر تطبيقك المفكك.

تتيح لك وظيفة النهب 'نهب' (~وضع إشارة مرجعية) النتائج ذات القيمة لك، وفي صفحة النهب ستحصل على نظرة عامة على غارة 'النهب' الخاصة بك.
يمكن تصدير التقرير النهائي إلى ملف zip ومشاركته مع الآخرين.
يستخدم التطبيق قوائم كلمات للعثور على أسطر مثيرة للاهتمام في الكود. قوائم الكلمات تكون بالتنسيق التالي:
API_KEY|||80||| This contains an API key reference
(https|http):\/\/.*api.*|||60||| This regex matches any URL containing 'api'
لاحظ أن قوائم الكلمات هذه تدعم إدخالات regex.
في ملف exclusion_list.txt يمكنك تعريف الاستثناءات (إذا كان لديك نتائج كثيرة جدًا لسبب ما):
(https|http):\/\/.*api.*|||"res","layout"||| Like previously, note that "res","layout" resembles the path
(https|http):\/\/.*api.*|||||| To exclude everywhere
سيتم معالجة أي ملف مصدر. يتضمن ذلك ملفات '.java', '.js', '.html', '.xml',....
يتم أيضًا البحث في ملفات قاعدة البيانات عن الكلمات المفتاحية. تحتوي قاعدة البيانات أيضًا على عارض جداول.

تم تصميم التقارير لتناسب جميع الشاشات.


ستواجه هذه الأداة مشكلة مع الكود المبهم. إذا كنت مطورًا، حاول التجميع دون تشغيل الإبهام قبل تشغيل هذه الأداة. إذا كنت في الجانب الهجومي، حظاً موفقاً يا صديقي.
إذا كنت ترغب في البدء في أقرب وقت ممكن، توجه إلى صفحة الإصدارات وقم بتنزيل الملف التنفيذي أو الأرشيف الذي يتوافق مع نظام التشغيل الخاص بك.
إذا قمت بتنزيل ملف zip الخاص بالإصدار، قم باستخراجه.
في Windows يمكنك فقط النقر المزدوج على الملف التنفيذي. سيتم فتحه في وضع الخادم ويمكنك ببساطة سحب وإسقاط تطبيقات الجوال الخاصة بك في الواجهة الويب.

في Mac و Linux يمكنك تشغيله من المحطة الطرفية بدون وسيطات لوضع الخادم.
./stacoan
اسحب وأسقط هذا الملف على الملف التنفيذي.
أو يمكنك تحديد ملف apk لتشغيله بدون وضع الخادم:
./stacoan -p test-apk.apk
سيتم وضع التقرير داخل مجلد باسم يتوافق مع اسم apk.
cd docker
docker build . -t stacoan
تأكد من أن تطبيقك موجود في المسار /yourappsfolder.
docker run -e JAVA_OPTS="-Xms2048m -Xmx2048m" -p 8888:8888 -p 7777:7777 -i -t stacoan
اسحب وأسقط تطبيقك عبر: http://127.0.0.1:7777.
git clone https://github.com/vincentcox/StaCoAn/
cd StaCoAn/src
تأكد من تثبيت pip3:
sudo apt-get install python3-pip
قم بتثبيت حزم Python المطلوبة:
pip3 install -r requirements.txt
قم بتشغيل StaCoAn عبر سطر الأوامر:
python3 stacoan.py -p yourApp.apk
أو إذا كنت تفضل استخدام واجهة السحب والإسقاط:
python3 stacoan.py
تأكد من أنك في مجلد src.
cd src
قم بتثبيت PyInstaller:
pip3 install pyinstaller
لا يستطيع PyInstaller التعامل مع المجلدات الفرعية التي تحتوي على كود، لذلك نحتاج إلى وضع الكود في مجلد واحد.
sed -i 's/from helpers./from /g' helpers/*
sed -i 's/from helpers./from /g' stacoan.py
sed -i 's/os.path.join(parentdir, "config.ini")/"config.ini"/g' helpers/logger.py
cp helpers/* ./ || :;
قم ببناء stacoan:
python3 -m PyInstaller stacoan.py --onefile --icon icon.ico --name stacoan --clean
لا يستطيع PyInstaller التعامل مع المجلدات الفرعية التي تحتوي على كود، لذلك نحتاج إلى وضع الكود في مجلد واحد.
# ملاحظة: ''-> هذا لأن بناء جملة sed يختلف على نظام mac.
sed -i '' 's/from helpers./from /g' helpers/*
sed -i '' 's/from helpers./from /g' stacoan.py
sed -i '' 's/os.path.join(parentdir, "config.ini")/"config.ini"/g' helpers/logger.py
cp helpers/* ./ || :;
قم ببناء stacoan:
python3 -m PyInstaller stacoan.py --onefile --icon icon.ico --name stacoan --clean
لا يستطيع PyInstaller التعامل مع المجلدات الفرعية التي تحتوي على كود، لذلك نحتاج إلى وضع الكود في مجلد واحد.
sed -i 's/from helpers./from /g' helpers/*
sed -i 's/from helpers./from /g' stacoan.py
sed -i 's/os.path.join(parentdir, "config.ini")/"config.ini"/g' helpers/logger.py
cp helpers/* ./ || :;
قم ببناء stacoan:
python3 -m PyInstaller stacoan.py --onefile --icon icon.ico --name stacoan --clean
تعتمد قيمة هذا البرنامج بالكامل على قوائم الكلمات التي يستخدمها. في النهاية، النتيجة النهائية هي ما يهم. من السهل بناء قائمة كلمات (مقارنة بكتابة كود فعلي)، ولكن لها أكبر تأثير على النتيجة النهائية. يمكنك مساعدة المجتمع بشكل أكبر من خلال إعداد قوائم الكلمات.
إذا كنت تريد طريقة سهلة لنشر أفكارك، توجه إلى: http://www.tricider.com/brainstorming/2pdrT7ONVrB. من هناك يمكنك إضافة أفكار لإدخالات في قائمة الكلمات.
تحسين الكود أيضًا موضع تقدير كبير.
إذا كانت المساهمة كبيرة بما يكفي، سيتم ذكرك في قسم المؤلفين.
http في res/layout وبشكل عام http://schemas.android.com/apk/res/androidتم استخدام المشاريع التالية في هذا المشروع:
جميع هذه المشاريع لها تراخيصها المقابلة. يرجى احترامها أثناء تعديل وإعادة توزيع هذا المشروع.
*: يتم تضمين الثنائي في هذا المشروع. إذا لم يكن مطورو JADX مرتاحين لذلك، فلا تتردد في الاتصال بي بخصوص هذا حتى نتمكن من إيجاد حل.
يجب إدراج العديدين هنا، لكن لا يمكنني ذكرهم جميعًا.
| منشئ المشروع |
|---|
|
|