草庐IT

内核开发

全部标签

c++ - Windows 虚拟内存和内核模式

我知道在32位架构中,内核模式虚拟内存映射在0x80000000和0xFFFFFFFF之间。它包含一些结构如EPROCESS,ETHREAD...等等,还有当前进程的页面目录和表。虽然尝试获取某个函数的虚拟地址是ntoskrnl让我们说“nt!NtReadFile”,但我发现它映射到内核虚拟地址0x89421130中。我尝试用随机指令在RET之后修补一些nop,当切换到另一个进程上下文时,我发现我输入的指令仍然存在。这是否意味着加载Ntoskrnl的虚拟内存在每个进程虚拟地址空间中保持不变?谢谢。 最佳答案 Doesthatmean

c - 内核如何知道哪些驱动程序属于哪些外设?

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。这个问题似乎不是关于aspecificprogrammingproblem,asoftwarealgorithm,orsoftwaretoolsprimarilyusedbyprogrammers的.如果您认为这个问题是关于anotherStackExchangesite的主题,您可以发表评论,说明问题可能在哪里得到解答。关闭8年前。Improvethisquestion当内核需要向某个外设发送输出时,它如何知道使用哪个驱动程序?

c++ - 在 Cygwin C++ 中开发

几年来,我一直在VisualStudioforWindows和GCC(代码块)forLinux中编写程序。我的大部分库在Windows和Linux中都可以无缝编译。但是目前我有点困惑,因为我必须使用Cygwin创建一个应用程序。我真的不明白我是否仍在UNIX/Linux环境中,只是通过某种“仿真”在Windows上运行应用程序,或者我只是在Windows上访问某些Linux/Unix功能。从我从常见问题解答和文档中了解到的情况来看,我似乎应该像在Linux环境中那样工作。我在互联网上找到的所有解释通常都非常笼统,没有从程序员的角度解释详细的差异。简短的问题:在使用Cygwin时,我可以

用于 clojure 开发的 Linux 与 Windows

我开始学习Clojure。我已经在带有新草书插件的IntelliJIDEA14和带有逆时针插件的Eclipse上的Windows上进行了尝试。我在安装和设置leiningen、repl和其他对Clojure开发有用的插件/工具时遇到了很多麻烦。我的问题是:从Windows切换到Linuxubuntu或其他发行版是否值得付出努力和时间,因为我听说Linux终端和其他工具有很多优势。附言。Emacs对我来说还很难学:) 最佳答案 我在OSX(工作)和Windows(在家)上都使用Intellij14和Cursive。这些环境中的体验本质

c++ - Windows native 开发 : debuggee tries to load werkernel. sys from system32

我现在正在研究WindowsNativeAPI,Nt*/Zw*方法。我下载了WDK,安装它并成功编译了一个应用程序(x64,在Win8.1x64,VS2013下)。它唯一做的就是调用NtOpenFile()。为了成功编译/链接它,我必须对项目属性(驱动程序应用程序模板)进行以下更改:添加来自WDK的包含文件夹从WDK添加Lib文件夹告诉链接器使用ntoskrnl.lib出乎意料的是,在运行调试器时,我收到错误消息“程序无法启动,因为您的计算机缺少C:\Windows\SYSTEM32\werkernel.sys。请尝试重新安装程序以解决此问题。“werkernel.sys显然存在于sy

windows - 从用户模式访问内核内存 (Windows)

我正在编写一个需要分配非分页内存池的驱动程序,出于性能考虑,该内存必须可以直接从用户模式程序访问。在驱动程序条目中,我用这两种方法分配了一些内存:pMdl=IoAllocateMdl(NULL,4096,FALSE,FALSE,NULL);if(!pMdl){DbgPrintEx(DPFLTR_IHVVIDEO_ID,DPFLTR_INFO_LEVEL,"ErroronIoAllocateMdl.Returningfromdriverearly.\n");returnSTATUS_INSUFFICIENT_RESOURCES;}MmBuildMdlForNonPagedPool(pMd

windows - Windows内核模式代码签名问题

问题总结我的Windows应用程序包括一个加载相当简单的驱动程序的服务。根据MSKernelSigningdoc中描述的KMCS要求,该驱动程序包含嵌入式SHA1和SHA256签名,并包括两个签名证书的交叉签名证书链,用于在不使用CAT文件的情况下对驱动程序进行签名。该驱动程序在大多数Windows安装中都可以很好地加载,但是在极少数情况下无法加载,主要是在Windows7x64和Windows10x64上。错误为0x241(577):Windows无法验证此文件的数字签名。最近的硬件或软件更改可能安装了未正确签名或损坏的文件,或者可能是来自未知来源的恶意软件。更多信息在两个星期的大部

windows - 如何从开发中为 https Aurelia 提供服务

我正在使用MicrosoftCode和Aurelia-CLI,并且有一个简单的初始helloworld项目。aurun--watch...通过http服务项目如何在开发环境中通过https提供它。我正在使用Windows10 最佳答案 将https:true添加到browserSync:aurelia_project/tasks/run.jsbrowserSync({https:true,....仅在Linux上测试过。 关于windows-如何从开发中为httpsAurelia提供服务

python - 如何在 Windows 的 CPython Jupyter 中使用 pypy 作为内核?

我使用Anacondainstaller安装了python并且很高兴地使用它附带的Jupyter版本。我还下载了(32-bit)windowsversionofpypy这在命令行中运行良好。如何让CPythonJupyter在运行我的python代码时使用pypy作为内核? 最佳答案 Pypy不需要不同的内核,它可以只使用ipykernel。因此,它没有单独列在Jupyter内核列表中。您可以使用用于installingkernelsfordifferentPythonenvironments的相同方法为pypy安装内核。例如,py

windows - 当您已经安装了 IIS/SQL Server 时,在 Windows 上针对 WordPress 进行开发的最佳方式是什么?

如果您想针对WordPress进行开发(即,在您的机器上运行一个本地实例,以便您可以开发主题、布置博客和网站等)并且您在带有IIS的开发机器上运行Windows,并且SQLServer已安装,最佳安装方式是什么?我在网上找到了一种在运行Apache和MySQL实例的Windows上设置一个小型“迷你”服务器的方法,但他们不建议在已经安装了IIS的机器上使用它。显然,可以安装Apache和MySQL并以这种方式进行,但考虑到Windows为您提供的功能(即在IIS中运行PHP的方法——我认为WindowsServer2008甚至为此进行了优化),这是最好的方法吗?有没有办法以SQLSer