محترف الحاسوب: تحليل ذاكرة التطبيقات في نظام الأندرويد

ليس العار في أن نسقط ولكن العار ألا نستطيع النهوض

محترف الحاسوب مدونة تهتم بكل ما هو جديد بعالم التكنولوجيا والانترنت والحاسوب بشكل وتقدم اخر الاخبار و افضل البرامج و تضم مجموعة من المواضيع المفيدة في شتى مجالات التقنية

يتم التشغيل بواسطة Blogger.

محترف الحاسوب


الأربعاء، 26 أكتوبر 2016

تحليل ذاكرة التطبيقات في نظام الأندرويد

في هذه المقالة سوف نشرح عن كيفية إلتقاط صورة لذاكرة تطبيق معين بإستخدام ميزة إالتقاط الصور لـ Android Studio’s heap . وسوف نستعرض أيضا EclipseMemoryAnalyzer(MAT) لتحليل صورة ال heap التي سوف نحصل عليها.
من الممكن إنشاء صور ال heap لل heap التابعة للتطبيق على الأندرويد. يمكننا أن نأخذ صورة لل heap وإستخدامها لتحليلات لاحقة بإستخدام أداة مثل EclipseMemoryAnalyzer .لكن هذه الصور تكون بالصيغة الثنائية اي Binary لكن لايمكن ان تحلل مباشرة بإستخدام أداة EclipseMemoryAnalyzer. نحتاج لتحويل هذه الملفات الى صيغة معيارية ليمكن تحليلها  بواسطة EclipseMemoryAnalyzer. يمكن القيام بذلك بإستخدام أداة تدعى hprof-conv التي تأتي مع Android SDK.
لنبدأ!
لنقم أولا بأخذ تطبيق هدف, نقم بتنصيبه على محاكي وإدخال بعض البيانات كما هو موضح.
051416_1149_AndroidHack1
هذ التطبيق يستخدم SharedPreferences لحفظ البيانات المدخلة من قبل المستخدم.
الأن نفتح Android Studio ونذهب الى Tools -> Android -> Android Device Monitor.
051416_1149_AndroidHack1
هذا سوف يفتح نافذة  Android Device Monitor . الأن نحدد على المحاكي حيث يعمل التطبيق المستهدف وبعدها نحدد الحزمة المستهدفة. الأن نضغط على أيقونات “Update Heap” و “Dump HPROF File” على التوالي.
051416_1149_AndroidHack1
بالضغط على أيقونة “Dump HPROF File” سوف تظهر نافذة تسألك حفظ صورة heap كما هو مبين
051416_1149_AndroidHack1
الأن, حمل أداة EclipseMemoryAnalyzer من الرابط التالي وقم بتشغيلها.
http://www.eclipse.org/mat/downloads.php
الأن, قم بفتح ملف hprof  الذي حصلنا عليه من Android Studio. أداة EclipseMemoryAnalyzer لن تكون قادرة على تحليله و سوف تظهر لنا خطأ كما هو موضح.
051416_1149_AndroidHack1
بإستخدام سطر الأوامر لأداة hprof-conv, يمكننا تحويل ملف hprof  هذا الى صيغة معيارية يمكن تحليها بواسطة MAT.
كما وضحنا سابقا, أداة hprof-conv تأتي مع Android SDK, وتكون متاحة في مسار platform-tools.
يمكننا إستخدام الأمر التالي لتحويل ملف hprof  الى صيغة معيارية.
$ hprof-conv <in file> <out file>
يلحقه الامر التالي وهو في حالتنا
$ hprof-conv com.example.m1_shared.hprof memory.hprof
واذا سار كل شئ بشكل صحيح, سوف يمكننا فتح هذا الملف بإستخدام MAT.
نفتح الملف في MAT.
051416_1149_AndroidHack1
الأن, نضغط على أيقونة “Dominator tree” لرؤية الصورة, كما هو موضح.
051416_1149_AndroidHack1
كما ترى في الأعلى, لدينا خيار لتنفيذ بحث regex . يمكننا أن نبحث على كلمات محددة بإستخدام خيار البحث هذا.
لنبدأ بالبحث بإستخدام إسم الحزمة للتطبيق المستهدف خاصتنا ورؤية اذا كنا قادرين على إيجاد اي شئ مثير للإهتمام.
051416_1149_AndroidHack1
كما ترى في الأسفل على اليسار, فإننا نرى بعض objects المتعلقوة بالتطبيق مثل bankname, cardnumber, save, username, الخ.
في بداية هذا المقال, قمنا بإدخال بعض التفاصيل الى التطبيق. لنرى اذا سنجد اي شئ بالذاكرة بالبحث عن الكلمات التي أدخلناها.
051416_1149_AndroidHack1
كما ترون فإننا نقوم بالبحث عن كلمة “srini.”.
051416_1149_AndroidHack1
الصورة في الأعلى أظهرت كلمة “srini.” في الذاكرة. هذه طريقة لإستكشاف معلومات مثيرة للإهتمام في ذاكرة التطبيق.
في هذه المقالة سوف نشرح عن كيفية إلتقاط صورة لذاكرة تطبيق معين بإستخدام ميزة إالتقاط الصور لـ Android Studio’s heap . وسوف نستعرض أيضا EclipseMemoryAnalyzer(MAT) لتحليل صورة ال heap التي سوف نحصل عليها.
من الممكن إنشاء صور ال heap لل heap التابعة للتطبيق على الأندرويد. يمكننا أن نأخذ صورة لل heap وإستخدامها لتحليلات لاحقة بإستخدام أداة مثل EclipseMemoryAnalyzer .لكن هذه الصور تكون بالصيغة الثنائية اي Binary لكن لايمكن ان تحلل مباشرة بإستخدام أداة EclipseMemoryAnalyzer. نحتاج لتحويل هذه الملفات الى صيغة معيارية ليمكن تحليلها  بواسطة EclipseMemoryAnalyzer. يمكن القيام بذلك بإستخدام أداة تدعى hprof-conv التي تأتي مع Android SDK.
لنبدأ!
لنقم أولا بأخذ تطبيق هدف, نقم بتنصيبه على محاكي وإدخال بعض البيانات كما هو موضح.
051416_1149_AndroidHack1
هذ التطبيق يستخدم SharedPreferences لحفظ البيانات المدخلة من قبل المستخدم.
الأن نفتح Android Studio ونذهب الى Tools -> Android -> Android Device Monitor.
051416_1149_AndroidHack1
هذا سوف يفتح نافذة  Android Device Monitor . الأن نحدد على المحاكي حيث يعمل التطبيق المستهدف وبعدها نحدد الحزمة المستهدفة. الأن نضغط على أيقونات “Update Heap” و “Dump HPROF File” على التوالي.
051416_1149_AndroidHack1
بالضغط على أيقونة “Dump HPROF File” سوف تظهر نافذة تسألك حفظ صورة heap كما هو مبين
051416_1149_AndroidHack1
الأن, حمل أداة EclipseMemoryAnalyzer من الرابط التالي وقم بتشغيلها.
http://www.eclipse.org/mat/downloads.php
الأن, قم بفتح ملف hprof  الذي حصلنا عليه من Android Studio. أداة EclipseMemoryAnalyzer لن تكون قادرة على تحليله و سوف تظهر لنا خطأ كما هو موضح.
051416_1149_AndroidHack1
بإستخدام سطر الأوامر لأداة hprof-conv, يمكننا تحويل ملف hprof  هذا الى صيغة معيارية يمكن تحليها بواسطة MAT.
كما وضحنا سابقا, أداة hprof-conv تأتي مع Android SDK, وتكون متاحة في مسار platform-tools.
يمكننا إستخدام الأمر التالي لتحويل ملف hprof  الى صيغة معيارية.
$ hprof-conv <in file> <out file>
يلحقه الامر التالي وهو في حالتنا
$ hprof-conv com.example.m1_shared.hprof memory.hprof
واذا سار كل شئ بشكل صحيح, سوف يمكننا فتح هذا الملف بإستخدام MAT.
نفتح الملف في MAT.
051416_1149_AndroidHack1
الأن, نضغط على أيقونة “Dominator tree” لرؤية الصورة, كما هو موضح.
051416_1149_AndroidHack1
كما ترى في الأعلى, لدينا خيار لتنفيذ بحث regex . يمكننا أن نبحث على كلمات محددة بإستخدام خيار البحث هذا.
لنبدأ بالبحث بإستخدام إسم الحزمة للتطبيق المستهدف خاصتنا ورؤية اذا كنا قادرين على إيجاد اي شئ مثير للإهتمام.
051416_1149_AndroidHack1
كما ترى في الأسفل على اليسار, فإننا نرى بعض objects المتعلقوة بالتطبيق مثل bankname, cardnumber, save, username, الخ.
في بداية هذا المقال, قمنا بإدخال بعض التفاصيل الى التطبيق. لنرى اذا سنجد اي شئ بالذاكرة بالبحث عن الكلمات التي أدخلناها.
051416_1149_AndroidHack1
كما ترون فإننا نقوم بالبحث عن كلمة “srini.”.
051416_1149_AndroidHack1
الصورة في الأعلى أظهرت كلمة “srini.” في الذاكرة. هذه طريقة لإستكشاف معلومات مثيرة للإهتمام في ذاكرة التطبيق.

ليست هناك تعليقات :

إرسال تعليق

عبدالعظيم الهادي2013 : عبدالعظيم الهادي2013