الفريق العربي للهندسة العكسية
reverse flutter apps 3 - نسخة قابلة للطباعة

+- الفريق العربي للهندسة العكسية (https://www.at4re.net/f)
+-- قسم : منتديات الهندسة العكسية - Reverse Engineering Forums (https://www.at4re.net/f/forum-4.html)
+--- قسم : الهندسة العكسية - Reverse Code Engineering (https://www.at4re.net/f/forum-19.html)
+---- قسم : الهندسة العكسية لتطبيقات الجوال - Reversing Mobile Application (https://www.at4re.net/f/forum-21.html)
+---- الموضوع : reverse flutter apps 3 (/thread-4241.html)



reverse flutter apps 3 - ashrafonlinenow - 08-01-2025

تمرين

السلام عليكم و رحمة الله وبركاته

اليوم نتدرب على الهندسة العكسية لبرامج فلاتر flutter

الضحية
https://play.google.com/store/apps/details?id=com.codeway.chatapp

سهل

يمكنك 
تحميله ايضا من هنا 
https://apkcombo.app/ar/ask-ai-chat-with-ai-chatbot/com.codeway.chatapp/

لنبدأ
استخرج الملفين libapp.so and libflutter.so
و باسهل طريقة استخدم البوت
@RevEngiBot

حسنا بعد ذلك وبعد تحميل الملفات من البوت
سنجد هنا
\asm\cerebro
ثم ملف 
cerebro.dart

يمكنك دائما البحث داخل كافة الملفات مثلا
isPremiumLifetime
هنا هى مفتاح البرنامج الضحية
لدينا دالة باسمها و هى
boolean
لذا ببساطة نرجعها دائما ترو True

static _ GettersCerebro._isPremiumLifetime(/* No info */) 
 addr: 0x7a4d08, size: 0x9c
هذا عنوان الدالة
0x7a4d08
كيف تعرف انها boolean
سوف تجد استخدامها دائما يليه شرط للقفز

الان لنعدل هنا فى هذا العنوان
نستخدم radare2

r2 -w libapp.so
لفتح الملف فى وضع القراءة والكتابة
كما ذكرنا سابقا
 reverse flutter apps 2
#0x20  ; true
#0x30  ; false
ايضا 
ret for retun
اذن الكود كالتالى
add x0, x22, 0x20
ret

اولا لنذهب الى عنوان الدالة
0x7a4d08
ثم انتر
هنا 
wa add x0, x22, 0x20
ثم فى العنوان التالى 
wa ret

انظر
[0x007a4d08]> wa add x0, x22, 0x20
سترى
INFO: Written 4 byte(s) (add x0, x22, 0x20) = wx c0820091 @ 0x007a4d08

وهنا
[0x007a4d0c]> wa ret
سترى
INFO: Written 4 byte(s) (ret) = wx c0035fd6 @ 0x007a4d0c

نعم يمكنك عملها بسهولة بكود واحد
 
wx C0820091C0035FD6
نعم النتيجة
 
            0x007a4d08      c0820091       add x0, x22, 0x20
            0x007a4d0c      c0035fd6       ret
نعم لقد تم التعديل بنجاح

الان قم باستبدال ملف libapp.so  بملفنا المعدل

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

اذا كنت لا تعلم كيفية استخدام radare2 فهذا الوقت المناسب 
https://github.com/radareorg/radare2
ايضا قمت بعمل سكربت بايثون بدلا من استخدام radare2
flupatch.py
فى موضوع قادم إن شاء الله