コード例 #1
0
        protected virtual long GetRealAddress(long address, RefKinds kind)
        {
            switch (kind)
            {
            case RefKinds.Auto:
                if (address >= Info.ImageBase)
                {
                    return(address - Info.ImageBase);
                }
                else
                {
                    return(Address + address);
                }

            case RefKinds.Virtual:
                //if (Info.ImageBase <= 0) throw new Exception("非法镜像基址!");
                //if (address < Info.ImageBase) throw new Exception(String.Format("非法地址 0x{0:X}", address));
                if (address < Info.ImageBase)
                {
                    return(0);
                }
                return(address - Info.ImageBase);

            case RefKinds.Relative:
                return(Address + address);

            case RefKinds.Absolute:
                return(address);

            default:
                break;
            }

            return(address);
        }
コード例 #2
0
ファイル: DataFieldAttribute.cs プロジェクト: qipa/IDACSharp
 public DataFieldAttribute(Type type, RefKinds kind)
 {
     RefType = type;
     RefKind = kind;
 }