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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
Obfuscapk — أداة تعمية تلقائية لتطبيقات أندرويد تعمل بطريقة الصندوق الأسود، وتدعم ميزات التعمية المتقدمة، ولها بنية معيارية يمكن توسيعها بسهولة بتقنيات جديدة | Kitploit
أدوات/GitHubGitHub/claudiugeorgiu/obfuscapk
أمان أندرويدالتحليل الثابتالتحليل الديناميكي (عزل)الهندسة العكسيةأمن الجوالالأوراق والأبحاثالتعلم والتعليمArchived
GitHubclaudiugeorgiu/obfuscapk

Obfuscapk

أداة تعمية تلقائية لتطبيقات أندرويد تعمل بطريقة الصندوق الأسود، وتدعم ميزات التعمية المتقدمة، ولها بنية معيارية يمكن توسيعها بسهولة بتقنيات جديدة

عرض المستودع
1.3k323منذ 2 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

[!IMPORTANT] تم أرشفة هذا المشروع ولم يعد يُصان.

بعض الأسئلة الأكثر شيوعًا مُجاب عنها في الأسئلة الشائعة و استكشاف الأخطاء وإصلاحها.

شعار

أداة إخفاء (obfuscation) صندوق أسود لتطبيقات أندرويد.

Codacy تغطية الكود إصدار بايثون الترخيص

Obfuscapk هي أداة بايثون معيارية (modular) لإخفاء تطبيقات أندرويد دون الحاجة إلى شفرة المصدر الخاصة بها، حيث يُستخدم apktool لفك تجميع ملف apk الأصلي وبناء تطبيق جديد، بعد تطبيق بعض تقنيات الإخفاء على كود smali المُفكك تجميعه، والموارد، وملف البيان (manifest). يحتفظ التطبيق المُخفي بنفس وظائف التطبيق الأصلي، لكن الاختلافات تحت الغطاء تجعل التطبيق الجديد في بعض الأحيان مختلفًا جدًا عن الأصلي (على سبيل المثال، بالنسبة لبرامج مكافحة الفيروسات القائمة على التوقيع).

🆕 دعم حزمة تطبيقات أندرويد 🆕

