diff --git a/Ghidra/Test/DebuggerIntegrationTest/src/test.slow/java/agent/dbgeng/rmi/AbstractDbgEngTraceRmiTest.java b/Ghidra/Test/DebuggerIntegrationTest/src/test.slow/java/agent/dbgeng/rmi/AbstractDbgEngTraceRmiTest.java index 6a2ffc04fa..81618b2bb1 100644 --- a/Ghidra/Test/DebuggerIntegrationTest/src/test.slow/java/agent/dbgeng/rmi/AbstractDbgEngTraceRmiTest.java +++ b/Ghidra/Test/DebuggerIntegrationTest/src/test.slow/java/agent/dbgeng/rmi/AbstractDbgEngTraceRmiTest.java @@ -60,9 +60,9 @@ public abstract class AbstractDbgEngTraceRmiTest extends AbstractGhidraHeadedDeb from ghidratrace.client import Schedule """; // Connecting should be the first thing the script does, so use a tight timeout. - protected static final int CONNECT_TIMEOUT_MS = 3000; - protected static final int TIMEOUT_SECONDS = SystemUtilities.isInTestingBatchMode() ? 10 : 300; - protected static final int QUIT_TIMEOUT_MS = 1000; + protected static final int CONNECT_TIMEOUT_MS = 6000; + protected static final int TIMEOUT_SECONDS = SystemUtilities.isInTestingBatchMode() ? 20 : 300; + protected static final int QUIT_TIMEOUT_MS = 2000; /** Some snapshot likely to exceed the latest */ protected static final long SNAP = 100; diff --git a/Ghidra/Test/DebuggerIntegrationTest/src/test.slow/java/agent/x64dbg/rmi/AbstractX64dbgTraceRmiTest.java b/Ghidra/Test/DebuggerIntegrationTest/src/test.slow/java/agent/x64dbg/rmi/AbstractX64dbgTraceRmiTest.java index f522a5d938..b8097e0e4b 100644 --- a/Ghidra/Test/DebuggerIntegrationTest/src/test.slow/java/agent/x64dbg/rmi/AbstractX64dbgTraceRmiTest.java +++ b/Ghidra/Test/DebuggerIntegrationTest/src/test.slow/java/agent/x64dbg/rmi/AbstractX64dbgTraceRmiTest.java @@ -59,17 +59,17 @@ public abstract class AbstractX64dbgTraceRmiTest extends AbstractGhidraHeadedDeb from x64dbg_automate.models import * """; // Connecting should be the first thing the script does, so use a tight timeout. - protected static final int CONNECT_TIMEOUT_MS = 3000; - protected static final int TIMEOUT_SECONDS = SystemUtilities.isInTestingBatchMode() ? 10 : 300; - protected static final int QUIT_TIMEOUT_MS = 1000; + protected static final int CONNECT_TIMEOUT_MS = 6000; + protected static final int TIMEOUT_SECONDS = SystemUtilities.isInTestingBatchMode() ? 20 : 300; + protected static final int QUIT_TIMEOUT_MS = 2000; /** Some snapshot likely to exceed the latest */ protected static final long SNAP = 100; protected static boolean didSetupPython = false; - public static final String NOTEPAD = "C:\\\\Windows\\\\notepad.exe"; - public static final String NETSTAT = "C:\\\\Windows\\\\System32\\\\netstat.exe"; + public final String NOTEPAD = DummyProc.which("notepad").replace("\\", "\\\\"); + public final String NETSTAT = DummyProc.which("netstat").replace("\\", "\\\\"); public static final String INSTRUMENT_STATE = """ import sys @@ -151,10 +151,21 @@ public abstract class AbstractX64dbgTraceRmiTest extends AbstractGhidraHeadedDeb pythonPath = Paths.get(DummyProc.which("python")); } - assertTrue(pythonPath.toFile().exists()); + assertTrue("Python must be installed.", pythonPath.toFile().exists()); outFile = Files.createTempFile("pydbgout", null); errFile = Files.createTempFile("pydbgerr", null); } + + @Before + public void killAllx64dbgProcesses() throws IOException, InterruptedException { + ProcessBuilder pb = new ProcessBuilder("taskkill", "/IM", "x64dbg.exe", "/F"); + + pb.redirectErrorStream(true); + Process process = pb.start(); + process.waitFor(); + + // don't care about the exit code. + } protected void addAllDebuggerPlugins() throws PluginException { PluginsConfiguration plugConf = new PluginsConfiguration() { diff --git a/Ghidra/Test/DebuggerIntegrationTest/src/test.slow/java/agent/x64dbg/rmi/X64dbgCommandsTest.java b/Ghidra/Test/DebuggerIntegrationTest/src/test.slow/java/agent/x64dbg/rmi/X64dbgCommandsTest.java index e23426e226..11101eb710 100644 --- a/Ghidra/Test/DebuggerIntegrationTest/src/test.slow/java/agent/x64dbg/rmi/X64dbgCommandsTest.java +++ b/Ghidra/Test/DebuggerIntegrationTest/src/test.slow/java/agent/x64dbg/rmi/X64dbgCommandsTest.java @@ -107,10 +107,10 @@ public class X64dbgCommandsTest extends AbstractX64dbgTraceRmiTest { runThrowError(addr -> """ %s ghidra_trace_connect('%s') - ghidra_trace_create('C:\\\\Windows\\\\notepad.exe', wait=True) + ghidra_trace_create('%s', wait=True) util.terminate_session() quit() - """.formatted(PREAMBLE, addr)); + """.formatted(PREAMBLE, addr, NOTEPAD)); try (ManagedDomainObject mdo = openDomainObject("/New Traces/x64dbg/notepad.exe")) { tb = new ToyDBTraceBuilder((Trace) mdo.get()); assertEquals("x86:LE:64:default", @@ -140,14 +140,14 @@ public class X64dbgCommandsTest extends AbstractX64dbgTraceRmiTest { addr -> """ %s ghidra_trace_connect('%s') - ghidra_trace_create('C:\\\\Windows\\\\notepad.exe', start_trace=False, wait=True) + ghidra_trace_create('%s', start_trace=False, wait=True) util.set_convenience_variable('ghidra-language','Toy:BE:64:default') util.set_convenience_variable('ghidra-compiler','default') ghidra_trace_start('myToy') util.terminate_session() quit() """ - .formatted(PREAMBLE, addr)); + .formatted(PREAMBLE, addr, NOTEPAD)); DomainFile dfMyToy = env.getProject().getProjectData().getFile("/New Traces/x64dbg/myToy"); assertNotNull(dfMyToy); try (ManagedDomainObject mdo = new ManagedDomainObject(dfMyToy, false, false, monitor)) { @@ -164,11 +164,11 @@ public class X64dbgCommandsTest extends AbstractX64dbgTraceRmiTest { runThrowError(addr -> """ %s ghidra_trace_connect('%s') - ghidra_trace_create('C:\\\\Windows\\\\notepad.exe', wait=True) + ghidra_trace_create('%s', wait=True) ghidra_trace_stop() util.terminate_session() quit() - """.formatted(PREAMBLE, addr)); + """.formatted(PREAMBLE, addr, NOTEPAD)); DomainFile dfNotepad = env.getProject().getProjectData().getFile("/New Traces/x64dbg/notepad.exe"); assertNotNull(dfNotepad); @@ -190,7 +190,7 @@ public class X64dbgCommandsTest extends AbstractX64dbgTraceRmiTest { print('---Connect---') ghidra_trace_info() print('---Create---') - ghidra_trace_create('C:\\\\Windows\\\\notepad.exe', wait=True) + ghidra_trace_create('%s', wait=True) print('---Start---') ghidra_trace_info() ghidra_trace_stop() @@ -201,7 +201,7 @@ public class X64dbgCommandsTest extends AbstractX64dbgTraceRmiTest { ghidra_trace_info() util.terminate_session() quit() - """.formatted(PREAMBLE, addr); + """.formatted(PREAMBLE, addr, NOTEPAD); }); assertEquals(""" @@ -235,7 +235,7 @@ public class X64dbgCommandsTest extends AbstractX64dbgTraceRmiTest { print('---Import---') ghidra_trace_info_lcsp() print('---Create---') - ghidra_trace_create('C:\\\\Windows\\\\notepad.exe', start_trace=False, wait=True) + ghidra_trace_create('%s', start_trace=False, wait=True) print('---File---') ghidra_trace_info_lcsp() util.set_convenience_variable('ghidra-language','Toy:BE:64:default') @@ -247,7 +247,7 @@ public class X64dbgCommandsTest extends AbstractX64dbgTraceRmiTest { util.terminate_session() quit() """ - .formatted(PREAMBLE)); + .formatted(PREAMBLE, NOTEPAD)); assertEquals(""" Selected Ghidra language: x86:LE:64:default @@ -272,14 +272,14 @@ public class X64dbgCommandsTest extends AbstractX64dbgTraceRmiTest { runThrowError(addr -> """ %s ghidra_trace_connect('%s') - ghidra_trace_create('C:\\\\Windows\\\\notepad.exe', wait=True) + ghidra_trace_create('%s', wait=True) ghidra_trace_txstart('Create snapshot') ghidra_trace_new_snap('Scripted snapshot') ghidra_trace_txcommit() ghidra_trace_stop() util.terminate_session() quit() - """.formatted(PREAMBLE, addr)); + """.formatted(PREAMBLE, addr, NOTEPAD)); try (ManagedDomainObject mdo = openDomainObject("/New Traces/x64dbg/notepad.exe")) { tb = new ToyDBTraceBuilder((Trace) mdo.get()); assertEquals(0, tb.trace.getTimeManager().getAllSnapshots().size()); @@ -288,14 +288,14 @@ public class X64dbgCommandsTest extends AbstractX64dbgTraceRmiTest { runThrowError(addr -> """ %s ghidra_trace_connect('%s') - ghidra_trace_create('C:\\\\Windows\\\\notepad.exe', wait=True) + ghidra_trace_create('%s', wait=True) ghidra_trace_txstart('Create snapshot') ghidra_trace_new_snap('Scripted snapshot') ghidra_trace_txcommit() ghidra_trace_save() util.terminate_session() quit() - """.formatted(PREAMBLE, addr)); + """.formatted(PREAMBLE, addr, NOTEPAD)); try (ManagedDomainObject mdo = openDomainObject("/New Traces/x64dbg/notepad.exe")) { tb = new ToyDBTraceBuilder((Trace) mdo.get()); assertEquals(1, tb.trace.getTimeManager().getAllSnapshots().size()); @@ -307,13 +307,13 @@ public class X64dbgCommandsTest extends AbstractX64dbgTraceRmiTest { runThrowError(addr -> """ %s ghidra_trace_connect('%s') - ghidra_trace_create('C:\\\\Windows\\\\notepad.exe', wait=True) + ghidra_trace_create('%s', wait=True) ghidra_trace_txstart('Create snapshot') ghidra_trace_new_snap('Scripted snapshot') ghidra_trace_txcommit() util.terminate_session() quit() - """.formatted(PREAMBLE, addr)); + """.formatted(PREAMBLE, addr, NOTEPAD)); try (ManagedDomainObject mdo = openDomainObject("/New Traces/x64dbg/notepad.exe")) { tb = new ToyDBTraceBuilder((Trace) mdo.get()); TraceSnapshot snapshot = Unique.assertOne(tb.trace.getTimeManager().getAllSnapshots()); @@ -327,7 +327,7 @@ public class X64dbgCommandsTest extends AbstractX64dbgTraceRmiTest { String out = runThrowError(addr -> """ %s ghidra_trace_connect('%s') - ghidra_trace_create('C:\\\\Windows\\\\notepad.exe', wait=True) + ghidra_trace_create('%s', wait=True) ghidra_trace_txstart('Create snapshot') ghidra_trace_new_snap('Scripted snapshot') pc = util.get_pc() @@ -342,7 +342,7 @@ public class X64dbgCommandsTest extends AbstractX64dbgTraceRmiTest { ghidra_trace_kill() util.terminate_session() quit() - """.formatted(PREAMBLE, addr)); + """.formatted(PREAMBLE, addr, NOTEPAD)); try (ManagedDomainObject mdo = openDomainObject("/New Traces/x64dbg/notepad.exe")) { tb = new ToyDBTraceBuilder((Trace) mdo.get()); long snap = Unique.assertOne(tb.trace.getTimeManager().getAllSnapshots()).getKey(); @@ -365,7 +365,7 @@ public class X64dbgCommandsTest extends AbstractX64dbgTraceRmiTest { String out = runThrowError(addr -> """ %s ghidra_trace_connect('%s') - ghidra_trace_create('C:\\\\Windows\\\\notepad.exe', wait=True) + ghidra_trace_create('%s', wait=True) ghidra_trace_txstart('Create snapshot') ghidra_trace_new_snap('Scripted snapshot') pc = util.get_pc() @@ -378,7 +378,7 @@ public class X64dbgCommandsTest extends AbstractX64dbgTraceRmiTest { ghidra_trace_kill() util.terminate_session() quit() - """.formatted(PREAMBLE, addr)); + """.formatted(PREAMBLE, addr, NOTEPAD)); try (ManagedDomainObject mdo = openDomainObject("/New Traces/x64dbg/notepad.exe")) { tb = new ToyDBTraceBuilder((Trace) mdo.get()); long snap = Unique.assertOne(tb.trace.getTimeManager().getAllSnapshots()).getKey(); @@ -398,7 +398,7 @@ public class X64dbgCommandsTest extends AbstractX64dbgTraceRmiTest { String out = runThrowError(addr -> """ %s ghidra_trace_connect('%s') - ghidra_trace_create('C:\\\\Windows\\\\notepad.exe', wait=True) + ghidra_trace_create('%s', wait=True) ghidra_trace_txstart('Create snapshot') ghidra_trace_new_snap('Scripted snapshot') pc = util.get_pc() @@ -413,7 +413,7 @@ public class X64dbgCommandsTest extends AbstractX64dbgTraceRmiTest { ghidra_trace_kill() util.terminate_session() quit() - """.formatted(PREAMBLE, addr)); + """.formatted(PREAMBLE, addr, NOTEPAD)); try (ManagedDomainObject mdo = openDomainObject("/New Traces/x64dbg/notepad.exe")) { tb = new ToyDBTraceBuilder((Trace) mdo.get()); long snap = Unique.assertOne(tb.trace.getTimeManager().getAllSnapshots()).getKey(); @@ -438,7 +438,7 @@ public class X64dbgCommandsTest extends AbstractX64dbgTraceRmiTest { runThrowError(addr -> """ %s ghidra_trace_connect('%s') - ghidra_trace_create('C:\\\\Windows\\\\notepad.exe', wait=True) + ghidra_trace_create('%s', wait=True) util.dbg.cmd('rax=0xdeadbeef') ghidra_trace_txstart('Create snapshot') ghidra_trace_new_snap('Scripted snapshot') @@ -447,7 +447,7 @@ public class X64dbgCommandsTest extends AbstractX64dbgTraceRmiTest { ghidra_trace_kill() util.terminate_session() quit() - """.formatted(PREAMBLE, addr, count)); + """.formatted(PREAMBLE, addr, NOTEPAD, count)); try (ManagedDomainObject mdo = openDomainObject("/New Traces/x64dbg/notepad.exe")) { tb = new ToyDBTraceBuilder((Trace) mdo.get()); long snap = Unique.assertOne(tb.trace.getTimeManager().getAllSnapshots()).getKey(); @@ -474,7 +474,7 @@ public class X64dbgCommandsTest extends AbstractX64dbgTraceRmiTest { runThrowError(addr -> """ %s ghidra_trace_connect('%s') - ghidra_trace_create('C:\\\\Windows\\\\notepad.exe', wait=True) + ghidra_trace_create('%s', wait=True) util.dbg.cmd('rax=0xdeadbeef') ghidra_trace_txstart('Create snapshot') ghidra_trace_new_snap('Scripted snapshot') @@ -484,7 +484,7 @@ public class X64dbgCommandsTest extends AbstractX64dbgTraceRmiTest { ghidra_trace_kill() util.terminate_session() quit() - """.formatted(PREAMBLE, addr, count)); + """.formatted(PREAMBLE, addr, NOTEPAD, count)); // The spaces will be left over, but the values should be zeroed try (ManagedDomainObject mdo = openDomainObject("/New Traces/x64dbg/notepad.exe")) { tb = new ToyDBTraceBuilder((Trace) mdo.get()); @@ -561,7 +561,7 @@ public class X64dbgCommandsTest extends AbstractX64dbgTraceRmiTest { runThrowError(addr -> """ %s ghidra_trace_connect('%s') - ghidra_trace_create('C:\\\\Windows\\\\notepad.exe', wait=True) + ghidra_trace_create('%s', wait=True) ghidra_trace_txstart('Create Object') ghidra_trace_create_obj('Test.Objects[1]') ghidra_trace_insert_obj('Test.Objects[1]') @@ -571,7 +571,7 @@ public class X64dbgCommandsTest extends AbstractX64dbgTraceRmiTest { ghidra_trace_kill() util.terminate_session() quit() - """.formatted(PREAMBLE, addr)); + """.formatted(PREAMBLE, addr, NOTEPAD)); try (ManagedDomainObject mdo = openDomainObject("/New Traces/x64dbg/notepad.exe")) { tb = new ToyDBTraceBuilder((Trace) mdo.get()); TraceObject object = tb.trace.getObjectManager() @@ -588,7 +588,7 @@ public class X64dbgCommandsTest extends AbstractX64dbgTraceRmiTest { runThrowError(addr -> """ %s ghidra_trace_connect('%s') - ghidra_trace_create('C:\\\\Windows\\\\notepad.exe', wait=True) + ghidra_trace_create('%s', wait=True) ghidra_trace_txstart('Create Object') ghidra_trace_create_obj('Test.Objects[1]') ghidra_trace_insert_obj('Test.Objects[1]') @@ -598,7 +598,7 @@ public class X64dbgCommandsTest extends AbstractX64dbgTraceRmiTest { ghidra_trace_kill() util.terminate_session() quit() - """.formatted(PREAMBLE, addr, extra, x64dbgExpr, gtype)); + """.formatted(PREAMBLE, addr, NOTEPAD, extra, x64dbgExpr, gtype)); try (ManagedDomainObject mdo = openDomainObject("/New Traces/x64dbg/notepad.exe")) { tb = new ToyDBTraceBuilder((Trace) mdo.get()); TraceObject object = tb.trace.getObjectManager() @@ -740,7 +740,7 @@ public class X64dbgCommandsTest extends AbstractX64dbgTraceRmiTest { runThrowError(addr -> """ %s ghidra_trace_connect('%s') - ghidra_trace_create('C:\\\\Windows\\\\notepad.exe', wait=True) + ghidra_trace_create('%s', wait=True) ghidra_trace_txstart('Create Object') ghidra_trace_create_obj('Test.Objects[1]') ghidra_trace_insert_obj('Test.Objects[1]') @@ -753,7 +753,7 @@ public class X64dbgCommandsTest extends AbstractX64dbgTraceRmiTest { ghidra_trace_kill() util.terminate_session() quit() - """.formatted(PREAMBLE, addr)); + """.formatted(PREAMBLE, addr, NOTEPAD)); try (ManagedDomainObject mdo = openDomainObject("/New Traces/x64dbg/notepad.exe")) { tb = new ToyDBTraceBuilder((Trace) mdo.get()); TraceObject object = tb.trace.getObjectManager() @@ -800,7 +800,7 @@ public class X64dbgCommandsTest extends AbstractX64dbgTraceRmiTest { String out = runThrowError(addr -> """ %s ghidra_trace_connect('%s') - ghidra_trace_create('C:\\\\Windows\\\\notepad.exe', wait=True) + ghidra_trace_create('%s', wait=True) ghidra_trace_txstart('Create Object') ghidra_trace_create_obj('Test.Objects[1]') ghidra_trace_insert_obj('Test.Objects[1]') @@ -833,7 +833,7 @@ public class X64dbgCommandsTest extends AbstractX64dbgTraceRmiTest { ghidra_trace_kill() util.terminate_session() quit() - """.formatted(PREAMBLE, addr)); + """.formatted(PREAMBLE, addr, NOTEPAD)); try (ManagedDomainObject mdo = openDomainObject("/New Traces/x64dbg/notepad.exe")) { tb = new ToyDBTraceBuilder((Trace) mdo.get()); assertEquals(""" @@ -862,7 +862,7 @@ public class X64dbgCommandsTest extends AbstractX64dbgTraceRmiTest { String out = runThrowError(addr -> """ %s ghidra_trace_connect('%s') - ghidra_trace_create('C:\\\\Windows\\\\notepad.exe', wait=True) + ghidra_trace_create('%s', wait=True) ghidra_trace_txstart('Create Object') ghidra_trace_create_obj('Test.Objects[1]') ghidra_trace_insert_obj('Test.Objects[1]') @@ -874,7 +874,7 @@ public class X64dbgCommandsTest extends AbstractX64dbgTraceRmiTest { ghidra_trace_kill() util.terminate_session() quit() - """.formatted(PREAMBLE, addr)); + """.formatted(PREAMBLE, addr, NOTEPAD)); try (ManagedDomainObject mdo = openDomainObject("/New Traces/x64dbg/notepad.exe")) { tb = new ToyDBTraceBuilder((Trace) mdo.get()); assertEquals(""" @@ -889,7 +889,7 @@ public class X64dbgCommandsTest extends AbstractX64dbgTraceRmiTest { runThrowError(addr -> """ %s ghidra_trace_connect('%s') - ghidra_trace_create('C:\\\\Windows\\\\notepad.exe', wait=True) + ghidra_trace_create('%s', wait=True) #set language c++ ghidra_trace_txstart('Create Object') ghidra_trace_create_obj('Test.Objects[1]') @@ -899,7 +899,7 @@ public class X64dbgCommandsTest extends AbstractX64dbgTraceRmiTest { ghidra_trace_kill() util.terminate_session() quit() - """.formatted(PREAMBLE, addr)); + """.formatted(PREAMBLE, addr, NOTEPAD)); try (ManagedDomainObject mdo = openDomainObject("/New Traces/x64dbg/notepad.exe")) { assertSame(mdo.get(), traceManager.getCurrentTrace()); assertEquals("Test.Objects[1]", @@ -912,7 +912,7 @@ public class X64dbgCommandsTest extends AbstractX64dbgTraceRmiTest { String out = runThrowError(addr -> """ %s ghidra_trace_connect('%s') - ghidra_trace_create('C:\\\\Windows\\\\notepad.exe', wait=True) + ghidra_trace_create('%s', wait=True) ghidra_trace_txstart('Tx') pc = util.get_pc() ghidra_trace_putmem(pc, 16) @@ -923,7 +923,7 @@ public class X64dbgCommandsTest extends AbstractX64dbgTraceRmiTest { ghidra_trace_kill() util.terminate_session() quit() - """.formatted(PREAMBLE, addr)); + """.formatted(PREAMBLE, addr, NOTEPAD)); try (ManagedDomainObject mdo = openDomainObject("/New Traces/x64dbg/notepad.exe")) { tb = new ToyDBTraceBuilder((Trace) mdo.get()); // Not concerned about specifics, so long as disassembly occurs @@ -990,7 +990,7 @@ public class X64dbgCommandsTest extends AbstractX64dbgTraceRmiTest { addr -> """ %s ghidra_trace_connect('%s') - ghidra_trace_create('C:\\\\Windows\\\\notepad.exe', wait=True) + ghidra_trace_create('%s', wait=True) pc = util.get_pc() util.dbg.client.clear_breakpoint(None) util.dbg.client.clear_hardware_breakpoint(None) @@ -1003,7 +1003,7 @@ public class X64dbgCommandsTest extends AbstractX64dbgTraceRmiTest { util.terminate_session() quit() """ - .formatted(PREAMBLE, addr)); + .formatted(PREAMBLE, addr, NOTEPAD)); try (ManagedDomainObject mdo = openDomainObject("/New Traces/x64dbg/notepad.exe")) { tb = new ToyDBTraceBuilder((Trace) mdo.get()); List procSBreakLocVals = tb.trace.getObjectManager() @@ -1035,7 +1035,7 @@ public class X64dbgCommandsTest extends AbstractX64dbgTraceRmiTest { addr -> """ %s ghidra_trace_connect('%s') - ghidra_trace_create('C:\\\\Windows\\\\notepad.exe', wait=True) + ghidra_trace_create('%s', wait=True) ghidra_trace_txstart('Tx') pc = util.get_pc() util.dbg.client.clear_hardware_breakpoint(None) @@ -1048,7 +1048,7 @@ public class X64dbgCommandsTest extends AbstractX64dbgTraceRmiTest { util.terminate_session() quit() """ - .formatted(PREAMBLE, addr)); + .formatted(PREAMBLE, addr, NOTEPAD)); try (ManagedDomainObject mdo = openDomainObject("/New Traces/x64dbg/notepad.exe")) { tb = new ToyDBTraceBuilder((Trace) mdo.get()); List procBreakVals = tb.trace.getObjectManager() @@ -1079,14 +1079,14 @@ public class X64dbgCommandsTest extends AbstractX64dbgTraceRmiTest { runThrowError(addr -> """ %s ghidra_trace_connect('%s') - ghidra_trace_create('C:\\\\Windows\\\\notepad.exe', wait=True) + ghidra_trace_create('%s', wait=True) ghidra_trace_txstart('Tx') ghidra_trace_put_environment() ghidra_trace_txcommit() ghidra_trace_kill() util.terminate_session() quit() - """.formatted(PREAMBLE, addr)); + """.formatted(PREAMBLE, addr, NOTEPAD)); try (ManagedDomainObject mdo = openDomainObject("/New Traces/x64dbg/notepad.exe")) { tb = new ToyDBTraceBuilder((Trace) mdo.get()); // Assumes LLDB on Linux amd64 @@ -1105,14 +1105,14 @@ public class X64dbgCommandsTest extends AbstractX64dbgTraceRmiTest { runThrowError(addr -> """ %s ghidra_trace_connect('%s') - ghidra_trace_create('C:\\\\Windows\\\\notepad.exe', wait=True) + ghidra_trace_create('%s', wait=True) ghidra_trace_txstart('Tx') ghidra_trace_put_regions() ghidra_trace_txcommit() ghidra_trace_kill() util.terminate_session() quit() - """.formatted(PREAMBLE, addr)); + """.formatted(PREAMBLE, addr, NOTEPAD)); try (ManagedDomainObject mdo = openDomainObject("/New Traces/x64dbg/notepad.exe")) { tb = new ToyDBTraceBuilder((Trace) mdo.get()); // Would be nice to control / validate the specifics @@ -1127,14 +1127,14 @@ public class X64dbgCommandsTest extends AbstractX64dbgTraceRmiTest { runThrowError(addr -> """ %s ghidra_trace_connect('%s') - ghidra_trace_create('C:\\\\Windows\\\\notepad.exe', wait=True) + ghidra_trace_create('%s', wait=True) ghidra_trace_txstart('Tx') ghidra_trace_put_modules() ghidra_trace_txcommit() ghidra_trace_kill() util.terminate_session() quit() - """.formatted(PREAMBLE, addr)); + """.formatted(PREAMBLE, addr, NOTEPAD)); try (ManagedDomainObject mdo = openDomainObject("/New Traces/x64dbg/notepad.exe")) { tb = new ToyDBTraceBuilder((Trace) mdo.get()); // Would be nice to control / validate the specifics @@ -1150,14 +1150,14 @@ public class X64dbgCommandsTest extends AbstractX64dbgTraceRmiTest { runThrowError(addr -> """ %s ghidra_trace_connect('%s') - ghidra_trace_create('C:\\\\Windows\\\\notepad.exe', wait=True) + ghidra_trace_create('%s', wait=True) ghidra_trace_txstart('Tx') ghidra_trace_put_threads() ghidra_trace_txcommit() ghidra_trace_kill() util.terminate_session() quit() - """.formatted(PREAMBLE, addr)); + """.formatted(PREAMBLE, addr, NOTEPAD)); try (ManagedDomainObject mdo = openDomainObject("/New Traces/x64dbg/notepad.exe")) { tb = new ToyDBTraceBuilder((Trace) mdo.get()); // Would be nice to control / validate the specifics