Windows编译、链接、调试
faithzzf
这个作者很懒,什么都没留下…
展开
-
简要分析Windows驱动加载
一般windows下驱动加载一是通过inf文件或者命令行sc命令动态加载驱动,二是通过系统启动的时候加载。那么windows内核是如何加载驱动呢?我通过简要分析 ReactOS 系统源码可以看到加载过程。通过简要分析加载过程,可以加深驱动程序的理解,我们也可以通过windbg或者hook驱动加载函数,去监控我们的系统安装了哪些驱动程序。 我自己以系统启动session管原创 2016-05-12 22:27:43 · 7593 阅读 · 0 评论 -
WinDbg 小贴士 -- dt命令搜索查看符号
WinDbg 小贴士 -- dt命令搜索查看符号。原创 2017-06-29 19:39:11 · 2615 阅读 · 0 评论 -
Win7以上系统通过Dbgview打印驱动日志
Win7以上系统通过Dbgview打印驱动日志。原创 2017-04-06 16:55:43 · 4824 阅读 · 0 评论 -
C++应用程序出现 0xc0150002 错误导致无法启动跟踪解决
C++应用程序出现 0xc0150002 错误导致无法启动跟踪解决。原创 2017-04-18 17:51:24 · 2370 阅读 · 0 评论 -
通过命令行cl.exe编译Windows程序--预编译跟踪宏定义
通过命令行cl.exe编译Windows程序--跟踪宏定义。原创 2017-01-18 16:57:59 · 2706 阅读 · 0 评论 -
一步步通过命令行cl.exe编译Windows程序
Windows系统下有强大的IDE工具VS,VC6.0等,隐藏了很多编译和链接的细节。 事实上,VS是通过调用cl.exe进行源代码编译。接着调用link.exe进行目标文件的链接等操作。 有时候,如果出现编译或者链接错误,我们也可以通过命令行工具,调用这些编译和链接程序,可以更好的理解和分析程序的运行机制,解决问题。 在我本机上,这些可执行文件在 C:\Program原创 2016-08-26 14:51:31 · 15608 阅读 · 0 评论 -
ReactOS实践(一) ReactOS 源代码编译以及VMWare下运行
ReactOS一个类似Windows NT的内核,通过下载源代码进行编译,以及在VMware中运行编译完成的CD。原创 2016-11-28 18:15:11 · 7442 阅读 · 2 评论 -
error LNK2005: _KeInitializeSpinLock@4 already defined in driverentry.obj DDK编译错误解决
开发编译一个Windows DDK的驱动时候,出现类似的编译错误 wdm.lib(ntoskrnl.exe) : error LNK2005: _KeInitializeSpinLock@4 already defined in driverentry.obj。 查了下资料,没有类似的提示。后面发现是头文件顺序调整下就可以正常编译通过了。 #include #include原创 2017-01-05 18:03:54 · 684 阅读 · 0 评论 -
VS 2008忽略警告的方法
VS 2008忽略警告的方法。原创 2016-05-20 11:54:31 · 5774 阅读 · 0 评论 -
下载Detours源代码、编译Detours Express Lib库(32位静态库,版本3.0)
下载以及编译Detours Lib库(32位静态库)。原创 2016-12-06 16:46:04 · 3558 阅读 · 0 评论 -
警告C4995解决办法 warning C4995: '_vsnprintf': name was marked as #pragma deprecated
一些字符串操作相关的操作不时会提示类似的错误。其实这个警告是由于可能会造成的缓冲区溢出而报的。 替换使用_s的安全函数即可。即 _vsnprintf_s 。其它字符串操作的类似的函数也建议使用带_s后缀的安全函数。原创 2016-11-23 15:49:35 · 2441 阅读 · 0 评论 -
Windows驱动通过inf文件生成cat文件步骤
Windows驱动通过inf文件生成cat文件步骤,以便可以再在Win7 64位以上系统正常安装和使用驱动程序。原创 2016-12-01 09:44:56 · 16597 阅读 · 4 评论 -
main函数执行前后--全局构造和atexit
一直以来,程序都是从mian函数开始执行调试,我们会想当然认为main函数里面的代码就是程序的全部运行过程。事实上,main函数之前,程序已经开始运行了,main函数退出后,程序也并不一定就完全退出了。 C语言中的全局变量或者C++中的全局对象构造都会在main函数之前运行。而通过atexit函数注册,main函数之后也可以执行某些操作,比如释放某些资源,比如全局锁。如果注册多个at原创 2016-06-23 11:48:17 · 850 阅读 · 0 评论 -
WinDbg 小贴士 -- 通过双机联调来远程调试应用程序
WinDbg 小贴士 -- 双机联调时调试应用程序。原创 2017-06-30 10:26:14 · 995 阅读 · 0 评论