问题标签 [dll-injection]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - C# DLL 注入
是否可以使用 C# 将 DLL 文件注入到资源管理器或 svchost 等进程中?我知道这在 C++ 中是可能的,但它是在 C# 中吗?如果是这样,DLL 的编写方式是否重要,例如 C++ DLL 或 Visual Studio C# .NET DLL 会有所不同吗?如果这完全可能的话,有人可以发布我可以用来执行此操作的代码。非常感谢你。
c++ - 根据代码顺序,挂钩 sendto() 会导致崩溃
我正在使用 DLL 注入器来注入一个 dll,该 dll 进入 IAT 并用我自己的替换系统调用 sendto()。
这是替换方法。
调用者:
这有效:
这不起作用:
在使用 my_sendto() 的后一个版本时,主机应用程序将在调用 sendto() 时崩溃。
de_sendto 定义为:
windows - 验证内存中的进程完整性?
看起来不可能阻止坚定的攻击者修改一个人的进程代码/数据。我希望它至少有可能检测到这种篡改。
在 Windows 下,是否可以在当前进程中监听DLL 注入、WriteProcessMemory 和 CreateRemoteThread ?
在 Linux 下,是否可以监听 LD_PRELOAD 和DR rootkit?
c# - 如何从 taskmanager processtab 中隐藏 C# 应用程序?
我需要从 Taskmanager 的进程选项卡中隐藏我的 C# 应用程序
使用
我已将其从应用程序选项卡中隐藏。现在我需要从进程选项卡中隐藏它。
这可能吗?。
c - 注入的 dll 使所有者进程崩溃。为什么?
我有一个在进程中注入的 dll。它搜索“file://”,直到找到无效符号。几分钟后,它使主进程崩溃。这是为什么?我该如何检查?我发现 CreateThread 上的堆栈大小越小,它崩溃的速度就越快,因此它可能会以某种方式堆栈溢出,但我没有分配任何东西,而是分配了一个结构。
c++ - 窗口最大值最大化
我正在寻找一个程序,我可以在其中设置所有窗口的最大最大化大小(如当您点击最大化按钮时窗口最大化的大小)和最大化位置(X/Y 与最大化窗口协调)正在跑步。这样我就可以让我的 Rainmeter 在我的辅助显示器上始终可见,而无需手动调整每个窗口的大小以适合其中。
我已经设法为我使用 WinAPI 中的 MINMAXSIZE 编写的一个简单程序做到了这一点。这种方法似乎非常适合我的小程序,但是除了互联网上的 1 或 2 篇文章之外,关于它的文档很少。我想知道这是否是设置最大最大化尺寸的最佳方法,或者是否有其他方法可以做到这一点。
我计划在所有应用程序中实现这一点的方式将是 DLL 注入或 Hooks(我都没有任何经验),所以我也想知道你们对这些方法的看法。
我知道有一些应用程序已经这样做了,但我认为这可能是一种学习体验,而且我尝试过的所有应用程序都不能很好地工作(尽管所有这些应用程序都可能是这种情况由于 Windows 功能的方式)。
如果你们中的任何人仍然不确定我在说什么,MaxMax完全符合我的要求(尽管它效果不佳,正如我在上一段中所说的那样)。
谢谢大家。
winapi - 一个 GetModuleHandle 实现
我需要这样做,因为我在其中,DllMain()
因此持有加载程序锁。我读过GetModuleHandle()
它还使用了加载器锁 [第 6 页],这会导致死锁。
GetModuleHandle() 如何实现?一些代码将是一个加号。
更新:因为我SetWindowsHookEx
只在 WinXP 上使用。只是在评论中接受建议,走简单的路,并在第一次调用回调时使用 GetModuleHandle() 。
security - 保护 dll 文件的最佳方法是什么
我们在C++ builder中构建了一个大型应用程序,它在启动时会查看一个文件夹并加载所有当前的 dll 文件。我认为这可能不是一件好事,并通过创建一个仅启动 Web 浏览器并打开带有“拥有”一词的图片的 dll 来尝试我的想法:P
无论如何,它奏效了。因此,系统可能会因 dll 被关闭或添加新的 dll 以任何方式受到损害。远程管理员访问,格式化驱动器,你的名字。
所以我的想法是试图堵住这个洞。这方面的最佳做法是什么?我正在考虑对 dll 进行某种签名。让 .exe 保存有效 dll 的名称列表实际上并不能解决它,因为可以替换 dll。名称和校验和列表将起作用,但保留自动加载功能但仅加载正确签名的 dll会很好。
编辑:我正在研究使用似乎可以完成这项工作的signtool.exe 。但是我找不到任何好的参考来说明如何在 C++ 中实际检查 dll 的签名。谁有链接?
c - 通过 dlsym 覆盖 FSGetCatalogInfo
我正在尝试使用 DYLD_INSERT_LIBRARIES 在 OS X Lion 10.7 下覆盖 FSGetCatalogInfo 函数,并且一切正常,直到我实际调用原始 FSGetCatalogInfo 函数,此时我得到“总线错误:10”。
我的代码片段是:
我在想我必须定义或调用原始的 FSGetCatalogInfo 错误,但我无法弄清楚我到底在哪里搞砸了 - 想法?
c++ - 从正在运行的进程中注入 DLL 后弹出
我编写了这个函数来将 DLL 注入正在运行的进程中:
而且效果很好,但是当我尝试弹出 dll 时,我无法找到有关脱钩的信息。我试图构建一些功能来做到这一点,我想我已经接近了,这就是我到目前为止:
这是正确的方法吗?如果是这样,我应该在 VirtualMem 的 createRemoteThread 中传递什么参数(在注入函数中使用)...