RKNHardering Help

دردسترس‌نبودن پروب بومی syscall/socket

شناسه: SYSCALL_UNAVAILABLE دسته: سیگنال‌های سرویس وضعیت در RKNHardering 2.10.0: بررسی فعال نقش در حکم نهایی: دسترس‌پذیری

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

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

بررسی‌کنندهٔ قدیمی همهٔ ردیف‌های unavailable* از گروه syscall را جمع می‌کند. تولیدکنندهٔ فعلی یکی از unavailable|ip_recverr|denied یا unavailable|ip_recverr|not_supported را می‌سازد. این نتایج زیر شناسهٔ SYSCALL_UNAVAILABLE به‌صورت دادهٔ اطلاع‌رسان با اطمینان پایین نمایش داده می‌شوند.

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

پروب نتواند IP_RECVERR را به‌دلیل EACCES/EPERM یا ENOPROTOOPT فعال کند.

معنای نتیجه

دردسترس‌نبودن به معنی پاک‌بودن سیستم نیست. یعنی این مسیر هیچ اندازه‌گیری‌ای تولید نکرده است؛ یافته‌های بازبینی سیگنال‌های مجاور همچنان معتبرند.

تأثیر این خط بر گزارش: این سیگنال یعنی اجرای پروب ممکن نبوده است. نباید unavailable را مدرکی برای نبود VPN دانست.

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

این شناسه تجمیعی است و نسخه‌های آینده ممکن است انواع unavailable جدیدی به آن اضافه کنند. بدون errno یا گزارش زمینه، جزئیات فعلی تفاوت محدودیت SELinux و نبود قابلیت هسته را به‌اندازهٔ کافی روشن نمی‌کند.

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

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

بدون روت

SELinux را در حالت enforcing نگه دارید. ثبت کنید نتیجه denied است یا not_supported و مدل دستگاه، نسخهٔ Android و هسته را نیز ذخیره کنید. فقط برای این تشخیص روت نگیرید.

با روت

گزارش‌های AVC و سازگاری هسته را بررسی کنید، اما قاعدهٔ allow گسترده اضافه نکنید. برای آزمون، رفتار را در APK حداقلی جداگانه بازتولید کنید.

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

adb logcat -d | grep -E 'avc: denied|IP_RECVERR' | tail -80
adb shell uname -a

دردسترس‌بودن از سوکت shell معادل دردسترس‌بودن در دامنهٔ برنامه نیست.

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

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

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

خطرها

قاعدهٔ گستردهٔ sepolicy برای گزینه‌های شبکه sandbox را تضعیف می‌کند. نتیجهٔ unavailable از privilege نادرست و بیش‌ازحد امن‌تر است.

بازگردانی

قاعده یا ماژول آزمایشی sepolicy را حذف و دستگاه را ریبوت کنید.

سطح شواهد

دردسترس‌بودن. تجمیع unavailableSyscalls و تنها تولیدکنندهٔ فعلی راستی‌آزمایی شده‌اند.

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

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

سیگنال‌های مرتبط: ip-recverr, native-library.

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