لقد شاهد الكثير فيديو توضيحيًا لمساعد Hound الشخصي ، الذي يتمتع بأقوى قوة ممكنة وحتى قبل التطبيقات المعروفة مثل Google Now و Siri. يتوفر Hound أيضًا للتنزيل المجاني على Google Play (في الولايات المتحدة) ، ولكنه للأسف قيد التطوير ويتطلب دعوة عند بدء التشغيل.على الفور تم تمشيط يدي على وجه السرعة لاختبار هذه المعجزة ، وتعبت من انتظار دعوة عبر البريد (بعد دقيقة تقريبًا) ، تناولت المصحح ... الذي لم أكن بحاجة إليه أبدًا ، لأن كل شيء تبين أنه أبسط ، ولكن حول هذا الأمر بالترتيب.ملاحظة: أنا لست مطورًا محترفًا في Android ، أو جهاز تكسير ، وما إلى ذلك ، يتم عمل كل شيء لإرضاء فضولي الخاص وعلى مسؤوليتي الخاصة. قم بالإبلاغ عن أي أخطاء في التعليقات أو في الرسائل الخاصة.بادئ ذي بدء ، تحتاج إلى الحصول على ملف apk مع التطبيق. يمكنك البحث في الإنترنت ، لكننا لا نبحث عن طرق سهلة. لقد قمت بتنزيل أحدث إصدار من Google Play وسحبت التطبيق من المجلد /data/app/com.hound.android.app-1 (حقوق المسؤول ، أي الجذر ، مطلوبة).أي تطبيق لـ Andoid هو ملف apk ، وهو في الواقع أرشيف مضغوط أعيدت تسميته. إذا قمت بفتحه باستخدام أي أرشيفي ، فسوف نرى الصورة التالية:
فكر في المحتويات بمزيد من التفاصيل:- assets — , , ,
- lib — .so .
- META-INF — apk , SHA1 . , , . , , Android , .
- res — , xml , .
- AndroidManifest.xml — , , .
- classes.dex — , (), Java.
- resources.arsc — , , , res, .
نحن محظوظون لأن التطبيق بالكامل تقريبًا ، باستثناء مكتبات الجهات الخارجية ، مكتوب بلغة Java ، مما يعني أننا لسنا بحاجة إلى الجلوس في مصحح الأخطاء وتفكيك التعليمات البرمجية ذات المستوى المنخفض.أنت الآن بحاجة إلى فك الحزم class.dex ومحاولة إخراج الرمز منها. لهذا نستخدم Apktool . من صفحة "التثبيت" ، قم بتنزيل ملف jar القابل للتنفيذ ، بالإضافة إلى غلاف لاستخدامه من سطر الأوامر. يكفي نسخ كلا الملفين إلى مجلد التطبيق (أو إضافته إلى متغير البيئة) وتشغيل الأمر التالي:apktool -r decode _.apk
يعد الخيار -r ضروريًا حتى لا تضيع الوقت في تفريغ الموارد التي لن نقوم بتحريرها.الآن في المجلد الذي يحمل نفس الاسم الذي يحمل اسم التطبيق ، نرى بالفعل أكثر بقليل مما هو في الأرشيف. ملف classes.dex مفقود الآن ، وبدلاً من ذلك يظهر مجلد smali ، حيث يتم تخزين الفئات كملفات نصية. ولكن مهلا ، أين جافا؟ هناك بعض الملفات ذات الامتداد .smali ، والتي تخزن شيئًا مشابهًا للمجمع.هذه هي لغة رمز Dalvik التي يتم فيها تجميع كود Java. هناك تطبيقات يمكنها محاولة استعادة التعليمات البرمجية المصدر من هذه الملفات ، ولكن بعد ذلك تحتاج إلى تغيير هذا الرمز لاحقًا ، وإعادة البناء من كود Java هي مهمة لا شكر لها. لذلك ، سوف نفهم رمز smali ، لأنه مفهوم تمامًا ، وأيضًا بقيت أسماء الوظائف سليمة فيه. الذي سنستخدمه.ابحث عن الرمز المسؤول عن الوصول إلى التطبيق. بمعرفة اسم التطبيق واللغة الإنجليزية ، يصبح من الواضح أن الفئات الرئيسية للتطبيق موجودة في مجلد smali / com / hound / android / appcommon . تكمن المشكلة في العثور على المكان الذي يتم فيه فحص الدعوة. سيساعدنا البحث عن الملفات ، على سبيل المثال ، في Windows ، يمكنك استخدام الأمر:findstr /s /i /m _ *.*
يمكن أن يحتوي الرمز إما على "دعوة" أو "دعوة" ، لذلك سنقوم بإزالة الحرف الأخير من الكلمة ونبحث عن "دعوة". البنغو ، ها هي ، طريقة isInvitationComplete () في ملف smali / com / hound / android / appcommon / app / Config.smali :.method public isInvitationComplete()Z
.locals 2
.prologue
.line 578
const v0, 0x7f080174
const v1, 0x7f0b001f
invoke-direct {p0, v0, v1}, Lcom/hound/android/appcommon/app/Config;->getBoolean(II)Z
move-result v0
return v0
.end method
يطلب متغير منطقي من معلمات التطبيق ويعيد قيمته. لكن لماذا نحتاج مثل هذه الصعوبات! دعونا نعود دائما صحيح . استبدل "move-result v0" بـ "const / 4 v0، 0x1" واحفظ الملف. دعونا نأمل أن يعتمد التطبيق بالكامل على هذه الوظيفة الصغيرة ، والتي من الآن فصاعدًا ستعتبرنا مختبرين تجريبيين كاملين.يبقى فقط لتجميع التطبيق مرة أخرى. نستخدم الأداة Apktool الرائعة مرة أخرى:apktool -r build _
لا تنس أننا بحاجة إلى تفريغ المجلد بالكامل قبل ذلك ، وليس فقط smali . بعد انتهاء أداة apktool من العمل ، انتقل إلى هذا المجلد ، ثم إلى dist ، حيث يوجد ملف apk المجمع.ولن يعمل ، أو بالأحرى ، لن يتم تثبيته. قمنا بتغيير محتويات التطبيق ، مما يعني أن التوقيع غير صالح الآن. يجب عليك إعادة توقيع التطبيق. إذا كنت مطور Android ، يمكنك استخدام توقيعك الخاص و Android SDK. ولكن لا يمتلك العديد منهم أيًا منهما ، فيمكنهم استخدام توقيع اختباري ، ويتم أخذهم بشكل منفصل من الأداة المساعدة SDK signapk.jar. هناك أيضًا أداة مساعدة sign.jar تحتوي بالفعل على توقيع مدمج. يكفي تشغيل الأمر التالي:java -jar sign.jar _.apk
بعد ذلك يظهر الملف file_name.s.apk ، والذي سيكون التطبيق الموقع. نقوم بتحميله على الجهاز وتثبيته والاستمتاع بتطبيق يعمل بشكل كامل!
ويمكنك أن تجد فقط على الإنترنت نسخة مصححة نشرها شخص ما مؤخرًا.