لینک کوتاه مطلب : https://hsgar.com/?p=5746

چگونه راهنمای ماشین خود را هک کردم: ایجاد سیستم عامل سفارشی :: برنامه نویسی با سبک

من هیچ مسئولیتی در قبال خسارات ناشی از اطلاعات یا مراحل ارائه شده در این سایت ندارم. محتوا فقط برای اهداف آموزشی است.

شما سفت افزار ماشین خود را با مسئولیت خود تغییر می دهید.

هیچ یک از این فرآیندها توسط هیوندای، کیا یا هیوندای موبیس تایید نشده است.

اگر می‌خواهید ببینید که چگونه به اینجا رسیدم، بقیه مجموعه‌های «چگونه ماشینم را هک کردم» من را بررسی کنید.

هد یونیت‌های D-Audio 2V غیر ناوبری که در خودروهای هیوندای و کیا یافت می‌شوند، یک نسخه نسبتاً ساده از لینوکس را اجرا می‌کنند. از طریق تحقیقات و مهندسی معکوس، من توانستم فرآیند به‌روزرسانی سیستم‌افزار را تا جایی که بتوان سیستم‌افزار سفارشی را برای این سیستم‌ها توسعه داد، کشف کرد.

برای اینکه بتوانید اصلاحات سفت‌افزار خود را ایجاد کنید، باید چند مورد را تأیید کنید.

  1. یونیت اصلی خودرو شما D-Audio را اجرا می کند. به طور خاص نمایش صوتی Gen2V. برای اینکه مطمئن شوید که یونیت اصلی شما نسخه صحیحی را اجرا می کند، تصاویر را با هم مقایسه کنید سایت هیوندای.
  2. یک به‌روزرسانی میان‌افزار برای یونیت سر خودروی شما باید در دسترس باشد. به روز رسانی خودروهای هیوندای را می توان یافت اینجا و به روز رسانی خودرو کیا را می توان یافت اینجا. به‌روزرسانی‌های سیستم D-Audio 2 را می‌توانید در بخش «به‌روزرسانی نرم‌افزار صوتی نمایشگر» پیدا کنید.
  3. دسترسی به کامپیوتر لینوکس

سپس باید به‌روزرسانی میان‌افزار خودروی خود را دانلود کنید که می‌توانید در سایت‌های به‌روزرسانی بالا پیدا کنید. فایل به روز رسانی باید یک فایل فشرده باشد که حاوی فایل فشرده دیگری به نام “enc_system_package_{version}.zip” باشد. این فایل فشرده داخلی را روی یک کامپیوتر لینوکس استخراج کنید.

من مجموعه ای از اسکریپت ها را ایجاد کرده ام که به استخراج و اصلاح خودکار این به روز رسانی ها کمک می کند.

این اسکریپت ها را دانلود کنید و آنها را در یک پوشه خالی استخراج کنید و فایل سیستم عامل خود را در همان پوشه کپی کنید.

پوشه باید به شکل زیر باشد:
اسکریپت های میان افزار

اکنون اگر می‌خواهید پوشه‌هایی را که اسکریپت‌ها استفاده می‌کنند تغییر دهید، فایل settings.sh را می‌توان به صورت اختیاری ویرایش کرد. دایرکتوری ها به طور خودکار ایجاد می شوند، بنابراین نیازی به ساختن آنها وجود ندارد.
settings.sh
تنظیمات موجود به شرح زیر است:

  • ZIP_PASSWORD_FILE
    • محل فایل متنی که حاوی رمز عبور ZIP برای به‌روزرسانی میان‌افزار است.
  • ENCRYPTION_KEY_FILE
    • محل فایل متنی که حاوی کلید AES است که برای رمزگشایی فایل های رمزگذاری شده استفاده می شود.
  • ENCRYPTION_IV_FILE
    • محل فایل متنی که حاوی AES IV است که برای رمزگشایی فایل های رمزگذاری شده استفاده می شود.
  • RSA_PRIVATE_SIGNING_KEY_FILE=keys/rsa_private.pri
    • مکان کلید خصوصی RSA که برای امضای به‌روزرسانی میان‌افزار استفاده می‌شود.
  • SYSTEM_IMAGE_MOUNT_DIR
    • دایرکتوری برای نصب تصویر سیستم.
  • UPDATE_EXTRACT_TEMP_DIR
    • دایرکتوری که فایل های سیستم عامل را در حین ویرایش نگه می دارد.
  • KEYS_DIR
    • دایرکتوری که حاوی رمز عبور Zip و فایل های رمزگذاری/امضا است.

