我有一个进程,它通过调用SetConsoleCtrlHandler来获得CtrlBreak处理程序。此处理程序监听CTRL_BREAK_EVENT并执行一些操作(不退出)。此进程未附加到控制台。我们称其为目标进程。接下来,我编写了一个单独的程序,它接受一个PID,我想在kernel*!CtrlRoutine的地址启动一个远程线程,以便目标进程的CtrlBreak处理程序是执行,例如:hRemoteThread=CreateRemoteThread(hRemoteProc,NULL,0,(LPTHREAD_START_ROUTINE)dwEntryPoint,(void*)CTRL_BR
我正在尝试使用最新的32位Detours库将DLL注入(inject)新进程。http://research.microsoft.com/en-us/projects/detours/它过去对我有用,但在更改DLL后,它不再对所有进程起作用。当我恢复该过程时,我收到一个消息框,上面写着Theapplicationwasunabletostartcorrectly(0xc000007b).ClickOKtoclosetheapplication.我用注入(inject)的纯空DLL重新创建了它,除了kernel32.dll之外没有任何依赖项。对于其他可执行文件,它可以完美地工作。知道为什
我最近遇到了一个Windows应用程序,它有一个非常糟糕的内联SQL脚本实践。会不会容易被SQL注入(inject)?如果是,有没有什么工具可以快速发现漏洞? 最佳答案 是的,Windows应用程序也容易受到SQL注入(inject)攻击。问题不是应用程序的类型,而是内联sql脚本也不是问题。问题是当sql是从硬编码字符串和用户输入字符串动态构建时。事实上,即使是存储过程也可能容易受到SQL注入(inject)攻击。以这个简单的程序为例:(警告:此代码不安全!)CREATEPROCEDUREsp_sqlInj(@UserInputv
我正在开发一个需要品牌化的Windows应用程序。客户将把它卖给其他企业,并且需要为每笔销售定制Logo和名称。客户端不会用visualstudio!我想我需要编写一个打包应用程序来将自定义Logo和字符串资源注入(inject)可执行文件。我打算使用WPF。但由于这是一项关键要求,如果更容易的话,我愿意在winforms中完成。最好的方法是什么?欢迎提出任何建议。 最佳答案 听起来您想要的是应用程序换肤。这并不意味着您必须解压exe并注入(inject)资源。您只需要从项目开始就考虑皮肤并构建应用程序来支持您的皮肤需求。WPF将使
在Windows中,假设我使用DLL注入(inject)进入另一个进程。我还对我注入(inject)的进程的内存进行了一些截屏,并知道我想要提取的数据的位置。假设在0xaaaaaaaa处的另一个进程中有包含特定值的数据。我如何从那个过程中获取这个值,以便我可以在我的注入(inject)应用程序中使用它?既然我被注入(inject)到进程中,我可以只使用像memcpy这样的东西吗?memcpy(value,0xaaaaaaaa,10);我假设它可能比这更复杂?编辑:对于下面的回复,我看不出WM_COPYDATA对我有何帮助,因为它用于将数据发送到另一个应用程序,而不是用于从现有应用程序检
我使用注册表“运行”键在用户每次登录Windows时自动执行我的程序(使用HKCU\Software\Microsoft\Windows\CurrentVersion\Run注册表路径)。我的应用程序首先使用CommandLineDLL-Injector将DLL注入(inject)到explorer.exe进程中.效果应该是:每次用户登录后(重启Windows后)——我的应用程序被执行,我的DLL被注入(inject)到explorer.exe在某些情况下它可以工作,但在少数情况下(时间问题,很少重现),注入(inject)器和explorer.exe进程都死锁并且没有响应。我不确定,
我已经编写了DLL注入(inject)器。我使用CreateRemoteThread注入(inject)我的DLL进行处理,一切都很好。现在我正在尝试注入(inject)DLL以通过未记录的函数-NtCreateThreadEx进行处理。我写了注入(inject)器,但他不工作。当我使用32位注入(inject)器将32位DLL注入(inject)到32位进程时一切正常。问题是当我使用64位注入(inject)器将64位DLL注入(inject)到64位进程时。我的DLL代码:#include///Compilationwithoption-m64extern"C"BOOL__stdc
在对我的软件的新版本进行Beta测试时,一些用户报告了运行该应用程序时出现的异常情况。在这两种情况下都是:“应用程序无法正确启动(0xc0000142)”。我也看到它是0xc0000005。我发现一个本地系统也有这个错误,并发现在调试器下运行它时,“datamngr.dll”有访问冲突并且在堆上分配失败。我很快发现“datamngr.dll”是spy软件,并且像在系统的AppInit中一样被加载。一旦我清除了AppInit注册表项,这个问题就消失了。我通过ProcessMonitor检查了它,每当注入(inject)这个DLL时,我的应用程序就会崩溃。我以为它只是写得很糟糕的spy软件
我正在尝试编写一个简单的东西来防止第三方应用程序能够最小化。我要使用EasyHook因为我认为这是最简单的方法。我的代码将使用C#。我一直在查看EasyHook存储库中的示例,我只是不确定我需要替换哪个Windows函数才能实现此目的。或者,如果有另一种方法也可以做到这一点。示例(不工作):Program.csusingSystem;usingSystem.Text.RegularExpressions;usingEasyHook;namespaceAutoMaximize{internalclassProgram{privatestaticvoidMain(string[]args)
我想将我的Java类注入(inject)到Windows上现有的Java应用程序中。我找到一篇描述使用CreateRemoteThread的方法的文章-java-code-injection-via-winapis但尚不清楚注入(inject)的类是否可以“连接”现有类并调用它们。有人知道这是否可行吗?JNI中是否有可用于搜索和获取对已运行类的引用的函数? 最佳答案 我敢肯定还有其他复杂的方法可以做您想做的事(例如使用javainstrumentationapi)。然而,可能有更简单的方法。找到应用程序的主类将类反编译成java代码