إذا نظرت إلى تطبيقات Android التي تعرفها لتقدير قدرة تحليل هدفك على المستوى الأكثر تقدماً. سوف يمنحك تحليل البرنامج الديناميكي نظرة عامة جيدة على أنشطة التطبيقات والسلوك العام. ومع ذلك ، فأنت في بعض الأحيان تريد تحليل تطبيقك فقط دون تشغيله. ستحتاج إلى إلقاء نظرة على مكوناته ، وتحليل كيفية تفاعلها وكيف يتم تلوث البيانات من نقطة إلى أخرى.
كان هذا هو العامل الرئيسي الذي يقود تطور Smalisca . هناك بالفعل بعض الأسباب الجيدة لتحليل الكود الثابت قبل التحليل الديناميكي . قبل التفاعل مع التطبيق ، أود أن أعرف كيف تم إنشاء التطبيق ، إذا كان هناك أي واجهة برمجة تطبيقات وإنشاء كل أنواع الرسوم البيانية لتدفق المكالمات . في الواقع ، كانت الرسوم البيانية مهمة جدًا بالنسبة لي لأنها تصور الأشياء. بدلاً من القفز من ملف إلى ملف ، من فئة إلى فئة ، أنا فقط أنظر إلى الرسوم البيانية.
على الرغم من أن بناء الرسم البياني كان سببًا مهمًا بالنسبة لي لترميز مثل هذه الأداة ، إلا أن Smalisca لديها بعض الميزات الأنيقة الأخرى التي يجب عليك قراءتها.
في الوقت الحالي ، هناك بعض الوظائف الرئيسية مثل:
التحليل
يمكنك تحليل دليل كامل من ملفات Smali والمستخلص :
يمكنك بعد ذلك تصدير النتائج على أنها JSON أو SQLite .
احصل على نهب في صفحة التحليل لمزيد من المعلومات.
التحليل
بعد تصدير النتائج ، ستحصل على موجه تفاعلي لإلقاء نظرة فاحصة على بياناتك المحسورة. يمكنك البحث عن الفئات والخصائص والأساليب وحتى مكالمات الطريقة. يمكنك بعد ذلك تطبيق عدة مرشحات على معايير البحث مثل:
smalisca> sc -c class_name -p test -r 10 -x path -s class_type
سيبحث هذا الأمر عن 10 (-r 10) فئات تحتوي على اختبار النمط (-P) في اسم فئة (-C). بعد ذلك ، سوف يستبعد الأمر مسار العمود (مسار -x) من النتائج وفرزها حسب نوع الفئة (-S).
دعونا نلقي نظرة على مثال آخر:
smalisca> scl -fc com/Android -FM init -r 10
سيبحث هذا عن جميع المكالمات التي يحتوي اسم فئة الاتصال على نمط com/Android (-FC). بالإضافة إلى ذلك ، يمكننا البحث عن المكالمات التي تنشأ من الأساليب التي يحتوي اسمها على النمط init (-FM).
يمكنك بالطبع قراءة الأوامر الخاصة بك من ملف وتحليل نتائجك بطريقة - مثل الطريقة:
$ cat cmd.txt SC -C class_name -p com/gmail/xlibs -r 10 -x path يترك دولار. ...
احصل على نهب في صفحة التحليل لمزيد من المعلومات.
واجهة برمجة تطبيقات الويب
يوفر Smalisca خدمة راحة ويب من أجل التفاعل بسهولة مع النتائج عن طريق استخدام عميل ويب فقط. وبهذه الطريقة ، يمكنك الوصول إلى البيانات في تطبيق الويب الخاص بك (خيالي) والحصول على فصل نظيف بين الواجهة الخلفية والواجهة الأمامية.
اقرأ المزيد عن واجهة برمجة تطبيقات REST المتاحة في صفحة API على الويب.
التصور
أعتقد أن هذه الميزة الأكثر قيمة لـ Smalisca . القدرة على تصور نتائجك بطريقة منظمة تجعل حياتك أكثر راحة. اعتمادًا على ما تهتم به ، تحتوي هذه الأداة على العديد من ميزات رسم الرسم البياني التي أود الترويج لها.
في البداية ، يمكنك رسم حزمك بما في ذلك فصولهم وخصائصهم وطرقهم:
smalisca> dc -c class_name -p test -f dot -o /tmp/classes.dot :: كتب المعلومات نتائج إلى /tmp/classes.dot smalisca>
سيؤدي هذا أولاً إلى البحث في فئاتها التي تحتوي على اختبار الفصل ، ثم تصدير النتائج بلغة GraphViz DOT . يمكنك بعد ذلك إنشاء رسم بياني يدويًا باستخدام DOT أو Neato أو Circo وما إلى ذلك أو تفعل ذلك باستخدام المطالبة التفاعلية:
smalisca> dc -c class_name -p test -f pdf -o /tmp/classes.pdf -prog neato :: معلومات كتبت نتائج إلى /tmp/classes.pdf smalisca>
احصل على نهب في صفحة الرسم لمزيد من المعلومات.
نتائج الإخراج كجدول.
العلاقات الأساسية بين الفصول والوحدات النمطية.
إلقاء نظرة على صفحة لقطات الشاشة.
الرجوع إلى صفحة التثبيت. متطلبات:
بعد تثبيت الأداة ، قد ترغب أولاً في التقاط تطبيق Android (APK) للعب معه. استخدم apktool أو أداة adus الخاصة بي لتفريغ محتوى APKS. من أجل البساطة ، سأستخدم FakeBanker الذي قمت بتحليله في منشور مدونة سابق.
لكن أولاً دعونا نلقي نظرة على الأدوات الخيارات الرئيسية:
$ smalisca -help
/ _ __
____ ___ ___ __ // / _ ____ ___ __
/'، __ /' __` __` /'__ / /' ، __ /'___ /' __
/ __ ، `/ / / / l .
/ ____/ _ _ _ _ __/.
/___//_//_//_//__//_//____//_//___//____//__//_/
-----------------------------------------------------------------------------------
:: المؤلف: فيكتور <cyneox> Dorneanu
:: DESC: أداة تحليل الكود الثابت لملفات SMALI
:: URL: http://nullsecurity.net ، http: // {blog ، www} .dornea.nu
:: الإصدار: 0.2
-----------------------------------------------------------------------------------
الاستخدام: smalisca (مواضيع فرعية ...) [خيارات ...] {الحجج ...}
[-] أداة تحليل الكود الثابت (SCA) لملفات Baskmali (SMALI).
الأوامر:
محلل
[-] تحليل النتائج باستخدام موجه تفاعلي أو على سطر الأوامر.
محلل
[-] تحليل الملفات واستخراج البيانات بناءً على بناء جملة SMALI.
الويب
[-] تحليل النتائج باستخدام ويب واجهة برمجة تطبيقات.
الحجج الاختيارية:
-H ، -عرض رسالة المساعدة هذه والخروج
-إخراج تصحيح تبديل Debug
-كوييت قمع كل الإخراج
-المستوى السطحي {debug ، info ، تحذير ، خطأ ، حرجة}
تغيير مستوى التسجيل (الافتراضي: معلومات)
-v ، -رقم إصدار برنامج العرض والخروج
سأقوم أولاً بتحليل بعض الدليل لملفات Smali قبل القيام بأشياء التحليل:
$ smalisca parser -l ~/tmp/fakebanker2/dumped/smali -s java -f sqlite -o fakebanker.sqlite ... :: Info Parsing .Java Files In/Home/Victor/TMP/Gakebanker2/Dumped/Smali ... :: انتهى المعلومات! :: معلومات تصدير النتائج إلى sqlite :: معلومات استخراج الفصول ... :: معلومات استخراج خصائص الفئة ... :: معلومات استخراج أساليب الفصل ... :: معلومات استخراج المكالمات ... :: معلومات ارتكاب تغييرات على sqlite db :: كتب المعلومات نتائج إلى fakebanker.sqlite :: الانتهاء من المسح الضوئي
إلقاء نظرة على صفحة التحليل لمزيد من المعلومات.
أنت الآن حر في فعل ما تريد من خلال صادراتك التي تم إنشاؤها. يمكنك فحص SQLite DB مباشرة أو استخدام ميزات تحليل smaliscas :
$ smalisca Analyzer -f sqlite -i fakebanker.sqlite ... smalisca> sc -x path -r 10 +----+-------------------------------------------------------------------------------------+------------------+------------------------+-------+ | معرف | class_name | class_type | class_package | العمق | +----+-------------------------------------------------------------------------------------+------------------+------------------------+-------+ | 1 | Landroid/Support/V4/Net/ConnectivityManagerCompat | عام | landroid.support.v4.net | 5 | | 2 | Landroid/Support/V4/View/AccessibilityDelegateCompat $ AccessibilityDeleGateJellyBeanimpl | | landroid.support.v4.view | 5 | | 3 | Landroid/Support/V4/View/ViewCompat $ viewCompatimpl | واجهة الملخص | landroid.support.v4.view | 5 | | 4 | Landroid/Support/V4/APP/ActivityCompathoneycomb | | landroid.support.v4.app | 5 | | 5 | Landroid/Support/V4/APP/Nosavestateframelayout | | landroid.support.v4.app | 5 | | 6 | Landroid/Support/V4/Net/ConnectivityManagerCompathoneyCombmr2 | | landroid.support.v4.net | 5 | | 7 | lcom/gmail/xpack/buildConfig | النهائي العام | lcom.gmail.xpack | 4 | | 8 | Landroid/Support/V4/APP/BackstackRecord $ OP | النهائي | landroid.support.v4.app | 5 | | 9 | Landroid/Support/V4/App/FragmentManagerImpl | النهائي | landroid.support.v4.app | 5 | | 10 | Landroid/Support/V4/APP/ShareCompat $ ShareCompatimpl | واجهة الملخص | landroid.support.v4.app | 5 | +----+-------------------------------------------------------------------------------------+------------------+------------------------+-------+
ارجع أيضًا إلى صفحة التحليل لمزيد من الأوامر والخيارات المتاحة.
يرجى الرجوع إلى صفحة الرسم للحصول على أمثلة كاملة.
تم إصدار Smalisca بموجب ترخيص MIT . إلقاء نظرة على ملف الترخيص .
هذه الأداة مخصصة لـ Lică . شكرا جزيلا إلى:
ستيفن مكاليستر
- شكرا جزيلا على كل تلك الساعات المليئة بتصحيح أخطاء APK والأفكار العظيمة
بلدي GF
- شكرا جزيلا لصبرك وتفهمك!
nullsecurity.net
- اختراق الكوكب!