Fix sync_r2_output for Windows

This commit is contained in:
Flawed
2023-01-19 01:11:52 -08:00
parent 1b52c7aff8
commit 1a3677a98d
2 changed files with 8 additions and 5 deletions
+1 -3
View File
@@ -216,9 +216,7 @@ def minor_patch_diff(old_exe, new_exe):
opcodes_found = find_opcode_matches(old_opcodes_db, new_opcodes_db) opcodes_found = find_opcode_matches(old_opcodes_db, new_opcodes_db)
opcodes_object = [] opcodes_object = []
for k, v in enumerate(opcodes_found): for (old, new) in opcodes_found:
old, new = v
opcodes_object.append( opcodes_object.append(
{ {
"old": [hex(o) for o in old], "old": [hex(o) for o in old],
+7 -2
View File
@@ -26,10 +26,15 @@ def sync_r2_output(r2):
Read stuff from the process pipe until it stops being stupid. Read stuff from the process pipe until it stops being stupid.
""" """
def set_blocking(fileno, blocking):
if hasattr(os, "set_blocking"):
os.set_blocking(fileno, blocking)
time.sleep(1) time.sleep(1)
os.set_blocking(r2.process.stdout.fileno(), False) set_blocking(r2.process.stdout.fileno(), False)
p = r2.process.stdout.read(1) p = r2.process.stdout.read(1)
os.set_blocking(r2.process.stdout.fileno(), True) set_blocking(r2.process.stdout.fileno(), True)
output = r2.cmd(f"?vi 123").strip() output = r2.cmd(f"?vi 123").strip()
if output != "123": if output != "123":
raise Exception("R2 state never got synced") raise Exception("R2 state never got synced")