草庐IT

进程注入

全部标签

C++如何从DLL(windows)的文件名中获取进程ID?

如何从文件名中获取进程ID?比如:intprocessId=getProcessIdByFileName("Network.dll");顺便问一下,哪种数据类型具有进程ID?扩展信息:我有一个DLL的源代码。这个DLL被加载到应用程序中,就像其他一些DLL一样。我想Hook其他DLL的功能。因此我需要它们的进程ID(如果它们都在一个应用程序下运行,是否每个DLL都有一个进程ID?如何在我的DLL中调用其他DLL的函数?如何处理它们? 最佳答案 DLL没有进程ID。一个DLL可能被加载到多个进程中,或者根本没有。DLL可以加载到进程中

c - 在没有宿主程序帮助的情况下,如何在同一个进程中协调不同的 DLL?

我正在寻找一种方法来协调同一进程中的DLL,以便在它们之间提供数据共享机制。目标是为所有DLL提供相同的共享代码,并让它们以这样一种方式进行协调,即由主程序加载的第一个将充当共享项的管理器,而其他人将使用此管理器。我无法修改主应用程序,因此不可能设置管理器并与其他DLL共享其内存地址。使用此机制的DLL集可能会有所不同,因此我不能明确假设其中一个将被加载。我考虑的一种解决方案是将内存地址添加到进程的环境变量中。第一个DLL会看到环境变量尚未设置,创建管理器对象并将变量设置为其地址。其他DLL会看到该变量并从中创建一个指向管理器对象的指针。这接近我想要的,但它似乎有点粗糙,因为不能保证环

asp.net-mvc - 进程标识设置为用户的 IIS 7.5 有错误的 USERPROFILE

首先,这是我关于类似主题的第三个问题..我仍然没有答案,也许只是接近它(参见first,second)。我的网络应用程序(IIS7.5下的ASP.NETMVC3)运行git来访问一些github存储库。在我将工作站升级到WindowsSP1后,它停止工作了。原因是git一启动,其实是运行ssh.exe来和github通信的。ssh.exe似乎挂起,因此所有应用程序都挂起。该应用程序使用的应用程序池使用与我相同的进程标识。但是使用ProcessHacker我可以看到下图:因为USERPROFILE指向/system32/config/systemprofilessh.exe期望有.ssh

windows - 从批处理文件中,如何在调用 taskkill.exe 后等待进程退出?

我想编写一个批处理文件来更新正在运行的进程(一个常规应用程序)正在使用的DLL。为此,计划是停止进程,将DLL复制到所需位置,然后重新启动进程。我知道我可以尝试使用taskkill终止进程。在我拍摄它之后,如何确保该过程已经倒下并死亡? 最佳答案 这是我用过的。它是批处理文件中的一个子程序。settasklist=%windir%\System32\tasklist.exesettaskkill=%windir%\System32\taskkill.exe---------------------------------------

windows - 如何确定进程是否处于死锁状态或正在等待 I/O

面试官问:我们如何才能发现应用程序是否由于死锁或由于等待某些IO而变得无响应?任何人都可以评论执行此操作的任何一般方法,或者各种方法是否提供了一些特定的方法?我相信这是与操作系统相关的事情,所以我不会在这里标记任何语言。编辑:我也想了解执行此操作的技术和API。这样我就可以根据需要运行监控程序。 最佳答案 在Linux上我会使用sar-u1。如果%iowait列很高,那么应用程序可能正在等待IO 关于windows-如何确定进程是否处于死锁状态或正在等待I/O,我们在StackOverf

windows - 一个进程如何访问外部 TIB?

是否有可能(以及如何)访问某个其他进程的线程的线程信息block? 最佳答案 这是可能的。第一步是使用NtQueryInformationThread获取线程信息block的地址。ThreadInformationClass设置为ThreadBasicInformation的函数.THREAD_BASIC_INFORMATION结构包含指向线程的TEB的指针。然后你可以使用ReadProcessMemory和WriteProcessMemory以便阅读或修改TEB的内容。 关于windo

c# - 设置进程调度程序的框架

所以我们现在在代码中设置了一堆不同的进程。我们围绕这个设置了一个框架,其中包含几个类,这些类控制这些代码片段何时启动、它们登录到哪里、它们依赖于哪个其他进程等。我们目前的工作方式是,所有这些进程都继承了一个包含参数、Validate()方法和一个Start()方法。我想重新做这个。现在代码很难处理。我认为其中的每个进程本身都设置得很好,但我想知道是否有人使用任何框架来设置基本上只是一个调度程序,它在一天中的不同时间启动某些进程。每个进程都应该能够依赖另一个进程,拥有自己的一组参数、启动时间、频率(每日、临时等),以及记录其消息和任何异常的能力到用户界面。我们要保持相互依赖的原因是,如果

windows - Windows 中的进程间同步屏障

我试图在Windows中的不同进程之间建立一个屏障。它们本质上是同一进程的两个副本(将它们作为两个单独的线程而不是进程运行不是一种选择)。这个想法是在程序的不同阶段设置障碍,以确保两个过程同时开始每个阶段。在Windows中实现此功能的最有效方法是什么? 最佳答案 使用命名事件(参见CreateEvent和WaitForSingleObjectAPI函数)。每个屏障需要两个事件——每个事件都在应用程序的另一个实例中创建。然后两个实例等待对方的事件。当然,这些事件以后可以重新用于另一个障碍。但是存在一种复杂性——由于事件名称是全局唯一

c# - 提升进程时,如何获取非提升 session 的 Windows 身份验证 ID

我需要获取由GetTokenInformation返回的AuthenticationID和TokenStatistics类,用于登录该站的用户,无论我是否被提升。让我给你一些更多的信息。假设我这样做:varResult=GetTokenInformation(WindowsIdentity.GetCurrent().Token,TOKEN_INFORMATION_CLASS.TokenStatistics,TokenInformation,TokenInfLength,outTokenInfLength);这将使我能够毫无问题地从TokenInformation结构中获取Authent

c# - 如何从桌面应用程序知道某个进程是否在 Windows CE 设备上运行

我想通过桌面应用程序抛出RAPI知道某个进程是否正在WindowsCe设备上运行 最佳答案 RAPi本身不具有任何流程管理/工具帮助功能,因此开箱即用,您无法执行此操作。我的建议是创建一个自定义RAPIDLL(examplehere-不幸的是,这必须在C中完成,但它非常简单)它要么只是通过工具帮助检查你的进程,要么是一个更通用的版本,允许你枚举运行进程,然后使用CeRapiInvoke调用该DLL。共享源OpenNETCFDesktopCommunication库有这个函数的包装器。 关