This commit is contained in:
trickster0
2021-09-30 19:32:38 +03:00
parent e754be322c
commit b2a0d3e05d
4 changed files with 51 additions and 0 deletions
+9
View File
@@ -0,0 +1,9 @@
[package]
name = "Named_Pipe_Client"
version = "0.1.0"
edition = "2018"
author = "trickster0"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
winapi = {version = "0.3.9", features = ["winnt","fileapi","minwindef"]}
+16
View File
@@ -0,0 +1,16 @@
use winapi::um::winnt::{HANDLE,LPCSTR,GENERIC_READ,GENERIC_WRITE};
use winapi::um::fileapi::{CreateFileA,OPEN_EXISTING,ReadFile};
use std::ptr::null_mut;
fn main() {
unsafe {
let mut bytes_read : u32 = 0;
let mut buffer_read = vec![0u8;1024];
let pipe_name : LPCSTR = "\\\\.\\pipe\\rusttestpipe\0".as_ptr() as *const i8;
let clientpipe : HANDLE = CreateFileA(pipe_name,GENERIC_READ | GENERIC_WRITE,0,null_mut(),OPEN_EXISTING,0,null_mut());
ReadFile(clientpipe,buffer_read.as_mut_ptr() as *mut winapi::ctypes::c_void,buffer_read.len() as u32,&mut bytes_read,null_mut());
println!("{}",String::from_utf8_lossy(&mut buffer_read));
}
}
+9
View File
@@ -0,0 +1,9 @@
[package]
name = "Named_Pipe_Server"
version = "0.1.0"
edition = "2018"
author = "trickster0"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
winapi = {version = "0.3.9", features = ["winbase","winnt","namedpipeapi","fileapi","winbase"]}
+17
View File
@@ -0,0 +1,17 @@
use winapi::um::winbase::CreateNamedPipeA;
use winapi::um::winnt::{HANDLE,LPCSTR};
use winapi::um::namedpipeapi::ConnectNamedPipe;
use winapi::um::fileapi::WriteFile;
use winapi::um::winbase::{PIPE_ACCESS_DUPLEX,PIPE_TYPE_MESSAGE};
use std::ptr::null_mut;
fn main() {
let mut bytes_written : u32 = 0;
let message = "RUST IS GOOD FOR OFSEC\0" ;
let pipe_name : LPCSTR = "\\\\.\\pipe\\rusttestpipe\0".as_ptr() as *const i8;
let server_pipe : HANDLE = unsafe {CreateNamedPipeA(pipe_name,PIPE_ACCESS_DUPLEX,PIPE_TYPE_MESSAGE,1,2048,2048,0,null_mut())};
unsafe {ConnectNamedPipe(server_pipe,null_mut())};
println!("Sending message to Pipe");
unsafe {WriteFile(server_pipe,message.as_ptr() as *const winapi::ctypes::c_void,message.len() as u32,&mut bytes_written,null_mut())};
}