همه مکان های فایل در فایل تنظیمات باید نسبت به فایل settings.sh باشد.

اکنون “./setupEnvironment.sh” را اجرا کنید، این پوشه ها و فایل های مشخص شده در فایل settings.sh را ایجاد می کند.

پس از اجرای این فایل، تنظیمات شما باید چیزی شبیه به این باشد:
فایل ها پس از اجرای setupEnvironment.sh

اکنون کلیدهای دایرکتوری KEY_DIR باید پر شوند. هنگام وارد کردن این مقادیر، مطمئن شوید که فقط یک خط در فایل وجود دارد و فایل فاقد فاصله اضافی است.

  • zipPassword.txt باید حاوی:[email protected]@” (بدون نقل قول)
    • این رمز عبور با رفتن به پیدا شد سایت منابع باز هیوندای موبیس، فایل “D-Audio2V R1” را از هر وسیله نقلیه ای که آن را دارد دانلود کنید دانلود D-Audio2V R1 سپس فایل فشرده “daudio_2.0value.yocto.poky.zip” را استخراج کرده و از فایل “scripts/linuxenvsetup.sh” که در آن دستور “zip” با آرگومان “-P” (رمز عبور) استفاده می شود، بخوانید. محتویات رمز عبور فشرده
  • aes_key.txt باید حاوی: “2b7e151628aed2a6abf7158809cf4f3c” باشد
  • aes_iv.txt باید حاوی: “000102030405060708090a0b0c0d0e0f” باشد
    • این مقادیر از همان فایل “linuxenvsetup.sh” هستند که فایل فشرده از آن بود، آنها را می توان در تابع generate_aes128_encryption پیدا کرد.
    • این مقادیر در واقع اولین AES 128bit CBC key/iv هستند که در فهرست فهرست شده اند سند NIST SP800-38A. اولین مثال کلید رمزگذاری AES 128 بیتی CBC از سند NIST SP800-38A
  • rsa_private.pri را می توانید از اینجا دانلود کنید
    • من این را با کامپایل کردن و مهندسی معکوس برنامه updateAgent از تصویر بازیابی واحد سرم و سپس جستجوی کلید عمومی در Google دریافت کردم.
    • کلید عمومی/خصوصی مورد استفاده هیوندای موبیس یک کلید تست بسیار رایج است :/ و می تواند باشد یافت که در زیاد مکان ها

پس از پر شدن همه کلیدها و رمزهای عبور، فایل به روز رسانی را می توان با اجرای ./extract_update.sh {Path to your update file} استخراج کرد.
در حال اجرا extract_update.sh

این اسکریپت:

  1. اگر UPDATE_EXTRACT_TEMP_DIR قبلاً تمیز نشده است، آن را تمیز کنید.
  2. فایل آپدیت را با استفاده از فایل پسورد zip استخراج کنید.
  3. فایل system.img را روی SYSTEM_IMAGE_MOUNT_DIR سوار کنید (این کار نیاز به sudo/وارد کردن رمز عبور شما دارد)

اکنون تصویر سیستم نصب شده است (به طور پیش‌فرض در دایرکتوری system_image) و می‌توان آن را به دلخواه تغییر داد.

می توانید درهای پشتی را که به سیستم خود اضافه کردم در قسمت 2 مشاهده کنید

درپشتی آسان دیگری که می توان اضافه کرد، فعال کردن سرور TCP adbd (Android Debug Bridge Daemon) با افزودن آن به عنوان یک سرویس systemd است. Android Debug Bridge یک روش رایج برای اشکال زدایی دستگاه های اندرویدی است و امکان کشیدن و فشار دادن فایل ها به دستگاه و همچنین راه اندازی پوسته های تعاملی را فراهم می کند. نسخه‌ای از Android Debug Bridge Daemon روی این هد یونیت‌های غیر اندرویدی قرار دارد و احتمالاً برای اشکال‌زدایی در طول توسعه استفاده می‌شد.

برای فعال کردن Android Debug Bridge می‌توانید این فایل فشرده را دانلود کرده و در جایی که فایل settings.sh شما قرار دارد استخراج کنید. سپس می توانید به سادگی اجرا کنید: “sudo ./createADBDBackdoor.sh”.

توجه: اسکریپت برای دسترسی به مسیر systemd داخل تصویر سیستم نصب شده به sudo نیاز دارد. سرویس اضافه شده سرور ADB را در پورت 5555 روی واحد اصلی در هنگام راه‌اندازی اجرا می‌کند که می‌تواند با استفاده از ابزار خط فرمان adb Google در حالی که در شبکه واحد اصلی هستید به آن متصل شود.
در حال اجرای اسکریپت createADBDBackdoor

