Versions in this module Expand all Collapse all v0 v0.2.1 Apr 25, 2017 Changes in this version + var SAVE_MAGIC = "UCSV" + func Assemble(asm string, addr uint64, arch *Arch) ([]byte, error) + func Demangle(name string) string + func Disas(mem []byte, addr uint64, arch *Arch, pad ...int) (string, error) + func HexDump(base uint64, mem []byte, bits int) []string + func Repr(p []byte, strsize int) string + func Save(u Usercorn) ([]byte, error) + type Arch struct + Bits int + CS_ARCH int + CS_MODE uint + DefaultRegs []string + GdbXml string + KS_ARCH ks.Architecture + KS_MODE ks.Mode + OS map[string]*OS + PC int + Radare string + Regs regMap + SP int + UC_ARCH int + UC_MODE int + func (a *Arch) RegDump(u uc.Unicorn) ([]RegVal, error) + func (a *Arch) RegNames() map[int]string + func (a *Arch) RegisterOS(os *OS) + func (a *Arch) SmokeTest(t *testing.T) + type Change struct + Enum int + Name string + New uint64 + Old uint64 + func NewChange(name string, val, oldVal uint64) *Change + func (c *Change) Changed() bool + func (c *Change) Mask(bsz int) []ChangeMask + func (c *Change) String(bsz int, color bool) string + type ChangeMask struct + Changed bool + New string + Old string + type Changes struct + Bsz int + Changes []*Change + func (cs *Changes) Changed() []*Change + func (cs *Changes) Count() int + func (cs *Changes) Find(enum int) *Change + func (cs *Changes) String(indent string, color bool) string + type Config struct + Color bool + Demangle bool + ForceBase uint64 + ForceInterpBase uint64 + LoadPrefix string + LoopCollapse int + NativeFallback bool + Output io.WriteCloser + PrefixArgs []string + SavePost string + SavePre string + SkipInterp bool + Strsize int + TraceBlock bool + TraceExec bool + TraceMatch []string + TraceMatchDepth int + TraceMem bool + TraceMemBatch bool + TraceReg bool + TraceSys bool + Verbose bool + func (c *Config) Init() *Config + func (c *Config) PrefixPath(path string, force bool) string + type ExitStatus int + func (e ExitStatus) Error() string + type Gate struct + func (g *Gate) Start() + func (g *Gate) Stop() + func (g *Gate) StopLock() + func (g *Gate) UnlockStart() + func (g *Gate) UnlockStop() + func (g *Gate) UnlockStopRelock() + type Loader interface + Arch func() string + Bits func() int + ByteOrder func() binary.ByteOrder + DWARF func() (*dwarf.Data, error) + DataSegment func() (uint64, uint64) + Entry func() uint64 + Header func() (uint64, []byte, int) + Interp func() string + OS func() string + Segments func() ([]SegmentData, error) + Symbols func() ([]Symbol, error) + Type func() int + type Loop struct + Filled int + Index int + Loop []uint64 + func NewLoop(length int) *Loop + func (l *Loop) Inc() + func (l *Loop) Next() uint64 + func (l *Loop) Push(n uint64) + func (l *Loop) Ring(start int, dst []uint64) []uint64 + type LoopDetect struct + History *Loop + Len int + Loop *Loop + Loops int + func NewLoopDetect(length int) *LoopDetect + func (l *LoopDetect) Detect() *Loop + func (l *LoopDetect) Reset() + func (l *LoopDetect) String(u Usercorn, loop []uint64) string + func (l *LoopDetect) Update(addr uint64) (bool, []uint64, int) + type MappedFile struct + Addr uint64 + DWARF *dwarf.Data + Name string + Off int64 + Size uint64 + Symbols []Symbol + func (m *MappedFile) Contains(addr uint64) bool + func (m *MappedFile) FileLine(addr uint64) string + func (m *MappedFile) SymbolLookup(name string) *Symbol + func (m *MappedFile) Symbolicate(addr uint64) (result Symbol, distance uint64) + type MemLog struct + func NewMemLog(order binary.ByteOrder) *MemLog + func (m *MemLog) Adjacent(addr uint64, p []byte, write bool) (delta *memDelta, dup bool) + func (m *MemLog) Empty() bool + func (m *MemLog) Flush(indent string, bits int) string + func (m *MemLog) Freeze() + func (m *MemLog) Reset() + func (m *MemLog) String(indent string, bits int) string + func (m *MemLog) Update(addr uint64, size int, value int64, write bool) + func (m *MemLog) UpdateBytes(addr uint64, p []byte, write bool) + type Mmap struct + Addr uint64 + Desc string + File *MappedFile + Prot int + Size uint64 + func (m *Mmap) Contains(addr uint64) bool + func (m *Mmap) String() string + type MmapAddrSort []*Mmap + func (m MmapAddrSort) Len() int + func (m MmapAddrSort) Less(i, j int) bool + func (m MmapAddrSort) Swap(i, j int) + type OS struct + Init func(Usercorn, []string, []string) error + Interrupt func(Usercorn, uint32) + Kernels func(Usercorn) []interface{} + Name string + func (o *OS) String() string + type Reg struct + Default bool + Enum int + Name string + type RegVal struct + Val uint64 + type SaveBody struct + Mem []SaveMem + MemCount uint64 + RegCount uint64 + Regs []SaveReg + type SaveHeader struct + BodySize uint64 + Compressed []byte + Magic string + PC uint64 + UcArch uint32 + UcMajor uint32 + UcMinor uint32 + UcMode uint32 + Version uint32 + func (s *SaveHeader) PackBody(b *SaveBody) error + func (s *SaveHeader) UnpackBody() (*SaveBody, error) + type SaveMem struct + Addr uint64 + Data []byte + Prot uint32 + Size uint64 + type SaveReg struct + Enum uint64 + Val uint64 + type Segment struct + End uint64 + Prot int + Start uint64 + func (s *Segment) Merge(o *Segment) + func (s *Segment) Overlaps(o *Segment) bool + type SegmentData struct + Addr uint64 + DataFunc func() ([]byte, error) + Off uint64 + Prot int + Size uint64 + func (s *SegmentData) ContainsPhys(addr uint64) bool + func (s *SegmentData) ContainsVirt(addr uint64) bool + func (s *SegmentData) Data() ([]byte, error) + type Stackframe struct + PC uint64 + SP uint64 + func (s *Stackframe) Pretty(u Usercorn) string + type Stacktrace struct + Stack []Stackframe + func (s *Stacktrace) Empty() bool + func (s *Stacktrace) Freeze(pc, sp uint64) []Stackframe + func (s *Stacktrace) Len() int + func (s *Stacktrace) Peek() Stackframe + func (s *Stacktrace) Pop() Stackframe + func (s *Stacktrace) Push(pc, sp uint64) + func (s *Stacktrace) Update(pc, sp uint64) + type StatusDiff struct + U Usercorn + func (s *StatusDiff) Changes(onlyChanged bool) *Changes + type StrucStream struct + Options *struc.Options + Stream io.ReadWriter + func (s *StrucStream) Pack(vals ...interface{}) error + func (s *StrucStream) Unpack(vals ...interface{}) error + type Symbol struct + Dynamic bool + End uint64 + Name string + Start uint64 + func (s Symbol) Contains(addr uint64) bool + type Uname struct + Machine string + Nodename string + Release string + Sysname string + Version string + func (u *Uname) Pad(length int) + type Usercorn interface + Arch func() *Arch + Assemble func(asm string, addr uint64) ([]byte, error) + Base func() uint64 + BinEntry func() uint64 + Bits func() uint + Brk func(addr uint64) (uint64, error) + ByteOrder func() binary.ByteOrder + Config func() *Config + Disas func(addr, size uint64) (string, error) + Entry func() uint64 + Exe func() string + Exit func(err error) + Gate func() *Gate + InterpBase func() uint64 + Loader func() Loader + Mappings func() []*Mmap + Mem func() memio.MemIO + MemReserve func(addr, size uint64, force bool) (*Mmap, error) + Mmap func(addr, size uint64) (*Mmap, error) + MmapWrite func(addr uint64, p []byte) (uint64, error) + OS func() string + PackAddr func(buf []byte, n uint64) ([]byte, error) + Pop func() (uint64, error) + PopBytes func(p []byte) error + PrefixPath func(s string, force bool) string + Printf func(fmt string, args ...interface{}) + Println func(s interface{}) + Push func(n uint64) (uint64, error) + PushBytes func(p []byte) (uint64, error) + ReadRegs func(reg []int) ([]uint64, error) + RegDump func() ([]RegVal, error) + RegisterAddr func(f *os.File, addr, size uint64, off int64) + Run func(args, env []string) error + RunShellcode func(addr uint64, code []byte, setRegs map[int]uint64, regsClobbered []int) error + RunShellcodeMapped func(mmap *Mmap, code []byte, setRegs map[int]uint64, regsClobbered []int) error + SetEntry func(entry uint64) + SetExit func(exit uint64) + StrucAt func(addr uint64) *StrucStream + Symbolicate func(addr uint64, includeFile bool) (string, error) + Syscall func(num int, name string, getArgs func(n int) ([]uint64, error)) (uint64, error) + Trampoline func(func() error) error + UnpackAddr func(buf []byte) uint64