ارژنگ مصفا
ارژنگ مصفا
خواندن ۳ دقیقه·۵ سال پیش

اجرای اَپ های بانکی (مزخرف) روی اندروید ROOT شده

شروع داستان!

ابتدا از کشور های دیگه شروع شد، که به هر دلیلی بانک ها از اجرای نرم‎افزار هاشون روی گوشی های اندروید ROOT شده جلوگیری کردن (به بهانه امن نبودن این دستگاه ها)

بعد از گذشت سالها هنوزم بحث سر اینه که آیا کارشون درسته یا نه، ولی خب زورمون بهشون نمیرسه!

در کشور عزیزمون ایران هم بانک ها بعد سالها یهو پی‎بردن که گوشی روت شده امنیت نداره و باید جلوشو گرفت (مدیونین اگه فکر کنین اسکی رفتن!)


فرایند روت کردن به کاربر تلفن هوشمند (مبتنی بر اندروید) اجازه دسترسی به هسته و زیر سیستم هارا میدهد
فرایند روت کردن به کاربر تلفن هوشمند (مبتنی بر اندروید) اجازه دسترسی به هسته و زیر سیستم هارا میدهد


بعد از روت شدن اندروید!

فانکشن هایی در اختیار دیگر برنامه ها قرار میگیره تا روت بودن سیستم‎عامل رو چک کنن، همچنین فایل های جدید سیستمی ایجاد میشه و برخی فایل ها تغییر پیدا میکنن و البته نرم افزار های مدیریت سطح دسترسی مثل super su و تغییرات دیگری در سیستم‎عامل رخ میده که بحثش مفصله (تا همنجاش برامون اکتفا میکنه)


جلوگیری از تشخیص روت بودن (bypassing root detection)

هدف اصلیمون جلوگیری از دیده شدن تغییرات اعمال شده در سیستم عامل توسط نرم‎افزار های بانکیه.


میدونیم که Xposed یک چارچوب برای ماژول هاست که میتونه رفتار سیستم و برنامه ها رو بدون دست زدن به APK نرم‎افزار ها تغییر بده.
میدونیم که Xposed یک چارچوب برای ماژول هاست که میتونه رفتار سیستم و برنامه ها رو بدون دست زدن به APK نرم‎افزار ها تغییر بده.


1) ابتدا xposed framework رو از xda دانلود و نصب کنید (مراقب باشید، ابتدا گوگل کنید که xposed با گوشیتون سازگار باشه، البته خودش هنگام نصب بررسی میکه)

https://forum.xda-developers.com/showthread.php?t=3034811

2) اجراش کنید، از Menu به قسمت Download برید، RootCloak رو سرچ و نصب کنید، به قسمت Modules برید و فعالش کنید.

3) گوشی رو ریستارت کنید، میبینید که نرم‎افزارهای همراه "بانک انصار" و "همراه بانک ملت" بدون مشکل اجرا میشن و نمیتونن بفهمن گوشی روت شده.


ویرایش سورس‎کد نرم‎افزار های اندروید هنگام اجرا (Hooking and Patching Android Apps)

میرسیم به نرم افزار "رمز نگار ملت" که پارو فراتر گذاشته و هر روشی برای چک کردن روت بوده چپونده تو نرم‎افزارش، برای دور زدنش نیاز داریم class ها و method هایی از نرم افزار که root بودن رو چک میکنن پیدا کنیم و موقع اجرای برنامه hook بزنیم به حافظه نرم‎افزار و کاری کنیم این متد ها خروجی دلخواه مارو بدن، مثلا کاری کنیم متد isRooted مقدار خروجی false رو برگردونه!


دوباره از Menu به قسمت Download برید و اینبار Surrogate رو سرچ و نصب کنید، به قسمت Modules برید و فعالش کنید و نرم افزار رو اجرا کنید.

حالا باید apk نرم‎افزار بانک رو decompile کنید و تو سورسش متد های مزاحم رو پیدا کنید، من از قبل کلاس ها متد هارو براتون رو پیدا کردم و از خود نرم‎افزار surrogate خروجی json گرفتم.

https://www.dropbox.com/s/y366zsm9rq8well/surrogate.json

فایل بالا رو دانلود کنید (اگه تونستید import کنید تو surrogate، من ندیدم import داشته باشه، اگه پیدا کردین به منم بگین) با یک ویرایشگر متن در گوشی باز کنید و مانند تصویر زیر در نرم‎افزار rule تعریف کنید.

ذخیره کنید، حالا نرم‎افزار "رمز نگار ملت" رو اجرا کنید و لذت ببرید.

پیدا کردن این متد ها و ورودی، خروجی ها نزدیک یک روز وقت گرفت، دوست داشتم سورس نرم‎افزارشونم اینجا بزارم و توضیح بدم دقیقا چی کردن و چیا رو چک کردن ولی فرصت نشد.

نکته دیگه اینکه برای patch کردن نرم‎افزار های بانکی دیگه که با RootCloak جواب نگرفتین و مثل "رمز نگار ملت" پارو فراتر گذاشته بودن، برای راحتی کار میتونید از online apk decompiler ها استفاده کنید ولی خب خوندن سورس نرم‎افزار پای خودتونه، البته میتونید از منم کمک بگیرید، و نهایتا patch برای نرم‎افزار دیگر بانک هارو به این مطلب اضافه کنیم.


امیدوارم تونسته باشم با این مطلب دلِ کسی رو شاد کنم:)

بانکاندرویدروتrootنرم‌افزار
مثلا مهندس نرم افزار
شاید از این پست‌ها خوشتان بیاید