⭕️ تزریق کد در اندروید بدون نیاز به Ptrace
در این بلاگ پست با نحوه تزریق کتابخانه با استفاده از /proc/mem بدون نیاز به ptrace آشنا خواهید شد
این ابزار از پروژه Linux_injector ایده برداری شده و برای استفاده در اندروید port شده است
Blog Post: Link
GitHub: Link
#Android #Ptrace
@securation
در این بلاگ پست با نحوه تزریق کتابخانه با استفاده از /proc/mem بدون نیاز به ptrace آشنا خواهید شد
این ابزار از پروژه Linux_injector ایده برداری شده و برای استفاده در اندروید port شده است
فرآیند تزریق شامل چند مرحله است:
اولین قدم این است که یک فانکشن را برای هایجک انتخاب کنید. همانطور که در پروژه اصلی اجرا شد، malloc یکی از رایج ترین اهداف است. آدرس malloc با خواندن /proc/maps، یافتن آدرس پایه libc و محاسبه آدرس مجازی فعلی malloc با افزودن افست آن به آدرس پایه پیدا میشود.
پس از یافتن آدرس، تابع هدف با شل کد مرحله اول بازنویسی می شود. شل کد وظیفه ایجاد یک Memory Region جدید، همگام سازی Thread ها و در نهایت اجرای شل کد مرحله دوم را بر عهده دارد.
شل کد مرحله دوم می تواند یکی از سه نوع باشد: shellcode loader، shellcode raw-dlopen که از dlopen برای بارگذاری یک کتابخانه مشترک از filesystem استفاده می کند، یا شل کد memfd-dlopen که dlopen را روی فایل memfd با محتویات ارائه شده توسط کاربر فراخوانی می کند.
Blog Post: Link
GitHub: Link
#Android #Ptrace
@securation