阿里CTF apk_3題解:
1. APK作了加殼,但並沒做其他處理,直接ida調試,dump出dex文件
2. 反編譯dex文件,發現存在一個WebviewActivity,實現了與js交互的接口
3. 找到其中的接口實現,有一個showToast方法,即題目要求被調用的方法
解法一:
直接查看showToast方法中的Toast內容,這隻針對解題所用。
解法二:
根據js與java交互原理,html中調用showToast方法需要知道java類被映射後的別名。找到webViewActivity中的onCreate方法,發現名字是亂碼"BQ1$*[w6G_",需要ListViewAutoScrollHelpern.decrypt_native方法解密。一種方法是,分析so算法或者通過logcat等方式得別名:SmokeyBear,另一種簡單的做法是:直接在調用addJavascriptInterface之前添加,const-string v4, "ThomasKing"代碼,將別名命名爲:ThomasKing。我這裏採用第二種方法。
知道了類名,就可以構建html了:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script>
</script>
</head>
<body>
<a onClick="window.ThomasKing.showToast()">showToast</a><br/>
</body>
</html>
push到手機測試,Toast出“祥龍!”。