Hi. First, i want to do a quick introduction about me to avoid conflicts. I work on the security area, more specifically as exploit writer and as reverse engineer. So, im not trying to implement none of this things in a comercial driver.
Well, with that said, i wanna ask you driver’s gurus, how can i suspend the execution of a process from kernel mode? This is my scenary. Im executing code in kernel mode, and i have almost the whole SSDT hooked and a userland process talking with a driver who constantly keep checking the hooks.
Im facing a few approaches to do this… i started disassembling NtTerminateProcess, NtSuspendProcess, etc… to see what they do, and to try to implement it by myself and i’ve saw that Ps/KeSuspendThread seems to be a nice option cause i can get the ETHREAD of the process that i want.
So, has somebody something to say about this to help me in this approach?
And, if anybody knows, or can think another way (not too big, im doing all this with an asm bytechar) to stop the process execution (i dont mind if it crashes)'ll be very valuable to me.
PS:Just remember that i cant use most of the native Apis, so i have to do it by hand (i could parse ntoskrnl.exe directly from disk, but thats not a good idea in this sittuation)
Thank you in advance
.aLS