ejschwartz commited on
Commit
812a13e
·
1 Parent(s): 00d3961

Clarify objdump options

Browse files
Files changed (1) hide show
  1. main.py +6 -9
main.py CHANGED
@@ -21,13 +21,13 @@ def trim(str, n):
21
  def trim_objdump(str):
22
  return trim(str, 7)
23
 
24
- def disassemble_bytes(byte_data, architecture):
25
  with tempfile.NamedTemporaryFile(suffix=".bin", delete=False) as temp_bin_file:
26
  temp_bin_file.write(byte_data)
27
  temp_bin_file_name = temp_bin_file.name
28
 
29
  disassembly = subprocess.run(
30
- ["objdump", "-D", "-b", "binary", "-m", architecture, temp_bin_file_name],
31
  capture_output=True,
32
  text=True
33
  ).stdout
@@ -86,14 +86,10 @@ def compile(compiler, flags, source):
86
  else:
87
  return None, compile_output, disassembly
88
 
89
-
90
-
91
-
92
-
93
- def predict(target_bytes, source, compiler, flags, architecture):
94
  target_bytes = bytes.fromhex(target_bytes)
95
  compiled_bytes, compile_output, compiled_disassembly = compile(compiler, flags, source)
96
- target_disassembly = disassemble_bytes(target_bytes, architecture)
97
 
98
  if compiled_bytes is not None:
99
  return (
@@ -132,7 +128,8 @@ def run():
132
  ),
133
  gr.Textbox(label="Compiler", value="g++"),
134
  gr.Textbox(label="Compiler Flags", value="-O2"),
135
- gr.Textbox(label="Architecture (for disassembler)", value="i386"),
 
136
  ],
137
  outputs=[
138
  gr.Textbox(label="Compiled bytes"),
 
21
  def trim_objdump(str):
22
  return trim(str, 7)
23
 
24
+ def disassemble_bytes(byte_data, architecture, options):
25
  with tempfile.NamedTemporaryFile(suffix=".bin", delete=False) as temp_bin_file:
26
  temp_bin_file.write(byte_data)
27
  temp_bin_file_name = temp_bin_file.name
28
 
29
  disassembly = subprocess.run(
30
+ ["objdump", "-D", "-b", "binary", "-m", architecture, "-M", options, temp_bin_file_name],
31
  capture_output=True,
32
  text=True
33
  ).stdout
 
86
  else:
87
  return None, compile_output, disassembly
88
 
89
+ def predict(target_bytes, source, compiler, flags, disasm_arch, disasm_options):
 
 
 
 
90
  target_bytes = bytes.fromhex(target_bytes)
91
  compiled_bytes, compile_output, compiled_disassembly = compile(compiler, flags, source)
92
+ target_disassembly = disassemble_bytes(target_bytes, disasm_arch)
93
 
94
  if compiled_bytes is not None:
95
  return (
 
128
  ),
129
  gr.Textbox(label="Compiler", value="g++"),
130
  gr.Textbox(label="Compiler Flags", value="-O2"),
131
+ gr.Textbox(label="Architecture (objdump -m)", value="i386"),
132
+ gr.Textbox(label="Disassembler options (objdump -M)", value="x86-64")
133
  ],
134
  outputs=[
135
  gr.Textbox(label="Compiled bytes"),