Dniel97
1e31f76d3e
Fix 32bit SetFilePointer
2025-12-21 18:31:02 +01:00
octocat
252465b23f
Fix deadlock in uart_handle_read() ( #2 )
...
The loop this commit removed tries to sleep and wait for the IO DLL
to write something to uart->readable. It doesn't work for two reasons:
1. When uart_handle_read() is sleeping, its caller holds the lock
for the resource, meaning nothing can be writen, and it always times out.
2. Even without the deadlock problem, due to timer resolution limit
on Windows, Sleep(1) does not actually sleep 1ms.
Instead it sleeps over 15ms by default.
The symptom is a noticable input lag, and lost inputs.
This commit tries to fix that.
Reviewed-on: https://gitea.tendokyu.moe/TeamTofuShop/capnhook/pulls/2
Co-authored-by: octocat <git.rascal570@passinbox.com >
Co-committed-by: octocat <git.rascal570@passinbox.com >
2025-10-12 10:07:25 +00:00
Hay1tsme
dafd0aa336
Implement ilufang's ERROR_IO_PENDING for empty serial reads
2025-02-09 04:50:10 -05:00
Hay1tsme
4633c51d58
remove precompiled headers
2025-02-04 11:05:07 -05:00
Hay1tsme
5e44ceea22
properly set link in procaddr hook (thanks Treeskin!)
2025-01-27 02:01:57 -05:00
Hay1tsme
cbffaed804
fix my_GetCommModemStatus
2025-01-20 03:16:51 -05:00
Kevin Trocolli
b595e4bf8a
implement GEEKiDoS' procaddr hook fix
2024-11-09 12:45:14 -05:00
Kevin Trocolli
f060250e1b
Merge pull request #1 from akechi-haruka/serialhook
...
serial: fix flow flags
2024-10-10 12:08:55 -04:00
Haruka
47cb508a05
serial: fix flow flags
2024-10-10 11:20:53 +02:00
Hay1tsme
1122b83a29
uart: add modem IOCTLS
2024-08-20 11:29:32 -04:00
Kevin Trocolli
09306229f1
iohook: add hook for GetCommModemStatus
2024-02-21 00:33:25 -05:00
Kevin Trocolli
dbdcd61b3a
procaddr: fix what I broke with the last push
2023-12-10 19:23:58 -05:00
Kevin Trocolli
24b2667ba3
procaddr: add const
2023-12-10 19:08:56 -05:00
Kevin Trocolli
6b732bfbd6
add io and serial to procaddr table
2023-12-10 18:59:02 -05:00
Kevin Trocolli
aaeed25995
impl procaddr hook
2023-12-10 18:41:10 -05:00
Kevin Trocolli
888d068d58
allow iohook and serial_hook to land on DLLs loaded after initialization
2023-11-30 02:18:50 -05:00
Matt Bilker
f0e5f82028
hook/iohook.c: Fix race condition at during iohook initialization
...
- If another DLL being loaded spawns a thread that begins doing I/O,
then there is a race condition where `hook_table_apply` is still
applying the hooks and has not returned yet but the hooked functions
are called by those other threads. This causes the assert on
`iohook_initted` to trigger.
- The easy fix is to always enter the mutex to ensure the hooks have
been applied and function addresses for `CreateFileW` and
`SetFilePointerEx` have been resolved.
2021-10-25 11:20:48 -04:00
Decaf Code
69f7e3b48c
hook/iohook.c: Add iohook_open_nul_fd()
...
This provides a replacement for iohook_open_dummy_fd() whose error
handling is more consistent with the rest of this library.
2019-11-03 10:57:33 -05:00
Decaf Code
f084531454
hook/iobuf.c: Add readers and writers for 64-bit uints
2019-10-18 19:05:37 -04:00
Decaf Code
51e674b75a
Remove -Wall from CFLAGS
...
Meson has its own mechanisms for configuring warning levels.
2019-10-18 19:05:06 -04:00
Decaf Code
16e187651e
hook/hr.c: Split out hr_to_win32_error()
2019-09-04 13:29:25 -04:00
Decaf Code
8d2a67f64d
s/__amd64/_M_AMD64/
...
Newer MSVC seems to use a different preprocessor symbol to denote
64-bit builds.
2019-05-02 19:37:11 -04:00
Decaf Code
6fad9ad7f7
Use Meson get_argument_syntax()
...
Newer versions of Meson introduce a more reliable way to detect
the compiler's expected command-line argument style.
2019-05-01 21:00:59 -04:00
Decaf Code
dfb7fbf219
Remove PCH source file
...
Newer versions of Meson create this automatically for MSVC builds.
2019-05-01 21:00:11 -04:00
Decaf Code
2ed2be349e
hook/table.c: Add hacks to deal with Win32 apisets
2019-03-03 19:46:30 -05:00
Decaf Code
8846e4d46f
inject: Detect remote LoadLibrary failure
2019-03-03 19:46:30 -05:00
Decaf Code
c5f08113a5
Tag v0.2.2
...
I forgot to update the Meson version for the past few releases.
whoops.
2018-11-23 14:05:53 -05:00
Decaf Code
1b99fb16b8
hook/iohook.c: Remove ioctl asserts
...
These assertions don't seem to hold for certain real ioctl errors.
2018-11-23 13:58:25 -05:00
Decaf Code
b58369f9e1
inject/options.c: Fix signedness mismatch
2018-11-23 13:58:25 -05:00
Decaf Code
bfee3db861
Fix MSVC compatibility issues
...
Project now builds in Visual Studio 2017, probably earlier versions
too as long as they support enough of C99.
2018-11-23 13:58:25 -05:00
Decaf Code
d985965639
Fix non-PCH build
2018-11-23 13:46:49 -05:00
Decaf Code
2f7df12fc8
hook/iohook.c: Fix DeviceIoControl error path
2018-11-20 19:49:38 -05:00
Decaf Code
7526c7274a
hook/table.c: Populate links from first match
...
The loaded module list is kept in the order the modules are first
loaded. Using the first loaded module (i.e. the EXE) will help
ensure that multiple hook DLLs stack correctly. Previously the link
was taken from the most-recently loaded module.
2018-11-20 13:17:34 -05:00
Decaf Code
a956987fe0
hook/process.c: Fix 64-bit startup hijack
...
Start address goes in RCX in 64-bit mode, EAX in 32-bit mode.
2018-11-13 20:06:40 -05:00
Matt Bilker
3df87b35e3
hook/table.c: Import assert.h
2018-11-13 20:05:56 -05:00
Decaf Code
de528c108f
hooklib/uart.c: Add emulated UART
2018-11-10 11:24:57 -05:00
Decaf Code
6465ab6f09
hooklib/serial.c: Add iohook wrappers for Win32 UART ops
2018-11-10 11:24:57 -05:00
Decaf Code
74697b7cb3
hooklib: Add empty static library
2018-11-10 11:24:57 -05:00
Decaf Code
71bbe49615
inject: Add initial DLL injector tool
2018-11-10 11:24:57 -05:00
Decaf Code
ceea0677a4
hook/args.c: Add command line recovery helper
2018-11-10 11:24:57 -05:00
Decaf Code
d77e6d15cf
hook/com-proxy.c: Add COM proxying mechanism
2018-11-10 11:24:57 -05:00
Decaf Code
73c893168c
hook/iohook.c: Add Win32 I/O interception mechanism
2018-11-10 11:24:57 -05:00
Decaf Code
80c1f73f85
hook/iobuf.c: Add IO buffer descriptors
2018-11-08 14:08:36 -05:00
Decaf Code
6a80ed1875
hook/process.c: Add process startup interceptor
2018-11-08 14:08:36 -05:00
Decaf Code
7d3203b6b1
hook/hr.c: Add HRESULT helpers
2018-11-08 14:08:36 -05:00
Decaf Code
a5b3a5c48b
hook/table.c: Add IAT hooking mechanism
2018-11-07 11:51:14 -05:00
Decaf Code
04b1fa8dfe
hook/pe.c: Add helpers for manipulating loaded PEs
2018-11-07 11:51:14 -05:00
Decaf Code
b4926fd597
hook/peb.c: Add Process Environment Block helpers
2018-11-01 18:18:44 -04:00
Decaf Code
0c5dd7e193
hook: Add empty static library
2018-11-01 18:18:44 -04:00
Decaf Code
499e9ca976
Add precompiled header
2018-11-01 18:18:44 -04:00