برای کسب اطلاعات در مورد نحوه استفاده از درپشتی ADB پس از نصب آن را بررسی کنید اطلاعات اضافی در مورد ADB بخش.

هنگامی که تصویر سیستم خود را تغییر دادید، می توانید آن را با استفاده از اسکریپت ./compile_update.sh کامپایل کنید.
در حال اجرا اسکریپت compile_update

اجرای این اسکریپت به دلیل هش کردن موجود ممکن است کمی طول بکشد. اسکریپت مراحل زیر را طی می کند:

  1. برای تأیید اینکه تغییرات در تصویر سیستم نصب شده ذخیره شده اند، همگام سازی را اجرا می کند.
  2. تصویر سیستم را جدا می کند.
  3. لیست فایل به روز رسانی جدید را برای به روز رسانی محاسبه می کند و یک هش جدید برای فایل system.img اصلاح شده ایجاد می کند.
  4. لیست فایل به روز رسانی را با کلید خصوصی RSA امضا می کند.
  5. فایل فشرده آپدیت را تولید می کند.

فایل ایجاد شده “enc_system_package_PUT_VERSION_HERE.zip” نامیده می شود زیرا من خیلی تنبل بودم که آن را به درستی نامگذاری کنم.

تنها کاری که باید انجام دهید این است که نام فایل فشرده ایجاد شده را به همان نام zip اصلی به روز رسانی سیستم عامل تغییر دهید و آن را در ریشه یک درایو فلش فرمت FAT قرار دهید.

سپس فلش مموری را می توان داخل ماشین و ماشین شما قرار داد مراحل نصب عادی قابل پیگیری است.

توجه: فرآیند به روز رسانی ممکن است کمی طول بکشد.

سپس یکنوع بازی شبیه لوتو! سیستم عامل اصلاح شده شما در ماشین شما نصب شده است.

هنگامی که سرویس سرور ADBD TCP روی واحد اصلی شما اجرا می شود، می توانید به آن متصل شوید.

برای اتصال به آن باید یک کامپیوتر در شبکه واحد اصلی خود داشته باشید. دو راه برای انجام این کار وجود دارد:

  • اگر واحد مرکزی شما دارای نقطه اتصال Wi-Fi است، به W-Fi متصل شوید
  • اگر یونیت اصلی شما دارای Android Auto/Apple CarPlay بی‌سیم است، می‌توانید با دنبال کردن مراحل زیر رمز Wi-Fi را حذف کنید:
    • یک درایو فلش را در پورت usb یونیت اصلی قرار دهید.
    • به صفحه Setup روی یونیت سر بروید صفحه تمام منوها صفحه 2
    • صفحه راه اندازی صفحه 2
    • سپس به تنظیمات Wi-Fi بروید و دکمه “Generate New Wi-Fi Passkey” را فشار دهید صفحه تنظیمات Wi-Fi
    • با نگه داشتن دکمه فیزیکی «رادیو» به مدت 30 ثانیه یا از تنظیمات USB در حالت مهندسی، سیاهه ها را تخلیه کنید. در هر دو مورد یک پنجره بازشو ظاهر می شود که به شما امکان می دهد گزارش را در درایو USB کپی کنید.
    • گزارش ها را از درایو USB استخراج کرده و آنها را استخراج کنید.
    • فایل Logcat را باز کنید و عبارت “گذرواژه” را جستجو کنید، ورودی گزارش به شکل زیر خواهد بود: ورود به سیستم
    • از رمز عبور برای اتصال به وای فای استفاده کنید
  • برای اتصال به هد یونیت از آداپتور USB به اترنت RTL8152/8153 استفاده کنید
    • درایور آداپتورهای اترنت RTL8152/8153 از پیش نصب شده است. آداپتورهای دارای هاب USB کار نمی کنند. این آداپتور برای من کار کرد
    • به رایانه شما یک آدرس IPv4 اختصاص داده نخواهد شد، بنابراین باید از ابزاری مانند استفاده کنید Wireshark برای پیدا کردن واحد مرکزی لینک آدرس IPv6 محلی.

پس از اتصال: ابزار خط فرمان adb را دانلود کرده و با اجرای این به واحد اصلی متصل شوید:

اگر از آداپتور اترنت استفاده می کنید، باید 192.168.0.1 را با آدرس IPv6 واحد اصلی جایگزین کنید.

سپس می توانید با استفاده از دستور زیر یک پوسته راه اندازی کنید:

لینک منبع

ارسال یک پاسخ

آدرس ایمیل شما منتشر نخواهد شد.