forked from jan/mem_edit
		
	linux: wait for process before detach, and send SIGCONT
I had issues with the ptrace call failing because the process had not yet stopped from SIGSTOP. From this stackoverflow answer, it seems that you can use waitpid to wait until the process is actually stopped. In python, this is exposed as os.waitpid. https://stackoverflow.com/questions/20510300/ptrace-detach-fails-after-ptrace-cont-with-errno-esrch#20525326 Additionally, the process was left frozen. I send a SIGCONT to continue the process after the detach, so that it isn't left stopped.
This commit is contained in:
		
							parent
							
								
									f3154e443d
								
							
						
					
					
						commit
						46e9456fd4
					
				@ -58,7 +58,9 @@ class Process(AbstractProcess):
 | 
			
		||||
 | 
			
		||||
    def close(self):
 | 
			
		||||
        os.kill(self.pid, signal.SIGSTOP)
 | 
			
		||||
        os.waitpid(self.pid, 0)
 | 
			
		||||
        ptrace(ptrace_commands['PTRACE_DETACH'], self.pid, 0, 0)
 | 
			
		||||
        os.kill(self.pid, signal.SIGCONT)
 | 
			
		||||
        self.pid = None
 | 
			
		||||
 | 
			
		||||
    def write_memory(self, base_address: int, write_buffer: ctypes_buffer_t):
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user