Xposed Hook & Anti-hook

一点简单记录。

xposed原理包括将hook的method转为Native。因此可检测如下:

for (ApplicationInfo applicationInfo : applicationInfoList) {
    if (applicationInfo.processName.equals("com.example.hookdetection")) {
        Set classes = new HashSet();
        DexFile dex;
        try {
            dex = new DexFile(applicationInfo.sourceDir);
            Enumeration entries = dex.entries();
            while(entries.hasMoreElements()) {
                String entry = entries.nextElement();
                classes.add(entry);
            }
            dex.close();
        }
        catch (IOException e) {
            Log.e("HookDetection", e.toString());
        }
        for(String className : classes) {
            if(className.startsWith("com.example.hookdetection")) {
                try {
                    Class clazz = HookDetection.class.forName(className);
                    for(Method method : clazz.getDeclaredMethods()) {
                        if(Modifier.isNative(method.getModifiers())){
                            Log.wtf("HookDetection", "Native function found (could be hooked by Substrate or Xposed): " + clazz.getCanonicalName() + "->" + method.getName());
                        }
                    }
                }
                catch(ClassNotFoundException e) {
                    Log.wtf("HookDetection", e.toString());
                }
            }
        }
    }
}

所有xposed插件中,Hook isNative. 由于Hook在先,调用在后,可绕过。

原文地址:https://www.cnblogs.com/gm-201705/p/9863912.html

时间: 2024-10-31 04:44:28

Xposed Hook & Anti-hook的相关文章

Android Hook 借助Xposed

主要就是使用到了Xposed中的两个比较重要的方法,handleLoadPackage获取包加载时候的回调并拿到其对应的classLoader:findAndHookMethod对指定类的方法进行Hook. /** * 包加载时候的回调 */public void handleLoadPackage(final LoadPackageParam lpparam)/** * Xposed提供的Hook方法 * * @param className 待Hook的Class * @param clas

Android Hook神器:XPosed入门与登陆劫持演示

前段时间写了一篇关于Cydia Substrate广告注入的文章,大家都直呼过瘾.但是,真正了解这一方面的同学应该知道,其实还有一个比Cydia Substrate更出名的工具:XPosed. 不是因为Xposed比Cydia Substrate做的多好,而是Xposed是彻底开源的.今天,就向大家简单地介绍一下Xposed,并书写一个简单的登陆劫持Demo,让大家快速地入门学习Xposed. Xposed Xposed框架是一款可以在不修改APK的情况下影响程序运行(修改系统)的框架服务,通过

阿里系产品Xposed Hook检测

p.MsoNormal { margin-top: 0.0000pt; margin-right: 0.0000pt; margin-bottom: 0.0000pt; margin-left: 0.0000pt; text-indent: 0.0000pt; padding: 0pt 0pt 0pt 0pt; text-align: justify; font-family: Calibri; color: rgb(0,0,0); letter-spacing: 0.0000pt; font-

Android逆向分析之Xposed的hook技术

Android逆向工程里常用到的工具除了的dex2jar,jd-gui,  Apktool之外还有一个Xposed. 这个工具是一个在不修改APK的情况下,影响其运行过程的服务框架.可以根据自己的需求编写模块,让模块控制目标应用的运行. 因为本人也是新手,对于Xposed用法还有很多的不熟悉,所以只对其hook技术进行简单的介绍,并让hook技术应用到以后的逆向分析工程中. 至于什么是hook,不了解的话就先去百度一下,这里基于菜鸟有限的经验,我只能说是一种函数拦截技术~ 首先,下载Xposed

Xposed框架与Drozer测试框架学习-Hook篇

一.前言 Xposed框架是Android中Hook技术的一个著名框架.另一个是CydiaSubstrate,但是这个框架是收费的,可能因为它可以Hook到C++层所以在使用上有点难度,个人感觉这个框架可以作为高阶应用,简单的只在Java层做Hook应用就使用Xposed框架就可以了.Xposed它是免费且开源的,网上有很多文章介绍Xposed. 二.前提 本人测试环境: Nexus 5 (这个大家随意,只要是Android手机就行) Android 4.4.4 (已经root过,Xposed框

Hook框架xposed的简单demo

简介:Xposed框架是一款可以在不修改APK的情况下影响程序运行的框架服务,通过替换/system/bin/app_process程序控制zygote进程,使得app_process在启动过程中会加载XposedBridge.jar这个jar包,从而完成对Zygote进程及其创建的虚拟机的劫持. Github地址:https://github.com/rovo89/Xposed 首先我们Hook无参数的函数 1.建立一个空工程,编写获取序列号的简单例子 1) 获取手机状态需要设置权限 <use

Android Hook神器——XPosed入门(登陆劫持演示)

如果想飞得高,就该把地平线忘掉. 前段时间写了一篇有关于CydiaSubstrate的广告注入的文章(地址:http://blog.csdn.net/yzzst/article/details/47318751),大家都直呼过瘾.但是,真正了解这一方面的同学应该这道,其实还有一个比CydiaSubstrate更出名的工具:XPosed. 不是因为Xposed比CydiaSubstrate做的多好,而是Xposed是彻底开源的.今天,我们就向大家简单的介绍一下Xposed,并书写一个简单的登陆劫持

Android.Hook框架Cydia篇

Cydia Substrate是一个代码修改平台.它可以修改任何主进程的代码,不管是用Java还是C/C++(native代码)编写的.而Xposed只支持HOOK app_process中的java函数,因此Cydia Substrate是一款强大而实用的HOOK工具. 官网地址:http://www.cydiasubstrate.com/ 官方教程:http://www.cydiasubstrate.com/id/38be592b-bda7-4dd2-b049-cec44ef7a73b SD

Android Xpose Hook(一)

实验环境: Droid4x模拟器 (目前Android版本4.2.2) Android Studio 1.下载相关工具 XposedInstaller下载 http://repo.xposed.info/module/de.robv.android.xposed.installer XposedBridged.jar下载 https://github.com/rovo89/XposedBridge/releases 2.安装XposedInstaller并激活 激活步骤: 启动XposedIns

利用Cydia Substrate进行Android HOOK

Cydia Substrate是一个代码修改平台.它可以修改任何主进程的代码,不管是用Java还是C/C++(native代码)编写的.而Xposed只支持HOOK app_process中的java函数,因此Cydia Substrate是一款强大而实用的HOOK工具. 官网地址:http://www.cydiasubstrate.com/ Demo地址:https://github.com/zencodex/cydia-android-hook 官方教程:http://www.cydiasu