![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
技术笔记
文章平均质量分 68
linjasmine
相信自己!
展开
-
Windows程序调试--PE文件
PE文件:可移植的可执行文件,32位的Windows可执行文件都采用此格式,以COFF为基础。COFF:通用对象文件格式。PE文件结构: Ms-dos头(header)和存根(stub); 映射文件头(image file header); 4029Byte原创 2008-10-07 23:02:00 · 784 阅读 · 0 评论 -
Windows程序调试--创建映射文件
创建映射文件 做事后调试需要一个对应于程序创建的所有模块的映射文件。 映射文件包含对应模块的最佳装载地址、段表、输出符号地址、静态符号地址以及程序代码地址和源程序行号的映射。 为你的程序创建映射文件,你必须对Visual C++工程中的相应选项作适当的设置。第一步是打开映射文件生成功能、你可以在工程设置对话框里进行设置,在Link标签里的Debug类里打原创 2008-10-28 08:57:00 · 498 阅读 · 0 评论 -
DirectShow学习--Filter的开发(1)
开发环境的配置 源文件中要包含Streams.h头文件; 使用_stdcall函数调用约定; 使用多线程的C运行库,在工程中User run-time Library中,Debug选择Debug Multithreaded,Release版选择Multithreaded; 连接库需配置 Debug:Strmbasd.lib Msvc原创 2008-10-28 09:52:00 · 417 阅读 · 0 评论 -
匈牙利命名法
匈牙利命名法MFC、句柄、控件及结构的命名规范 Windows类型样本变量MFC类样本变量HWNDhWnd;CWnd*pWnd;HDLGhDlg;CDialog*pDlg;HDChDC;CDC*pDC;HGDIOBJhG转载 2008-10-28 09:41:00 · 315 阅读 · 0 评论 -
Windows程序调试--Dr.Watson调试
Dr.Watson调试 只要一个没有崩溃的堆栈、一个Dr.Watson日志文件,就可以得到从错误跟踪到出错源程序的任何信息。它给了一个非常详细的堆栈跟踪、对应于每个堆栈帧的汇编代码以及系统状态的一个概要记录。 Dr.Watson可执行文件XP中在/WINDOWS/system32/drwatson.exe,配置程序/WINDOWS/system32/drwtsn3原创 2008-10-28 09:17:00 · 428 阅读 · 0 评论 -
windows程序调试--Dll的重定位
<!-- /* Font Definitions */ @font-face {font-family:宋体; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-alt:SimSun; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch原创 2008-10-08 00:19:00 · 633 阅读 · 0 评论 -
读取16进制转存信息
字节存在内存中有两种方式1. Big Endian:首先存储高字节,例0x12345678 存为 0x12 0x34 0x56 0x782. Little Endian:首先存储低字节,例 0x12345678 存为 0x78 0x56 0x34 0x12Intel处理器使用的是Little Endian原创 2008-10-08 10:53:00 · 436 阅读 · 0 评论 -
Windows程序调试--函数调用规范
参数的压栈、退栈方式是由函数调用规范决定的 Windows常用的调用规范:调用规范描述_cdeclC/C++程序的默认调用规范。参数从右到左传递,由调用函数负责将参数从堆栈中移走,这利于传递个数可变的参数_stdcall这个WindowAPI函数使用的调用规范。参数从右到左传递,由被调用函数负责将参数从堆栈原创 2008-10-08 10:50:00 · 453 阅读 · 0 评论 -
Windows程序调试--线程堆栈
每一个线程都有自己的堆栈,ESP和EBP寄存器都是堆栈专用的。 在一个函数被调用之前,函数参数和函数返回地址(EIP)被压到堆栈顶。所有的参数在传递时被提升到32位,函数的返回值放在EAX寄存器中。在函数入口处,当前堆栈基址指针被压到堆栈中,且当前堆栈指针为新的堆栈基址指针。局部变量的存储空间、函数使用的各种需要保存的寄存器的存储空间在函数入口处也被预留出来。 函数原创 2008-10-08 10:39:00 · 955 阅读 · 0 评论 -
常用cpu寄存器
寄存器用法EAX通用寄存器、记录函数返回值EBX通用寄存器ECX通用寄存器,记录指向对象this指针EDX通用寄存器,记录64位函数返回值的高端字ESI内存移动和比较操作的源地址寄存器EDI内存移动和比较操作的目的地址寄存器EIP指令指原创 2008-10-08 00:47:00 · 447 阅读 · 0 评论 -
X86的常用汇编指令
指令含义mov将右操作数复制到左操作数lea装入有效地址。用来得到局部变量和函数参数的指针push将操作数压到堆栈的栈顶pop将堆栈的栈顶数弹出到操作数中pushad将所有通用寄存器压到堆栈的栈顶popad将堆栈的栈顶数弹出到所有的通用寄存器中原创 2008-10-08 00:27:00 · 853 阅读 · 0 评论 -
Windows程序调试--VC调试器使用
编译与连接选项调试错误的编译选项编译选项含义/W4在最高的警告层次作编译(所有版本都使用)/D ”_DEBUG”打开条件编译调试代码开关,例如,断言语句与跟踪语句(仅在调试版中使用)/GZ有助于在调试版本中找到在开发版本中经常会出现的错误,包括未初始化的自动(局部)变量、堆栈错误、不正确的函数原型(仅在调原创 2008-10-28 09:20:00 · 539 阅读 · 0 评论