惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

K
Kaspersky official blog
Martin Fowler
Martin Fowler
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
V
Visual Studio Blog
博客园_首页
Engineering at Meta
Engineering at Meta
The Cloudflare Blog
MongoDB | Blog
MongoDB | Blog
Blog — PlanetScale
Blog — PlanetScale
T
The Blog of Author Tim Ferriss
雷峰网
雷峰网
D
Docker
博客园 - 司徒正美
S
SegmentFault 最新的问题
M
MIT News - Artificial intelligence
博客园 - 叶小钗
博客园 - 三生石上(FineUI控件)
U
Unit 42
J
Java Code Geeks
A
About on SuperTechFans
N
Netflix TechBlog - Medium
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
S
Security Affairs
I
Intezer
Cisco Talos Blog
Cisco Talos Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
B
Blog RSS Feed
P
Privacy & Cybersecurity Law Blog
T
Tenable Blog
T
Threatpost
H
Hacker News: Front Page
G
Google Developers Blog
博客园 - 【当耐特】
Hugging Face - Blog
Hugging Face - Blog
Apple Machine Learning Research
Apple Machine Learning Research
L
Lohrmann on Cybersecurity
大猫的无限游戏
大猫的无限游戏
Google DeepMind News
Google DeepMind News
A
Arctic Wolf
S
Secure Thoughts
GbyAI
GbyAI
NISL@THU
NISL@THU
S
Security @ Cisco Blogs
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Webroot Blog
Webroot Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
O
OpenAI News
Spread Privacy
Spread Privacy
Application and Cybersecurity Blog
Application and Cybersecurity Blog

MoeShin

Alpine 下各语言的大小 - MoeShin 碧蓝档案日服模拟器体验 - MoeShin 域名邮箱记 - MoeShin Xposed Hook 替换类 - MoeShin PowerShell [ ] 转义 - MoeShin iOS iSH 笔记 - MoeShin Windows Terminal + MSYS2 + ZSH 配置 Cmder 修改 λ 标记 - MoeShin MAC IDEA 中 Git GPG 签名失败
XPosed Hook 子类重写的方法,并调用父方法 - MoeShin
作者: MoeShin · 2021-04-09 · via MoeShin

摸索了一天,Method.invoke() 会无限套娃,不知道还有没有其他方法。

public class MainHook implements IXposedHookLoadPackage {

    @Override
    public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {

        // 要 Hook 的子类
        Class<?> clazzActivity = XposedHelpers.findClassIfExists(
            "com.example.MainActivity",
            lpparam.classLoader
        );

        // 要 Hook 的父类
        Class<?> clazzSuperActivity = clazzActivity.getSuperclass();

        // Hook 父类方法
        XposedHelpers.findAndHookMethod(clazzSuperActivity,
                "onCreate", Bundle.class,
                new XC_MethodHook() {});

        // Hook 子类方法
        XposedHelpers.findAndHookMethod(clazzActivity,
                "onCreate", Bundle.class,
                new XC_MethodHook() {
                    @Override
                    protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
                        param.setResult(null);
                        Method method = clazzSuperActivity.getDeclaredMethod("onCreate", Bundle.class);
                        XposedBridge.invokeOriginalMethod(method, param.thisObject, param.args);
                    }
                });
    }
}