59 lines
1.2 KiB
Protocol Buffer
59 lines
1.2 KiB
Protocol Buffer
import "DatabaseCampaignMessage.proto";
|
|
|
|
message L4SysProtoMsg {
|
|
|
|
// experiment types
|
|
enum ExperimentType {
|
|
GPRFLIP = 1;
|
|
RATFLIP = 2;
|
|
IDCFLIP = 3;
|
|
ALUINSTR = 4;
|
|
MEM = 5;
|
|
}
|
|
|
|
// registers
|
|
enum RegisterType {
|
|
EAX = 1;
|
|
ECX = 2;
|
|
EDX = 3;
|
|
EBX = 4;
|
|
ESP = 5;
|
|
EBP = 6;
|
|
ESI = 7;
|
|
EDI = 8;
|
|
}
|
|
|
|
// results
|
|
// make these optional to reduce overhead for server->client communication
|
|
enum ResultType {
|
|
DONE = 1;
|
|
INCOMPLETE = 2;
|
|
TIMEOUT = 3;
|
|
WRONG = 4;
|
|
UNKNOWN = 5;
|
|
}
|
|
|
|
required DatabaseCampaignMessage fsppilot = 1;
|
|
required ExperimentType exp_type = 2;
|
|
|
|
repeated group Result = 3 {
|
|
// parameters
|
|
required int32 instr_offset = 1;
|
|
required int32 bit_offset = 2 [(sql_primary_key) = true];
|
|
|
|
optional RegisterType register_offset = 3;
|
|
|
|
// instruction pointer where injection was done
|
|
optional int32 injection_ip = 4;
|
|
// result type, see above
|
|
optional ResultType resulttype = 5;
|
|
// result data, depending on resulttype (see source code)
|
|
optional int32 resultdata = 6;
|
|
// generated output
|
|
optional string output = 7;
|
|
// optional textual description of what happened
|
|
optional string details = 8;
|
|
optional int32 injection_address = 9;
|
|
}
|
|
}
|