天道酬勤,学无止境

ntdll

NtCreateProcess 和 ZwCreateProcess 有什么区别?(What is the difference between NtCreateProcess and ZwCreateProcess?)

问题 NtCreateProcess和ZwCreateProcess有什么区别? 在 ntdll.dll 中, NtCreateProcess和ZwCreateProcess都指向完全相同的地址 回答1 在用户模式下,Nt 和 Zw API 组是相同的。 在内核模式下,它们是不同的。 Nt API 包含实际的实现。 Zw API 使用系统调用机制并确保它在内核模式下调用,并且如果参数包含用户模式地址,则无需检查参数。 否则,您可以在用户模式下使用带有内核参数的 API,这并不好。 所以它只是一个安全机制。 回答2 除了已经给出的答案(我不想鹦鹉学舌)之外,我认为最好的答案可以在 OSR Online 上找到:这里。 或者,您可以阅读有关 Native API 的书籍,例如 Gary Nebbett 的一本名为“Windows NT/2000 Native API Reference”的书籍,他在这个问题上花了一些篇幅,或者您可以使用 WinDbg(发音为“wind-bag” ) 你自己。

2022-01-15 08:03:41    分类:技术分享    windows   winapi   createprocess   kernel-mode   ntdll

What is the difference between NtCreateProcess and ZwCreateProcess?

What is the difference between NtCreateProcess and ZwCreateProcess? In ntdll.dll, both NtCreateProcess and ZwCreateProcess point to exactly the same address

2022-01-15 04:40:41    分类:问答    windows   winapi   createprocess   kernel-mode   ntdll

Delete a mutex from another process

Using the topic Overview - Handle Enumeration, number 5, the attempt Close mutex of another process and and information from Mutex analysis, the canary in the coal mine and discovering new families of malware/, I have came up with: Attempt 1: http://pastebin.com/QU0WBgE5 You must open Notepad first. Needless to say, this is not working for me. I need better error checking to figure out what's going on. I don't know how to get mutex pointers in the format I see them in Process Explorer. My goal is to be able to delete/kill of the mutex handles created by a process so more than one instance can

2022-01-08 17:41:22    分类:问答    c#   mutex   instances   ntdll

与 ntdll.dll 相关的无法解释的崩溃(Unexplained crashes related to ntdll.dll)

问题 我有一个我编写的应用程序会间歇性崩溃,但我无法在应用程序层捕获异常。 我总是在事件日志中得到一个条目,但没有给我太多信息: Faulting application name: BCS-UI.exe, version: 1.0.11.0, time stamp: 0x5c0edcbd Faulting module name: ntdll.dll, version: 10.0.17134.376, time stamp: 0x4358e406 Exception code: 0xc0000374 Fault offset: 0x000d8829 Faulting process id: 0x39b0 Faulting application start time: 0x01d49161c80079a0 Faulting application path: C:\Gogs Local\SMR_Windows_UI\BCS-UI\BCS-UI\bin\Release\BCS-UI.exe Faulting module path: C:\WINDOWS\SYSTEM32\ntdll.dll Report Id: 1fbc4761-d256-44b0-99b0-4d9d758e4fe0 Faulting package full name: Faulting package

2021-12-23 10:28:35    分类:技术分享    c#   windows   dll   ntdll

Unexplained crashes related to ntdll.dll

I have an application that I've written that crashes intermittently, but I'm unable to capture an exception at the application layer. I always get an entry in the event log but doesn't give me much info: Faulting application name: BCS-UI.exe, version: 1.0.11.0, time stamp: 0x5c0edcbd Faulting module name: ntdll.dll, version: 10.0.17134.376, time stamp: 0x4358e406 Exception code: 0xc0000374 Fault offset: 0x000d8829 Faulting process id: 0x39b0 Faulting application start time: 0x01d49161c80079a0 Faulting application path: C:\Gogs Local\SMR_Windows_UI\BCS-UI\BCS-UI\bin\Release\BCS-UI.exe Faulting

2021-12-10 20:00:29    分类:问答    c#   windows   dll   ntdll

从 DllMain 加载/调用 ntdll(Loading/calling ntdll from DllMain)

