All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.jvmbytes.spy.enhance.weaver.CodeLock Maven / Gradle / Ivy

package com.jvmbytes.spy.enhance.weaver;

/**
 * 代码锁
 * 什么叫代码锁?代码锁的出现是由于在字节码中,我们无法用简单的if语句来判定这段代码是生成的还是原有的。
 * 这会导致一些监控逻辑的混乱,比如trace命令如果不使用代码锁保护,将能看到Greys所植入的代码并进行跟踪
 *
 * @author [email protected]
 */
public interface CodeLock {

    /**
     * 根据字节码流锁或解锁代码
     * 通过对字节码流的判断,决定当前代码是锁定和解锁
     *
     * @param opcode 字节码
     */
    void code(int opcode);

    /**
     * 判断当前代码是否还在锁定中
     *
     * @return true/false
     */
    boolean isLock();

    /**
     * 将一个代码块纳入代码锁保护范围
     *
     * @param block 代码块
     */
    void lock(Block block);

    /**
     * 代码块
     */
    interface Block {
        /**
         * 代码
         */
        void code();
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy