Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
apk.sh — تسهل عملية الهندسة العكسية لتطبيقات أندرويد، من خلال أتمتة المهام المتكررة مثل سحب وفك تشفير وإعادة بناء وتصحيح APK. | Kitploit
أدوات/GitHubGitHub/ax/apk.sh
أمان أندرويدالتحليل الديناميكي (عزل)توليد الحمولةالهندسة العكسيةأمن الجوالتحليل الملفات الثنائية
GitHubax/apk.sh

apk.sh

تسهل عملية الهندسة العكسية لتطبيقات أندرويد، من خلال أتمتة المهام المتكررة مثل سحب وفك تشفير وإعادة بناء وتصحيح APK.

عرض المستودع
3.8k226منذ 6 أشهرتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

🕹️ apk.sh

apk.sh هو نص برمجي بلغة Bash يُسهِّل عملية الهندسة العكسية لتطبيقات Android، حيث يقوم بأتمتة بعض المهام المتكررة مثل سحب وفك تشفير وإعادة بناء وتصحيح APK.

الميزات

يستخدم apk.sh بشكل أساسي apktool لتفكيك وفك تشفير وإعادة بناء الموارد، وبعض نصوص Bash لأتمتة عملية حقن أداة frida. كما يدعم حزم التطبيقات/APK المنقسمة.

  • 🍄 تصحيح APKs لتحميل frida-gadget.so عند بدء التشغيل.
  • 🆕 دعم التلاعب المباشر بالبايت كود دون الحاجة إلى فك التجميع، مما يتجنب أخطاء فك/إعادة التجميع.
  • 🍱 دعم حزم التطبيقات/APK المنقسمة.
  • 🔧 تفكيك الموارد إلى شكلها الأصلي تقريبًا باستخدام apktool.
  • 🔩 إعادة بناء الموارد المُفكَّكة إلى APK/JAR ثنائي باستخدام apktool.
  • 🗝️ توقيع الشفرة للـ APK باستخدام apksigner.
  • 🖥️ دعم معماريات متعددة (arm, arm64, x86, x86_64).
  • 📵 لا حاجة لجهاز Android مُجذَّر.

البدء

⬅️ سحب APK من الجهاز: ببساطة قم بتشغيل ./apk.sh pull <package_name>

🔧 فك تشفير APK: ببساطة قم بتشغيل ./apk.sh decode <apk_name>

🔩 إعادة بناء APK: ببساطة قم بتشغيل ./apk.sh build <apk_dir>

apk.sh pull

apk.sh pull يسحب APK من جهاز. وهو يدعم حزم التطبيقات/APK المنقسمة، مما يعني أن APK المنقسمة سيتم دمجها في APK واحد (وهذا مفيد للتصحيح). إذا كانت الحزمة عبارة عن حزمة تطبيقات/APK منقسمة، فسوف يقوم apk.sh بدمج APK في APK واحد، مع إصلاح جميع معرفات الموارد العامة.

apk.sh patch

apk.sh patch يُصحِّح APK لتحميل frida-gadget.so عند بدء التشغيل.

frida-gadget.so هي مكتبة مشتركة من Frida يُقصد تحميلها بواسطة البرامج المراد تتبعها (عندما لا يكون وضع التشغيل المُحقَن مناسبًا). بمجرد تحميل المكتبة، ستسمح لك بالتفاعل معها باستخدام أدوات Frida الموجودة مثل frida-trace. كما تدعم نهجًا مستقلًا تمامًا حيث يمكنها تشغيل البرامج النصية من نظام الملفات دون أي اتصال خارجي.

تصحيح APK بسيط: قم بتشغيل ./apk.sh patch <apk_name> --arch arm.

يمكنك أيضًا تحديد تكوين frida gadget في ملف json: ./apk.sh patch <apk_name> --arch arm --gadget-conf <config.json>

إذا واجهت أخطاء apktool d مثل "already interned" كما في #30، يمكنك تمرير العلامة --only-main-classes، والتي سيتم تمريرها إلى apktool عند فك تشفير APK الخاص بك.

🍄 تكوينات Frida Gadget

في التفاعل الافتراضي، يعرض Frida Gadget واجهة متوافقة مع frida-server، ويستمع على localhost:27042 افتراضيًا. لتحقيق التتبع المبكر، يسمح Frida لدالة البناء الخاصة بـ Gadget بالحظر حتى تقوم إما بـ attach() على العملية، أو استدعاء resume() بعد المرور بالخطوات المعتادة spawn() -> attach() -> ...تطبيق التتبع....

