草庐IT

进程注入

全部标签

linux - 使用硬件定时器是实现进程调度的唯一方法吗?

我读到操作系统使用以下方法实现调度:CPU必须有一个硬件定时器,每X次触发一次中断毫秒。一旦定时器中断触发,定时器中断处理程序将执行使CPU开始执行另一个进程的指令(或者我想我应该说的另一个线程)。我的问题是:我刚才描述的方法是实现调度的唯一方法吗? 最佳答案 没有。基本上有两种在操作系统中实现多线程的基本方法:1)抢先式多任务处理通过抢占式多任务处理,您可以使用中断源来触发任务切换。大多数情况下,人们会在定时器ISR(中断服务例程)内进行任务切换,以防执行长时间运行的任务并且没有发生其他硬件事件。万一发生了其他硬件事件,还可以进行

c++ - 从另一个进程调用函数

我提前为我的英语道歉:D如何在知道指向进程的指针的情况下调用进程中的函数?我试过这个:进程.cpp:DWORDpid;HWNDhwnd;HANDLEphandle;voidAttach(){hwnd=FindWindow(NULL,L"GTA:SA:MP");if(!hwnd){cout主要.cpp:intmain(){std::cout我得到以下异常:Anexceptionwasthrownattheaddress0x006EF7B6inwh_mta.exe:0xC0000005:accessviolationduringexecutionat0x006EF7B6.为什么会这样?如何

c - 确定进程是否已死 - 通过 PID

我有两种不同的方法来检查进程是否仍在运行:1)使用GetExitCodeProcess()2)使用CreateToolhelp32Snapshot()遍历进程列表并检查PID现在,在这两种情况下,我仍然知道我用TerminateProcess终止的进程仍然存在,即使它不是。有没有办法通过PID明确知道进程是活着还是死了?谢谢! 最佳答案 不要将PID用于这样的事情。PID被重复使用并且具有非常的范围,具有非常高的冲突概率。换句话说,您会发现一个正在运行的进程,但它是一个不同进程。 关于c

python - 从子进程启动时如何停止 Bottle Web 服务器

我想嵌入伟大的Bottleweb框架到一个小应用程序(第一个目标是Windows操作系统)。由于子进程模块,此应用启动了bottle网络服务器。importsubprocessp=subprocess.Popen('pythonwebsrv.py')Bottle应用程序非常简单@route("/")defindex():returntemplate('index')run(reloader=True)它将默认网络服务器启动到Windows控制台。除了我必须按Ctrl-C来关闭bottle网络服务器之外,一切似乎都还不错。我希望主应用程序在关闭时终止网络服务器。我找不到办法做到这一点(不

c++ - 如何扫描另一个进程内存以查找特定字符串后面的内容?

我想通过另一个进程扫描当前正在运行的native应用程序的整个堆。例如,我想知道此进程内存中ASCII序列“test”的所有实例之后是什么(在这种情况下,我将扫描“test”并继续阅读)。我尝试用谷歌搜索更多信息,但没有找到太多信息:我找到了ReadProcessMemory这看起来很有趣,但我怎么知道进程分配的内存地址呢? 最佳答案 尝试VirtualQueryEx.如果您发现您正在访问其他进程中的大量内存,请考虑使用CreateRemoveThread(samplecode)。这将允许您将自己的DLL注入(inject)到其他进

c++ - 是否可以删除由Windows下的进程打开的文件?

出于测试和模拟目的,我想删除我的进程当前打开的文件。CreateFiledocs声明可以在允许打开句柄指向的文件被另一个操作删除的模式(FILE_SHARE_DELETE)中打开文件。(我已经通过CreateFile(FILE_SHARE_DELETE)+DeleteFile尝试并确认了这一点。)但是我现在想知道的是,是否有可能以某种方式删除没有上述标志的任何人打开的文件?据我了解DeleteFiledocs这个功能是不可能的,因为TheDeleteFilefunctionfailsifanapplicationattemptstodeleteafilethatisopenfornor

c++ - 两个进程之间的通信

之前已经讨论过这个问题,但我一直在努力解决这些问题,所以希望能得到一个更适合我情况的更清晰的答案:我正在32位Windows(最低要求是WinXP)下用C++开发一个应用程序,它需要跨两个进程进行通信。要害就是进程1(p1)需要启动进程2(p2),然后调用p2的各种函数。我需要p1停止它正在做的事情,直到它调用的p2函数完成,然后从它停止的地方继续。对我来说最好的研究方法是什么,这样我才能做这样的事情?祝一切顺利克里斯 最佳答案 我知道远程过程调用听起来更吸引人,因为它消除了设计您自己的“通信协议(protocol)”和序列化您自己

c# - 并行获取所有进程

我正在尝试使用C#的TPL并行获取所有进程的CPU%。我的代码是:privateIDictionary_usage=newDictionary();publicProcessCpuUsageGetter(){Process[]processes=Process.GetProcesses();intprocessCount=processes.Count();Task[]tasks=newTask[processCount];intcounter=0;for(inti=0;iDoWork(processes[i]));}Task.WaitAll(tasks);}privatevoidDo

windows - 如何在 Windows 进程 (XP/Windows 7) 中找到已加载 DLL 的实际路径

我们为其他应用程序创建一个DLL来加载和使用应用程序中的一些功能。DLL依赖于它从中加载的实际路径。/bin/||----/configdir/configfile|----/lib/它需要product_home位置来读取配置文件和加载jar文件等我的Windows应用程序预加载了一个特殊的DLL。我需要在此过程中找到加载的DLL的实际路径,并使用它来设置“HOME”变量。这将在其余处理中使用。当机器上存在多个版本的dll时,有时使用外部设置的环境变量会失败。在我看来,只要DLL可以获得实际加载的位置,它就可以找出自己的“product_home”。DLL本文GetYourDLL's

c++ - 如何禁止普通用户终止进程?

我无法将其实现为Windows服务,因为我的进程必须与桌面交互,而这在Windows7中是被禁止的。完成此任务的最简单方法是什么?从另一个(特权)用户开始?如何做到这一点?我的用户不是黑客,只是运算符(operator),因此一些“愚蠢”的方法(例如从任务管理器中隐藏)也会有所帮助。编辑:根据提供的答案进行一些澄清我的进程没有任何GUI,所以我尽量避免从任务管理器中终止进程我的进程是监控系统的客户端,必须监控用户的桌面,所以它必须与桌面交互编辑2:我可以使用Windows服务在系统帐户下的用户session中启动单独的进程吗(因为我的服务是在系统帐户下运行的)?用户可以终止这个子进程吗