Membalikan dan memodifikasi windows 8 apps
malam sobat Pc ^_^
Kali ini saya akan mengepost cara menghack windows 8 tapi post nya kepanjangan hehe.
Dalam artikel ini saya akan berbagi hasil ad-hoc penelitian kerentanan keamanan yang telah saya lakukan pada windows 8 penyebaran aplikasi. Secara khusus, kita akan membahas kelemahan desain dasar yang memungkinkan ke Reverse Insinyur Win8 aplikasi, modifikasi aplikasi diinstal dan implikasi negatif pada Intelektual perlindungan hak properti, model Perizinan dan keamanan PC secara keseluruhan. Akhirnya kita akan membahas beberapa ide-ide kreatif tentang bagaimana untuk mengurangi masalah keamanan.
para induk beban: C:\Program Files\Applications
Semua Windows 8 aplikasi di preview pengembang yang dipasang di bawah C klandestin: \ Program Files \ Aplikasi lokasi. Saya akan menebak dan mengatakan bahwa setelah Windows App Store pergi online itu akan menginstal semua aplikasi di bawah folder itu. Saat folder adalah salah satu yang tak terlihat dan tidak dapat diakses dari antarmuka pengguna Windows Explorer pada instalasi Win8 pratinjau pengembang baru.
Berikut ini adalah contoh dari beberapa 29 Win8 aplikasi aplikasi diinstal pada pratinjau pengembang Win8:
Mendapatkan Akses ke C: \ Program Files \ Aplikasi
Pada dasarnya Anda harus menavigasi ke folder itu, tekan tombol "Tab Keamanan" dan mengatur diri sebagai pemilik. Biarkan aku berjalan Anda melalui proses langkah-demi-langkah.
1. Ketik "C: \ Program Files \ Aplikasi" di address bar Windows Explorer dan tekan enter.
2. Amati kaget dan cemas dialog sistem mengatakan Anda tidak memiliki folder pada komputer Anda sendiri. Tekan "Lanjutkan".
Jangan tekan tombol "close", bukannya mengklik "keamanan tab" link.
7. Klik "OK", klik "OK", klik "OK".
Apa jenis kapal aplikasi dengan Windows 8?
Melihat folder ini itu cukup mudah untuk menentukan jenis kapal aplikasi dengan Windows 8 pratinjau pengembang.
Apa yang ada di C: \ Program Files \ Aplikasi?
Untuk aplikasi HTML folder berisi semua kode sumber mereka dan dapat dimodifikasi.
Untuk aplikasi C # folder berisi kode XAML sumber dan versi reverse-engineerable dan dimodifikasi dikompilasi dari kode C #.
Untuk C + + DirectX apps folder tersebut berisi binari dikompilasi. Jujur, C + + bukan spesialisasi saya, jadi saya akan menghindari membahasnya pada setiap panjang lebar.
Membalikkan Teknik HTML & CSS javscript & Win8 aplikasi
Ada cacat desain mendasar dalam konsep aplikasi HTML. HTML, Javascript dan CSS semua ditafsirkan bahasa, dan tidak dikompilasi bahasa. Berarti Anda harus mengirimkan kode sumber untuk aplikasi Anda bukan pengiriman dikompilasi binari. Yang menempatkan Kekayaan Intelektual orang memilih untuk menulis HTML & CSS & JS app hanya untuk platform bawah risiko.
Sebagai contoh, inilah kode sumber HTML untuk Tweet @ rama Win8 app kode:
Dan inilah tweet @ rama kode Javascript yang melakukan sebenarnya posting Twitter:
Memodifikasi HTML & javscript & Win8 CSS aplikasi
Bagian dari masalah dengan bahasa ditafsirkan adalah bahwa mereka tidak mengkompilasi sampai saat paling mereka dieksekusi. Yang memungkinkan para pelaku kejahatan untuk mengedit kode sebelum eksekusi.
Mari kita memodifikasi HTML, Javascript dan CSS untuk aplikasi ini: (untuk singkatnya kita hanya akan walkthrough perubahan HTML sederhana)
Dengan memodifikasi HTML & CSS & Javascript kode sumber kita dapat mengubah desain visual untuk sesuatu yang sedikit lebih visual menyenangkan:
Perhatikan bahwa kita telah berubah baik desain dan perilaku aplikasi dengan memodifikasi kode sumber. Desain baru ini memiliki judul yang berbeda, dan perilaku baru menggunakan gambar login di pengguna sebagai latar belakang. Kami memiliki kekuatan untuk benar-benar mengubah baik desain visual dan kode sumber pelaksana HTML & CSS & JS Win8 aplikasi.
Baru berkembang biak virus?
Setiap malware yang tidak sah yang memperoleh akses ke C: \ Program Files \ Aplikasi berpotensi memodifikasi kode sumber untuk mengeksekusi dengan cara yang berbahaya. Karena ini adalah arah Win8 aplikasi mengambil menulis ini jenis virus kemungkinan akan menjadi industri pertumbuhan.
Sebagai contoh kita bisa melihat tweet @ rama app sekali lagi. Aset yang paling berharga yang memiliki aplikasi yang kami twitter oauth identitasnya. Virus akan dapat memodifikasi tweet @ source code rama jadi setelah dijalankan itu mengambil kredensial dan mengirim mereka ke titik akhir jarak jauh berbahaya. Kode berikut sela ke kode Javascript tweet @ rama akan melakukan hal itu:
Baru berkembang biak retak?
Setiap eksekusi tidak sah yang memperoleh akses ke C: \ Program Files \ Aplikasi berpotensi memodifikasi kode sumber untuk pembelian solusi aplikasi Windows Store dan logika lisensi. Seluruh konsep Ujian dan pembelian fitur didasarkan pada Javascript, C # atau C + + kode memanggil Windows 8 RuntimeTime API untuk Windows Store. Setiap perubahan kode yang berpotensi mengubah pembelian dan logika perizinan untuk aplikasi tersebut.
Misalnya, Dalam konferensi BUILD Microsoft Arik Cohen Menunjukkan (35:25) kode berikut yang melakukan cek Javascript untuk isTrial.
Ini akan menjadi endavour sepele untuk secara manual mengedit file ini Javascript dan menghapus "licenseInformation.isTrial" cek. Dan dengan demikian menghilangkan pembatasan Percobaan dari aplikasi ini Win8 sampel.
Jika ini set masalah tidak diatasi, app pembajakan melalui modifikasi aplikasi untuk aplikasi Windows Store mungkin akan menjadi cukup lazim.
Membalikkan Teknik C # + XAML Win8 apps
C # kode dikirimkan dalam binari EXE & DLL dikompilasi. XAML dikirim sebagai kode sumber teks biasa. Yang membuat kedua bentuk kode sangat rentan terhadap reverse engineering.
Sebagai contoh, kita bisa membuka "Kenangan" (C # WinRT XAML app) MainPage.xaml di Kaxaml dan melihat kode sumber XAML:
Menggunakan dotPeek JetBrains akan mungkin untuk melihat kode C # source untuk aplikasi Kenangan:
Memodifikasi C # + XAML Win8 apps
XAML untuk Win8 aplikasi disimpan dalam plain-teks dan dapat diedit dari alat mengedit teks. The. Bersih binari adalah unsigned dan dengan demikian dapat mengedit menggunakan MSIL Tenun alat Reflexil .
Sebagai contoh, di sini adalah "Kenangan" C # XAML app pengiriman dengan Windows 8 pratinjau pengembang:
Mengedit XAML cukup sepele karena itu disimpan sebagai file teks biasa:
Editing C # dapat dilakukan dengan menggunakan reflektor yang Reflxil MSIL Editor:
Dengan beberapa modifikasi cahaya untuk kode # XAML dan C kita dapat mengubah tampilan dan perilaku aplikasi:
Membalikkan Teknik C + + apps Win8
Aku akan mengaku tidak menjadi kuat C + + pengembang (terkesiap!) jadi saya akan tetap ini singkat dengan menunjukkan C + + apps juga rentan terhadap reverse engineering. Tampaknya app Toko Microsoft ditulis dalam C + +. Aset yang paling penting bahwa aplikasi akan memiliki adalah endpoint untuk toko Microsoft. Membuka C: \ Windows \ System32 \ WinStore \ WinStoreUI.dll di notepad dan mencari alamat "https" mengungkapkan URL berikut:
Setelah http://go.microsoft.com/fwlink/?LinkId=195322&clcid=0x409 URL mengarah ke URL saat ini tidak aktif dari https://services.apps.microsoft.com/browse . Saya akan menebak bahwa ini adalah URL saat ini sedang digunakan untuk menguji Windows Store App.
Mengingat bahwa Windows 8 hanya merupakan rilis alpha pengembang, kami telah melihat beberapa hal yang mengganggu:
- Hal ini dimungkinkan untuk melakukan reverse engineering dan memodifikasi HTML, JavaScript dan CSS kode dikirim dalam Win8 aplikasi.
- Hal ini dimungkinkan untuk melakukan reverse engineering dan memodifikasi C # / VB.Net source code pengiriman dengan Win8 aplikasi.
- Hal ini dimungkinkan untuk melakukan reverse engineering dan memodifikasi source code XAML pengiriman dengan Win8 aplikasi.
- Hal ini dimungkinkan untuk (pada beberapa tingkat yang terbatas?) Balik C + + Win8 apps.
Microsoft benar-benar dapat memecahkan masalah ini?
Tidak ada. Menurut pendapat saya, pengiriman aplikasi sebagai bagian dari semua toko app akan selalu rentan pada beberapa tingkat terbatas untuk reverse engineering dan modifikasi.
Ya, Microsoft dapat membuat aplikasi secara signifikan lebih marah-bukti dan menumpuk banyak kesulitan pada mereka yang berusaha untuk melakukan reverse engineering dan memodifikasi Win8 aplikasi. Dengan asumsi kode berbahaya dan orang-orang tidak dapat mengakses C: \ Program Files \ Aplikasi tampaknya naif yang terbaik.
Berikut adalah beberapa saran untuk apa yang beberapa dari mereka kesulitan tersebut potensial mungkin:
- Mengaburkan C # / VB.Net proyek secara default:. Proyek bersih default untuk pengiriman dengan kode sumber unobfuscated. Jika Microsoft serius memperkenalkan kebingungan jendela-jendela toko App harus diaktifkan secara default untuk semua proyek net,. Bukan hanya bagus untuk dimiliki addon seperti itu sekarang. Tim VS2011 harus menyelidiki dan mengintegrasikan solusi obfuscation langsung ke produk dan menyalakannya untuk semua proyek-proyek baru. Bersih. Hal ini akan membuat lebih sulit untuk melakukan reverse engineering. Apps bersih.
- Mengecilkan HTML, Javascript dan proyek CSS secara default: Dengan sukacita pengembang web penyebaran desktop kemungkinan akan meninggalkan Javascript, HTML dan CSS minification. Sekali lagi, jalan yang baik ke depan di sini adalah untuk memastikan semua kode HTML, dan CSS Jacascript minified secara default. Langkah ini akan membuat lebih sulit untuk melakukan reverse engineering aplikasi HTML.
- Sangat menandatangani semua majelis bersih secara default:. Kuat-penandatanganan telah menjadi bagian dari kerangka bersih selama 10 tahun sekarang.. Hidupkan secara default dengan sertifikat lisensi pengembang yang unik untuk semua Win8. Aplikasi bersih. Pastikan Win8 AppContainers hanya menjalankan aplikasi ditandatangani, bahkan tidak memiliki kunci registry tersembunyi untuk mengaktifkan aplikasi unsigned ( seperti WP7 tidak ). Itu akan membuat lebih sulit untuk memodifikasi. Apps bersih.
- Checksum HTML, Javascript dan CSS sebelum proyek startup: Bahkan jika itu unpreventable bahwa memodifikasi Win8 aplikasi HTML akan terjadi, menjalankan checksum pada semua file sebelum memuat aplikasi ke dalam memori. Itu akan membuat lebih sulit untuk memodifikasi Win8 aplikasi HTML. Kedengarannya seperti AppBlockMap.xml yang seharusnya melakukan sesuatu yang mirip, tetapi tampaknya tidak bekerja.
- Jangan menyimpan file App mengeksekusi sebagai polos berusia file pada hard drive-pengguna: Seharusnya tidak mungkin bahkan melihat file pengiriman dengan sebuah aplikasi secara default hanya menggunakan Windows Explorer. Folder lossless dikompresi dengan DRM perlindungan akan menjadi langkah yang baik ke depan di sini. Hal ini seharusnya membuat lebih sulit untuk melakukan reverse engineering Win8 aplikasi.
tl; dr: Jika Microsoft tidak melakukan langkah-langkah tersebut atau yang sebanding itu bukan karena tidak bisa, itu karena ia tidak mau. Jika Microsoft memilih untuk mengabaikan masalah ini selama satu tahun tersisa (?) Pengembangan siklus hidup untuk Windows 8 maka itu bukan karena ia tidak bisa memecahkan masalah ini.
Visual Studio 2.011 App Deployment
Apps digunakan oleh Visual Studio 2011 tidak bisa dikerahkan ke C: \ Program Files \ Aplikasi melainkan bisa dikerahkan ke C: \ Users \ \ AppxLayouts.
Lokasi alternatif untuk Visual Studio penyebaran aplikasi dan semua penyebaran aplikasi lainnya dikendalikan oleh folder registri HKEY_CURRENT_USER \ Software \ Classes \ Local Settings \ Software \ Microsoft \ Windows \ CurrentVersion \ AppModel.
Sumber: Justin Angel