MCPcopy Create free account

hub / github.com/D7EAD/mkPIVM / types & classes

Types & classes95 in github.com/D7EAD/mkPIVM

↓ 140 callersClassError
include/mkpivm/util.h:13
↓ 1 callersClassSeedRng
xoshiro256**. fast, good enough, deterministic. all per-seed randomness flows through this.
include/mkpivm/seed.h:11
ClassAddSubLifter
include/mkpivm/lifter.h:77
EnumArch
include/mkpivm/arch.h:7
EnumBinOp
ALU bin helper: ADD/SUB/AND/OR/XOR shared encoding: opcode | dst slot | width | tag | slot or imm data
src/codec.cpp:1296
ClassBlock
include/mkpivm/cfg.h:16
ClassBranchFixup
include/mkpivm/bytecode.h:108
ClassBswapLifter
include/mkpivm/lifter.h:196
ClassBytecodeBuilder
accumulates plaintext bytecode. tracks branch fixups
include/mkpivm/bytecode.h:13
ClassCFGBuilder
include/mkpivm/cfg.h:14
ClassCFGBuilder::Impl
src/cfg.cpp:8
ClassCallLifter
include/mkpivm/lifter.h:133
ClassCandidate
src/main.cpp:391
ClassCdqLifter
CWD/CDQ/CQO. sign-extend AX/EAX/RAX into DX/EDX/RDX
include/mkpivm/lifter.h:235
ClassCdqeLifter
include/mkpivm/lifter.h:182
EnumCipherKind
cipher families. per-seed choice.
include/mkpivm/vm_isa.h:22
ClassCmovccLifter
real CMOVcc doesn't touch EFLAGS but our AND/OR codecs always do
include/mkpivm/lifter.h:243
ClassCmpTestLifter
include/mkpivm/lifter.h:112
ClassCodec
one codec per IR op family. subclasses define the bytecode shape via encode() and the runtime handler via emit_handler(). everything routes through th
include/mkpivm/codec.h:46
ClassCodecRegistry
registry of codecs, one per family.
include/mkpivm/codec.h:67
EnumCond
branch conditions, mapped from the x86 cc nibble at lift time.
include/mkpivm/ir.h:65
ClassDataChunk
include/mkpivm/ir.h:224
ClassDataFixup
include/mkpivm/bytecode.h:76
ClassDataRange
include/mkpivm/cfg.h:26
ClassDecodedReg
turn a Zydis register id into XReg + Width. is_high_byte is set when the register is AH/CH/DH/BH.
include/mkpivm/lifter.h:252
ClassDisasmRun
decode insns from `bytes` until total length >= 5
src/pe_embed.cpp:290
EnumDispatchStyle
dispatcher shape
include/mkpivm/vm_isa.h:31
ClassDispatcherRegs
which physical host regs hold the dispatcher's hot state. picked per seed
include/mkpivm/vm_isa.h:56
ClassEmbedOptions
include/mkpivm/pe_embed.h:11
ClassEmbedResult
include/mkpivm/pe_embed.h:27
EnumField
scalar fields, placed in random order.
src/vm_isa.cpp:51
ClassFixup
include/mkpivm/x64_emit.h:74
ClassFixup
include/mkpivm/x86_emit.h:41
EnumFixupKind
tags for X64Emitter rel32 fixups. packager resolves these at layout time.
include/mkpivm/codec.h:18
EnumFlagsOp
last flag-setting op. BR_CC uses this plus the cached operands to compute the condition lazily. same idea as QEMU's lazy flags
include/mkpivm/ir.h:92
EnumFormat
src/main.cpp:29
ClassIRBlock
basic block. straight-line ops up to a terminator.
include/mkpivm/ir.h:194
ClassIRBuilder
helper used by lifters
include/mkpivm/ir.h:244
ClassIRInsn
one insn. up to 4 operands in an inline array so we don't heap-alloc per instruction.
include/mkpivm/ir.h:163
EnumIROp
op tags. each one names a codec family.
include/mkpivm/ir.h:123
ClassIRProgram
the whole lifted program
include/mkpivm/ir.h:217
ClassImm
operand variants
include/mkpivm/ir.h:106
ClassImpl
include/mkpivm/cfg.h:68
ClassImportLookup
iat slot for a named import like kernel32!CreateThread
src/pe_embed.cpp:97
ClassImulLifter
include/mkpivm/lifter.h:203
ClassIncDecLifter
include/mkpivm/lifter.h:98
EnumInputFormat
src/main.cpp:258
ClassInstructionLifter
one subclass per mnemonic family. lifters are stateless and emit pure IR. they never touch bytecode state afaik
include/mkpivm/lifter.h:29
ClassJccLifter
include/mkpivm/lifter.h:126
ClassJcxzLifter
JCXZ family. short jump if r/e/cx is zero
include/mkpivm/lifter.h:211
ClassJmpLifter
include/mkpivm/lifter.h:119
ClassLabel
include/mkpivm/ir.h:120
ClassLeaLifter
include/mkpivm/lifter.h:70
ClassLeaveLifter
LEAVE. mov rsp,rbp then pop rbp on x64, same with esp/ebp on x86
include/mkpivm/lifter.h:227
ClassLiftContext
include/mkpivm/lifter.h:14
ClassLifterRegistry
tegistry indexes concrete lifters by Zydis mnemonic.
include/mkpivm/lifter.h:38
ClassLogicLifter
include/mkpivm/lifter.h:84
ClassLoopLifter
include/mkpivm/lifter.h:175
ClassMem
include/mkpivm/ir.h:112
ClassMovExtLifter
include/mkpivm/lifter.h:63
ClassMovLifter
include/mkpivm/lifter.h:56
ClassNegNotLifter
include/mkpivm/lifter.h:91
ClassNopLifter
include/mkpivm/lifter.h:189
ClassOffsets
include/mkpivm/vm_codegen.h:41
ClassOperandShape
per-codec encoding shape. codec asks VMConfig for one of these so the same codec source emits wildly different bytecode under different seeds.
include/mkpivm/vm_isa.h:45
ClassPackageOptions
include/mkpivm/packager.h:15
ClassPackageResult
include/mkpivm/packager.h:46
ClassPeView
view into the PE. all offsets are file offsets.
src/pe_embed.cpp:78
ClassPending
src/packager.cpp:23
ClassPrologueOrder
remember the exact push order so the exit handler can pop in reverse. keyed off the emitter pointer to avoid TLS bullshit.
src/vm_codegen.cpp:9
EnumPrologueStyle
self-locate strategy for the PIC prologue
include/mkpivm/vm_isa.h:37
ClassPushPopLifter
include/mkpivm/lifter.h:147
ClassPushadPopadLifter
PUSHAD and POPAD. push or pop all 8 x86 GPRs
include/mkpivm/lifter.h:219
ClassRetLifter
include/mkpivm/lifter.h:140
ClassSetccLifter
include/mkpivm/lifter.h:161
ClassShiftLifter
include/mkpivm/lifter.h:105
ClassSpan
include/mkpivm/util.h:73
ClassSplit
src/packager.cpp:148
ClassStringOpLifter
include/mkpivm/lifter.h:168
ClassThreadedFixups
same save/restore shape as the inline wrapper but the body is CreateThread, NULL, 0, vm_blob, NULL, 0, NULL through the iat slot
src/pe_embed.cpp:383
ClassThreadedFixupsX86
x86 threaded wrapper uses absolute addressing for the indirect iat call
src/pe_embed.cpp:551
ClassTrampolineFixup
include/mkpivm/bytecode.h:86
ClassVMCodeGen
emits the PIC scaffolding around the codec handlers
include/mkpivm/vm_codegen.h:22
ClassVMConfig
master config for one VM build. fully derived from the seed
include/mkpivm/vm_isa.h:91
ClassVMStateLayout
field offsets in the on-stack VMState. order is shuffled per seed so reverse engineers don't get a free structural skeleton. i mean i kinda am holding
include/mkpivm/vm_isa.h:69
ClassVRegSlot
one VM register slot. slot count and which XReg maps where is randomized per seed.
include/mkpivm/vm_isa.h:16
ClassVirReg
include/mkpivm/ir.h:107
EnumWidth
operand width. LOAD/STORE size, CMP width, ADD width, etc.
include/mkpivm/ir.h:57
ClassWrapperLayout
x64 wrapper
src/pe_embed.cpp:374
ClassX64Emitter
small x64 emitter
include/mkpivm/x64_emit.h:43
EnumX86BinOp
ALU bin handler
src/codec_x86.cpp:396
ClassX86Emitter
include/mkpivm/x86_emit.h:10
ClassX86PrologueOrder
remember the push order so the exit handler pops in reverse. keyed off the emitter pointer since emitters are single-use.
src/vm_codegen_x86.cpp:10
EnumXReg
logical x86 reg names the IR uses. physical width is 32 or 64 depending on arch. sub-register stuff gets lowered to width-typed ops.
include/mkpivm/ir.h:17
ClassXchgLifter
include/mkpivm/lifter.h:154