Work on adding a puppet for the server side aswell

This commit is contained in:
Michael Mikovsky
2025-08-24 10:59:46 -06:00
parent 5f38d85e6c
commit 319c0fc222
13 changed files with 255 additions and 19 deletions
+7 -2
View File
@@ -10,6 +10,7 @@ use std::{
use log::{error, info, trace};
use nix::libc::{self, MAP_ANONYMOUS, MAP_PRIVATE, PROT_READ, PROT_WRITE, user_regs_struct};
use nix::sys::ptrace;
use nix::unistd::Pid;
use subprocess::{Popen, PopenConfig, Redirection};
use syscall_lib::Syscall;
@@ -61,7 +62,7 @@ fn handle_connection(stream: &mut TcpStream) -> Result<(), std::io::Error> {
let syscall = Syscall::decode(&buf).unwrap();
trace!("{:?}", syscall);
// trace!("{:?}", syscall);
// let result = match decoded {
// Syscall::Write(..) => 0,
@@ -82,7 +83,9 @@ fn handle_connection(stream: &mut TcpStream) -> Result<(), std::io::Error> {
}
};
let result = result.rax;
// ptrace:;
let result = result.gs as i64;
// let result: u64 = result.unwrap().rax;
@@ -90,6 +93,8 @@ fn handle_connection(stream: &mut TcpStream) -> Result<(), std::io::Error> {
// let result = 0;
// ptrace::
trace!("{:?} -> {:?}", syscall, result);
let bytes: [u8; 8] = result.to_be_bytes();
+1 -1
View File
@@ -196,7 +196,7 @@ impl UserProcess {
r8: u64,
r9: u64,
) -> HostResult<user_regs_struct> {
log::trace!("UserProcess {} Syscall: {:#?}", self.pid, sys_call);
// log::trace!("UserProcess {} Syscall: {:#?}", self.pid, sys_call);
let syscall_instruction = [0x0Fu8, 0x05u8];
// Cache original registers, original instruction pointer (rip), and the original instructions