Ⅰ android 應用有哪些安全漏洞
首先,題主詢問「Android 應用」的安全漏洞,說到 Android 應用的安全漏洞,如果拋開系統設計問題,其主要原因是開發過程當中疏漏引起的。但其實也並不能把這些責任都怪在程序猿頭上。所以本答案也將會對 Android 系統設計以及生態環境做一些闡述。(如果想了解 Android 惡意軟體的情況,那就需要另開題目了。) 1. 應用反編譯 漏洞:APK 包非常容易被反編譯成可讀文件,稍加修改就能重新打包成新的 APK。 利用:軟體破解,內購破解,軟體邏輯修改,插入惡意代碼,替換廣告商 ID。 建議:使用 ProGuard 等工具混淆代碼,重要邏輯用 NDK 實現。 例子:反編譯重打包 FlappyBird,把廣告商 ID 換了,游戲改加插一段惡意代碼等等。 2. 數據的存儲與傳輸 漏洞:外部存儲(SD 卡)上的文件沒有許可權管理,所有應用都可讀可寫。開發者把敏感信息明文存在 SD 卡上,或者動態載入的 payload 放在 SD 卡上。 利用:竊取敏感信息,篡改配置文件,修改 payload 邏輯並重打包。 建議:不要把敏感信息放在外部存儲上面;在動態載入外部資源的時候驗證文件完整性。 漏洞:使用全局可讀寫(MODE_WORLD_READABLE,MODE_WORLD_WRITEABLE)的內部存儲方式,或明文存儲敏感信息(用戶賬號密碼等)。 利用:全局讀寫敏感信息,或 root 後讀取明文信息。 建議:不適用全局可讀寫的內部存儲方式,不明文存儲用戶賬號密碼。 3. 密碼泄露 漏洞:密碼明文存儲,傳輸。 利用: root 後可讀寫內部存儲。 SD 卡全局可讀寫。 公共 WiFi 抓包獲取賬號密碼。 建議:實用成熟的加密方案。不要把密碼明文存儲在 SD 卡上。 4. 組件暴露 (Activity, Service, Broadcast Receiver, Content Provider) 漏洞: 組件在被調用時未做驗證。 在調用其他組件時未做驗證。 利用: 調用暴露的組件,達到某種效果,獲取某些信息,構造某些數據。(比如:調用暴露的組件發簡訊、微博等)。 監聽暴露組件,讀取數據。 建議:驗證輸入信息、驗證組件調用等。android:exported 設置為 false。使用 android:protectionLevel="signature" 驗證調用來源。 5. WebView 漏洞: 惡意 App 可以注入 JavaScript 代碼進入 WebView 中的網頁,網頁未作驗證。 惡意網頁可以執行 JavaScript 反過來調用 App 中注冊過的方法,或者使用資源。 利用: 惡意程序嵌入 Web App,然後竊取用戶信息。 惡意網頁遠程調用 App 代碼。更有甚者,通過 Java Reflection 調用 Runtime 執行任意代碼。 建議:不使用 WebView 中的 setJavaScriptEnabled(true),或者使用時對輸入進行驗證。 6. 其他漏洞 ROOT 後的手機可以修改 App 的內購,或者安裝外掛 App 等。 Logcat 泄露用戶敏感信息。 惡意的廣告包。 利用 next Intent。 7. 總結 Android 應用的漏洞大部分都是因為開發人員沒有對輸入信息做驗證造成的,另外因為 Intent 這種特殊的機制,需要過濾外部的各種惡意行為。再加上 Android 應用市場混亂,開發人員水平參差不齊。所以現在 Android 應用的漏洞,惡意軟體,釣魚等還在不斷增多。再加上 root 對於 App 沙箱的破壞,Android 升級的限制。國內的 Android 環境一片混亂,慘不忍睹。所以,如果想要保證你的應用沒有安全漏洞,就要記住:永遠不要相信外面的世界。
Ⅱ 想了解下游戲破解是個什麼原理,比如國外S組、T組,他們是如何破解游戲的
破解就是通過修改程序本身的代碼,進行反編譯,把游戲的收費程序跳轉或刪除目前所用到的電腦端的破解工具有:手機頑童模擬器。
但是這類缺點比較多,一是會收到10086返回的消息;二是部分游戲商會製作假象,讓你找不到這個埠號,或者製作假的埠號,讓你改不了真實的簡訊埠號碼,造成成功扣費;三是對聯網收費的游戲破解不了。
破解游戲分為兩種方法:
對於簡訊收費的游戲,部分網友通過修改簡訊的發送埠的方法來破解。網友們把這個埠號碼改成10086開頭的,直接發送到移動去。大家都知道向10086發送簡訊是免費的,這樣簡訊發出去了,欺騙了程序,也就可以免費玩游戲了。
部分對編程比較了解的高手們,通過修改程序本身的代碼,進行反編譯,把游戲的收費程序跳轉或刪除,就不需要發送簡訊出去或者聯網付費激活了。