خوب فکر میکنم وقتش باشه تا با مسائل جیلبرک کمی بیشتر و تخصصی تر آشنا بشیم
من این متن رو از چند تا منبع ترجمه کردم ، برای خودم خیلی نقاطش مبهمه ، چون بحثش هم کمی تخصصیه،اگه اشکالی تو متن هست که حتما هم هست خوشحال میشم کمک کنین که تصحیحش کنیم بیشتر دوست دارم اگه کسی میتونه این تعاریف و اصطلاحات رو باز ترش بکنه و به یه زبون ساده تر بیان کنه تا همه بتونن یه درک کلی از موضوع داشته باشن،البته اینو تو فروم P30 هم گذاشتم ...
اول یه مقدمه ای از اون چیزی که تا به حال روی آیفون انجام شده رو باهم مرور کوتاهی میکنیم:
در 27فوریه 2007 تیم آیفون اعلام کرد که آنها میتوانند یک لوگوی سفارشی شده را در آیفون لود کنند. و از چک درستی (Signature Checks)عبور کنند.
[ame=http://www.youtube.com/watch?v=7mYSGbm02zQ]YouTube - iPhone 0wnage[/ame]
دو روز بعد آنها اعلام کردند توانسته اند که به یک فایل IPSW سفارشی شده ری استور کنند
[ame=http://www.youtube.com/watch?v=ks86VRzVLic]YouTube - iPhone unleashed[/ame]
سپس آنها اطلاعاتی راجب نحوه استفاده ازنقطه ضعف امنیتی آیفون منتشر کردند
How Pwnage Works [iPhone Dev Team]
و در نهایت یک پرزنتیشن کامل از ابزار جیلبرک
[ame=http://www.youtube.com/watch?v=j7nbIvNf7MA]YouTube - iPhone DevTeam presents PWNAGE[/ame]
ابزار جیلبرک از این واقعیت استفاده میکرد که Bootrom صحت LLB را چک نمیکرد که باعث شکسته شدن زنجیره امنیت میشد،چون معنیش این بود که میشد LLB را پچ کرد تا یک iBoot پچ شده را بپذیرد.و iBoot یک کرنل پچ شده را بپذیرد و الی آخر.
در حال حاضر این راه نفوذ برای آیفون نسل اول و آیپادتاچ نسل اول و آیفون 3Gبه کار گرفته شده اما آیپادتاچ2G داستانش متفاوت است
تفاوت در چیست؟
آیپادتاچ2G دارای WTF 2.0 است چیزی که ما نام آن را “DFU 2.0″ گذارده ایم که درون Bootrom رایت شده است.
این یعنی حفره امنیتی Rom که به پونج ورژن 1 و 2 اجازه نفوذ داده بود الان دیگر نیست چون الان Bootrom، LLB را چک میکند و اگر آن پچ شده بود مانع بوت شدن آن میشود.
اگر LLB پچ شده نباشد iBoot پچ شده را بوت نخواهد کرد و iBoot هم کرنل پچ شده را بوت نخواهد کرد و اگر کرنل پچ نشده باشد آنگاه اجازه نصب هیچ برنامه ای که ساین نشده باشد را نمیدهد مثل سیدیا یا اینستالر چون کد آنها چک میشود
اما برگردیم به آیپاد تاچ عزیز خودمون
اساسا iPT2G(iPod touch 2G دارای یک Rom است
این رام حاوی یک بوت رام (Bootrom) است و این اولیه ترین سطح بوت شدن در IPT2G است.
اگر دکمه های Home و Sleep درست گرفته شوند این Bootrom، آیپاد رابه حالت DFU میبرد.
این دو ( Bootrom و DFU ) به سختی در دستگاه کدگذاری شده اند وهرگز قابل تغییر نیستند
بنابراین اگر شما حتی ROM را هم پاک یا خراب کنید Bootrom و DFU همچنان آنجا هستند
Bootram همینطور(LLB (Low Level Bootram را لود میکند ولی قبل از لود کردن LLBدرستی اون رو چک میکند.(Signature Check)
این بدان معنی است که اگر اگر شما یک بیت ساده(در بایت) از LLB را عوض کنید آنوقت کد نادرست خواهد بود و آیپاد شما را به حالت درخت کریسمس در میاورد(اشاره به چشمک سفید و سیاه وقتی LLB ناصحیح لود شود)
اگراز چک LLB به سلامت عبور کنید حالا درستی iBoot چک میشود
iBoot شامل یک recovery interface است (ریکاوری مود) که آیتونز هم برای ریکاور کردن از آن استفاده میکند.
iBoot همینطور کرنل (Kernel) را چک میکند
DFU میتواند برای فرستادن یک فایل iBSS به iBoot استفاده بشه تا یک خروجی موقت را بازسازی کند
جیلبرک فعلی هم از همین روش استفاده میکند:
آیپاد در حالت DFU و با iBSS 2.1.1 بوت میشود و در اینجا یک نقطه ضعف وجود دارد که ARM7_Go نامیده شده است
درحقیقت اپل حذف این فرمان را از قلم انداخته بود
این فرمان بر خلاف بقیه هیچ تست درستی(Signature Check) ندارد.
یعنی این که آنها میتوانند یک فایل iBSS 2.1.1 را در حالت DFU آپلود کنند و یک خروجی موقت از برنامه که چک های مشابه ARM 11 (پروسسور اصلی) دارد بگیرند
یعنی آنها میتوانند فرمانهایی را به ARM 7 بدهند که تمام مجوزهای لازم ARM 11 (پروسسور اصلی) را دارد
یعنی آنها میتوانند به سادگی یک کرنل جدید ایجاد کنند که اجازه دسترسی کامل را میدهد. این یعنی کرنل الان هک شده است.
Bootrom بوت میشود که LLB را چک میکند که آن هم iBoot را چک میکند ، سپس به کرنل میرود و میبیند که این به وسیله اپل ساخته نشده است، بنابراین آیپاد به یک صفحه سفید میرود. (اگر فیلم جیلبرک رو دیده باشید اون صفحه سفید قبل از پچ رو باید یادتون بیاد) .
برف قرمز(red sn0w) حالا iBoot را در RAM دست کاری میکند تا به کرنل جیلبرک شده اجازه بوت شدن بدهد.و آیپاد به درستی و سلامتی بوت میشود.
اما وقتی آیپاد را خاموش میکنید و دوباره روشن میکنید iBoot میبیند که کرنل به وسیله اپل ساخته نشده است و بنابراین بوت نمیکند چرا که نقطه ضعفی که دفعه قبل استفاده شده بود در RAM بود و با خاموش شدن دستگاه پاک شده بود.
بنابراین برای بوت شدن در کرنل و لود شدن کامل آیپاد، لازم است تا پچ برف قرمز دوباره اجرا شود.
تیم گشترش آیفون کاملا در تلاش برای پیدا کردن راهی برای جایگزین کردن پچ برف قرمز در Rom به جای RAM است تا Bootrom را فریب دهد تا فکر کند که LLB درستیش چک شده و به آنها اجازه دهد تا LLB را دستکاری کنند تا اجازه دهد تا برف قرمز در هر بار بوت شدن به طور خودکار اجرا شود بدون نیاز به کامپیوتر.
منابع:
http://chronic-dev.org/blog/
redsn0w - iPod touch Fans forum
من این متن رو از چند تا منبع ترجمه کردم ، برای خودم خیلی نقاطش مبهمه ، چون بحثش هم کمی تخصصیه،اگه اشکالی تو متن هست که حتما هم هست خوشحال میشم کمک کنین که تصحیحش کنیم بیشتر دوست دارم اگه کسی میتونه این تعاریف و اصطلاحات رو باز ترش بکنه و به یه زبون ساده تر بیان کنه تا همه بتونن یه درک کلی از موضوع داشته باشن،البته اینو تو فروم P30 هم گذاشتم ...
اول یه مقدمه ای از اون چیزی که تا به حال روی آیفون انجام شده رو باهم مرور کوتاهی میکنیم:
در 27فوریه 2007 تیم آیفون اعلام کرد که آنها میتوانند یک لوگوی سفارشی شده را در آیفون لود کنند. و از چک درستی (Signature Checks)عبور کنند.
[ame=http://www.youtube.com/watch?v=7mYSGbm02zQ]YouTube - iPhone 0wnage[/ame]
دو روز بعد آنها اعلام کردند توانسته اند که به یک فایل IPSW سفارشی شده ری استور کنند
[ame=http://www.youtube.com/watch?v=ks86VRzVLic]YouTube - iPhone unleashed[/ame]
سپس آنها اطلاعاتی راجب نحوه استفاده ازنقطه ضعف امنیتی آیفون منتشر کردند
How Pwnage Works [iPhone Dev Team]
و در نهایت یک پرزنتیشن کامل از ابزار جیلبرک
[ame=http://www.youtube.com/watch?v=j7nbIvNf7MA]YouTube - iPhone DevTeam presents PWNAGE[/ame]
ابزار جیلبرک از این واقعیت استفاده میکرد که Bootrom صحت LLB را چک نمیکرد که باعث شکسته شدن زنجیره امنیت میشد،چون معنیش این بود که میشد LLB را پچ کرد تا یک iBoot پچ شده را بپذیرد.و iBoot یک کرنل پچ شده را بپذیرد و الی آخر.
در حال حاضر این راه نفوذ برای آیفون نسل اول و آیپادتاچ نسل اول و آیفون 3Gبه کار گرفته شده اما آیپادتاچ2G داستانش متفاوت است
تفاوت در چیست؟
آیپادتاچ2G دارای WTF 2.0 است چیزی که ما نام آن را “DFU 2.0″ گذارده ایم که درون Bootrom رایت شده است.
این یعنی حفره امنیتی Rom که به پونج ورژن 1 و 2 اجازه نفوذ داده بود الان دیگر نیست چون الان Bootrom، LLB را چک میکند و اگر آن پچ شده بود مانع بوت شدن آن میشود.
اگر LLB پچ شده نباشد iBoot پچ شده را بوت نخواهد کرد و iBoot هم کرنل پچ شده را بوت نخواهد کرد و اگر کرنل پچ نشده باشد آنگاه اجازه نصب هیچ برنامه ای که ساین نشده باشد را نمیدهد مثل سیدیا یا اینستالر چون کد آنها چک میشود
اما برگردیم به آیپاد تاچ عزیز خودمون
اساسا iPT2G(iPod touch 2G دارای یک Rom است
این رام حاوی یک بوت رام (Bootrom) است و این اولیه ترین سطح بوت شدن در IPT2G است.
اگر دکمه های Home و Sleep درست گرفته شوند این Bootrom، آیپاد رابه حالت DFU میبرد.
این دو ( Bootrom و DFU ) به سختی در دستگاه کدگذاری شده اند وهرگز قابل تغییر نیستند
بنابراین اگر شما حتی ROM را هم پاک یا خراب کنید Bootrom و DFU همچنان آنجا هستند
Bootram همینطور(LLB (Low Level Bootram را لود میکند ولی قبل از لود کردن LLBدرستی اون رو چک میکند.(Signature Check)
این بدان معنی است که اگر اگر شما یک بیت ساده(در بایت) از LLB را عوض کنید آنوقت کد نادرست خواهد بود و آیپاد شما را به حالت درخت کریسمس در میاورد(اشاره به چشمک سفید و سیاه وقتی LLB ناصحیح لود شود)
اگراز چک LLB به سلامت عبور کنید حالا درستی iBoot چک میشود
iBoot شامل یک recovery interface است (ریکاوری مود) که آیتونز هم برای ریکاور کردن از آن استفاده میکند.
iBoot همینطور کرنل (Kernel) را چک میکند
DFU میتواند برای فرستادن یک فایل iBSS به iBoot استفاده بشه تا یک خروجی موقت را بازسازی کند
جیلبرک فعلی هم از همین روش استفاده میکند:
آیپاد در حالت DFU و با iBSS 2.1.1 بوت میشود و در اینجا یک نقطه ضعف وجود دارد که ARM7_Go نامیده شده است
درحقیقت اپل حذف این فرمان را از قلم انداخته بود
این فرمان بر خلاف بقیه هیچ تست درستی(Signature Check) ندارد.
یعنی این که آنها میتوانند یک فایل iBSS 2.1.1 را در حالت DFU آپلود کنند و یک خروجی موقت از برنامه که چک های مشابه ARM 11 (پروسسور اصلی) دارد بگیرند
یعنی آنها میتوانند فرمانهایی را به ARM 7 بدهند که تمام مجوزهای لازم ARM 11 (پروسسور اصلی) را دارد
یعنی آنها میتوانند به سادگی یک کرنل جدید ایجاد کنند که اجازه دسترسی کامل را میدهد. این یعنی کرنل الان هک شده است.
Bootrom بوت میشود که LLB را چک میکند که آن هم iBoot را چک میکند ، سپس به کرنل میرود و میبیند که این به وسیله اپل ساخته نشده است، بنابراین آیپاد به یک صفحه سفید میرود. (اگر فیلم جیلبرک رو دیده باشید اون صفحه سفید قبل از پچ رو باید یادتون بیاد) .
برف قرمز(red sn0w) حالا iBoot را در RAM دست کاری میکند تا به کرنل جیلبرک شده اجازه بوت شدن بدهد.و آیپاد به درستی و سلامتی بوت میشود.
اما وقتی آیپاد را خاموش میکنید و دوباره روشن میکنید iBoot میبیند که کرنل به وسیله اپل ساخته نشده است و بنابراین بوت نمیکند چرا که نقطه ضعفی که دفعه قبل استفاده شده بود در RAM بود و با خاموش شدن دستگاه پاک شده بود.
بنابراین برای بوت شدن در کرنل و لود شدن کامل آیپاد، لازم است تا پچ برف قرمز دوباره اجرا شود.
تیم گشترش آیفون کاملا در تلاش برای پیدا کردن راهی برای جایگزین کردن پچ برف قرمز در Rom به جای RAM است تا Bootrom را فریب دهد تا فکر کند که LLB درستیش چک شده و به آنها اجازه دهد تا LLB را دستکاری کنند تا اجازه دهد تا برف قرمز در هر بار بوت شدن به طور خودکار اجرا شود بدون نیاز به کامپیوتر.
منابع:
http://chronic-dev.org/blog/
redsn0w - iPod touch Fans forum
نظر