MCPcopy Create free account

hub / github.com/0xnobody/vmpattack / functions

Functions116 in github.com/0xnobody/vmpattack

↓ 41 callersMethodfetch_vsp
Matches for instructions that fetch memory from the virtual stack. Constraints: dst: the destination register. size: the size of the destination
VMPAttack/vm_analysis_context.hpp:149
↓ 35 callersMethodpush
Matches for a PUSH %reg instruction. Constraints: %reg: the register pushed.
VMPAttack/analysis_context.hpp:249
↓ 23 callersFunctionregister_base_equal
Determines whether or not the register's bases are equal. e.g. RAX == AH, as base( RAX ) == AL, and base( AH ) == AL.
VMPAttack/instruction_utilities.hpp:10
↓ 7 callersMethodid
Match via instruction id. Optionally returns a non-owning pointer to the instruction.
VMPAttack/analysis_context.hpp:233
↓ 6 callersMethodmov_reg_reg
Templates for double register-operand instructions.
VMPAttack/analysis_context.hpp:348
↓ 5 callersMethodalign
Aligns a given uint64_t to the given modulus.
VMPAttack/analysis_context.hpp:219
↓ 5 callersMethodfetch_vip
Matches for instructions that fetch memory from the vip stream. Constraints: reg: the register the memory is stored in. size: the size of the mem
VMPAttack/vm_analysis_context.hpp:108
↓ 5 callersMethodstore_vsp
Matches for instructions that stores memory into the virtual stack. Constraints: src: the source register. Comparison via base. size: the size of
VMPAttack/vm_analysis_context.hpp:197
↓ 4 callersMethodadvance
Computes the next handler from the bridge, updating the context in respect. Returns the next handler's rva.
VMPAttack/vm_bridge.cpp:9
↓ 4 callersMethodcompute
Compute the output for a given input, by applying each operation on said input.
VMPAttack/arithmetic_expression.cpp:8
↓ 4 callersMethodnot_reg
Templates for single register-operand instructions.
VMPAttack/analysis_context.hpp:301
↓ 4 callersMethodrecord_encryption
Generates an arithmetic expression for the given register, advancing the stream to wherever the encryption sequence ends.
VMPAttack/vm_analysis_context.hpp:333
↓ 3 callersMethoddisassemble
Disassembles at the effective address, negotating jumps according to the flags.
VMPAttack/disassembler.cpp:7
↓ 3 callersFunctionget_largest_for_arch
Gets the register's largest architecture equivalent.
VMPAttack/instruction_utilities.hpp:17
↓ 3 callersMethodoperand_type
VMPAttack/instruction.hpp:42
↓ 3 callersMethodrecord_expression
Initializes the analysis context's arithmetic expression, and starts recording the given register's arithmetic operations. Then invokes the provided f
VMPAttack/analysis_context.hpp:159
↓ 3 callersMethodset_flow
Matches an instruction that loads the "flow" (ie. the rip of the current instruction) into a register. Constraints: reg: the register the flow is w
VMPAttack/analysis_context.hpp:828
↓ 2 callersMethodadd_vsp
Matches for an instruction that adds an immediate value to the VSP register. Constraints: imm: the immediate value added.
VMPAttack/vm_analysis_context.hpp:49
↓ 2 callersMethodbase
Get the stream base
VMPAttack/instruction_stream.hpp:49
↓ 2 callersFunctiondynamic_size_cast
VMPAttack/arithmetic_utilities.hpp:8
↓ 2 callersMethodfetch_memory
Matches for a mov / movzx of memory at a register into another register. Constraints: dst: the destination register. src: the memory source regi
VMPAttack/analysis_context.hpp:452
↓ 2 callersMethodget_handle
Getter to the handle.
VMPAttack/disassembler.hpp:76
↓ 2 callersMethodis_uncond_jmp
VMPAttack/instruction.hpp:44
↓ 2 callersMethodoperand_count
Useful utilities.
VMPAttack/instruction.hpp:40
↓ 2 callersFunctionoperation_desc_from_instruction
Fetches the appropriate arithmetic operation descriptor for the given instruction, or nullptr otherwise.
VMPAttack/arithmetic_operations.hpp:139
↓ 2 callersMethodrva
Disassembler bases instructions via RVA, thus base == rva.
VMPAttack/instruction_stream.hpp:56
↓ 2 callersMethodstore_ctx
Matches for instructions that stores memory into the virtual context, optionally offsetted by a register. Constraints: src: the source register. Co
VMPAttack/vm_analysis_context.hpp:288
↓ 2 callersMethodto_string
Converts the instruction to human-readable format.
VMPAttack/vm_instruction.cpp:10
↓ 2 callersMethodupdate_reg
Matches for instructions that either increment or decrement the a given register. via ADD or SUB instructions, using a immedaite value. Constraints: i
VMPAttack/analysis_context.hpp:574
↓ 1 callersMethodadd_handler
Adds a handler to the vm_instace.
VMPAttack/vm_instance.cpp:33
↓ 1 callersMethodadd_reg_reg
VMPAttack/analysis_context.hpp:350
↓ 1 callersMethodallocate_stack
Matches an instruction that allocates the VM's stack by subtracting and immediate value from rsp. Constraints: imm: the immediate valued subtracted
VMPAttack/analysis_context.hpp:869
↓ 1 callersMethodand_reg_reg
VMPAttack/analysis_context.hpp:354
↓ 1 callersMethodbegin_encryption
Matches for an instruction which begins an encryption/obfuscation sequence, by XORing the given register by the rolling key. Constraints: reg: the
VMPAttack/analysis_context.hpp:705
↓ 1 callersMethoddecode
Decodes and updates the context to construct a vm_instruction describing the instruction's details.
VMPAttack/vm_handler.cpp:10
↓ 1 callersMethoddisassembly_simple
Disassembles at the offset from the base, simply disassembling every instruction in order.
VMPAttack/disassembler.cpp:89
↓ 1 callersMethoddiv_reg
VMPAttack/analysis_context.hpp:302
↓ 1 callersMethodfetch_ctx
Matches for instructions that fetch memory from the virtual context, optionally displaced by a register. Constraints: dst: the destination register
VMPAttack/vm_analysis_context.hpp:238
↓ 1 callersMethodfetch_encrypted_vip
Matches an instruction that fetches the encrypted vip ("stub") from the stack. Constraints: reg: the register the stub is written into. offset: the
VMPAttack/analysis_context.hpp:788
↓ 1 callersMethodfind_handler
Attempts to find a handler, given an rva.
VMPAttack/vm_instance.cpp:46
↓ 1 callersMethodgeneric_reg_imm
Matches for a generic instruciton with 1 register and 1 immediate operand. Constraints: id: the instruction's id. reg: the first operand's regi
VMPAttack/analysis_context.hpp:417
↓ 1 callersMethodgeneric_reg_reg
Matches for a generic instruciton with 2 register operands. If argument match_bases is true, reigster comparison is done via bases. Otherwise, it is d
VMPAttack/analysis_context.hpp:314
↓ 1 callersMethodget_regs_accessed
Returns a vector of registers this instruction writes to and reads from. Read is returned in the first part of the pair, Written in the second.
VMPAttack/instruction.cpp:48
↓ 1 callersMethodidiv_reg
VMPAttack/analysis_context.hpp:303
↓ 1 callersMethodimul_reg
VMPAttack/analysis_context.hpp:305
↓ 1 callersMethodinitialize_context
Creates an initial vm_context for this instance, given an entry stub and the image's load delta. The created vm_context is initialized at the first ha
VMPAttack/vm_instance.cpp:9
↓ 1 callersMethodis_branch
VMPAttack/instruction.hpp:46
↓ 1 callersMethodlift
Performs the specified lifting job, returning a raw, unoptimized vtil routine.
VMPAttack/vmpattack.cpp:492
↓ 1 callersFunctionmap_image
VMPAttack/vmpattack.cpp:129
↓ 1 callersMethodmatch
VMPAttack/analysis_context.hpp:71
↓ 1 callersMethodmul_reg
VMPAttack/analysis_context.hpp:304
↓ 1 callersMethodnext
Advances the stream, incrementing index and returning the instruction ptr.
VMPAttack/instruction_stream.cpp:8
↓ 1 callersMethodoffset_reg
Matches for instructions that offset the given register via either a lea or add instruction. Constraints: id: the id of the matched instru
VMPAttack/analysis_context.hpp:619
↓ 1 callersMethodor_reg_reg
VMPAttack/analysis_context.hpp:353
↓ 1 callersMethodprefix
VMPAttack/instruction.hpp:48
↓ 1 callersMethodpush_memory
Matches for a push of memory at a register Constraints: src: the memory source register. size: the size of the source.
VMPAttack/analysis_context.hpp:537
↓ 1 callersMethodrcl_reg_reg
VMPAttack/analysis_context.hpp:355
↓ 1 callersMethodrcr_reg_reg
VMPAttack/analysis_context.hpp:356
↓ 1 callersFunctionread_file
Still hate c++
VMPAttack/main.cpp:26
↓ 1 callersMethodscan_for_vmentry
Scans the given code section for VM entries. Returns a list of results, of [root rva, lifting_job]
VMPAttack/vmpattack.cpp:551
↓ 1 callersMethodshl_reg_reg
VMPAttack/analysis_context.hpp:351
↓ 1 callersMethodshld_reg_reg_reg
Templates for triple register-operand instructions.
VMPAttack/analysis_context.hpp:409
↓ 1 callersMethodshr_reg_reg
VMPAttack/analysis_context.hpp:352
↓ 1 callersMethodshrd_reg_reg_reg
VMPAttack/analysis_context.hpp:410
↓ 1 callersMethodsimple_track_registers
VMPAttack/analysis_context.hpp:142
↓ 1 callersMethodstore_memory
Matches for a mov / movzx of a register into memory at another register. Constraints: dst: the destination register. src: the memory source regi
VMPAttack/analysis_context.hpp:497
↓ 1 callersMethodtrack_register_pops
VMPAttack/analysis_context.hpp:195
↓ 1 callersMethodtrack_register_pushes
VMPAttack/analysis_context.hpp:178
↓ 1 callersMethodxor_reg_reg
VMPAttack/analysis_context.hpp:349
Methodadd_instance
Adds the specified vm_instance to the cached list, exersizing thread-safe behaviour in doing so.
VMPAttack/vmpattack.cpp:41
Methodanalysis_context
Construct the analysis_context via an instruction_stream pointer. The pointer must stay valid for the lifetime of the object.
VMPAttack/analysis_context.hpp:134
Methodanalyze_entry_stub
Performs an analysis on the specified vmentry stub rva, returning relevant information.
VMPAttack/vmpattack.cpp:503
Methodarithmetic_operation
Construct via backing descriptor and additional operand vector.
VMPAttack/arithmetic_operation.hpp:23
Methodarithmetic_operation_desc
Constructor.
VMPAttack/arithmetic_operation_desc.hpp:39
Methodcast
VMPAttack/analysis_context.hpp:212
Methoddisassembler
Cannot be copied or moved. Only one disassembler can exist per thread.
VMPAttack/disassembler.hpp:57
Methodend_encryption
Matches for an instruction which ends an encryption/obfuscation sequence, by either 1) pushing the rolling key for it to later be XORed, or 2) directl
VMPAttack/analysis_context.hpp:722
Methodfetch
VMPAttack/vm_context.hpp:37
Methodfrom_context
Construct vm_instruction from its handler and a context.
VMPAttack/vm_instruction.cpp:49
Methodfrom_instruction
Construct via instruction and descriptor. If construction failed, returns empty object.
VMPAttack/arithmetic_operation.cpp:9
Methodfrom_instruction_stream
Attempts to construct a vm_instance from the VMEntry instruction stream. If fails, returns empty {}.
VMPAttack/vm_instance.cpp:70
Methodfrom_instruction_stream
Construct a vm_handler from its instruction stream. Updates vm_state if required by the descriptor. If the operation fails, returns empty {}.
VMPAttack/vm_handler.cpp:37
Methodfrom_instruction_stream
Construct a vm_bridge from an initial state and its instruction stream. If the operation fails, returns empty {}.
VMPAttack/vm_bridge.cpp:40
Methodgeneric_reg
Matches for a generic instruciton with 1 register operand. If argument match_bases is true, reigster comparison is done via bases. Otherwise, it is do
VMPAttack/analysis_context.hpp:276
Methodgeneric_reg_reg_reg
Matches for a generic instruciton with 3 register operands. If argument match_bases is true, reigster comparison is done via bases. Otherwise, it is d
VMPAttack/analysis_context.hpp:366
Methodinstruction
Copy constructor.
VMPAttack/instruction.hpp:26
Methodinstruction_stream
Default constructor / move / copy.
VMPAttack/instruction_stream.hpp:36
Methodis_cond_jump
Is the instruction a conditional jump?
VMPAttack/instruction.cpp:27
Methodis_jmp
Determines whether this instruction is any type of jump.
VMPAttack/instruction.cpp:8
Methodlift_block
Lifts a single basic block, given the appropriate information.
VMPAttack/vmpattack.cpp:169
Methodlift_internal
Performs the specified lifting job, returning a raw, unoptimized vtil routine. Optionally takes in a previous block to fork. If null, creates a new bl
VMPAttack/vmpattack.cpp:56
Methodlifting_job
Constructor.
VMPAttack/vmentry.hpp:21
Methodlookup_instance
Attempts to find a vm_instance for the specified rva. If succeeded, returns said instance. Otherwise returns nullptr.
VMPAttack/vmpattack.cpp:17
Functionmain
VMPAttack/main.cpp:53
Functionmain
VMPAttack_Tester/VMPAttack_Tester.cpp:24
Methodoffset_vip
Matches for instructions that offset the vip register via either a lea or add instruction. Constraints: id: the id of the matched instruct
VMPAttack/vm_analysis_context.hpp:87
Methodprocess
Processes the instruction, updating any properties that the instruction may change.
VMPAttack/analysis_context.cpp:10
Methodreset
Resets index to 0
VMPAttack/instruction_stream.hpp:63
Methodscan_result
Constructor.
VMPAttack/vmentry.hpp:40
Methodset_vip
Matches for an explicitly matched mov of another register into the vip register. Constraints: reg: the register that is mov'ed into vip.
VMPAttack/vm_analysis_context.hpp:34
next →1–100 of 116, ranked by callers