سنجد في هذا المستودع دليلًا خطوة بخطوة حول كيفية إجراء هندسة عكسية لملف APK.
يمكن أن تساعدنا الهندسة العكسية في عدة جوانب، مثل تحديد البرامج أو التعليمات البرمجية الضارة ، واكتشاف العيوب الأمنية ، والعثور على الميزات غير المتوقعة /خرق قواعد العمل... ومع ذلك، دعنا نتعمق أكثر في عالم Android.
بدءًا من الأساسيات، يمكننا تقسيم حزمة Android (APK) الخاصة بنا إلى بعض الأجزاء:
Smali هي النسخة القابلة للقراءة البشرية من Dalvik bytecode، ببساطة، تعمل بمثابة تجميع/تفكيك. دالفيك التنسيق القابل للتنفيذ (.dex)
فيما يتعلق بالرمز، دعونا نلقي نظرة على الفرق بين Java وSmali:
public static void printHelloWorld() {
System.out.println("Hello World")
}
ونفس الكود الخاص بنا في Smali:
.method public static printHelloWorld()V
.registers 2
sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
const-string v1, "Hello World"
invoke-virtual {v0,v1}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V
return-void
.end method
لقد مررنا بالمفاهيم الأساسية الضرورية والآن نبدأ العمل!
الخطوة 1:
اختر APK الذي تريد عكسه.
إذا لم تتمكن من العثور عليه بسهولة من خلال متجر التطبيقات نفسه، فيمكنك القيام بذلك مباشرة على مواقع مثل APKCombo أو APKMonk.
بمجرد هنا، انتبه إلى بعض الأشياء التي قد تكون مثيرة للاهتمام:
- Qual é o URL da API? (geralmente emos algo como api.domain.com)
- Qual é método de autenticação utilizado? Eu preciso criar um login para acessar?
- Quais são as chamadas que eu posso encontrar e quais são os parâmetros eles esperam?
بمجرد حصولنا على ملف APK، فقد حان الوقت لفك ترجمته، حتى نتمكن من تحليل الكود.
(تتيح لك أدوات التحليل الديناميكي مثل MOBSF تنزيل الكود مباشرة، سواء بلغة Java أو SMALI).
الآن سنستخدم الأدوات، أولها APKTOOL، ستشاهدون المزيد من التفاصيل عنها أدناه، لكنها بشكل عام ستكون مسؤولة عن فك الملفات، وإنشاء مجلد، في نفس المكان، به جميع الملفات التي تم فكها. . من هنا، ستتمكن من تحليل جميع الرموز الضرورية.
الأمر المستخدم هنا سيكون كما يلي:
- apktool d ~/Desktop/aplicativo_app.apk
استخراج ملف "classes.dex" من ملف APK.
استخدم أداة dex2jar للتحويل إلى ملفات فئة Java. مما أدى إلى ملف جرة.
- sh d2j-dex2jar.sh classes.dex
استخدم JD-GUI لاستخراج الكود المصدري من ملف jar.
- Arraste o arquivo classes-dex2jar.jar pro JD-GUI
Mobile Security Framework هي أداة تعمل على أتمتة تحليل APK. بداخله نحصل على مزيد من التفاصيل حول الأجزاء التي تشكل ملفات APK، والتي رأيناها سابقًا.
dex2jar
com.dedexer
apktool
apktool هي أداة Java مفتوحة المصدر للهندسة العكسية لتطبيقات Android. يمكنه فك تشفير ملفات APK إلى الكود الأصلي الخاص بها في ملف XML يمكن قراءته بواسطة الإنسان. كذلك تقسيم كافة الفئات والأساليب الموجودة في الملف إلى Smali. بهذه الطريقة، يمكنك تعديل الميزات أو عمليات تنفيذ البرنامج. باستخدام كود Smali، يمكنك إضافة وظائف جديدة داخل هذا التطبيق أو تغيير السلوك المتوقع.
يشيع استخدامها لتثبيت SSL.
بنك التنمية الآسيوي (جسر تصحيح أندرويد)
com.androguard
إطار Xpose
الأوامر: //قريبا
تجاوز Android SSL
فريدا
والآن بعد أن أصبح لدينا قاعدة لكيفية عمل ذلك، فقد حان الوقت للتدرب! فيما يلي قائمة ببعض المعامل التي يمكنك استخدامها كتمرين:
اختبار أنواع الهجوم التالية:
شكرا لوصولك إلى هنا! طاب يومك.