我正在使用UMDH工具来分析我的应用程序的内存泄漏。UMDH日志观察到的主要泄漏如下:237856226(241016812-3160586)3704833分配BackTraceE93685198(3704833-19635)BackTraceE9分配ntdll!RtlIpv4StringToAddressExW+00011866ntdll!RtlSubAuthorityCountSid+00000019MSVCR80!malloc+0000007A207093760(207355904-262144)791allocsBackTrace6EB790(791-1)个BackTrace6
我目前正致力于通过dll注入(inject)Hookntdll.dll调用。首先,我通过CreateRemoteThread()在现有进程中创建线程然后我通过LoadLibrary加载我的dll最后HookPROCESS_ATTACH.注入(inject)工作正常,但我想记录所有注册表和文件系统查询。问题是它无法正常工作。我决定通过PasteBin发布代码,因为代码量很大。链接在这里:http://pastebin.com/39r4Me6B我正在尝试HookZwOpenKey,然后记录关键内容,然后通过指针启动“真实”功能。函数NOpenKey被执行,但进程停止,没有任何错误。有人看到
嗨!我打赌一个多星期了,我无法形成一个完整的图来说明如何获得内核对象列表。我的算法如下:1)连接NTDLL.dll(LoadLibrary)2)GetProcAddress(variable_Library_name,"NtQueryDirectoryObject")和预告结构:_OBJDIR_INFORMATION,_OBJECT_ATTRIBUTES3)尝试为列表应用NtOpenDirectoryObject函数对象下面是一段代码,负责函数NtOpenDirectoryObject的使用:OBJDIR_INFORMATION*ssinfo=(OBJDIR_INFORMATION*)
我有一个基于MFC的应用程序。它会在几秒钟后继续寻找文件(使用基于CreateTimerQueueTimer的计时器)并执行一些操作。这在XP上总是崩溃(原因不明)。此应用程序在Windows7和Windows8上运行良好。但在XP上问题仍然存在。下面是没有显示任何帮助的调用堆栈反汇编截图如下:编辑1:我更改了一些设置并获得了这个新的调用堆栈。但是还是没有得到线索。:我不明白如何找出崩溃的原因。是否有任何提示或任何方式来跟踪它从反汇编中播种?还是系统的NTDLL.DLL文件有问题?欢迎任何帮助。 最佳答案 分析堆栈后,我意识到可能是
所以我有一个汇编代码块,它初始化一个程序,解析kernel32,找到GetProcAddress,然后找到LoadLibarayA来加载User32.dll。它工作到LoadLibraryA为止。它在函数调用中崩溃,但我可以看到调试器中加载了User32.dll。如果我尝试在不同的模块(例如Kernel32.dll)上使用LoadLibraryA,它会返回并成功。如果你想看的话,这里有完整的源代码https://gist.github.com/mojobojo/921a5af897e86bb940a2Exceptionthrownat0x00007FFAFAE8E91C(ntdll.d
我一直在研究_vsnprintf并了解到它在ntdll.dll和msvcrt.dll中可用。我可以使用GetModuleHandle和GetProcAddress来访问_vsnprintf,例如:staticint(__cdecl*p__vsnprintf)(char*str,size_tcount,constchar*format,va_listvalist);staticvoidinit(constchar*dll){HMODULEhmod=GetModuleHandleA(dll);if(hmod){printf("***Testing%s***\n",dll);p__vsnpr
我们已将procdump设置为(AeDebug)事后调试器,以捕获未处理异常的转储。注册表项设置为"c:\my\sysinternals\procdump.exe"-accepteula-ma-j"c:\dumps"%ld%ld%p目前我正在查看一个转储,其中触发故障转储的进程仍在运行数小时转储过程完成后?!我假设任何触发故障转储的进程都将被终止?来自WinDbgDebugsessiontime:TueDec101:53:06.0002015(UTC+1:00)SystemUptime:18days18:09:24.556ProcessUptime:1days0:09:31.0000:
ntdll.dll是WindowsXP和WindowsVista的标准配置吗?我知道我的WindowsXP机器上有它,但我不确定这是否是每台机器的标准配置。我很好奇的原因是NTQuerySystemInformation函数可以获取windowsXP和/或WindowsVista系统的CPU使用率。 最佳答案 是的,但是您要使用的函数不会可能不会。根据MSDN,NTQuerySystemInformation在未来的Windows版本中可能会被更改或不可用。你应该使用GetSystemInfo相反,它位于Kernel32.dll中,
BecausePOSIX.1compliancewasamandatorygoalforWindows,theoperatingsystemwasdesignedtoensurethattherequiredbasesystemsupportwaspresenttoallowfortheimplementationofaPOSIX.1subsystem(suchastheforkfunction,whichisimplementedintheWindowsexecutive,andthesupportforhardfilelinksintheWindowsfilesystem).这个f
如果您在Windows上有一个可执行文件,您可以使用DUMPBIN实用程序(例如包含在VisualStudio中)查看其导入部分。要获取所有导入的DLL的列表,您可以运行如下命令(只是一个任意示例):C:\Programme\GIMP-2.0\bin>dumpbin/IMPORTSgimp-2.4.exe|grep-i\.dlllibgimpcolor-2.0-0.dlllibgimpmath-2.0-0.dlllibgimpmodule-2.0-0.dlllibgimpthumb-2.0-0.dlllibgimpwidgets-2.0-0.dlllibart_lgpl_2-2.dll