يضيف Obfuscapk دعمًا لـ حزم تطبيقات أندرويد (ملفات aab) عن طريق استخدام BundleDecompiler (انظر #121). لاستخدام هذه الميزة الجديدة، قم بتنزيل أحدث إصدار من BundleDecompiler المتاح من هنا، واحفظه باسم BundleDecompiler.jar في دليل مضمن في PATH (على سبيل المثال، في أوبونتو، /usr/local/bin أو /usr/bin) وتأكد من تعيين علامة التشغيل (executable flag).

[!IMPORTANT] لا يعمل BundleDecompiler على ويندوز حتى الآن، لذا فإن إخفاء حزم التطبيقات غير مدعوم بواسطة Obfuscapk على منصة ويندوز. أيضًا، دعم حزمة التطبيقات لا يزال في مرحلة التطوير المبكرة، لذا إذا واجهت أي مشاكل أو إذا كنت ترغب في مساعدتنا على التحسين، يُرجى الاطلاع على المساهمة.

❱ النشر

يمكن العثور على مزيد من التفاصيل حول Obfuscapk في الورقة البحثية "Obfuscapk: أداة إخفاء مفتوحة المصدر من النوع الصندوق الأسود لتطبيقات أندرويد". يمكنك الاستشهاد بالورقة كما يلي:```BibTeX @article{aonzo2020obfuscapk, title = "Obfuscapk: An open-source black-box obfuscation tool for Android apps", journal = "SoftwareX", volume = "11", pages = "100403", year = "2020", issn = "2352-7110", doi = "https://doi.org/10.1016/j.softx.2020.100403", url = "https://www.sciencedirect.com/science/article/pii/S2352711019302791", author = "Simone Aonzo and Gabriel Claudiu Georgiu and Luca Verderame and Alessio Merlo", keywords = "Android, Obfuscation, Program analysis" }

root@kitploit:~
## ❱ عرض توضيحي

![Demo](https://assets.kitploit.com/production/public/readmes/3132/632e285a29e53c28a5549c70012673a2761ca3ca4fd7eac3ad89be3d6a9a2a21.gif)



## ❱ البنية

![Architecture](https://assets.kitploit.com/production/public/readmes/3132/da41bec35f1c09df38ad201aa1e74f0b1426dba0201162a70b4d5376b3da654e.png)

تم تصميم Obfuscapk ليكون معياريًا وسهل التوسيع، لذا فهو مبني باستخدام
[نظام إضافات](https://github.com/tibonihoo/yapsy). وبالتالي، كل مُعتم هو
إضافة ترث من
[فئة أساسية](https://github.com/ClaudiuGeorgiu/Obfuscapk/blob/master/src/obfuscapk/obfuscator_category.py)
مجردة وتحتاج إلى تنفيذ الطريقة `obfuscate`. عندما تبدأ الأداة في معالجة ملف
تطبيق Android جديد، تقوم بإنشاء
[كائن تعتيم](https://github.com/ClaudiuGeorgiu/Obfuscapk/blob/master/src/obfuscapk/obfuscation.py)
لتخزين جميع المعلومات الضرورية (على سبيل المثال، موقع كود `smali` المُفكك)
والحالة الداخلية للعمليات (على سبيل المثال، قائمة المُعتمين المستخدمين بالفعل).
ثم يتم تمرير كائن التعتيم، كمعامل للطريقة `obfuscate`، إلى جميع
الإضافات/المُعتمين النشطين (بالتسلسل) لمعالجتها وتعديلها. يتم تحديد قائمة وترتيب
الإضافات النشطة من خلال [خيارات سطر الأوامر](#-usage).

الأداة قابلة للتوسيع بسهولة باستخدام مُعتمين جدد: يكفي إضافة الكود المصدر
الذي ينفذ تقنية التعتيم وبيانات الإضافة الوصفية (ملف
`<obfuscator-name>.obfuscator`) في دليل
[`src/obfuscapk/obfuscators`](https://github.com/ClaudiuGeorgiu/Obfuscapk/tree/master/src/obfuscapk/obfuscators)
(خذ مُعتمًا موجودًا بسيطًا مثل
[`Nop`](https://github.com/ClaudiuGeorgiu/Obfuscapk/blob/master/src/obfuscapk/obfuscators/nop/nop.py)
كمثال بداية). ستكتشف الأداة الإضافة الجديدة تلقائيًا، لذا لا حاجة لمزيد من
التكوين (سيتم التعامل مع الإضافة الجديدة مثل جميع الإضافات الأخرى المرفقة مع
الأداة).



## ❱ التثبيت

هناك طريقتان للحصول على نسخة عاملة من Obfuscapk على جهاز الكمبيوتر الخاص بك:
إما عن طريق [استخدام Docker](#docker-image) أو عن طريق [استخدام الكود المصدر
مباشرة](#from-source) في بيئة `Python 3`. في كلتا الحالتين، أول شيء يجب فعله هو
الحصول على نسخة محلية من هذا المستودع، لذا افتح محطة طرفية في الدليل الذي تريد
حفظ المشروع فيه واستنسخ المستودع:```Shell
$ git clone https://github.com/ClaudiuGeorgiu/Obfuscapk.git

صورة Docker


المتطلبات الأساسية

هذه هي الطريقة الموصى بها لتثبيت Obfuscapk، حيث أن المتطلب الوحيد هو أن يكون لديك إصدار حديث من Docker مثبتًا:```Shell $ docker --version Docker version 20.10.21, build baeda1f

root@kitploit:~
#### صورة Docker Hub الرسمية

صورة [Obfuscapk الرسمية لـ Docker](https://hub.docker.com/r/claudiugeorgiu/obfuscapk) متاحة على Docker Hub (مبنية تلقائيًا من هذا المستودع):```Shell
$ # Download the Docker image.
$ docker pull claudiugeorgiu/obfuscapk
$ # Give it a shorter name.
$ docker tag claudiugeorgiu/obfuscapk obfuscapk

التثبيت

إذا قمت بتنزيل الصورة الرسمية من Docker Hub، فأنت على استعداد لاستخدام الأداة، لذا تابع وتحقق من تعليمات الاستخدام ، وإلا قم بتنفيذ الأمر التالي في الدليل الذي تم إنشاؤه سابقًا Obfuscapk/src/ (المجلد الذي يحتوي على Dockerfile) لبناء صورة Docker:```Shell $ # Make sure to run the command in Obfuscapk/src/ directory. $ # It will take some time to download and install all the dependencies. $ docker build -t obfuscapk .

root@kitploit:~
عندما تكون صورة Docker جاهزة، قم بإجراء اختبار سريع للتحقق من أن كل شيء تم
تثبيته بشكل صحيح:```Shell
$ docker run --rm -it obfuscapk --help
usage: python3 -m obfuscapk.cli [-h] -o OBFUSCATOR [-w DIR] [-d OUT_APK_OR_AAB]
...

Obfuscapk جاهز الآن للاستخدام، راجع تعليمات الاستخدام لمزيد من المعلومات.

من المصدر


المتطلبات الأساسية

تأكد من أن لديك إصدارًا حديثًا من apktool, apksigner و zipalign مثبتًا ومتاحًا من سطر الأوامر:```Shell $ apktool Apktool v2.9.0 - a tool for reengineering Android apk files ...

root@kitploit:~
```Shell
$ apksigner
Usage:  apksigner <command> [options]
        apksigner --version
        apksigner --help
...
root@kitploit:~
$ zipalign
Zip alignment utility
Copyright (C) 2009 The Android Open Source Project
...

لدعم تعتيم حزم التطبيقات (app bundles)، تحتاج أيضًا إلى BundleDecompiler، لذا قم بتنزيل أحدث إصدار متاح من هنا، واحفظه باسم BundleDecompiler.jar في دليل مضمن في PATH (مثلًا، في أوبونتو، /usr/local/bin أو /usr/bin) وتأكد من تعيين علامة التنفيذ (executable flag).

لاستخدام BundleDecompiler و apktool تحتاج أيضًا إلى إصدار حديث من Java. zipalign و apksigner مضمنان في Android SDK. يمكن أيضًا تحديد موقع الملفات التنفيذية من خلال متغيرات البيئة التالية: APKTOOL_PATH، BUNDLE_DECOMPILER_PATH، APKSIGNER_PATH و ZIPALIGN_PATH (مثلًا، في أوبونتو، قم بتشغيل export APKTOOL_PATH=/custom/location/apktool قبل تشغيل Obfuscapk في نفس المحطة).

بصرف النظر عن الأدوات المذكورة أعلاه، فإن المتطلب الوحيد لهذا المشروع هو تثبيت Python 3 (على الأقل 3.7) (بالإضافة إلى مدير الحزم pip).

التثبيت

قم بتشغيل الأوامر التالية في الدليل الرئيسي للمشروع (Obfuscapk/) لتثبيت التبعيات المطلوبة:```Shell $ # Make sure to run the commands in Obfuscapk/ directory.

$ # The usage of a virtual environment is highly recommended. $ python3 -m venv venv $ source venv/bin/activate

$ # Install Obfuscapk's requirements. $ python3 -m pip install -r src/requirements.txt

root@kitploit:~
بعد تثبيت المتطلبات، قم بإجراء اختبار سريع للتأكد من أن كل شيء يعمل بشكل صحيح:```Shell
$ cd src/
$ # The following command has to be executed always from Obfuscapk/src/ directory
$ # or by adding Obfuscapk/src/ directory to PYTHONPATH environment variable.
$ python3 -m obfuscapk.cli --help
usage: python3 -m obfuscapk.cli [-h] -o OBFUSCATOR [-w DIR] [-d OUT_APK_OR_AAB]
...

Obfuscapk أصبح الآن جاهزًا للاستخدام، راجع تعليمات الاستخدام لمزيد من المعلومات.

❱ الاستخدام

من الآن فصاعدًا، سيتم اعتبار Obfuscapk كملف تنفيذي متاح باسم obfuscapk، لذا يجب عليك تكييف الأوامر وفقًا لكيفية تثبيت الأداة:

  • صورة Docker: يجب تثبيت دليل محلي يحتوي على التطبيق المراد تشويشه إلى /workdir في الحاوية (على سبيل المثال، الدليل الحالي "${PWD}")، لذا الأمر:

    root@kitploit:~
    $ obfuscapk [params...]
    

    يصبح:

    root@kitploit:~
    $ docker run --rm -it -u $(id -u):$(id -g) -v "${PWD}":"/workdir" obfuscapk [params...]
    
  • من المصدر: يجب تنفيذ كل تعليمة من دليل Obfuscapk/src/ (أو بإضافة دليل Obfuscapk/src/ إلى متغير البيئة PYTHONPATH) والأمر:

    root@kitploit:~
    $ obfuscapk [params...]
    

    يصبح:

    root@kitploit:~
    $ python3 -m obfuscapk.cli [params...]
    

لنبدأ بإلقاء نظرة على رسالة المساعدة:```Shell $ obfuscapk --help obfuscapk [-h] -o OBFUSCATOR [-w DIR] [-d OUT_APK_OR_AAB] [-i] [-p] [-k VT_API_KEY] [--keystore-file KEYSTORE_FILE] [--keystore-password KEYSTORE_PASSWORD] [--key-alias KEY_ALIAS] [--key-password KEY_PASSWORD] [--use-aapt2] <APK_OR_BUNDLE_FILE>

root@kitploit:~
هناك معلمتان إلزاميتان: `<APK_OR_BUNDLE_FILE>`، المسار (نسبي أو مطلق) إلى ملف apk أو حزمة التطبيق المراد إخفاؤها، وقائمة بأسماء تقنيات الإخفاء التي سيتم تطبيقها (يتم تحديدها باستخدام خيار `-o` الذي يمكن استخدامه عدة مرات، على سبيل المثال، `-o Rebuild -o NewAlignment -o NewSignature`). الوسائط الاختيارية الأخرى هي كما يلي:

* `-w DIR` يتم استخدامه لتعيين دليل العمل حيث يتم حفظ الملفات الوسيطة (التي يتم إنشاؤها بواسطة `apktool`). إذا لم يتم تحديده، يتم إنشاء دليل باسم `obfuscation_working_dir` في نفس دليل التطبيق المدخل. يمكن أن يكون ذلك مفيدًا لأغراض التصحيح، ولكن إذا لم يكن ضروريًا، يمكن تعيينه إلى دليل مؤقت (على سبيل المثال، `-w /tmp/`).

* `-d OUT_APK_OR_AAB` يتم استخدامه لتعيين مسار الملف الوجهة: ملف apk الذي تم إنشاؤه بواسطة عملية الإخفاء (على سبيل المثال، `-d /home/user/Desktop/obfuscated.apk` أو `-d /home/user/Desktop/obfuscated.aab`). إذا لم يتم تحديده، سيتم حفظ الملف المُخفى النهائي داخل دليل العمل. ملاحظة: سيتم استبدال الملفات الموجودة دون أي تحذير.

* `-i` هو علم لتجاهل مكتبات الطرف الثالث المعروفة أثناء عملية الإخفاء، لاستخدام موارد أقل، وزيادة الأداء، وتقليل خطر الأخطاء. [قائمة المكتبات](https://github.com/ClaudiuGeorgiu/Obfuscapk/blob/master/src/obfuscapk/resources/libs_to_ignore.txt) التي سيتم تجاهلها مقتبسة من مشروع [LiteRadar](https://github.com/pkumza/LiteRadar).

* `-p` هو علم لإظهار أشرطة التقدم أثناء عمليات الإخفاء. عند استخدام الأداة في عمليات الدفعات/البنيات التلقائية، يكون من المناسب تعطيل أشرطة التقدم، وإلا يجب تمكين هذا العلم لرؤية تقدم الإخفاء.

* `-k VT_API_KEY` مطلوب فقط عند استخدام أداة الإخفاء `VirusTotal`، لتعيين مفتاح API الذي سيتم استخدامه عند الاتصال بـ Virus Total.

* `--keystore-file KEYSTORE_FILE` و`--keystore-password KEYSTORE_PASSWORD` و`--key-alias KEY_ALIAS` و`--key-password KEY_PASSWORD` يمكن استخدامها لتحديد مخزن مفاتيح مخصص (مطلوب لتوقيع apk). إذا تم استخدام `--keystore-file`، فيجب أيضًا تحديد `--keystore-password` و`--key-alias`، بينما `--key-password` مطلوب فقط إذا كان المفتاح المختار يحتوي على كلمة مرور مختلفة عن كلمة مرور مخزن المفاتيح. بشكل افتراضي (عندما لا يتم تحديد `--keystore-file`)، يتم استخدام [مخزن مفاتيح مرفق مع Obfuscapk](https://github.com/ClaudiuGeorgiu/Obfuscapk/blob/master/src/obfuscapk/resources/obfuscation_keystore.jks) لعمليات التوقيع.

* `--ignore-packages-file IGNORE_PACKAGES_FILE` هو مسار إلى ملف يحتوي على أسماء حزم سيتم تجاهلها. لن يتم إخفاء جميع الفئات داخل تلك الحزم عند استخدام هذا الخيار. يجب أن يحتوي الملف على اسم حزمة واحد لكل سطر كما هو موضح في المثال أدناه:
    ```
    com.mycompany.dontobfuscate
    com.mycompany.ignore
    ...
    ```
* `--use-aapt2` هو علم لاستخدام خيار aapt2 عند إعادة بناء التطبيق باستخدام `apktool`.

دعنا الآن نفكر في مثال عملي بسيط لنرى كيف يعمل Obfuscapk:```Shell
$ # original.apk is a valid Android apk file.
$ obfuscapk -o RandomManifest -o Rebuild -o NewAlignment -o NewSignature original.apk

عند تشغيل الأمر أعلاه، إليك ما يحدث في الخلفية:

  • نظرًا لعدم تحديد دليل عمل، يتم إنشاء دليل عمل جديد (obfuscation_working_dir) في نفس موقع original.apk (يمكن أن يكون ذلك مفيدًا لفحص ملفات smali/الملف البياني/الموارد في حالة حدوث أخطاء)

  • يتم إجراء بعض الفحوصات للتأكد من أن جميع الملفات/البرامج القابلة للتنفيذ المطلوبة متاحة وجاهزة للاستخدام

  • تبدأ عملية التعتيم الفعلية: يتم تنفيذ أدوات التعتيم المحددة (بالترتيب) واحدة تلو الأخرى حتى لا يتبقى أي أداة تعتيم أو حتى يتم مواجهة خطأ

    • عند تشغيل أداة التعتيم الأولى، يتم فك تجميع original.apk باستخدام apktool وتخزين النتائج في دليل العمل

    • نظرًا لأن أداة التعتيم الأولى هي RandomManifest، يتم إعادة ترتيب الإدخالات في ملف البيان الذي تم فك تجميعه بشكل عشوائي (دون كسر هياكل xml)

    • أداة Rebuild ببساطة تعيد بناء التطبيق (الآن مع تعديل file البيان) باستخدام apktool، ونظرًا لعدم تحديد ملف إخراج، يتم حفظ ملف apk الناتج في دليل العمل الذي تم إنشاؤه مسبقًا

    • أداة NewAlignment تستخدم أداة zipalign لمحاذاة ملف apk الناتج

كما رأينا في المثال السابق، أدوات التعتيم Rebuild وNewAlignment وNewSignature مطلوبة دائمًا لإكمال عملية التعتيم، لبناء ملف apk المعتم النهائي. إنها ليست تقنيات تعتيم فعلية، لكنها مطلوبة في عملية البناء، لذا فهي مدرجة في قائمة أدوات التعتيم للحفاظ على البنية العامة قابلة للتوسيع.

لا يعمل كما هو متوقع؟ راجع الأسئلة الشائعة و حل المشكلات.

❱ أدوات التعتيم

يمكن تقسيم أدوات التعتيم المضمنة في Obfuscapk إلى فئات مختلفة، اعتمادًا على العمليات التي تقوم بها:

  • تافهة: كما يوحي الاسم، تتضمن هذه الفئة عمليات بسيطة (لا تعدل كثيرًا في التطبيق الأصلي)، مثل توقيع ملف apk بتوقيع جديد.

  • إعادة تسمية: عمليات تغير أسماء المعرفات المستخدمة (الفئات، الحقول، الطرق).

  • تشفير: حزم الكود/الموارد المشفرة وفك تشفيرها أثناء تنفيذ التطبيق. عند بدء تشغيل Obfuscapk، يقوم تلقائيًا بإنشاء مفتاح سري عشوائي (32 حرفًا، باستخدام أحرف وأرقام ASCII) سيتم استخدامه للتشفير.

  • كود: جميع العمليات التي تتضمن تعديل الكود المصدري الذي تم فك تجميعه.

  • الموارد: عمليات على ملفات الموارد (مثل تعديل ملف البيان).

  • أخرى

يتم تقديم أدوات التعتيم المضمنة حاليًا مع Obfuscapk أدناه بإيجاز (حسب الترتيب الأبجدي). يرجى الرجوع إلى الكود المصدري للمشروع لمزيد من التفاصيل.

[!TIP] ليست كل أدوات التعتيم أدناه تقابل تقنيات تعتيم حقيقية (على سبيل المثال، Rebuild وNewAlignment وNewSignature وVirusTotal)، لكنها منفذة كأدوات تعتيم للحفاظ على البنية قابلة للتوسيع وسهلة التمديد بوظائف جديدة.

AdvancedReflection [كود]

يستخدم الانعكاس لاستدعاء واجهات برمجة التطبيقات الخطيرة لإطار عمل Android. لمعرفة ما إذا كانت الطريقة تنتمي إلى إطار عمل Android، يشير Obfuscapk إلى التعيين الذي اكتشفه Backes et al.
📄 كود مصدر AdvancedReflection

ArithmeticBranch [كود]

إدراج كود غير مرغوب فيه. في هذه الحالة، يتكون الكود غير المرغوب فيه من حسابات حسابية وتعليمة فرع تعتمد على نتيجة هذه الحسابات، مصممة بحيث لا يتم أخذ الفرع أبدًا.
📄 كود مصدر ArithmeticBranch

AssetEncryption [تشفير]

تشفير ملفات الأصول.
📄 كود مصدر AssetEncryption

CallIndirection [كود]

تعدل هذه التقنية رسم تدفق التحكم دون التأثير على دلالات الكود: تضيف طرقًا جديدة تستدعي الطرق الأصلية. على سبيل المثال، سيتم استبدال استدعاء للطريقة m1 بطريقة مجمعة جديدة m2، والتي عند استدعائها، تستدعي الطريقة الأصلية m1.
📄 كود مصدر CallIndirection

ClassRename [إعادة تسمية]

تغيير اسم الحزمة وإعادة تسمية الفئات (حتى في ملف البيان).
📄 كود مصدر ClassRename

ConstStringEncryption [تشفير]

تشفير السلاسل الثابتة في الكود.
📄 كود مصدر ConstStringEncryption

DebugRemoval [كود]

إزالة معلومات التصحيح.
📄 كود مصدر DebugRemoval

FieldRename [إعادة تسمية]

إعادة تسمية الحقول.
📄 كود مصدر FieldRename

Goto [كود]

بالنظر إلى طريقة معينة، يقوم بإدراج تعليمة goto تشير إلى نهاية الطريقة وتعليمة goto أخرى تشير إلى التعليمة بعد أول goto؛ يعدل رسم تدفق التحكم بإضافة عقدتين جديدتين.
📄 كود مصدر Goto

LibEncryption [تشفير]

تشفير المكتبات الأصلية.
📄 كود مصدر LibEncryption

MethodOverload [كود]

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

MethodRename [إعادة تسمية]

إعادة تسمية الطرق.
📄 كود مصدر MethodRename

NewAlignment [تافهة]

إعادة محاذاة التطبيق.
📄 كود مصدر NewAlignment

NewSignature [تافهة]

إعادة توقيع التطبيق بتوقيع مخصص جديد.
📄 كود مصدر NewSignature

Nop [كود]

إدراج كود غير مرغوب فيه. Nop، اختصار لـ no-operation، هي تعليمة مخصصة لا تفعل شيئًا. تقوم هذه التقنية فقط بإدراج تعليمات nop عشوائية داخل كل تنفيذ طريقة.
📄 كود مصدر Nop

RandomManifest [موارد]

إعادة ترتيب الإدخالات في ملف البيان بشكل عشوائي.
📄 كود مصدر RandomManifest

Rebuild [تافهة]

إعادة بناء التطبيق.
📄 كود مصدر Rebuild

Reflection [كود]

تحلل هذه التقنية الكود الموجود بحثًا عن استدعاءات طرق التطبيق، متجاهلة استدعاءات إطار عمل Android (انظر AdvancedReflection). إذا وجدت تعليمة مع استدعاء طريقة مناسب (أي، لا توجد طرق منشئة، رؤية عامة، عدد كافٍ من السجلات الحرة إلخ.) يتم إعادة توجيه هذا الاستدعاء إلى طريقة مخصصة ستستدعي الطريقة الأصلية باستخدام واجهات برمجة تطبيقات الانعكاس.
📄 كود مصدر Reflection

Reorder [كود]

تتكون هذه التقنية من تغيير ترتيب الكتل الأساسية في الكود. عند العثور على تعليمة فرع، يتم عكس الشرط (على سبيل المثال، فرع إذا كان أقل من، يصبح فرع إذا كان أكبر من أو يساوي) ويتم إعادة ترتيب الكتل الأساسية المستهدفة وفقًا لذلك. علاوة على ذلك، تقوم أيضًا بإعادة ترتيب الكود بشكل عشوائي بإساءة استخدام تعليمات goto.
📄 كود مصدر Reorder

ResStringEncryption [تشفير]

تشفير السلاسل في الموارد (فقط تلك المستدعاة داخل الكود).
📄 كود مصدر ResStringEncryption

VirusTotal [أخرى]

إرسال التطبيق الأصلي والمعتم إلى Virus Total. يجب توفير مفتاح API لـ VT (انظر الخيار -k).
📄 كود مصدر VirusTotal

❱ الترخيص

أنت حر في استخدام هذا الكود بموجب رخصة MIT.

❱ الإسناد

Unige Dibris

تم تطوير هذا البرنامج لأغراض بحثية في مختبر أمن الحاسوب (CSecLab)، المستضاف في DIBRIS، جامعة جنوة.

❱ الفريق

  • Simone Aonzo - مساعد باحث
  • Gabriel Claudiu Georgiu - مطور أساسي
  • Luca Verderame - باحث ما بعد الدكتوراه
  • Alessio Merlo - عضو هيئة تدريس
تنزيل الأداة
  • أداة NewSignature توقع ملف apk الذي تم إنشاؤه حديثًا بشهادة مخصصة موجودة في مخزن مفاتيح مرفق مع Obfuscapk (على الرغم من أنه يمكن تحديد مخزن مفاتيح مختلف باستخدام الوسم --keystore-file)

  • عند تنفيذ جميع أدوات التعتيم دون أخطاء، يمكن العثور على ملف apk المعتم الناتج في obfuscation_working_dir/original_obfuscated.apk، موقّعًا ومحاذيًا وجاهزًا للتثبيت على جهاز/محاكي