来,让我们任性登录,替换掉它的登录验证
每次登录,注册输入账号密码是多么繁琐的事情,烦!就要破解它,如果能把app里面的登录验证函数换成我们的“无敌登录”那是多么吊炸天的事。如果可以“QQ,微信,支付宝(咳咳想多了)”,不过就这样想想是多么激动的事情。
无敌登录的意思是:把人家的验证程序换成“自己的无敌登录”==“不需要验证登录”。
当然这个过程也不是一帆风顺的,要不你真的可以随意破解app了,首先需要知道我们要攻击的app中登录验证的函数名,以及所带的参数,例如:
好!现在我们要开始了~~
===================================================================================
【制作一个将要遭受攻击的登录app】:
1.布局函数做一个登录界面:
大家刚开始做做的登录界面可能比较古板,下面的EditText是经过调试边框+颜色+圆角之类,不用纠结简单用即可
【主代码】然后编写我们的界面登录管理验证:
public class MainActivity extends Activity { EditText username; EditText passwd; Button logbut; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); username=(EditText)super.findViewById(R.id.username); passwd=(EditText)super.findViewById(R.id.passwd); logbut=(Button)super.findViewById(R.id.logbut); logbut.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub String a=new String(username.getText().toString()); String b=new String(passwd.getText().toString()); if(checklogin(a, b)){ Toast.makeText(getApplicationContext(), "登录成功", Toast.LENGTH_SHORT).show(); } } }); } public boolean checklogin(String username,String passwd){ if(username.equals("张依依")&&passwd.equals("123456")){ return true; } return false; }
验证函数就是我们这个:
public boolean checklogin(String username,String passwd){ if(username.equals("张依依")&&passwd.equals("123456")){ return true; } return false; }
我们运行一下看输入不是我们规定的账号密码会怎么样?
==================================================================================
针对 Hooking Android App 的 Hook 关键点实现 Hook 模块
1). 实现 IXposedHookLoadPackage 接口
2). 确定要 Hook 的 Android App 的包名
3). 判断要 Hook 的包名
4). 确定要 Hook 的 Android App 的方法
5). 具体实现 Android App 的函数 Hook,调用 XposedHelpers.findAndHookMethod(“包名+类名”,
lpparam.classLoader, “要 hook 的函数名称”, 第一个参数类型, 第二个参数类型….. , new
XC_MethodHook() {
protectedvoid beforeHookedMethod(MethodHookParam param) {
//函数执行之前要做的操作
}
protectedvoid afterHookedMethod(MethodHookParam param) {
//函数执行之后要做的操作
}
});
代码如下:
public class Attacker implements IXposedHookLoadPackage{ @Override public void handleLoadPackage(LoadPackageParam lpparam) throws Throwable { //查找包名,被Hook的函数所在的包 if(!lpparam.packageName.equals("com.example.xposetest")) return; XposedBridge.log("loaded App:"+lpparam.packageName); //开始对要Hook的函数进行操作 XposedHelpers.findAndHookMethod("com.example.xposetest.LogActivity", lpparam.classLoader, "checklogin",String.class,String.class, new XC_MethodHook(){ protected void beforeHookedMethod(MethodHookParam param) throws Throwable { // Hook函数之前执行的代码 XposedBridge.log("开始劫持了~"); //传入参数1 XposedBridge.log("beforeHookedMethod userName:" + param.args[0]); //传入参数2 XposedBridge.log("beforeHookedMethod sn:" + param.args[1]); //函数返回值 XposedBridge.log("beforeHookedMethod result:" + param.getResult()); } @Override protected void afterHookedMethod(MethodHookParam param) throws Throwable { // Hook函数之后执行的代码 //通过对checkSN函数的分析发现,只要修改函数的返回值即可实现注册的破解 param.setResult(true); XposedBridge.log("劫持结束了~"); //传入参数1 XposedBridge.log("afterHookedMethod userName:" + param.args[0]); //传入参数2 XposedBridge.log("afterHookedMethod sn:" + param.args[1]); //函数返回值 XposedBridge.log("afterHookedMethod result:" + param.getResult()); } }); } }
之后我们开始测试:
首选手机要root
在 Xposed 框架中安装刚才已经编写好的 Hook 模块 XposedDemo 如上图所示,然后重启手机或者模拟器,
我们编写的 XposedDemo 模块在手机或者模拟器重启以后就会生效的。
主要步骤:
1.点击框架
2.点击安装,安装后会重启
注意某些机型装了xpose框架会不停重启,这个ee也遇到过,每隔几分钟重启,建议做完这个实验就卸吧,由于ee是真机强迫症受害者,建议大家用虚拟机,诸多不便,没有砖机风险大。
3.在模块选择我们的apk,登录劫持apk嘿嘿嘿
4.记住装好我们需要劫持的apk,我的要劫持的apk叫XposedTest.apk
然后选择完模块又需要重启:不要崩溃,小编就是在不断重启的去实验坚持下来的。
然后我们在我们登录界面输入随便的密码和用户名,原来我们判定用户名为:zyy 密码:123456 才会验证通过,现在都可以通过了。劫持成功,如图示:
然后我们不仅要用户登录成功,还要获取到用户输入的用户名和密码,因为,我知道你们想到什么了,对就是钓鱼app,我们点击日志,导出日志,或者输出看下:
至此就完全结束了。大家可以想像如何劫持EditText的getText()方法(用户所有输入获得的方法),如果这个方法可以被替换,那么我们所有app都不需要知道其验证方法就可以偷偷盗取其用户名和密码了,那么到底会不会那么简单呢?这种类似键盘钩子原理的是否能够实现?我也是很好奇。让我们拭目以待
方便交流学习:
有任何问题
请发邮箱:429899791@qq.com
ee期待大家一起交流
相关推荐
Xpose框架是一个强大的Android系统修改工具,它允许开发者在不修改APK的情况下影响应用程序的行为,提供了对系统级功能的深入访问。Xposed框架的核心在于它的模块系统,这些模块可以注入到任何应用程序中,实现诸如...
总的来说,【xpose适配模拟器版本(1).rar】是一个专为安卓模拟器优化的Xpose框架版本,旨在帮助开发者和高级用户在模拟环境中更方便地使用Xpose的强大功能。正确安装和配置后,用户可以享受到更多定制化的安卓体验。...
xpose安卓手机框架
通过逍遥模拟器安装xpose框架(有脚本可以一件安装),实现hook功能
综上所述,Xpose是一款强大的辅助工具,为NONMEM的使用提供了便利,尤其对于那些希望深入了解和应用非线性药代动力学/药效学模型的科研人员来说,Xpose无疑是一个值得信赖的选择。通过持续的社区支持和更新,我们...
NULL 博文链接:https://429899791.iteye.com/blog/2347353
原理 原理就是去hook libart.so里面的art::DexFile::OpenMemory,然后再把内存中的dex写到文件中去。就是这么简单,最主要的就是hook的...这里要感谢ele7enxxh提供的Android-Inline-Hook来让我可以对native层的hook。
作为摄影和摄影爱好者,xpose可以用同样的心态来满足用户的需求。 xpose是新闻摄影的平台,可将创造力融合在一起。 输入xpose后; 该应用程序将允许用户注册,登录,创建个人资料图片(仅.jpg和jpeg),更改个人...
Xposed是一个基于Android系统级别的框架,它允许用户通过安装各种模块来改变系统的运行行为,无需修改APK文件。开发者可以通过编写Xposed模块,对Android系统的特定部分进行Hook,实现自定义功能,如系统级别的权限...
Xposed框架是一款在Android系统上广泛使用的开源框架,它允许用户通过安装各种模块来修改系统的功能,无需对系统进行根权限操作。XposedAPI54指的是该框架在Android API级别54(即Android 5.1.1)时对应的接口库,...
现在,我们来看一个示例,将 mydata 数据集按照性别分割成 female 和 male 两个数据集。 ```stata * 将 mydata 拆分成女生数据集 female use mydata, clear keep if gender==0 save female, replace * 将 mydata ...
一个基于Magisk&Riru的Module,可以助你用超低成本开发各种Hook插件,无须Xposed 此Module仅供大家学习研究,请勿用于商业用途。利用此Module进行非法行为造成的一切后果自负! 博客详情: 背景: 前段时间在...
用于系统框架。搞好了可以改颜色什么的。。。还可以吧我还在用
JustTrustMe是Github上的一个开源工程,他是一个Xposed模块,用来禁止SSL证书验证。以下是其简介。 JustTrustMe:An xposed module that disables SSL certificate checking. This is useful for auditing an ...
Xposed是一款强大的Android系统框架,它允许用户通过安装各种模块来改变系统的功能或者应用的行为,无需修改APK,因此在Android开发者和爱好者中备受青睐。本压缩包“Xposed.zip”提供了一个基础的Xposed监听模型,...
首先,让我们来看看自动抢红包功能。当有红包出现时,XPosed框架会自动触发相关的操作,例如模拟键盘和鼠标输入,以及调用微信或支付宝的相关接口。这样,我们就可以在不干扰用户的情况下自动抢到红包。 其次,防止...
本文将详细介绍这一版本的Xposed框架及其包含的组件,以及如何利用它来提升安卓设备的定制性和功能。 Xposed框架的核心理念在于提供一个平台,允许用户在不修改APK的情况下影响程序运行(主要是系统级应用),通过...
添加xpose 的jar包 1.在app 目录下新建一个文件夹如lib 2.然后将jar包添加进去,右键ADD as library 3.在build 的Build type 下可以将其设置为 ComplieOnly compileOnly fileTree(include: ['*.jar'], dir: 'lib')...
值得注意的是,这里的实现并不依赖于XPOSE框架,XPOSE通常用于Android系统的修改和调试,但使用它可能涉及违反微信的使用协议。 实现这个功能的关键在于模拟用户操作。Java代码需要模拟点击、滑动等手势,以及处理...
要让手机上的xposed框架知道,我们编写的xposed模块中,哪一个方法是实现hook操作的,也就是hook类的入口。 那么对应这四点,我们要做的是如下四步骤: 修改AndroidManifest.xml XposedBridgeApi-xx.jar与build....