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

com.github.unidbg.ios.struct.objc.ClassRW64 Maven / Gradle / Ivy

The newest version!
package com.github.unidbg.ios.struct.objc;

import com.github.unidbg.Emulator;
import com.github.unidbg.pointer.UnidbgPointer;
import com.sun.jna.Pointer;

public class ClassRW64 extends ClassRW {

    public long ro;
    public long methodList;
    public long properties;
    public long protocols;

    public long firstSubclass;
    public long nextSiblingClass;

    public long demangledName;

    public ClassRW64(Pointer p) {
        super(p);
    }

    @Override
    public ClassRO ro(Emulator emulator) {
        long ro = this.ro;
        boolean newObjc = (ro & 1) != 0;
        if (newObjc) { // override objc runtime
            Pointer pointer = UnidbgPointer.pointer(emulator, ro & FAST_DATA_MASK);
            assert pointer != null;
            ro = pointer.getLong(0);
        }
        ClassRO classRO = new ClassRO64(UnidbgPointer.pointer(emulator, ro & FAST_DATA_MASK));
        classRO.unpack();
        return classRO;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy