吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2153|回复: 1
收起左侧

[会员申请] 申请会员ID:miqt

[复制链接]
吾爱游客  发表于 2022-8-16 16:25


1、申 请 I D:miqt
2、个人邮箱:miqtdev@163.com
3、原创技术文章:

分享两个文章:

1. xposed 绕过app加壳保护的方式
2. Android部分机型,静态权限设置漏洞,强制获取手机权限

一、 xposed 绕过app加壳保护的方式


众所周知,在进行xposed逆向时,必须要先跨过对方app加壳这一关,下面我就分享一下我的一个过壳方式。



xposed 绕过 360 乐固等加固壳方案。


通过hook Android 启动App attachBaseContext 方法拿到classloader 和程序上下文。



XposedHelpers.findAndHookMethod("com.stub.StubApp",
                loadPackageParam.classLoader,
                "attachBaseContext",
                Context.class,
                new XC_MethodHook() {
                    @Override
                    protected void afterHookedMethod(MethodHookParam param) throws Throwable {
                        super.afterHookedMethod(param);
                        //获取到Context对象,通过这个对象来获取classloader
                        Context context = (Context) param.args[0];
                        //获取classloader,之后hook加固后的就使用这个classloader
                        ClassLoader classLoader = context.getClassLoader();
                        //已经绕过360加固取得classloader
                    }
                });

二、Android部分机型,权限设置漏洞





发现小米 6 安全管家,即使我关闭了某些权限,但我一打开应用后,应用自己开启了权限,遂,反编译之,得以下反射强行设置权限代码。。


理论上手动开启权限也是使用以下的代码进行,因此只有系统应用可以使用。(但不排除某些厂商定制rom的过程中,漏掉了关键的验证,调用只有有可能是可行的)






AppOpsManager appOpsManager = mContext.getSystemService(AppOpsManager.class);
HashMap<String, Integer> map = (HashMap<String, Integer>) ClazzUtils.getObjectFieldObject(appOpsManager,"sOpStrToOp");
Method method = appOpsManager.getClass().getMethod("setMode",int.class,int.class,String.class,int.class);
int code = map.get(AppOpsManager.OPSTR_GET_USAGE_STATS);
int uid = Binder.getCallingUid();
String pkn = mContext.getPackageName();
int mode = AppOpsManager.MODE_ALLOWED;
method.invoke(appOpsManager,code,uid,pkn,mode);






再附上一个反编译小米安全管家设置权限的代码:




Object mAppOpsManager = context.getSystemService("appops");
ClazzUtils.invokeObjectMethod(mAppOpsManager, "setUserRestriction", new Class[]{Integer.TYPE, Boolean.TYPE, IBinder.class}, new Object[]{Integer.valueOf(24), Boolean.valueOf(true), new Binder()});
ClazzUtils.invokeObjectMethod(mAppOpsManager, "setUserRestriction", new Class[]{Integer.TYPE, Boolean.TYPE, IBinder.class}, new Object[]{Integer.valueOf(45), Boolean.valueOf(true), new Binder()});


发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Hmily 发表于 2022-8-16 17:27
抱歉,未能达到申请要求,申请不通过,可以关注论坛官方微信(吾爱破解论坛),等待开放注册通知。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 05:49

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表