■ ■ ■ ■ ■ ■
ThreadStackSpoofer/main.cpp
| skipped 4 lines |
5 | 5 | | HookedSleep g_hookedSleep; |
6 | 6 | | |
7 | 7 | | |
8 | | - | void WINAPI MySleep(DWORD _dwMilliseconds) |
| 8 | + | void WINAPI MySleep(DWORD dwMilliseconds) |
9 | 9 | | { |
10 | | - | const register DWORD dwMilliseconds = _dwMilliseconds; |
11 | | - | |
12 | 10 | | // |
13 | 11 | | // Locate this stack frame's return address. |
14 | 12 | | // |
| skipped 13 lines |
28 | 26 | | |
29 | 27 | | log("\n===> MySleep(", std::dec, dwMilliseconds, ")\n"); |
30 | 28 | | |
| 29 | + | // |
31 | 30 | | // Perform sleep emulating originally hooked functionality. |
| 31 | + | // |
32 | 32 | | ::SleepEx(dwMilliseconds, false); |
33 | 33 | | |
| 34 | + | // |
34 | 35 | | // Restore original thread's call stack. |
| 36 | + | // |
35 | 37 | | log("[<] Restoring original return address..."); |
36 | 38 | | *overwrite = origReturnAddress; |
37 | 39 | | } |
| skipped 243 lines |