Seorang teknisi Nokia yang mengerjakan proyek WIndows Phone 8 mengungkapkan bahwa judul-judul berbayar di toko aplikasi Windows Store ternyata bisa diperoleh secara "gratis".
Caranya pun ada banyak. Trial apps bisa diubah menjadi versi penuh dengan memodifikasi sebagian file yang disimpan secara lokal di komputer pengguna, serta iklan dalam aplikasi bisa dihilangkan dengan mengutak-atik file XAML.
Ingin beli item dalam game dengan harga lebih murah atau tak bayar sama sekali? Itupun bisa dilakukan dnegan memodifikasi local files atau menginjeksi script ke process Internet Explorer 10.
Justin Angel, sang teknisi Nokia itu, menjelaskan bahwa hal-hal ini dimungkinkan berkat masalah fundamental dalam metode peyimpanan data lokal yang dipakai aplikasi-aplikasi dari Windows Store. "Kalau data disimpan di komputer secara lokal, maka kita bisa mencari dan memodifikasinya," ujar Angel dalam sebuah posting blog.
Angel menjelaskan proses "membajak" aplikasi Windows Store tersebut melalui sejumlah judul game. Dalam game Soulcraft, misalnya, dengan melakukan decrypting dan editing file XML, dia berhasil memperoleh 1.000.000 gold senilai lebih dari 1.000 dollar AS dalam bentuk uang sebenarnya.
Trial version dari Meteor Madness bisa diubah menjadi versi penuh. Ada juga contoh modifikasi untuk membuang iklan di Minesweeper dan membuka level di Cut the Rope. Intinya, selalu ada cara mencurangi usaha developer untuk mencari uang. Ini tentu merupakan berita buruk buat pengembang aplikasi yang menjual karyanya lewat Windows Store.
Angel mengatakan bahwa temuannya dimaksudkan untuk pihak Microsoft dan developer agar bisa bertukar pengetahuan dan mencari jalan keluar. Nokia sendiri tak ada sangkut pautnya dengan penelitian kecil yang dilakukan Angel ini.
Untuk alasan yang tidak diketahui, situs milik Justin Angel saat ini sedang tak bisa diakses, namun tulisannya tetap tersedia di Google Cache.
sumber
HI orang,
Artikel ini merupakan tindak lanjut artikel saya sebelumnya 2011 pada Reverse Engineering dan Memodifikasi Windows 8 apps . Dalam artikel ini kita akan melihat bagaimana menggunakan vektor bawaan keamanan Windows 8 serangan sedemikian rupa sehingga dapat membahayakan Windows 8 aliran permainan pendapatan. Kami akan meninjau contoh-contoh nyata untuk semua Win8 bahasa pemrograman dan kerangka kerja.
Mayoritas aplikasi mobile membuat uang mereka dari kombinasi di-app iklan, di-app pembelian atau download aplikasi dibayar. Google IO 2012 ini memiliki slide besar menggambarkan semua cara pengembang aplikasi mobile dapat dibayar:
Dalam artikel ini kita akan menunjukkan bagaimana tidak aman masing-masing aliran pembayaran pada Windows 8 dengan contoh-contoh nyata dari pengembangan game. Sangat penting untuk menyebutkan metode ditunjukkan dalam artikel ini dapat diterapkan untuk setiap aplikasi dan bukan hanya permainan.
Saya telah menghabiskan 20 $ + pada emas game untuk Soulcraft THD pada saya Google Nexus 7 sejauh ini. Jadi saya bertanya pada diri sendiri bagaimana data yang emas bahwa permainan ini akan disimpan pada Windows 8, dan apakah atau tidak kita bisa mengubahnya.
Cepat penyegaran dari artikel sebelumnya semua Windows 8 aplikasi disimpan pada HD lokal di:
Juga, semua file disimpan di IsoStore:
Ketika membuka file-file di Notepad kita dapat melihat beberapa file dienkripsi sementara yang lain tidak.
Jadi sekarang pertanyaannya menjadi, kita bisa mendekripsi AccountData.xml file, mengedit jumlah emas karakter kita memiliki dan hanya menjalankan permainan? Nah, ternyata jawabannya adalah "Ya".Biasanya file dienkripsi adalah berita buruk jika Anda mencoba mengutak-atik aplikasi. Tapi kita harus ingat ini semua berjalan pada mesin lokal. Kami memiliki algoritma yang digunakan untuk enkripsi, kita memiliki kunci hash dan kami memiliki data dienkripsi. Setelah kita memiliki semua dari mereka itu cukup sederhana untuk apa mendekripsi.
Menggunakan dotPeek / ILSpy / JustDecompile itu mungkin untuk melakukan reverse engineering sebagian besar kode sumber Soulcraft dan mencari tahu bagaimana AccountData.xml akan disimpan dan bagaimana mengubahnya. Mari kita asumsikan kita sudah melakukan itu dan kita tahu mana kelas dan majelis digunakan untuk mendekripsi, mengedit dan mengenkripsi file XML. Kita akan memulai dengan membuat aplikasi Win8 baru dan referensi DLL yang tepat dari permainan Soulcraft.
Selanjutnya, karena ini majelis membaca file dari IsoStore kita akan menyalin file game terenkripsi ke IsoStore app2 kita sendiri.
Sekarang kita sudah menggelar aplikasi baru dengan majelis yang tepat dan IsoStore penduduk dengan data Soulcraft itu. Langkah berikutnya adalah untuk melakukan reverse engineering majelis dan mencari tahu urutan panggilan yang benar untuk metode. Misalnya kode ini akan memuat AccountData.xml, mengedit jumlah emas dan simpan lagi.
Menyalin file kembali ke IsoStore Soulcraft dan mulai Soulcraft kita dapat melihat karakter tingkat pertama dengan 1.000.000 emas.
Pada titik ini sebagian dari Anda harus berpikir "jadi apa? itu permainan uang palsu ". Benar, tapi ini uang dalam game palsu akan bernilai lebih dari satu dolar ribu pada Android dan iOS. Tanpa lokasi penyimpanan yang aman untuk permainan negara, kita tidak dapat terkejut bahwa retak pihak ke-3 akan muncul untuk membuat konsumen dihindari dalam-app pembelian.
Mari kita lihat Madness Meteor . Ini adalah asteroid arcade shooter game keren. Kegilaan meteor biaya 1,5 $ USD dan menawarkan percobaan gratis dengan fungsi terbatas. Hal ini juga terjadi menjadi open source sehingga Anda dapat pergi memeriksa yang keluar juga.
Ketika men-download aplikasi sebagai percobaan kita dapat melihat bahwa ia menawarkan pilihan untuk membeli permainan dan mengunci beberapa pilihan permainan. Perhatikan "Buy now" batu di bagian bawah kiri dan terkunci "Arcade" batu permainan di bagian kanan atas.
Pada bagian sebelumnya kita telah melihat ada masalah mendasar ketika menyimpan data permainan pada Windows 8. Menyimpan data dienkripsi secara lokal, bersama dengan algoritma dan algoritma kunci / hash adalah resep untuk insiden keamanan. Salah satu masalah dengan memungkinkan eksekusi offline aplikasi trial adalah bahwa mandat " sidang bendera "untuk disimpan secara lokal. Dan seperti yang kita lihat, jika disimpan secara lokal, kita dapat menemukannya, membacanya dan memodifikasinya.
Khususnya Lisensi untuk Windows 8 aplikasi disimpan dalam file berikut:
Juga, dalam file yang sama kita bisa melihat ada aplikasi lain yang diinstal. Seperti aplikasi gratis, aplikasi dibayar dan aplikasi terinstal. Di sini misalnya jika " Kendali instalasi "dari Bing.
Sebuah pendidikan WinForms app bernama WSService_crk load file ini ke dalam memori, menunjukkan XMLs Lisensi dan memodifikasi sebagai lisensi "Full sudah terpasang". Ada banyak hal yang terjadi di sini lain maka cukup membaca dan memodifikasi file. WSService_crk telah mendekripsi file, kembali mengenkripsi dan kemudian menyimpannya. Semua itu didokumentasikan dengan WSService_crkseperti itu didistribusikan dengan kode sumber penuh.
Ketika membuka WSService_crk pada mesin saya menunjukkan daftar berikut aplikasi menginstal.
WSService_crk kemudian dapat menunjukkan lisensi saat ini dan bahkan memodifikasinya dari Percobaan ke sebuah Lisensi sudah terpasang penuh.
Saat menjalankan Madness Meteor sekarang kita bisa melihat bahwa itu tidak lagi memiliki keterbatasan app sidang fungsi.
Salah satu aplikasi yang sekarang (mengejutkan) iklan didukung pada Windows 8 adalah Minesweeper Microsoft.
Seperti yang kita lihat sebelumnya eksekusi dari semua 8 aplikasi Windows dapat terletak mudah. Minesweeper diinstal secara lokal pada:
Kita dapat membuat iklan ini menghilang dengan hanya menambahkan Visibilitas = "Collapsed" properti untuk kontrol pengguna root tersebut.
Setelah kami telah membuat perubahan kecil, ketika kita menjalankan aplikasi Minesweeper kita tidak akan dapat melihat iklan lagi.
Dengan hanya mengedit file XAML kita dapat menyembunyikan diri di-aplikasi iklan dari Windows 8 iklan.
Jika kita kembali ke dikotomi yang pernah kita dengar sebelumnya maka kita dapat melihat bagaimana hal itu berlaku untuk Dawn Ultraviolet. Ada mesin permainan yang tahu tentang "menyimpan item" dan ada akan menjadi daftar tempat dari apa yang mereka. Jadi satu hal yang kita bisa lakukan adalah mengambil keuntungan dari Windows 8 on-disk penyimpanan dan memodifikasi file data permainan. Karena sebelumnya kita telah melihat executable untuk windows 8 aplikasi dapat ditemukan dan dimodifikasi. Secara khusus, Dawn Ultraviolet ini dapat ditemukan di sini:
Ketika kita menjalankan Dawn Ultraviolet lagi kita bisa melihat harga barang di toko sekarang 0.
Kami baru saja menunjukkan bahwa menggunakan alat sederhana kita bisa mengedit file permainan untuk kompromi pengalaman Windows 8 game.
Seperti yang kita tahu sekarang executables untuk Windows 8 game dapat ditemukan pada disk lokal. Khusus Potong Rope executeables dapat ditemukan di:
Kami tidak benar-benar harus memahami secara spesifik, tetapi kita bisa melihat ada sebuah jika-lain kondisi yang menentukan di-app pembelian. Kita tidak bisa langsung mengubah file Javascript yang akan merusak paket Javascript dan Windows 8 akan menolak untuk membuka aplikasi. Jadi bukannya mengubah file pada disk lokal, kita dapat menyuntikkan script JS saat runtime dalam IE10 proses.
Visual Studio 2012 memiliki mekanisme built-in debugging untuk setiap aplikasi menginstal Windows 8. Bahkan jika itu tidak ada kita masih bisa dengan mudah menyuntikkan skrip untuk IE10, tapi karena di sana kita dapat menggunakan alat akrab. Mari kita gunakan VS2012 untuk " Debug Paket App Installed ". (Berikut adalah docs Jacascript , C # docs dan C + + docs untuk mereka yang tidak terbiasa dengan fitur)
Selanjutnya kita akan memilih untuk Debug Cut The Rope. Pastikan untuk memeriksa "Berhenti pada awalnya Pernyataan" kotak centang karena kita akan menggunakannya untuk menavigasi ke default.js .
Setelah kita klik start kita dapat melihat kita debug Potong Rope app. Ini adalah sedikit penting, kami sekarang punya kekuatan penuh VS2012 debugging runtime Javascript di app store Win8. Ini breakpoint pertama akan selalu file yang sama pada baris yang sama: baris pertama dari base.js file dari kerangka WinJS.
Menggunakan kombinasi pintar "Langkah di atas" dan menggunakan Solution Explorer kita dapat mengatur breakpoint berikut setelah pengaturan variabel yang telah kita sebelumnya terlihat.
Melangkahi perlambatan ini kita kemudian dapat melihat nilai-nilai berikut di jendela Locals kita.
Dan sekarang menggunakan Jendela Segera kita dapat mengeksekusi javascript kita ingin. Untuk tujuan demo ini kita akan menetapkan SIMULATE_PURCHASES = true. Kita bisa menyelamatkan beberapa waktu dengan menetapkan IS_PAID_FULL_VERSION = true, tapi aku ingin bagi kita untuk melihat perilaku runtime.
Sekarang ketika kita klik tombol pembelian kita dapat melihat Windows 8 di-app pembelian simulator. Kami akan memberitahu bahwa pembelian itu berhasil.
Dan sekarang kita dapat melihat semua tingkat permainan akan dibuka.
Kami baru saja menunjukkan bagaimana untuk menyuntikkan javascript acak ke dalam toko Win8 membeli WinJS IE10 app dan kami telah terpengaruh dalam aplikasi persediaan item pembelian.
Kami mampu menunjukkan bahwa mayoritas game dan pengembang aplikasi cara akan membuat uang yang tidak aman secara default pada Windows 8. Kami telah menunjukkan ini untuk C # & XAML aplikasi ( Minesweeper ), kami telah menunjukkan ini untuk C # aplikasi + Direct3D ( Soulcraft ), kami telah menunjukkan ini untuk C + + & aplikasi Direct3D ( Dawn Ultraviolet ), kami telah menunjukkan ini untuk HTML & WinJS aplikasi ( Potong Rope ) dan kami telah menunjukkan ini untuk setiap aplikasi menggunakan Trial ( Madness Meteor ).
Mari kita ulangi apa yang telah kita lihat sejauh ini, apa akar penyebab masalah dan apa yang bisa dilakukan di tingkat kerangka kerja untuk mengurangi masalah ini:
Ingatlah untuk membaca artikel "sebelumnya Reverse Engineering dan Memodifikasi Windows 8 apps "jika ada sesuatu yang tidak jelas karena menguraikan banyak teknik yang digunakan di sini.
- Justin Malaikat
Artikel ini merupakan tindak lanjut artikel saya sebelumnya 2011 pada Reverse Engineering dan Memodifikasi Windows 8 apps . Dalam artikel ini kita akan melihat bagaimana menggunakan vektor bawaan keamanan Windows 8 serangan sedemikian rupa sehingga dapat membahayakan Windows 8 aliran permainan pendapatan. Kami akan meninjau contoh-contoh nyata untuk semua Win8 bahasa pemrograman dan kerangka kerja.
Tapi pertama-tama, mengapa Permainan?
Dalam artikel sebelumnya kita telah melihat celah keamanan yang mempengaruhi semua aplikasi Windows 8. Namun dalam artikel ini kita akan fokus pada bagaimana menggunakan teknik ini untuk kompromi keamanan permainan. Alasan kami akan berfokus pada permainan adalah bahwa mereka account untuk + 51% dari pendapatan pengembang pada setiap platform pengembang mobile. Mari saya ulangi bahwa, game account untuk sebagian besar pendapatan pengembang. Sebagai contoh dapat kita lihat dari resmi statistik Microsoft bahwa 64% dari pembelian aplikasi pada Windows Phone 7 adalah untuk permainan .Mayoritas aplikasi mobile membuat uang mereka dari kombinasi di-app iklan, di-app pembelian atau download aplikasi dibayar. Google IO 2012 ini memiliki slide besar menggambarkan semua cara pengembang aplikasi mobile dapat dibayar:
Dalam artikel ini kita akan menunjukkan bagaimana tidak aman masing-masing aliran pembayaran pada Windows 8 dengan contoh-contoh nyata dari pengembangan game. Sangat penting untuk menyebutkan metode ditunjukkan dalam artikel ini dapat diterapkan untuk setiap aplikasi dan bukan hanya permainan.
# 1: Mengganggu di-app pembelian dengan memodifikasi IsoStore
Permainan Win8 Soulcraft adalah permainan teratas di Android dan subyektif salah satu contoh terbaik dari genre pada Windows 8. Ini adalah RPG dasar di mana Anda memainkan malaikat memerangi kekuatan jahat dalam 3D stylish. Anda punya karakter, yang punya peralatan dan Anda membayar dengan emas dengan emas untuk membeli peralatan yang lebih baik. Emas harus dibeli dengan uang sungguhan menggunakan in-app pembelian platform. Misalnya pada Android di sini adalah harga emas:Saya telah menghabiskan 20 $ + pada emas game untuk Soulcraft THD pada saya Google Nexus 7 sejauh ini. Jadi saya bertanya pada diri sendiri bagaimana data yang emas bahwa permainan ini akan disimpan pada Windows 8, dan apakah atau tidak kita bisa mengubahnya.
Cepat penyegaran dari artikel sebelumnya semua Windows 8 aplikasi disimpan pada HD lokal di:
C: \ Program Files \ WindowsAppsJadi misalnya semua majelis untuk Soulcraft pada Windows 8 akan disimpan di:
C: \ Program Files \ WindowsApps \ MobileBitsGmbH.SoulCraft_0.8.5.3_neutral__n3knxnwpdbgdc
Juga, semua file disimpan di IsoStore:
C: \ Users \ <username> \ AppData \ Local \ Paket \Jadi pada IsoStore mesin Soulcraft saya adalah di:
C: \ Users \ Justin \ AppData \ Local \ Paket \ MobileBitsGmbH.SoulCraft_n3knxnwpdbgdc \ LocalState
Ketika membuka file-file di Notepad kita dapat melihat beberapa file dienkripsi sementara yang lain tidak.
Jadi sekarang pertanyaannya menjadi, kita bisa mendekripsi AccountData.xml file, mengedit jumlah emas karakter kita memiliki dan hanya menjalankan permainan? Nah, ternyata jawabannya adalah "Ya".Biasanya file dienkripsi adalah berita buruk jika Anda mencoba mengutak-atik aplikasi. Tapi kita harus ingat ini semua berjalan pada mesin lokal. Kami memiliki algoritma yang digunakan untuk enkripsi, kita memiliki kunci hash dan kami memiliki data dienkripsi. Setelah kita memiliki semua dari mereka itu cukup sederhana untuk apa mendekripsi.
Menggunakan dotPeek / ILSpy / JustDecompile itu mungkin untuk melakukan reverse engineering sebagian besar kode sumber Soulcraft dan mencari tahu bagaimana AccountData.xml akan disimpan dan bagaimana mengubahnya. Mari kita asumsikan kita sudah melakukan itu dan kita tahu mana kelas dan majelis digunakan untuk mendekripsi, mengedit dan mengenkripsi file XML. Kita akan memulai dengan membuat aplikasi Win8 baru dan referensi DLL yang tepat dari permainan Soulcraft.
Selanjutnya, karena ini majelis membaca file dari IsoStore kita akan menyalin file game terenkripsi ke IsoStore app2 kita sendiri.
Sekarang kita sudah menggelar aplikasi baru dengan majelis yang tepat dan IsoStore penduduk dengan data Soulcraft itu. Langkah berikutnya adalah untuk melakukan reverse engineering majelis dan mencari tahu urutan panggilan yang benar untuk metode. Misalnya kode ini akan memuat AccountData.xml, mengedit jumlah emas dan simpan lagi.
menggunakan Delta.Utilities.Helpers, menggunakan Delta.Utilities.Xml; public disegel kelas parsial mainpage : Halaman { public mainpage () { ini InitializeComponent ();. ini Loaded + = MainPage_Loaded.; } kekosongan async swasta MainPage_Loaded ( object sender, RoutedEventArgs e) { var filePath = Jalur Combine (. DirectoryHelper GetBaseDirectory (),. "AccountData.xml" ); var accountDataXml = XmlNode loadfile (filePath).; . accountDataXml.Children.First () AddAttribute ( "Emas" , "1000000" ); accountDataXml.Save (filePath); } }Berikut adalah sebelum dan sesudah dari file XML:
Menyalin file kembali ke IsoStore Soulcraft dan mulai Soulcraft kita dapat melihat karakter tingkat pertama dengan 1.000.000 emas.
Pada titik ini sebagian dari Anda harus berpikir "jadi apa? itu permainan uang palsu ". Benar, tapi ini uang dalam game palsu akan bernilai lebih dari satu dolar ribu pada Android dan iOS. Tanpa lokasi penyimpanan yang aman untuk permainan negara, kita tidak dapat terkejut bahwa retak pihak ke-3 akan muncul untuk membuat konsumen dihindari dalam-app pembelian.
# 2: Cracking aplikasi percobaan untuk versi dibayar secara gratis
Salah satu aliran pendapatan atas untuk Windows 8 pengembang adalah dengan pengiriman aplikasi dibayar. Pada saat yang sama konsumen cenderung kehilangan menolak dan takut "kehilangan" uang pada aplikasi. Solusi untuk yang aplikasi Trial. Aplikasi dibayar dapat menawarkan versi gratis dengan fungsi terbatas atau secara terbatas waktu. Itu bekerja dengan baik kecuali konsumen berusaha untuk memanipulasi ini tentatif status-quo dengan retak aplikasi persidangan. Untuk menekankan dampak dari masalah ini kita dapat melihat ekosistem Windows Phone di mana 45% dari aplikasi dibayar menawarkan uji coba .Mari kita lihat Madness Meteor . Ini adalah asteroid arcade shooter game keren. Kegilaan meteor biaya 1,5 $ USD dan menawarkan percobaan gratis dengan fungsi terbatas. Hal ini juga terjadi menjadi open source sehingga Anda dapat pergi memeriksa yang keluar juga.
Ketika men-download aplikasi sebagai percobaan kita dapat melihat bahwa ia menawarkan pilihan untuk membeli permainan dan mengunci beberapa pilihan permainan. Perhatikan "Buy now" batu di bagian bawah kiri dan terkunci "Arcade" batu permainan di bagian kanan atas.
Pada bagian sebelumnya kita telah melihat ada masalah mendasar ketika menyimpan data permainan pada Windows 8. Menyimpan data dienkripsi secara lokal, bersama dengan algoritma dan algoritma kunci / hash adalah resep untuk insiden keamanan. Salah satu masalah dengan memungkinkan eksekusi offline aplikasi trial adalah bahwa mandat " sidang bendera "untuk disimpan secara lokal. Dan seperti yang kita lihat, jika disimpan secara lokal, kita dapat menemukannya, membacanya dan memodifikasinya.
Khususnya Lisensi untuk Windows 8 aplikasi disimpan dalam file berikut:
C: \ Windows \ ServiceProfiles \ LocalService \ AppData \ Local \ Microsoft \ WSLicense \ tokens.datKetika kita membuka file ini di Notepad kita dapat menemukan lisensi untuk Madness Meteor dan di mana ia mengatakan itu adalah pembelian sidang.
Juga, dalam file yang sama kita bisa melihat ada aplikasi lain yang diinstal. Seperti aplikasi gratis, aplikasi dibayar dan aplikasi terinstal. Di sini misalnya jika " Kendali instalasi "dari Bing.
Sebuah pendidikan WinForms app bernama WSService_crk load file ini ke dalam memori, menunjukkan XMLs Lisensi dan memodifikasi sebagai lisensi "Full sudah terpasang". Ada banyak hal yang terjadi di sini lain maka cukup membaca dan memodifikasi file. WSService_crk telah mendekripsi file, kembali mengenkripsi dan kemudian menyimpannya. Semua itu didokumentasikan dengan WSService_crkseperti itu didistribusikan dengan kode sumber penuh.
Ketika membuka WSService_crk pada mesin saya menunjukkan daftar berikut aplikasi menginstal.
WSService_crk kemudian dapat menunjukkan lisensi saat ini dan bahkan memodifikasinya dari Percobaan ke sebuah Lisensi sudah terpasang penuh.
Saat menjalankan Madness Meteor sekarang kita bisa melihat bahwa itu tidak lagi memiliki keterbatasan app sidang fungsi.
# 3: Menghapus in-app iklan dari permainan dengan mengedit file XAML
Cara lain pengembang menguangkan aplikasi mereka melalui dalam-app iklan. Pengembang sering mengambil jalur yang paling resistensi dan itu cukup mudah untuk menambahkan iklan ke aplikasi Anda. Jika aplikasi yang populer dan viewcounts yang racking itu bisa menjadi sangat menguntungkan. Akibatnya konsumen tidak perlu membayar untuk beberapa judul besar dan pengembang yang sukses dapat dibayar. Itu semua bekerja dengan cukup baik kecuali konsumen oportunistik memilih untuk menjaga aplikasi gratis tapi menonaktifkan iklan. Untuk menekankan pentingnya iklan aplikasi mobile mari kita menyebutkan bahwa beberapa perkiraan pihak ke-3 membuat lapangan di lebih 10B dalam pendapatan tahunan keseluruhan.Salah satu aplikasi yang sekarang (mengejutkan) iklan didukung pada Windows 8 adalah Minesweeper Microsoft.
Seperti yang kita lihat sebelumnya eksekusi dari semua 8 aplikasi Windows dapat terletak mudah. Minesweeper diinstal secara lokal pada:
C: \ Program Files \ WindowsApps \ Microsoft.MicrosoftMinesweeper_1.1.0.0_x86__8wekyb3d8bbweDalam folder yang kita dapat menemukan file MainPageAd.xaml bawah AdsModule \ Common \ \ View folder. Bersamaan dengan lainnya di-app iklan yang digunakan oleh Minesweeper.
Kita dapat membuat iklan ini menghilang dengan hanya menambahkan Visibilitas = "Collapsed" properti untuk kontrol pengguna root tersebut.
Setelah kami telah membuat perubahan kecil, ketika kita menjalankan aplikasi Minesweeper kita tidak akan dapat melihat iklan lagi.
Dengan hanya mengedit file XAML kita dapat menyembunyikan diri di-aplikasi iklan dari Windows 8 iklan.
# 4: Mengurangi biaya item dalam game dengan mengedit data permainan file
Kebanyakan permainan di luar sana yang terdiri dari dua bagian yang berbeda: mesin permainan dan data permainan file yang digunakan oleh mesin. Untuk lebih lanjut tentang dikotomi ini Anda dapat membaca artikel ini besar Battle for Wesnoth dari buku creative commons Arsitektur Aplikasi Open Source . Mari kita lihat contoh dunia nyata dalam bentuk permainan 8 jendela Dawn Ultraviolet .Permainan ini favorit saya semua waktu permainan iPad dan merupakan penembak ruang dingin 2D. Seperti pemain game lainnya start-off dengan sejumlah mata uang dalam game dan bisa membeli barang-barang untuk meningkatkan pesawat ruang angkasa mereka.Jika kita kembali ke dikotomi yang pernah kita dengar sebelumnya maka kita dapat melihat bagaimana hal itu berlaku untuk Dawn Ultraviolet. Ada mesin permainan yang tahu tentang "menyimpan item" dan ada akan menjadi daftar tempat dari apa yang mereka. Jadi satu hal yang kita bisa lakukan adalah mengambil keuntungan dari Windows 8 on-disk penyimpanan dan memodifikasi file data permainan. Karena sebelumnya kita telah melihat executable untuk windows 8 aplikasi dapat ditemukan dan dimodifikasi. Secara khusus, Dawn Ultraviolet ini dapat ditemukan di sini:
C: \ Program Files \ WindowsApps \ 8DF9EE77.UltravioletDawn_1.0.0.37_x86__dd4ev9dvfndxmKita bisa membuka " res_store_items.txt "file dan mengedit harga item dalam game. Dalam contoh kita, kita akan mengedit semua senjata untuk bebas.
Ketika kita menjalankan Dawn Ultraviolet lagi kita bisa melihat harga barang di toko sekarang 0.
Kami baru saja menunjukkan bahwa menggunakan alat sederhana kita bisa mengedit file permainan untuk kompromi pengalaman Windows 8 game.
# 5: Mengganggu In-app pembelian item dengan menyuntikkan skrip ke dalam proses IE10
Meskipun kita sudah menunjukkan bahwa di-app pembelian yang comprisable saya ingin bagi kita untuk melihat contoh bahwa dengan Windows 8 HTML & aplikasi JS. Contoh Sampai sekarang kita lihat dari C # dan C + + apps, jadi mari kita lihat bahwa dengan aplikasi WinJS. Mari kita lihat di WInJS besar-besaran populer dan sukses Windows 8 pertandingan Potong Rope tersebut . Permainan mengikuti model freemium mana tingkat pertama adalah tingkat bebas dan tambahan biaya $ 4,99 untuk membuka.Seperti yang kita tahu sekarang executables untuk Windows 8 game dapat ditemukan pada disk lokal. Khusus Potong Rope executeables dapat ditemukan di:
C: \ Program Files \ WindowsApps \ ZeptoLabUKLimited.CutTheRope_1.1.0.9_neutral__sq9zxnwrk84pjJika kita membuka default.js file dalam js folder kita dapat melihat kode berikut yang jelas mengatur logika pembelian di-app. Kita bisa melihat ada IS_PAID_FULL_VERSION dan SIMULATE_PURCHASES variabel diatur ke false. Orang bertanya-tanya apa yang terjadi jika kita mengubah nilai-nilai yang benar.
Kami tidak benar-benar harus memahami secara spesifik, tetapi kita bisa melihat ada sebuah jika-lain kondisi yang menentukan di-app pembelian. Kita tidak bisa langsung mengubah file Javascript yang akan merusak paket Javascript dan Windows 8 akan menolak untuk membuka aplikasi. Jadi bukannya mengubah file pada disk lokal, kita dapat menyuntikkan script JS saat runtime dalam IE10 proses.
Visual Studio 2012 memiliki mekanisme built-in debugging untuk setiap aplikasi menginstal Windows 8. Bahkan jika itu tidak ada kita masih bisa dengan mudah menyuntikkan skrip untuk IE10, tapi karena di sana kita dapat menggunakan alat akrab. Mari kita gunakan VS2012 untuk " Debug Paket App Installed ". (Berikut adalah docs Jacascript , C # docs dan C + + docs untuk mereka yang tidak terbiasa dengan fitur)
Selanjutnya kita akan memilih untuk Debug Cut The Rope. Pastikan untuk memeriksa "Berhenti pada awalnya Pernyataan" kotak centang karena kita akan menggunakannya untuk menavigasi ke default.js .
Setelah kita klik start kita dapat melihat kita debug Potong Rope app. Ini adalah sedikit penting, kami sekarang punya kekuatan penuh VS2012 debugging runtime Javascript di app store Win8. Ini breakpoint pertama akan selalu file yang sama pada baris yang sama: baris pertama dari base.js file dari kerangka WinJS.
Menggunakan kombinasi pintar "Langkah di atas" dan menggunakan Solution Explorer kita dapat mengatur breakpoint berikut setelah pengaturan variabel yang telah kita sebelumnya terlihat.
Melangkahi perlambatan ini kita kemudian dapat melihat nilai-nilai berikut di jendela Locals kita.
Dan sekarang menggunakan Jendela Segera kita dapat mengeksekusi javascript kita ingin. Untuk tujuan demo ini kita akan menetapkan SIMULATE_PURCHASES = true. Kita bisa menyelamatkan beberapa waktu dengan menetapkan IS_PAID_FULL_VERSION = true, tapi aku ingin bagi kita untuk melihat perilaku runtime.
Sekarang ketika kita klik tombol pembelian kita dapat melihat Windows 8 di-app pembelian simulator. Kami akan memberitahu bahwa pembelian itu berhasil.
Dan sekarang kita dapat melihat semua tingkat permainan akan dibuka.
Kami baru saja menunjukkan bagaimana untuk menyuntikkan javascript acak ke dalam toko Win8 membeli WinJS IE10 app dan kami telah terpengaruh dalam aplikasi persediaan item pembelian.
Ringkasan: Apa yang telah kita lihat?
Kami mampu menunjukkan bahwa mayoritas game dan pengembang aplikasi cara akan membuat uang yang tidak aman secara default pada Windows 8. Kami telah menunjukkan ini untuk C # & XAML aplikasi ( Minesweeper ), kami telah menunjukkan ini untuk C # aplikasi + Direct3D ( Soulcraft ), kami telah menunjukkan ini untuk C + + & aplikasi Direct3D ( Dawn Ultraviolet ), kami telah menunjukkan ini untuk HTML & WinJS aplikasi ( Potong Rope ) dan kami telah menunjukkan ini untuk setiap aplikasi menggunakan Trial ( Madness Meteor ).
Mari kita ulangi apa yang telah kita lihat sejauh ini, apa akar penyebab masalah dan apa yang bisa dilakukan di tingkat kerangka kerja untuk mengurangi masalah ini:
- Dalam-app Penyimpanan item pembelian: In-app pembelian cepat menjadi aliran # 1 pendapatan untuk pengembang game. Kami telah melihat kita bisa mengelabui game penyimpanan lokal untuk mengakui barang habis pakai yang belum dibeli. Masalah sebenarnya di sini adalah bahwa Windows 8 apps tidak memiliki lokasi yang benar-benar aman yang dapat diakses oleh pengguna dan dapat diamankan dalam skenario offline. Salah satu perbaikan mungkin di sini akan untuk Microsoft untuk menawarkan penyimpanan seperti untuk semua aplikasi. Biarkan pengembang memiliki penyimpanan terisolasi aman dienkripsi secara default. Juga, kemungkinan lain akan menyalakan kebingungan kode dan minification secara default untuk menghindari reverse engineering diperlukan untuk mengeksploitasi ini.
- Percobaan aplikasi : aplikasi Percobaan kemungkinan akan diadopsi oleh sekitar 50% dari Windows 8 game. Kami telah melihat bagaimana lisensi Pengadilan disimpan dalam tokens.dat file dan betapa mudahnya untuk mengeditnya. Masalah sebenarnya di sini adalah bahwa aplikasi percobaan di-download ke komputer klien dengan logika dibuka penuh tertanam di dalamnya. Salah satu cara untuk memperbaiki masalah ini akan memiliki pengembang membangun paket aplikasi dua (satu fungsi paket sidang terbatas dan satu paket fungsionalitas penuh) dan memiliki yang dijamin oleh sistem pembelian Win8 toko.
- Dalam aplikasi-iklan: iklan Mobile aplikasi adalah industri utama dan sumber pendapatan bagi pengembang. Kami telah menunjukkan bagaimana hanya dengan mengedit file XAML pada disk kita bisa mematikan iklan dalam permainan. Seharusnya tidak mungkin untuk mengutak-atik XAML / HTML file dan kemudian telah mereka dimuat ke memori. Salah satu perbaikan Microsoft dapat melakukan di sini adalah memiliki lebih baik on-disk gangguan cek.
- Permainan file data dan item dalam game: Kami telah menunjukkan permainan file data dapat diedit dan mereka kemudian akan dimasukkan ke aplikasi. Seharusnya tidak mungkin untuk memodifikasi file permainan dan kemudian memilikinya dimuat ke memori. Microsoft bisa mengikuti rekomendasi tersebut tothe dari item # 3 untuk membantu mengurangi masalah ini.
- Penyuntikan Javascript sewenang-wenang mempengaruhi di-app pembelian : Kami telah melihat kita dapat menyuntikkan kode javascript untuk menjalankan dalam proses IE10 untuk app store Win8 WinJS. Itu tidak harus mungkin. Salah satu perbaikan yang mungkin akan untuk tim IE10 untuk mengunci proses IE10 untuk script ditandatangani hanya bila tidak pada mesin pengembangan.
Apa yang belum kita mampu lakukan?
Apa yang telah diperbaiki sejak awal Win8 beta yang mengedit file DLL atau HTML / JS pada disk tidak mungkin lagi. Ketika itu mencoba sistem integritas kode tendangan-in memverifikasi hash file dan mencegah eksekusi aplikasi. Salah satu yang tersisa untuk bertanya-tanya tentang seberapa aman mereka hash AppxBlockMap.xml sebenarnya dan jika mereka dapat dibalik insinyur yang akan dihasilkan pada sisi client.Tulus penyangkalan
- Permainan : Permainan muncul dalam artikel ini mengagumkan dan Anda harus membeli mereka dan memberi mereka uang. Aku sudah menjadi donatur yang murah hati dari permainan masing-masing dan harus jadi Anda! pergi men-download mereka dan memberi mereka uang. Agar penampilan dalam artikel: Soulcraft , Meteor Madness , Minesweeper , Dawn Ultraviolet dan Cut The Rope .
- Pengembang game : pengembang game ini untuk game tersebut adalah profesional. Untuk sebagian besar Anda tidak dapat bekerja di sekitar platform rusak. Tidak ada yang "jelas" tentang salah satu masalah.
- Format Pasal : Ini adalah artikel pendidikan yang ditulis dengan harapan baik pengembang dan Microsoft bisa mendapatkan keuntungan dari pertukaran terbuka pengetahuan.
- Majikan saya : Saya memiliki majikan dan mereka tidak ada hubungannya dengan artikel ini. Kedua penelitian dan authoring artikel ini dilakukan pada waktu luang saya.
Feedback
Pertanyaan? Sanggahan? Diskusi Pemikiran? Suara dari dalam komentar di bawah ini.Ingatlah untuk membaca artikel "sebelumnya Reverse Engineering dan Memodifikasi Windows 8 apps "jika ada sesuatu yang tidak jelas karena menguraikan banyak teknik yang digunakan di sini.
- Justin Malaikat
Anda boleh memecahkan video sebagai "Potong tali", saya tidak boleh melakukannya.(Bad Saya tahu "Microsoft Visual 2012")
BalasHapus