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 劫持用户名密码实践相关推荐
- python 抓网卡数据包 解析wifi_某高校校园网WIFI嗅探用户名密码实践
***********************本文提及的方法仅供安全学习用途,禁止非法利用************************** 0x00 写在前面 某高校校区的校园网WIFI的采用H3 ...
- Xposed获取微信用户名密码
请关注我的微信公众号 参考文章:Xposed恶意插件 Android 安全专项-Xposed 劫持用户名密码实践 0x00 我在之前的文章中演示了一下如何通过Xposed获取用户名密码,那篇文章的例子 ...
- android登录实现回显用户名和密码
基于android的登录例子 程序的流程 1.从布局中取得用户名和密码 2.判断是否为空,为空不进行处理,不为空默认登录成功 3.登录成功后,把用户信息储存在私有目录中 4.用户在次使用app使,去读 ...
- android在哪存储当前用户名和密码,Android实战教程第七篇之如何在内存中存储用户名和密码...
本文实例为大家分享了Android内存中存储用户名和密码的方法,供大家参考,具体内容如下 首先是配置文件: xmlns:tools="http://schemas.android.com/t ...
- Android数据库加密与破解(Xposed hook SQLCipher 密码)
Xposed hook SQLCipher 密码 什么是SQLCipher HOOK加密的原理 介绍 原理 开始使用 下载安装模块 运行ADB命令 启动待解密的APP 在Windows下解密 下载wi ...
- android默认smb用户名和密码错误,win7系统下连接SMB提示用户名密码错误的解决方法...
有很多电视都可以通过SMB协议和电脑连接,但是有不少win7系统用户在连接SMB的时候,按要求输入用户名和密码之后却提示用户名密码错误,该怎么办呢,本文就给大家讲解一下win7系统下连接SMB提示用户 ...
- url+用户名+密码_URI和URL详解
1.URI---用于标示一个抽象或者物理资源 URI定义 URI,通一资源标志符(Universal Resource Identifier, URI),就是由某个协议方案表示的资源的定位标识符,协议 ...
- Git credential helper 让你的 https不再需要输入用户名密码
前言 在使用Git进行开发的时候,我们可以使用ssh url或者http url来进行源码的clone/push/pull,二者的区别是,使用ssh url需要在本地配置ssh key,这也就意味着你 ...
- linux php运行用户名和密码,Linux实例(一)使用用户名密码验证连接Linux
本篇文章给大家带来的内容是关于使用用户名密码验证连接Linux,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 如果您使用的是 SSH 密钥对,请参考 使用SSH密钥对连接Linux实 ...
最新文章
- python如何在手机上下载模块-Python 下载文件的 11 种方式
- mysql DDL语句
- js选择日期即时把两个日期相差天数显示出来?
- Mysql5.7.26解压版(免安装版)简单快速配置步骤,5分钟搞定(win10-64位系统)
- [Java]jvm参数选项中文文档
- 家用计算机选购,家用电脑该如何选择?什么配置比较好?看完这篇文章你就懂了...
- Python SVM手写数字识别
- vs2003转为vs2010的问题
- IT行业英语自我介绍必备
- 单片机c语言计算器,基于STC89C52单片机的计算器的设计.doc
- 通俗易懂的哈希算法讲解
- 一些有趣但少有人知的 Python 特性
- 石子合并问题java_动态规划求石子合并问题
- 模电学习笔记(七)——差分放大器电路(减法器)
- python简历项目经验在哪里找_Linux运维工程师简历项目经验
- [线段树分治][DP] LOJ #534. 「LibreOJ Round #6」花团
- 电阻接地再串联一个电容,电阻和电容并联
- 统计学(二)之一般线性模型(一)
- 基于PCL 1.11 的屏幕选点
- Centos7安装远程桌面