From e7728c413298025077054187d57e6a7783b3de38 Mon Sep 17 00:00:00 2001 From: Henri Verbeet Date: Wed, 21 Sep 2011 21:01:43 +0200 Subject: [PATCH] server: Try writing to /proc//mem in write_process_memory(). --- server/ptrace.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/server/ptrace.c b/server/ptrace.c index 51157ab6a82..6c1448143a4 100644 --- a/server/ptrace.c +++ b/server/ptrace.c @@ -463,6 +463,25 @@ int write_process_memory( struct process *process, client_ptr_t ptr, data_size_t set_error( STATUS_ACCESS_DENIED ); goto done; } + + if (len > 3) + { + char procmem[24]; + int fd; + + sprintf( procmem, "/proc/%u/mem", process->unix_pid ); + if ((fd = open( procmem, O_WRONLY )) != -1) + { + ssize_t r = pwrite( fd, src, size, ptr ); + close( fd ); + if (r == size) + { + ret = 1; + goto done; + } + } + } + /* first word is special */ if (len > 1) {