RKNHardering Help

برابر بودن UID/EUID/GID فرایند با صفر

شناسه: ROOT_UID دسته: روت و وضعیت سامانه وضعیت در RKNHardering 2.10.0: بررسی فعال نقش در حکم نهایی: متوسط

این صفحه پیاده‌سازی واقعی RKNHardering 2.10.0 را توضیح می‌دهد. در آن مشخص شده است چه اقدام‌هایی بدون روت ممکن‌اند، چه چیزهایی به روت نیاز دارند و کدام راهکار فقط یک سیگنال را کاهش می‌دهد، بی‌آن‌که VPN را به‌طور کامل پنهان کند.

چه چیزی بررسی می‌شود و چرا

پروب getuid()، geteuid() و getgid() را فراخوانی می‌کند. اگر هر مقدار صفر باشد، detail هر سه عدد را دارد و بررسی‌کننده finding بازبینی با اطمینان زیاد می‌دهد.

شرط دقیق فعال‌شدن

RKNHardering واقعاً با UID، EUID یا GID برابر 0 اجرا شود.

معنای نتیجه

برای برنامهٔ عادی Android این ناهنجاری بسیار قوی است. علت‌های رایج عبارت‌اند از اجرا زیر روت یا داخل container، launcher تغییریافته یا test harness.

تأثیر این خط بر گزارش: این خط به‌تنهایی حکم نهایی صادر نمی‌کند، اما needsReview=true را تنظیم و شاهدی با اطمینان متوسط اضافه می‌کند.

محدودیت‌ها و مثبت‌های کاذب احتمالی

روت عادی دستگاه باعث نمی‌شود همهٔ برنامه‌ها با UID صفر اجرا شوند؛ بنابراین نبود این سیگنال دربارهٔ Magisk یا KernelSU چیزی نمی‌گوید. گروه‌های تکمیلی privileged به‌جز GID صفر در اینجا تحلیل نمی‌شوند.

این خط باید همراه با سیگنال‌های مجاور ارزیابی شود. پاک‌بودن نتیجهٔ یک API به‌تنهایی Java Binder، libc، netlink خام/فراخوانی مستقیم سامانه، procfs/sysfs، سوکت‌های محلی و نشانه‌های سمت سرور را هم‌زمان پوشش نمی‌دهد.

توصیه‌ها برای این بردار

بدون روت

APK را از PackageManager عادی نصب و از launcher استاندارد اجرا کنید. از su -c am start یا wrapper روت استفاده نکنید. نصب دوباره برای کاربر owner معمولاً UID عادی برنامه را بازمی‌گرداند.

با روت

به برنامه روت ندهید و تأیید کنید هیچ ماژولی credentialهای فرایند آن را تغییر نمی‌دهد. پنهان‌سازی روت راه‌حل این مورد نیست؛ وضعیت درست، UID عادی برنامه است حتی وقتی مدیر روت نصب شده باشد.

روش راستی‌آزمایی نتیجه

adb shell pidof com.notcvnt.rknhardering
adb shell ps -A -o USER,UID,GID,PID,NAME | grep rknhardering

قالب ps در بعضی نسخه‌های Android متفاوت است؛ detail برنامه منبع نهایی حقیقت است.

پس از هر تغییر، RKNHardering و سرویس‌گیرندهٔ VPN را به‌اجبار متوقف کنید، هر دو را دوباره اجرا کنید و اسکن کامل را تکرار کنید. Zygisk، Xposed و ماژول‌های هسته معمولاً به راه‌اندازی مجدد دستگاه نیاز دارند. فقط همین خط را مقایسه نکنید؛ سیگنال‌های مجاور را نیز بررسی کنید، زیرا یک هوک ناقص اغلب میان APIها ناسازگاری ایجاد می‌کند.

مجوزهای لازم و خطرها

خود پروب با مجوزهای معمول برنامه اجرا می‌شود و روت درخواست نمی‌کند. دستورهای ADB زیر فقط برای جهت‌یابی تشخیصی‌اند: adb shell با UID دیگری اجرا می‌شود و ممکن است نسبت به فرایند برنامه اطلاعات بیشتر یا کمتری ببیند. آزمون تعیین‌کننده، اجرای دوبارهٔ بررسی درون برنامه پس از توقف اجباری است.

خطرها

اجرای برنامهٔ گرافیکی با UID صفر دسترسی کامل به داده‌ها می‌دهد و اثر هر باگ را به‌شدت افزایش می‌دهد.

بازگردانی

wrapper روت را متوقف کنید، ورودی autostart آن را بردارید و APK را به‌صورت عادی دوباره نصب کنید.

سطح شواهد

متوسط. شرط مستقیم uid/euid/gid == 0 بررسی شده است.

وضعیت یک راهکار شخص ثالث خودبه‌خود به این دستگاه تعمیم پیدا نمی‌کند. ادعای سازندهٔ ماژول فقط فرضیهٔ آغازین است؛ تأیید واقعی به نتیجه‌ای تکرارپذیر از RKNHardering روی همان نسخهٔ Android، میان‌افزار و هسته نیاز دارد.

منابع و تاریخ آخرین راستی‌آزمایی

سیگنال‌های مرتبط: root-su-binary, root-management.

بازگشت به مرجع بررسی‌های بومی