问题标签 [kernel32]
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.
python - Python WaitForDebugEvent 和 ContinueDebugEvent(灰帽 Python)
我正在阅读“灰帽蟒蛇”。
有一个示例,我们获取进程的线程并转储所有寄存器值。
我把书上的源码抄下来了,还是不行。
这是我认为有问题的部分来源。
这两行用于前面的示例,并在这一行中被注释掉。
这两行被注释掉了问题是当self.debugger_active为True时,它会运行WaitForDebugEvent和ContinueDebugEvent。
但不要打开线程或任何东西。它只运行了 39 次,我不知道为什么。
这是完整的来源。
添加
我调试了一下,发现当get_thread_context
被调用时,它总是返回false。
此外,在结束时ContinueDebugEvent
,它不会调用EXIT_THREAD_DEBUG_EVENT
. 它只是在调用后立即终止程序EXEPTION_DEBUG_EVENT
。
我不确定这两个是否相关,但只是作为更新。
非常感谢你。
部分解决方案
我在代码中发现了一个巨大的错误。
我不知道这本书是否有某种编辑版本。
无论如何,我的一个问题是它get_thread_context
不起作用。
源应更改为
出于某种原因,书中的来源将线程句柄作为open_thread
. 您之前已经获得了线程句柄,并将其作为get_thread_context
. 所以没必要再这样了。
=============== 仍然没有找到其他错误的任何解决方案。这ContinueDebugEvent
不会以EXIT_THREAD_DEBUG_EVENT
.
c# - C# 加载库 ERROR_NO_TOKEN
我在 C# 中加载了一个具有依赖关系的 MFC dll(假设我正在加载依赖于 C.dll、B.dll 和 A.dll 的 D.dll)。这是我的代码:
}
nUltErr 是 1008 = 0x3F0,应该是 ERROR_NO_TOKEN。这在 C# 中到底是什么意思?DLL 的路径是正确的。
c# - Kernel32.dll 中的 CreateFile 返回无效句柄
我正在尝试使用 kernel32.dll 的 CreateFile 方法为“C:”创建一个安全的文件句柄,该方法总是返回一个无效的句柄。
关于我在这里做错了什么有什么帮助吗?”C:
c# - 将 FindFirstFile 与 GetFileSize / GetFileSizeEx 结合以提高性能(kernel32)
我正在使用FindFirstFile
andFindNextFile (kernel32)
来获取文件夹和文件 ( c# Pinvoke
)。
System.IO
太慢了,不支持超过 250 个字符的路径。
是否可以使用返回的句柄(以任何方式)FindNextFile
来获取文件的字节长度?
当前尝试返回INVALID_HANDLE
。我认为原因是目录回调而不是 createfile 回调。
我想避免CreateFile
再次调用以“两次”获取文件句柄;它很慢。
谢谢。
c++ - 有什么方法 GetExitCodeProcess 可以将退出代码设置为错误的值?
我正在维护某人退休前编写的代码,这意味着我找不到他们来提问。:-) 这基本上是一个用于启动程序的 C++ 包装器。有问题的代码块是这样的:
如果一次只运行一个实例,它总是可以正常工作。但是,如果在很短的时间内运行多个,即使进程没有崩溃,并且内部程序写入的日志文件正在完成,大约一半的 dwExitCode 设置为 1 而不是 0。
所以澄清一下,这个过程总是很好地开始,它总是进入 if 语句,但它是由 GetExitCodeProcess 设置的 dwExitCode 的值,它不包含预期的内容。由于我们对此进行了错误检查,因此我们将其中一些运行标记为不完整,而实际上它们都很好。
有什么方法可以将此值设置为与进程退出代码不同的值?和/或是否有一个我可以同时运行的实用程序来确认退出代码是我认为的?
谢谢!
ETA: 刚刚意识到这是将内部程序调用放在 .bat 文件中 - “C:\\ --flags etc...”,然后在第二个参数中将其作为命令行调用,而不是直接使用lp应用程序名称。不知道这是否有所作为!但是当我打印进程的 PID 时,我可以看到它是 cmd.exe 进程的 PID,然后我们的程序有一个子 PID。但是,当我在 Process Monitor 中进行跟踪时,我可以看到父母和孩子都以退出代码 0 退出。
c# - GetPrivateProfileString 不工作.NET
我想用GetPrivateProfileString
. 我正在使用什么:
现在我的INI文件:
而我使用的是:
但是,它只是打印出一个空行而不是localhost
. 我究竟做错了什么?
api - Kernel32 中的 VirtualProtect 函数有什么作用?
我对文件进行逆向工程,我遇到了这行代码
ollydbg 对这一行的评论是,Kernel32.VirtualProtect
问题是这个函数有什么作用?我已经在msdn中对这个功能进行了自己的研究,但我仍然无法清楚地理解它。这是否也意味着它所保护的内存或虚拟页面(无论你怎么称呼它)在 ollydbg 中都无法读取?
dll - 当您在内存中编辑 dll 时,其他应用程序是否看到更改?
假设我正在使用 Cheat Engine 编辑内存中的 kernel32.dll 代码。我想问一下,当我编辑它时,是否有其他程序使用加载该 dll 的相同地址空间?还是每个进程都获得 dll 的单独副本,并且您可以随意更改它,但可能发生的唯一崩溃将仅针对该进程?
c++ - 挂钩 kernel32.dll 函数使我的程序无法工作
你知道为什么我在挂钩 kernel32 函数之一时无法运行程序吗?我正在写反作弊并希望对其进行更多优化,因为目前它在线程中,但是有问题...
有写 OpenProcess 是因为我之前尝试过挂钩它和同样的问题。
python - 从 python kernel32.CreateProcessA 退出代码
我正在尝试使用 kernel32.CreateProcessA 在 python 中运行一个进程。我的代码在下面,正在运行的脚本只返回-1(因此名称为 Returns-1.py)。但是,当我访问退出代码值(以我认为正确的方式)时,我得到 0。我无法理解如何访问应该为 -1 的返回代码。非常感谢任何建议。