From 43d766925292353ecbcc4d162898a5e1dd613e64 Mon Sep 17 00:00:00 2001 From: Mark Mossberg Date: Tue, 11 Apr 2017 14:21:18 -0400 Subject: [PATCH] Create stderr file, also watch sys_writev (#129) --- manticore/core/executor.py | 4 ++++ manticore/models/linux.py | 1 + 2 files changed, 5 insertions(+) diff --git a/manticore/core/executor.py b/manticore/core/executor.py index 846a8e4..e8718ce 100644 --- a/manticore/core/executor.py +++ b/manticore/core/executor.py @@ -492,10 +492,14 @@ class Executor(object): file(self._getFilename('test_%08x.syscalls'%test_number),'a').write(repr(state.model.syscall_trace)) stdout = '' + stderr = '' for sysname, fd, data in state.model.syscall_trace: if sysname in ('_transmit', '_write') and fd == 1: stdout += ''.join(map(str, data)) + if sysname in ('_transmit', '_write') and fd == 2: + stderr += ''.join(map(str, data)) file(self._getFilename('test_%08x.stdout'%test_number),'a').write(stdout) + file(self._getFilename('test_%08x.stderr'%test_number),'a').write(stderr) # Save STDIN solution stdin_file = 'test_{:08x}.stdin'.format(test_number) diff --git a/manticore/models/linux.py b/manticore/models/linux.py index 25105f5..65f19c4 100644 --- a/manticore/models/linux.py +++ b/manticore/models/linux.py @@ -1311,6 +1311,7 @@ class Linux(object): data += Operators.CHR(cpu.read_int(buf + j, 8)) logger.debug("WRITEV(%r, %r, %r) -> <%r> (size:%r)"%(fd, buf, size, data, len(data))) self.files[fd].write(data) + self.syscall_trace.append(("_write", fd, data)) total+=size return total