Skip to content

Commit

Permalink
update vivisect backend with new size metadata for instructions (UNTE…
Browse files Browse the repository at this point in the history
…STED)
  • Loading branch information
andrej committed Jan 12, 2025
1 parent 92161db commit 90f3daf
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 6 deletions.
2 changes: 1 addition & 1 deletion plugins/vivisect-broker/Broker.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,7 @@ class VivisectBroker : public Broker {
IndexMap[i] = TotalNumTraces;

auto &InstrAddrCat = Registry[MD_InstrAddr];
InstrAddrCat[TotalNumTraces] = MDInstrAddr { insn.addr() };
InstrAddrCat[TotalNumTraces] = MDInstrAddr { insn.addr(), insn.size() };

if (insn.has_memory_access()) {
auto MemAccess = insn.memory_access();
Expand Down
5 changes: 3 additions & 2 deletions plugins/vivisect-broker/emulator.proto
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,8 @@ message EmulatorActions {
message Instruction {
bytes opcode = 1;
uint64 addr = 2;
optional MemoryAccess memory_access = 3;
optional BranchFlow branch_flow = 4;
uint64 size = 3;
optional MemoryAccess memory_access = 4;
optional BranchFlow branch_flow = 5;
}
}
7 changes: 4 additions & 3 deletions plugins/vivisect-broker/grpc_client/grpc_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ def record_instruction(self, op, bytez):
is_branch_ctr = op.opcode in BCTR_INSTR
is_branch_lr = op.opcode in BLR_INSTR
insn_addr = op.va
insn_size = op.size

addr = None
width = None
Expand Down Expand Up @@ -56,13 +57,13 @@ def record_instruction(self, op, bytez):
branch_arg = emulator_pb2.EmulatorActions.BranchFlow(
is_mispredict=is_mispredict)

insn_arg = emulator_pb2.EmulatorActions.Instruction(opcode=opcode, addr=insn_addr)
insn_arg = emulator_pb2.EmulatorActions.Instruction(opcode=opcode, addr=insn_addr, size=insn_size)
if mem_arg is not None:
insn_arg = emulator_pb2.EmulatorActions.Instruction(opcode=opcode, addr=insn_addr,
insn_arg = emulator_pb2.EmulatorActions.Instruction(opcode=opcode, addr=insn_addr, size=insn_size,
memory_access=mem_arg)

if branch_arg is not None:
insn_arg = emulator_pb2.EmulatorActions.Instruction(opcode=opcode, addr=insn_addr,
insn_arg = emulator_pb2.EmulatorActions.Instruction(opcode=opcode, addr=insn_addr, size=insn_size,
branch_flow=branch_arg)

action_arg = emulator_pb2.EmulatorActions(instructions=[insn_arg])
Expand Down

0 comments on commit 90f3daf

Please sign in to comment.