Xbox 360 Hypervisorni yengishning uchinchi qismi
Xbox 360 Hypervisorni yengishning uchinchi qismi. Bu qismda Bad Updatening muvaffaqiyat darajasi va tezligi yaxshilanganligi haqida gap boradi. Agar birinchi va ikkinchi qismlarni o'qimagan bo'lsangiz, bu qismni tushunish uchun ularni o'qish tavsiya etiladi.
Rock Band Blitz
Bad Update v1.0 ning chiqarilishi ortidan ikki asosiy yangilanish amalga oshirildi. Birinchisi, “ihatecompvir” va “InvoxiPlayGames” tomonidan amalga oshirildi. Ular Rock Band Blitz (RBB) demo versiyasida yangi o'yin saqlash kirish nuqtasi yaratdilar, bu DaTArrest deb nomlanadi.
RBB demo versiyasi odatda Xbox Live do'konidan bepul yuklab olinadi va konsolning HDD yoki xotira birligiga saqlanadi. USB flash-drive'larni saqlash uchun ishlatish mumkin bo'lgach, bu paketlar USB saqlash qurilmalaridan ham ishga tushirilishi mumkin. Shuning uchun, RBB demo paketini USB flash-drive'ga kopirlash va uni har qanday konsolda ishga tushirish mumkin.
Ular o'yinning DLC pars qilish kodidagi xotira buzish zaifliklarini ekspluatatsiya qilish orqali, yuklab olingan o'yin saqlash faylini yaratdilar. Bu fayl yuklab olinganda, Bad Updatening ikkinchi bosqich ROP zanjiri ishga tushadi va hypervisor ekspluatatsiya zanjiri boshlanadi. Shunday qilib, Tony Hawk American Wasteland o'yin diski kerak bo'lmaydi.
Bad Update ekspluatatsiyasini amalga oshirish endi USB flash-drive'ga bir nechta fayllarni kopirlash, uni konsolga ulash va Rock Band Blitzni boshqaruv paneldan ishga tushirish bilan amalga oshiriladi.
Hypervisor Race Condition Optimizatsiyalari
RBB kirish nuqtasi topilganidan keyin, “Máté” tomonidan hypervisor race condition qismi uchun bir nechta yaxshilanishlar amalga oshirildi. Ushbu yaxshilanishlarga hash jadvali, yaxshilangan kesh tozalash primitivi va XKE payload thread va ciphertext yozish thread o'rtasidagi thread rejalashtirish kiradi.
Ushbu yaxshilanishlar amalga oshirilgandan keyin, ishga tushirish vaqtini bir necha soniyaga qisqartirdi va race conditionning muvaffaqiyat darajasi sezilarli darajada oshirildi.
Ciphertext Hash Jadvali
Ikkinchi qismda shifrlangan xotirani hypervisor API'larini ishlatib, shifrlangan xotira ajratishlarni belgilangan xotira manzillarida yaratish haqida gap bor edi. Bu primitiv orqali, kerakli plaintext ma'lumotlari uchun ciphertext ma'lumotlarini yaratish mumkin edi.
If the cache block is already in the data cache, all of its bytes are cleared to zero. If it is not in the cache, the block is allocated and initialized directly in the cache to zero without reading the old contents from main memory.
Shifrlash sxemasidagi whitening qiymati 12 bitli bo'lib, bu berilgan plaintext ma'lumotlari uchun 1024 ta unikal ciphertext kombinatsiyasini beradi. Ammo, birinchi PoC-da faqat 1024 ta mumkin bo'lgan whitening qiymatidan biriga ciphertext yaratilgan edi.
Hash jadvalining ishga tushirish tafsilotlariga kirish. Biz kutilayotgan ciphertextning birinchi N bitlarini ikkita massivga indeks sifatida ishlatamiz. Birinchi massiv oracle ciphertextning birinchi 64-bitini o'z ichiga oladi, bu hash jadvalidagi toqqa tushishni tekshirish uchun ishlatiladi. Ikkinchi massiv esa biz xotiraga yozmoqchi bo'lgan xavfli ciphertextni saqlaydi.
Bu jarayonni eng samarali qilish uchun, toqqa tushishlarni e'tiborsiz qoldiramiz. Hash jadvali kalitiga yetarlicha katta son bitlarni tanlash orqali toqqa tushishlarni kompensatsiya qilamiz.
Bu qismda hypervisor ekspluatatsiyasining muvaffaqiyat darajasi va tezligi yaxshilanganligi haqida gap boradi. Keyingi qismda peer pressure ekspluatatsiyasi haqida gap boradi.
Asl manba: icode4.coffee