c++ - 将sleep()注入到外部进程的函数中

原文 标签 c++ c dll inject detours

我知道如何将一个DLL注入到一个正在运行的进程中,以及如何利用进程内部使用的函数。

void__stdcall remoteMethod(unsigned short id)
{
typedef void (__stdcall *pFunctionAddress)(unsigned short);
pFunctionAddress pMyFunction = (pFunctionAddress)(0xCAFEBABE);
pMyFunction(id);
}

现在,我想在运行过程中添加一个睡眠()到一个现有的方法——这是程序的主要循环,并且不停止一秒,并且使用所有的处理能力。
我知道,像DeTrices这样的框架,我可以做一个蹦床函数,它调用我的函数,然后调用原来的函数——但是我的问题是while(1)循环在外部过程的函数中。所以我知道循环开始的偏移量-然后我想首先调用sleep(),然后继续循环的正常路径。
到目前为止,我看到的唯一选择是二进制编辑程序,但这不是一个好的解决方案。
有什么建议吗?谢谢

最佳答案

我觉得你在这里太可爱了。只需在一个定时器上交替调用暂停线程/重新读取。我知道这很难看,但我怀疑你不会参加任何选美比赛。

相关文章:

c++ - Qt中具有多线程的事件处理程序

c - 了解c中的extern关键字

c - MinGW“ stdio.h:没有这样的文件或目录”

c - 派生一个长时间运行的进程,避免不得不调用waitpid清理僵尸?

c++ - 如何在boost :: adjacency_list中置换节点?

c++ - 共享库符号名称

c# - 调试C ++ DLL时找不到调试信息

c - 在cygwin命令行中将.out文件转换为.dll

java - 从JNI中的本机代码退出会杀死Java应用程序

c++ - Mixins与C ++中的面向策略设计有何不同