Documentation ¶
Overview ¶
package uasm implements a boneless pseudo assembler and linker for ARMv6. It's used to generate payloads for wInd3x without relying on a third-party assembler at runtime, or precompiling payloads.
Index ¶
- type Add
- type And
- type B
- type Blx
- type BranchTarget
- type Bx
- type Cmp
- type Condition
- type Constant
- type DataSource
- type Embed
- type Immediate
- type Label
- type LabelRef
- type Ldr
- type Ldrb
- type LoadSource
- type Mcr
- type MemoryDeref
- type Mov
- type Mrc
- type Or
- type Program
- type Register
- type Statement
- type StoreDest
- type Str
- type Strb
- type Sub
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Add ¶
type Add struct { Dest Register Src Register Compl DataSource // contains filtered or unexported fields }
type And ¶
type And struct { Dest Register Src Register Compl DataSource // contains filtered or unexported fields }
type B ¶
type B struct { Cond Condition Dest BranchTarget // contains filtered or unexported fields }
type BranchTarget ¶
type BranchTarget interface {
// contains filtered or unexported methods
}
Branch target is an operand that can be interpreted as a program address.
type Cmp ¶
type Cmp struct { A Register B DataSource // contains filtered or unexported fields }
type Constant ¶
type Constant uint32
Constant is a 32-bit number that will end up in a constant pool.
type DataSource ¶
type DataSource interface {
// contains filtered or unexported methods
}
DataSource is an operand which can be a source of data to a non-memory operation.
type Immediate ¶
type Immediate uint32
Immediate is a data source (for operations like mov, add, etc).
type Ldr ¶
type Ldr struct { Dest Register Src LoadSource // contains filtered or unexported fields }
type Ldrb ¶
type Ldrb struct { Dest Register Src LoadSource // contains filtered or unexported fields }
type LoadSource ¶
type LoadSource interface {
// contains filtered or unexported methods
}
LoadSource is an operand which can be a source of data to a memory operation.
type MemoryDeref ¶
func Deref ¶
func Deref(r Register, offset uint16) MemoryDeref
type Mov ¶
type Mov struct { Dest Register Src DataSource // contains filtered or unexported fields }
type Or ¶
type Or struct { Dest Register Src Register Compl DataSource // contains filtered or unexported fields }
type Statement ¶
type Statement interface {
// contains filtered or unexported methods
}
Statement is a listing line, eg. instruction or label.
type StoreDest ¶
type StoreDest interface {
// contains filtered or unexported methods
}
StoreDest is an operand which can be a destination for a memory operation.
type Sub ¶
type Sub struct { Dest Register Src Register Compl DataSource // contains filtered or unexported fields }