إذا كنت لا تريد هذا السلوك الحاجز وتريد أن يبدأ البرنامج فورًا، أو تفضل أن يستمع على واجهة أو منفذ مختلف، يمكنك تخصيص ذلك من خلال ملف تكوين json.

التكوين الافتراضي هو:

root@kitploit:~
{
  "interaction": {
    "type": "listen",
    "address": "127.0.0.1",
    "port": 27042,
    "on_port_conflict": "fail",
    "on_load": "wait"
  }
}

يمكنك تمرير ملف تكوين gadget إلى apk.sh باستخدام الخيار --gadget-conf.

التفاعل النصي

تكوين مقترح نموذجي قد يكون:

root@kitploit:~
{
  "interaction": {
    "type": "script",
    "path": "/data/local/tmp/script.js",
    "on_change":"reload"
  }
}

script.js قد يكون شيئًا مثل:

root@kitploit:~
var android_log_write = new NativeFunction(
    Module.getExportByName(null, '__android_log_write'),
    'int',
    ['int', 'pointer', 'pointer']
);

var tag = Memory.allocUtf8String("[frida-script][ax]");

var work = function() {
    setTimeout(function() {
        android_log_write(3, tag, Memory.allocUtf8String("ping @ " + Date.now()));
        work();
    }, 1000);
}

work();

android_log_write(3, tag, Memory.allocUtf8String(">--(O.o)-<"));

adb push script.js /data/local/tmp

./apk.sh patch <apk_name> --arch arm --gadget-conf <config.json>

adb install file.gadget.apk

ملاحظة

أضف الكود التالي لطباعة مخرجات console.log لأي نص من frida codeshare إلى logcat عند استخدام نوع التفاعل النصي.

root@kitploit:~
// print to logcat the console.log output
// see: https://github.com/frida/frida/issues/382
var android_log_write = new NativeFunction(
    Module.getExportByName(null, '__android_log_write'),
    'int',
    ['int', 'pointer', 'pointer']
);
var tag = Memory.allocUtf8String("[frida-script][ax]");
console.log = function(str) {
    android_log_write(3, tag, Memory.allocUtf8String(str));
}

المتطلبات

  • apktool
  • apksigner
  • unxz
  • zipalign
  • aapt
  • adb

الاستخدام

الملخص

root@kitploit:~
apk.sh [أمر فرعي] [ملف APK|دليل APK|اسم الحزمة] [العَلَمات]
apk.sh pull [اسم الحزمة] [العَلَمات]
apk.sh decode [ملف APK] [العَلَمات]
apk.sh build [دليل APK] [العَلَمات]
apk.sh patch [ملف APK] [العَلَمات]
apk.sh rename [ملف APK] [اسم الحزمة] [العَلَمات]

الأوامر الفرعية

root@kitploit:~
pull	سحب APK من جهاز/محاكي.
decode	فك تشفير APK.
build	إعادة بناء APK.
patch	تصحيح APK.
rename	إعادة تسمية حزمة APK.

العَلَمات

-a, --arch <arch> تحديد المعمارية المستهدفة، إلزامي عند التصحيح.

-g, --gadget-conf <json_file> تحديد ملف تكوين frida-gadget، اختياري عند التصحيح.

-n, --net إضافة تكوين أمان شبكة متساهل عند البناء، اختياري. يمكن استخدامه مع patch و pull و rename أيضًا.

-r, --no-res عدم فك تشفير الموارد عند فك التشفير (أي apktool -r)، اختياري. يمكن استخدامه عند التصحيح.

-s, --no-src عدم تفكيك dex عند فك التشفير (أي apktool -s)، اختياري. يمكن استخدامه عند التصحيح.

📃 روابط مفيدة

https://frida.re/docs/gadget/

https://lief-project.github.io/doc/latest/tutorials/09_frida_lief.html

https://koz.io/using-frida-on-android-without-root/

https://github.com/sensepost/objection/

https://github.com/NickstaDB/patch-apk/

https://neo-geo2.gitbook.io/adventures-on-security/frida-scripting-guide/frida-scripting-guide

https://github.com/ax/DEXPatch

تنزيل الأداة