问题 不应使用DllMain中kernel32.dll以外的函数: 来自 MS 文档: 因为在调用入口点函数时 Kernel32.dll 被保证加载到进程地址空间中,所以调用 Kernel32.dll 中的函数不会导致在执行其初始化代码之前使用该 DLL。 因此,入口函数可以调用 Kernel32.dll 中不加载其他 DLL 的函数。 例如,DllMain 可以创建关键部分和互斥锁等同步对象,并使用 TLS。 不幸的是,Kernel32.dll 中没有完整的安全函数列表。 ... 调用需要 Kernel32.dll 以外的 DLL 的函数可能会导致难以诊断的问题。 例如,调用 User、Shell 和 COM 函数可能会导致访问冲突错误,因为某些函数会加载其他系统组件。 相反,在终止期间调用这些函数可能会导致访问冲突错误,因为相应的组件可能已经被卸载或未初始化。 我的问题: 但文档没有提到ntdll.dll 。 - 我可以为“ntdll”调用LoadLibrary并从DllMain使用ntdll 中的函数: 1) 在DLL_PROCESS_ATTACH期间(加载和使用 ntdll 的函数)? 2) 在DLL_PROCESS_DETACH期间(使用先前加载的 ntdll 的函数)? 另外,请问拥有 1500 多个声誉的人会喜欢创建一个名为“dllmain”的新标签吗? 回答1 问题

2021-11-19 01:27:05    分类:技术分享    windows   loadlibrary   ntdll   dllmain

Python程序因为ntdll.dll和QtGui4.dll崩溃(Python program crashes because of ntdll.dll and QtGui4.dll)

问题 我设计了一个 Python 软件来从我的微控制器收集数据并制作实时绘图: 我的 GUI 中有十二个 matplotlib 动画(GUI 是用 PyQt 设计的)。 每个 matplotlib 动画都连接到一个 TCP 线程,通过该链接接收浮点数。 收到浮点数后,matplotlib 动画会向图中添加一个新点。 万岁,我们有现场情节! 我的软件可以平稳运行几秒钟(有时长达半分钟)。 然后灾难来袭。 Windows 提到“Python 已停止工作”。 我什至没有在终端窗口中打印异常报告(因为它通常会发生在我的所有其他错误中)。 Windows 询问我是否要调试 Python 应用程序,并建议为此使用 Visual Basic。 在 Visual Basic 中,我收到以下错误报告: Unhandled exception at 0x00007FFC596CE6FC (ntdll.dll) in python.exe: 0xC0000374: A heap has been corrupted (parameters: 0x00007FFC597222B0). Unhandled exception at 0x00007FFC56071F28 in python.exe: Microsoft C++ exception: std::bad_alloc at memory

2021-11-12 14:44:10    分类:技术分享    python   qt   dll   pyqt4   ntdll

Loading/calling ntdll from DllMain

One should not use functions other than those in kernel32.dll from DllMain: From MS documentation: Because Kernel32.dll is guaranteed to be loaded in the process address space when the entry-point function is called, calling functions in Kernel32.dll does not result in the DLL being used before its initialization code has been executed. Therefore, the entry-point function can call functions in Kernel32.dll that do not load other DLLs. For example, DllMain can create synchronization objects such as critical sections and mutexes, and use TLS. Unfortunately, there is not a comprehensive list of

2021-11-12 07:39:41    分类:问答    windows   loadlibrary   ntdll   dllmain

为什么 JVM 会因为 NTDLL.DLL 而在 Windows Server 2012 上随机崩溃?(Why does JVM randomly crashes on Windows Server 2012 due to NTDLL.DLL?)

问题 我的生产服务器偶尔会崩溃 java.exe 服务,因此 myApplication Server Glassfish 4.1。 它随机发生,到目前为止我找不到解释这种行为的理由。 检查 Win Server 2012 事件查看器,表明应用程序错误是由于与 NTDLL.DLL 冲突。 在下面,我发布了这些崩溃之一后收集的转储: Version=1 EventType=APPCRASH EventTime=130971776990222439a ReportType=2 Consent=1 ReportIdentifier=60c166c2-ba16-11e5-8100-22000afdaf63 IntegratorReportIdentifier=60c166c1-ba16-11e5-8100-a22000afdaf63 NsAppName=java.exe Response.type=4 Sig[0].Name=Application Name Sig[0].Value=java.exe Sig[1].Name=Application Version Sig[1].Value=8.0.650.17 Sig[2].Name=Application Timestamp Sig[2].Value=56145db1 Sig[3].Name=Fault Module Name Sig

2021-11-10 04:46:38    分类:技术分享    java   crash   jvm   glassfish-4.1   ntdll

Python program crashes because of ntdll.dll and QtGui4.dll

I have designed a Python software to collect data from my microcontroller and make live plots: I have twelve matplotlib animations in my GUI (the GUI is designed with PyQt). Each matplotlib animation is connected to one TCP thread, receiving floating point numbers through that link. Upon receiving a floating point number, the matplotlib animation adds a new point to the graph. And huray, we got live plots! My software runs smoothly for a couple of seconds (sometimes up to half a minute). And then disaster strikes. Windows mentions "Python has stopped working". I don't even get an exception

2021-11-10 02:08:34    分类:问答    python   qt   dll   pyqt4   ntdll