草庐IT

kernel-devel

全部标签

c - 如何从错误偏移中确定调用的 kernel32.dll 函数

我有一个作为Windows服务运行的应用程序。今天,我被告知该服务已终止。我找到了一个事件查看器条目,其基本信息是:故障模块kernel32.dll,版本6.0.6002.18740,时间戳0x50b58c3d,异常代码0xc0000005,故障偏移量0x0003fc2e我确定我的代码中存在错误。我可以根据偏移量确定kernel32.dll函数(异常来自哪里)吗?我打算回溯到我的代码中的调用。 最佳答案 我同意评论中所说的内容,但无论如何我认为答案可能会有用。如果EventViewer报告了kernel32.dll中失败指令的偏移量

windows - NativeCall 在 Kernel32.dll 中找不到函数

我正在尝试移植thiscode到Perl6。虽然我可以调用GetStdHandle、GetConsoleMode和SetConsoleMode,但当我尝试调用ReadConsoleInput时我的脚本会中断:Cannotlocatesymbol'ReadConsoleInput'innativelibrary'Kernel32.dll'inmethodsetupatC:\rakudo\share\perl6\sources\947BDAB9F96E0E5FCCB383124F923A6BF6F8D76B(NativeCall)line287inmethodCALL-MEatC:\rak

c# - Kernel32.dll 中的 CreateFile 不允许我打开物理磁盘

我正在尝试使用以下代码从PhysicalDrive0获取MBR:privatestaticbyte[]ReadMbr(stringlpFileName){byte[]mbr=newbyte[512];using(SafeFileHandledrive=CreateFile(lpFileName:lpFileName,dwDesiredAccess:(uint)EFileAccess.GenericRead,//DONOTMODIFYTHEMBR!!!dwShareMode:(uint)EFileShare.Write|(uint)EFileShare.Read|(uint)EFileS

R CMD 检查错误 : how to get rid of hidden files and directory in devel R package on windows?

我正在Rstudio上构建我的R包,我正在运行RCMD检查我的包。但是,RCMD检查会警告一些可能导致错误的问题。我检查了我的项目主目录,确实有一些文件被隐藏了,现在我将它们设置为可见。出于好奇,如何在我的包目录中停止存在.gitignore,.Rproj.user,.git?RCMD检查提示这些,因为这些文件不是包的属性,也不是R包结构约定。我怎样才能摆脱我的包裹中的这些警告?我试图在我的机器上创建虚拟包,但这些属性总是显示在包主目录中,为什么在使用Rstudio构建R包时会发生这种情况?如何修复此CMD检查错误?有什么想法吗?根据编写R扩展手册,R包结构应该是:myPackage`

c++ - 如何在不链接 kernel32.dll 和 ntdll.dll 的情况下运行 PE 镜像

我试图写一个peloader。我首先将可执行镜像及其所有依赖的dll(包括kernel32.dll和ntdll.dll)加载到内存中,处理所有导入地址表,重写所有需要重定位的数据。然后我按顺序调用所有图像的入口点。我从ntdll.dll的入口点得到返回码0,但kernel32.dll返回0xC0000000。当我尝试调用可执行镜像的入口点时,程序崩溃了。我知道windows系统在创建进程时已经将ntdll.dll和kernel32.dll加载到进程内存中。我的问题是如何将ntdll.dll和kernel32.dll的另一个拷贝加载到内存中,并将我的模块链接到拷贝。我做了一个实验:1.复

windows - Windows 驱动程序中的 __security_init_cookie 导致错误检查 KERNEL_SECURITY_CHECK_FAILURE

当我在编译我的驱动程序时以Windows8.1为目标时,发生了一些非常奇怪的事情。一旦加载,它就会崩溃,错误检查KERNEL_SECURITY_CHECK_FAILURE,第一个参数6,意思是“堆栈cookie安全cookie没有被加载程序正确初始化”。这可能是由于构建了仅在Windows8上运行的驱动程序并试图在较早版本的Windows上加载驱动程序镜像造成的。为避免此问题,您必须构建驱动程序以在较早版本的Windows上运行。当我以Windows7为目标时不会发生此错误。我能够准确地找到发生此错误的位置。它发生在__security_init_cookie函数中,该函数由GsDri

c++ - VirtualProtect 和 kernel32.dll - 尝试访问无效地址

我正在分析进程加载的各种模块。不幸的是,我无法创建kernel32.dll内存快照,尽管该函数可以与其他模块(例如ntddl.dll)一起正常工作。问题在于以下代码:/*Copycodefrommemory*/if(VirtualProtect((BYTE*)virtualAddress,sizeOfCode,PAGE_EXECUTE_READWRITE,&flags)==0){std::cout为kernel32.dll调用这段代码的结果是:Virtualaddress:747d0000Sizeofcode:6a000Errorcode:0x1e7错误描述是这样说的:ERROR_IN

c++ - 编译仅依赖于 kernel32.dll 和 user32.dll 的 C++ 程序?

我正在使用VisualStudio2005。我想编译一个简单的程序,它可以与任何Windows32位版本一起工作,而不管安装的c++运行时库版本如何。此程序将调用GetModuleHandle和GetProcAddress函数而不调用任何其他函数,然后退出,当退出代码是函数地址时。如何编译只依赖kernel32.dll和user32.dll的C++程序,而不需要任何C++运行时库? 最佳答案 您需要定义自己的入口点,而不是使用main或WinMain。您的入口点是一个不带参数的void函数。您必须使用/entry:funcName将

windows - visual studio 2010 express + win sdk = 无法打开输入文件 'kernel32.lib'

我曾经使用VS2008express和winSDK为x64编译。最近重建了我的机器(升级到64位Windows7)并安装了最新的express。按照相同的程序允许x64目标,我的来源不再链接。无论我做什么,我总是得到:LINK:fatalerrorLNK1181:cannotopeninputfile'kernel32.lib'有趣的是32位编译工作正常。这是众所周知的问题吗?Google没有给我任何解决方法的线索,只是提到了同一个问题,但没有解决方案。是否可以使用带有win7SDK的VS2010来定位64位?谢谢帕维尔 最佳答案

windows - 64 位 Windows 是否使用 KERNEL64?

我正在查看一些带有dumpbin的库,我注意到所有64位版本都链接到KERNEL32。64位Windows上没有KERNEL64吗?如果不是,为什么?我所有的操作系​​统都是32位的,所以我不能只看。谷歌搜索没有找到任何有值(value)的东西,所以我怀疑没有KERNEL64,但我仍然很好奇为什么会这样。编辑:我后来发现这个非常有用。MSDNguidetox64 最佳答案 它总是被称为kernel32.dll,即使在64位Windows上也是如此。这是出于与system32包含64位二进制文​​件而syswow64包含32位二进制文