问题标签 [createremotethread]
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++ - 注入 DLL 并使用 CreateRemoteThread 调用函数导致“已停止工作”,会发生什么?
我正在尝试在进程中注入 DLL 并在我的 DLL 中调用导出的函数。
使用该代码可以正常注入 DLL:
我的 DLL 模块创建成功,就像您在 Process Hacker (BootstrapDLL.exe) 的图像中看到的那样:
我的导出函数也可以,就像您在 Process Hacker (ImplantDotNetAssembly) 上导出的函数列表中看到的那样:
我认为,问题发生在偏移计算上以获得“ImplantDotNetAssembly”的地址,因为上面的一切都很好,当我进行计算时,我得到了“ImplantDotNetAssembly”的地址,但是当我再次调用 CreateRemoteThread 来调用它,显示窗口的“已停止工作......”窗口并停止该过程。发生了什么事?
下面是计算偏移量的代码:
下面是 GetRemoteModuleHandle 和 GetFunctionOffset 函数:
如果有人知道发生了什么,我将不胜感激!
我什至无法调试“已停止工作..”错误。当我点击窗口上的 DEBUG 按钮时,错误再次抛出,一切都停止了。
谢谢你。
c# - 在 C# 中使用 CreateRemoteThread 传递多个参数
我的目标是使用 C# (CreateRemoteThread) 中的 P/Invoke 在远程进程中调用一个函数。问题是该函数需要多个参数。有没有办法将多个参数传递给函数?
c# - 在另一个未用 .NET 编写的进程内调用函数
我想在另一个进程中调用一个函数并通过 createremotethread 发送超过 1 个参数。
现在,我可以通过发送内联汇编来做到这一点,但我不知道足够的汇编来做到这一点。此外,我无权访问远程进程源代码。
我在考虑使用:
但据我了解,远程进程必须知道如何处理。
有没有一种简单的方法可以向不包含任何程序集的远程进程发送超过 1 个参数?
编辑:
这就是我目前试图解决的方法,但我内存不足异常,我真的不明白我做错了什么。
我们在远程进程中的 0x64D480 处有我们的函数 ptr,这是从 IDA pro 中获取的程序集。
不应该这样调用函数吗:
c++ - 远程进程未启动
我试图从另一个程序调用一个进程,这个进程是我通过 DLL 注入的。第一个,我们加载库“Client.dll”的地方完美运行,这是由 DllMain (DLL_PROCESS_ATTACH) 中的 MessageBox Debug 播种的。
将 DLL 加载到程序中后,我尝试从 Client.dll 调用 MainThread 函数,但是使用相同的方法(复制、粘贴、编辑)不起作用。两个都贴在下面,谁能告诉我为什么?我已经从 MainThread 中删除了所有代码,但出于调试原因。
这是主线程:
这是我加载 Client.dll 并尝试调用主线程的方式,请记住实际注入工作,但不是主线程的启动。
感谢任何能提供帮助的人。
c# - 在非托管注入的dll中调用函数
我已经尝试解决这个问题好几天了,但我仍然无法让它工作。我已成功将非托管 dll 注入远程进程。我试图通过 CreateRemoteThread 调用的 dll 中有一个名为 testfunction 的函数。
我有进程内注入 dll 的地址(0x6B610000)和函数的偏移量(0x70802),这意味着 dll 中的函数位于(0x6B680802)。
我也导出了 dll 中的函数:
这就是我试图调用该函数的方式:
这是我的 DLL 源:
此示例中的远程应用程序 (winamp) 加载了 dll(我可以在进程黑客中看到相同的地址),但是当我尝试在 dll 中调用函数“testfunction”时立即崩溃。
我究竟做错了什么?
提前致谢
c++ - GetModuleHandle(),用于另一个进程中的 DLL
标题确实解释了这一切,我有一个进程进入另一个进程。我需要能够在这个程序上为某个不是 Windows 标准的 DLL 获取模块句柄,并且我没有主程序的源代码。
我需要使用它来调用带有 GetProcAddress 的导出函数,最后在 CreateRemoteThread 中使用它来远程启动该程序上的任务。
无论如何我可以从另一个程序中获取一个 ModuleHandle,而不是它正在创建远程线程的本地程序吗?
谢谢。
c++ - 从另一个进程调用 SetDllDirectory 不起作用?
我一直在尝试从一个“注入器”程序切换我不拥有的程序的 Dll 目录,该程序假设切换 Dll 加载目录以加载修改或点击的 Dll。
这是功能:
我无法弄清楚为什么这不起作用?
c++ - C++ CreateRemoteThread 访问冲突
我遇到了函数 CreateRemoteThread 的问题。
我刚刚建立了一个小控制台窗口,要求退出一个特定的数字(这样只要我想要它就保持打开状态)。在这个程序中有一个函数,我找出了它的内存地址。
现在我想通过 CreateRemoteThread 用第二个程序调用这个函数,但它总是说存在访问冲突。两者都以相同的方式编译。
这是我的远程调用的代码:
如果我是对的,如果我想注入一些代码,我只需要 VirtualAllocEx 来保留内存空间。但我只想调用一个程序的函数。
你们有什么想法吗?
搜索并没有真正帮助我。谢谢!
c++ - 仅针对浏览器的 DLL 注入
我希望能够在我的网络浏览器中输入 www.mydomain.com,但实际流量会转到 something.mydomain.com。我想,也许将一个dll注入进程浏览器(firefox.exe)。我尝试使用一些方法,例如挂钩、使用创建远程线程的 dll 注入等。但是,由于我是新手,尤其是在涉及 C++ 或汇编级语言时,我对此不太了解。我能理解的不再与 Win 7 或更高版本兼容有人可以通过指导我正确的道路来帮助我。我想要的只是知道如何拦截/操作来自浏览器的传出 URL 请求。我发现 TCP/IP 首先使用 socket() 函数创建一些套接字,然后使用 connect() 函数。我有办法拦截吗?我希望这很容易,简单并与 Windows XP 到 10 兼容。如果它' 这并不容易我可以为不同的版本构建不同的代码。如果脚本是跨平台的,那就更棒了。
c# - 注入代码的问题
因此,在网上查看并调试代码后,我发现在 Windows 8、8.1 和 10 上使用 CreateRemoteThread 和 CreateRemoteThreadEx 存在问题(该 dll 根本不注入)。该代码适用于不使用 Windows 8+ 的任何人。我想知道是否有人可以帮助我调试代码以使其在较新的操作系统上运行,并在可能的情况下解释为什么它不工作。这是我第一次研究c#,我主要用Java编程。
当我关注堆栈时,我知道它来自 Injector.cs 中的 InjectLibrary
程序.cs:
Injector.cs: http: //pastebin.com/QUVXSTHC
Imports.cs http://pastebin.com/L1CtWYfN
我好像超过了字数限制,所以我把代码贴在了pastebin上。