Skip to content

Commit f23a38f

Browse files
committed
better unfinished unloading
1 parent e8ef519 commit f23a38f

File tree

2 files changed

+10
-15
lines changed

2 files changed

+10
-15
lines changed

src/client/hooks.rs

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ use std::char::from_u32;
1212
use windows::{
1313
core::{BOOL, PCSTR},
1414
Win32::{
15-
Foundation::{GetLastError, HWND, LPARAM, LRESULT, WPARAM},
15+
Foundation::{CloseHandle, GetLastError, HWND, LPARAM, LRESULT, WPARAM},
1616
Graphics::{
1717
Gdi::HDC,
1818
OpenGL::{glGetIntegerv, GL_VIEWPORT},
@@ -194,7 +194,14 @@ unsafe extern "system" fn hooked_wndproc(
194194
return LRESULT(0);
195195
}
196196
WI_DETACH => {
197-
println!("unloading\r\n");
197+
let mut mem_manager = MEMORY_MANAGER.lock().unwrap();
198+
unsafe {
199+
unhook_wgl_swap_buffers();
200+
if mem_manager.is_mapped() {
201+
mem_manager.close_map();
202+
}
203+
unhook_wndproc();
204+
};
198205
//unload_self_dll();
199206
return LRESULT(0);
200207
}

src/shared/windows.rs

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,7 @@ use windows::{
4545
},
4646
};
4747

48-
use crate::{
49-
client::hooks::{start_thread, unhook_wgl_swap_buffers, unhook_wndproc},
50-
simba::target::TARGET,
51-
};
48+
use crate::{client::hooks::start_thread, simba::target::TARGET};
5249

5350
use super::memory::{MemoryManager, MEMORY_MANAGER};
5451

@@ -89,14 +86,6 @@ fn client_main(hinst_dll: HINSTANCE, pid: u32, hwnd: HWND, reason: u32) -> BOOL
8986
},
9087
0 => {
9188
println!("[WaspInput]: Detached.\r\n");
92-
let mut mem_manager = MEMORY_MANAGER.lock().unwrap();
93-
unsafe {
94-
unhook_wndproc();
95-
unhook_wgl_swap_buffers();
96-
if mem_manager.is_mapped() {
97-
mem_manager.close_map();
98-
}
99-
};
10089
TRUE
10190
}
10291
_ => FALSE,
@@ -168,7 +157,6 @@ pub unsafe fn get_proc_address(name: *const c_char) -> *mut c_void {
168157

169158
pub unsafe fn inject(module_path: &str, pid: u32, hwnd: u64) -> bool {
170159
MemoryManager::create_map();
171-
172160
remap_memory(hwnd);
173161

174162
let process_handle = match OpenProcess(PROCESS_ALL_ACCESS, false, pid) {

0 commit comments

Comments
 (0)