Code
Hub
Workspaces
Following
Trending
Connect
MCP
copy
Create free account
hub
/
github.com/D7EAD/mkPIVM
/ types & classes
Types & classes
95 in github.com/D7EAD/mkPIVM
⨍
Functions
458
◇
Types & classes
95
↓ 140 callers
Class
Error
include/mkpivm/util.h:13
↓ 1 callers
Class
SeedRng
xoshiro256**. fast, good enough, deterministic. all per-seed randomness flows through this.
include/mkpivm/seed.h:11
Class
AddSubLifter
include/mkpivm/lifter.h:77
Enum
Arch
include/mkpivm/arch.h:7
Enum
BinOp
ALU bin helper: ADD/SUB/AND/OR/XOR shared encoding: opcode | dst slot | width | tag | slot or imm data
src/codec.cpp:1296
Class
Block
include/mkpivm/cfg.h:16
Class
BranchFixup
include/mkpivm/bytecode.h:108
Class
BswapLifter
include/mkpivm/lifter.h:196
Class
BytecodeBuilder
accumulates plaintext bytecode. tracks branch fixups
include/mkpivm/bytecode.h:13
Class
CFGBuilder
include/mkpivm/cfg.h:14
Class
CFGBuilder::Impl
src/cfg.cpp:8
Class
CallLifter
include/mkpivm/lifter.h:133
Class
Candidate
src/main.cpp:391
Class
CdqLifter
CWD/CDQ/CQO. sign-extend AX/EAX/RAX into DX/EDX/RDX
include/mkpivm/lifter.h:235
Class
CdqeLifter
include/mkpivm/lifter.h:182
Enum
CipherKind
cipher families. per-seed choice.
include/mkpivm/vm_isa.h:22
Class
CmovccLifter
real CMOVcc doesn't touch EFLAGS but our AND/OR codecs always do
include/mkpivm/lifter.h:243
Class
CmpTestLifter
include/mkpivm/lifter.h:112
Class
Codec
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
Class
CodecRegistry
registry of codecs, one per family.
include/mkpivm/codec.h:67
Enum
Cond
branch conditions, mapped from the x86 cc nibble at lift time.
include/mkpivm/ir.h:65
Class
DataChunk
include/mkpivm/ir.h:224
Class
DataFixup
include/mkpivm/bytecode.h:76
Class
DataRange
include/mkpivm/cfg.h:26
Class
DecodedReg
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
Class
DisasmRun
decode insns from `bytes` until total length >= 5
src/pe_embed.cpp:290
Enum
DispatchStyle
dispatcher shape
include/mkpivm/vm_isa.h:31
Class
DispatcherRegs
which physical host regs hold the dispatcher's hot state. picked per seed
include/mkpivm/vm_isa.h:56
Class
EmbedOptions
include/mkpivm/pe_embed.h:11
Class
EmbedResult
include/mkpivm/pe_embed.h:27
Enum
Field
scalar fields, placed in random order.
src/vm_isa.cpp:51
Class
Fixup
include/mkpivm/x64_emit.h:74
Class
Fixup
include/mkpivm/x86_emit.h:41
Enum
FixupKind
tags for X64Emitter rel32 fixups. packager resolves these at layout time.
include/mkpivm/codec.h:18
Enum
FlagsOp
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
Enum
Format
src/main.cpp:29
Class
IRBlock
basic block. straight-line ops up to a terminator.
include/mkpivm/ir.h:194
Class
IRBuilder
helper used by lifters
include/mkpivm/ir.h:244
Class
IRInsn
one insn. up to 4 operands in an inline array so we don't heap-alloc per instruction.
include/mkpivm/ir.h:163
Enum
IROp
op tags. each one names a codec family.
include/mkpivm/ir.h:123
Class
IRProgram
the whole lifted program
include/mkpivm/ir.h:217
Class
Imm
operand variants
include/mkpivm/ir.h:106
Class
Impl
include/mkpivm/cfg.h:68
Class
ImportLookup
iat slot for a named import like kernel32!CreateThread
src/pe_embed.cpp:97
Class
ImulLifter
include/mkpivm/lifter.h:203
Class
IncDecLifter
include/mkpivm/lifter.h:98
Enum
InputFormat
src/main.cpp:258
Class
InstructionLifter
one subclass per mnemonic family. lifters are stateless and emit pure IR. they never touch bytecode state afaik
include/mkpivm/lifter.h:29
Class
JccLifter
include/mkpivm/lifter.h:126
Class
JcxzLifter
JCXZ family. short jump if r/e/cx is zero
include/mkpivm/lifter.h:211
Class
JmpLifter
include/mkpivm/lifter.h:119
Class
Label
include/mkpivm/ir.h:120
Class
LeaLifter
include/mkpivm/lifter.h:70
Class
LeaveLifter
LEAVE. mov rsp,rbp then pop rbp on x64, same with esp/ebp on x86
include/mkpivm/lifter.h:227
Class
LiftContext
include/mkpivm/lifter.h:14
Class
LifterRegistry
tegistry indexes concrete lifters by Zydis mnemonic.
include/mkpivm/lifter.h:38
Class
LogicLifter
include/mkpivm/lifter.h:84
Class
LoopLifter
include/mkpivm/lifter.h:175
Class
Mem
include/mkpivm/ir.h:112
Class
MovExtLifter
include/mkpivm/lifter.h:63
Class
MovLifter
include/mkpivm/lifter.h:56
Class
NegNotLifter
include/mkpivm/lifter.h:91
Class
NopLifter
include/mkpivm/lifter.h:189
Class
Offsets
include/mkpivm/vm_codegen.h:41
Class
OperandShape
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
Class
PackageOptions
include/mkpivm/packager.h:15
Class
PackageResult
include/mkpivm/packager.h:46
Class
PeView
view into the PE. all offsets are file offsets.
src/pe_embed.cpp:78
Class
Pending
src/packager.cpp:23
Class
PrologueOrder
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
Enum
PrologueStyle
self-locate strategy for the PIC prologue
include/mkpivm/vm_isa.h:37
Class
PushPopLifter
include/mkpivm/lifter.h:147
Class
PushadPopadLifter
PUSHAD and POPAD. push or pop all 8 x86 GPRs
include/mkpivm/lifter.h:219
Class
RetLifter
include/mkpivm/lifter.h:140
Class
SetccLifter
include/mkpivm/lifter.h:161
Class
ShiftLifter
include/mkpivm/lifter.h:105
Class
Span
include/mkpivm/util.h:73
Class
Split
src/packager.cpp:148
Class
StringOpLifter
include/mkpivm/lifter.h:168
Class
ThreadedFixups
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
Class
ThreadedFixupsX86
x86 threaded wrapper uses absolute addressing for the indirect iat call
src/pe_embed.cpp:551
Class
TrampolineFixup
include/mkpivm/bytecode.h:86
Class
VMCodeGen
emits the PIC scaffolding around the codec handlers
include/mkpivm/vm_codegen.h:22
Class
VMConfig
master config for one VM build. fully derived from the seed
include/mkpivm/vm_isa.h:91
Class
VMStateLayout
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
Class
VRegSlot
one VM register slot. slot count and which XReg maps where is randomized per seed.
include/mkpivm/vm_isa.h:16
Class
VirReg
include/mkpivm/ir.h:107
Enum
Width
operand width. LOAD/STORE size, CMP width, ADD width, etc.
include/mkpivm/ir.h:57
Class
WrapperLayout
x64 wrapper
src/pe_embed.cpp:374
Class
X64Emitter
small x64 emitter
include/mkpivm/x64_emit.h:43
Enum
X86BinOp
ALU bin handler
src/codec_x86.cpp:396
Class
X86Emitter
include/mkpivm/x86_emit.h:10
Class
X86PrologueOrder
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
Enum
XReg
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
Class
XchgLifter
include/mkpivm/lifter.h:154