• 【移动安全基础篇】——07、Android_Hook_cydia


    1. Hook 钩子
    对函数进行挂钩,可以影响整个函数的执行,挂上钩子之后,注入的代码可以接管整个函数,修改函数的参数或者返回值,甚至修改函数的行为等等。
    2. Cydia 的 Demo 示例(兼容性问题,所以使用不普遍)
    函数 Hook 的方法如下:
    找到要挂钩的类,然后找到要挂钩的函数,最后对目标函数进行挂钩重写。
    步骤:
    (1)导入 lib 文件 substrate-api.jar
    (2)AndroidManifest.xml 文件修改

    (3)入口类编写

    只需要知道类名就能钩上,而且是属于系统全局属性的钩子,基本不会被检测到,这是cydia 的特点之一。
    3. Java 反射
    Java 能够通过反射方法获取类和它的成员,反射相当于提供一些函数,在不知道原始类定义的情况下,修改类中相关成员的属性和值等。
    方法如下:
    所有类都是继承于Object 的,所以都可以使用 Object 的方法,也可以强制转换为 Object。所以,当遇到无法表示出的对象时,直接使用 Object 即可。
    获取对象的类:

    获取类中的方法:

    使用对应的不是以 s 后缀的函数可以获取特定的函数或 field

    方法调用

    域操作

    访问权限设置,域和方法都一样,控制是否可以直接访问,相当于 public 属性

    其余的函数,可以获取函数的名称,还有其他种种信息

    总会有不期而遇的温暖. 和生生不息的希望。
  • 相关阅读:
    bzoj 2138: stone
    LOJ #6062. 「2017 山东一轮集训 Day2」Pair
    bzoj 5341: [Ctsc2018]暴力写挂
    UOJ #356. 【JOI2017春季合宿】Port Facility
    UOJ #357. 【JOI2017春季合宿】Sparklers
    UOJ #349. 【WC2018】即时战略
    bzoj 3600: 没有人的算术
    Codeforces 960G. Bandit Blues
    codeforces524E
    codeforces193B
  • 原文地址:https://www.cnblogs.com/devi1/p/13486476.html
Copyright © 2020-2023  润新知