Console Application 也可以使用API,但很多解决方案都只针对GUI 或者有消息键的进程。许多方法对Console Application都会失效,下面介绍一个方法可以针对所有进程,包括CONSOLE
不使用CreateRemoteThread或Windows STD Hook方法进入目标进程
1.创建暂停的目标进程。
2.修改新建的目标进程入口指令。
2.1方法1,申请一块目标进程的内存块,使用开源的代码长度测试 测试首指令长度,将入口首址改为跳转,将需要的指令写入新的内存块,最后不要忘了把原来入口的首指令放在未尾,再跳转到原入口的下一首指令。
2.2方法2,修改ss,在目标栈中增加指令,使其正确加载及恢复入口。
(方法1比较直观,方法2只要构建合适的数据,实现复杂度可以降低许多)
3.恢复运行目标进程主线程。
截获NTCreateProcess实现上面构思会比想象的更通用。