تحدثنا كثيرًا عن الأندرويد والأدوات التي يمكن أن تتعامل معه ومع التطبيقات أيضًا. وما زال هناك الكثير الذي يجب أن نتحدث عنه لكي نتقن فهمنا لهذا النظام. في هذا المقال إن شاء الله سنتحدث عن تطبيق من أفضل التطبيقات التي توفر علينا الوقت لأنه يتعامل مع ملفات الـAPK نفسها بدون أن نضطر لتثبيتها أو لفك ضغطها.

هذه الأداة جزء من الـAndroid SDK وهي تعمل من خلال سطر الأوامر واسمها AAPT ويمكنك أن تجدها داخل المسار الذي قمت بتثبيت الـSDK فيه داخل مجلد الـBuild-tools:

01

الأداة بالطبع موجودة بشكل افتراضي في توزيعة Santoku، ويمكنك تشغيلها من أي مسار داخل التوزيعة:

02

اسم الأداة اختصار لـAndroid Asset Packaging Tool. طبعًا الأداة لها استخدامات كثيرة جدًا ويمكنها التعامل كما قلت مع ملفات الـAPK بدون فك ضغطها أو تثبيتها فيمكننا مثلاً كما هو موضح في الصورة التالية أن نقوم باستخراج الـPermissions الخاصة بتطبيق معين وذلك بالتعامل مع ملف الـAPK الخاص به:

03

كما نرى من خلال الصورة السابقة استطعنا أن نستخدم الـPermissions الخاصة بتطبيق الـJuiceSSH بدون أن نفك ضغط الملف أو حتى نطلع على ملف AndroidManifest.xml وهذه خاصية مهمة جدًا وستوفر علينا الكثير من الوقت.

حتى أننا بإمكاننا قراءة ملف الـAndroidManifest.xml بدون أي عناء من خلال نفس الأداة كما هو موضح في الصورة التالية:

04

كما رأينا في الصورة السابقة استطعنا الاطلاع على محتوى الـAndroidManifest.xml بدون أي عناء يذكر وبدون أن نقوم بفك ضغط ملف الـAPK الخاص بالتطبيق الذي نرغب في التعامل معه 🙂

كما يمكننا أن نقوم بتخصيص قراءة الملف لكي تقرأ الـStrings فقط كما هو موضح في الصورة التالية:

05

يوجد العديد من الاختيارات الخاصة باستخراج البيانات من ملف APK، فيمكننا أيضًا أن نقوم باستخراج البيانات من الخاصة بأي عناوين وأسماء للأيقونات الموجودة داخل ملف APK:

06

كما هو موضح في الصورة التالية استخدام dump badging يمكننا من استخراج القيم الخاصة بعناصر داخل الـPackage أو أجزاء منه إن أردنا.

ومن أفضل البيانات التي يمكننا استخدام الأداة لاستخراجها هي إعدادات الـConfigurations الموجودة داخل ملف الـAPK:

07

يمكن لهذه الأداة أيضًا أن تظهر لنا محتويات ملف الـAPK، ولكن يمكننا فعل نفس الشيء بأمر unzip 🙁 فما الفرق؟

الأمر فعلاً مساوي له إن كنا سنكتفي بكتابة الأمر كما هو موضح في الصورة التالية:

08

بالفعل، ظهرت لنا محتويات ملف الـAPK ولكن كما قلت يمكننا فعل ذلك من خلال أمر unzip، ولكن الفرق هنا أن يمكننا استخدام الأداة بطريقة أفضل من خلال الأمر a أو v فيمكننا من خلال الصورة التالية أن نرى طريقة ظهور المعلومات إن قمنا باستخدام الاختيار v مثلاً مع الأمر list:

09

الأمر الذي قمنا باستخدامه في الصورة السابقة مساوي لأمر unzip ولكن باستخدام الأختيار -v و-l معًا، يمكنك تجربة استخدام الاختيار a بنفسك لترى النتيجة، الاختيار -a يمكنه أن يقوم بوظيفة مميزة وهي إظهار محتويات ملف الـAPK والشيء المميز أنه يقوم بقراءة محتويات الملفات القابلة للقراءة مثل ملف AndroidManifest.xml والأمر أيضًا يعتبر أنه يجمع ثلاثة أوامر معًا يمكنك تنفيذ كل أمر منها على حدى وهي كالتالي:

aapt list JuiceSSH.apk

aapt dump resources JuiceSSH.apk

aapt dump xmltree JuiceSSH.apk AndroidManifest.xml

 

ملحوظة: الوظيفة الأساسية لأداة AAPT هي أن تقوم بالتصرف كمساعد في تكوين ملفات الـAPK مثل توليد الـR.java

ملحوظة أخيرة: أعلم أنه قد يظن البعض أن هذه الأدوات غير مفيدة وأنهم يريدون مقالات كيفية اختراق التطبيقات وكيفية اختراق نظام الأندرويد، ولكن كأي عملية اختبار اختراق يجب علينا أن نقوم بجمع المعلومات أولاً، وأؤكد أن أي عملية اختبار اختراق لا تنجح بدون جمع المعلومات الكافية وبنسبة 99% ستفشل أي عملية اختبار اختراق إن بدأتها بمهاجمة الهدف مباشرة 🙂

أتمنى أن تكونوا قد استفدتم من المقال، وإن شاء الله نلتقي في مقالات أخرى مميزة 🙂