Windows汇编基础入门.docx

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一.环境配置1.1.MASM32 SDK下载1.2 EditPlus Masm环境配置1.下载语法文件模板(下载地址/others.html)。找到masm615.zip下载,然后解压,放到C:/ProgramFiles/EditPlus 3(通常语法文件都放回EditPlus的目录,以免不见了)。1.3 WinDbg环境配置符号表下载地址:/download/symbols/packages/windowsxp/WindowsXP-KB835935-SP2-slp-Symbols.exeWinDbg下载地址:/download/symbols/debuggers/dbg_x86_.exe安装VMWare虚拟机,并在虚拟机里安装操作系统,如WinXP SP2。安装完成后修改boot.ini文件。在里面[operating systems]节中加入一行, multi(0)disk(0)rdisk(0)partition(1)\WINDOWS=WIN XP Debug /fastdetect /debug /debugport=com2 /baudrate=115200 另外建议将[boot loader]节下的timeout修改为一个较大的值,这样倒计时会比较长我们能有足够的时间来选择系统加载菜单。随后关闭系统配置虚拟机的硬件,点击 Edit virtual machine settings,添加一个Serial Port,选择Output to named pipe,然后下一步;第一框里保持默认的 \\.\pipe\com_2第二框里选This end is the server.第三框里选The other end is an application.选中 Connect at power on然后点击 Advanced 然后在新窗口中选中 Yield CPU on poll,保存退出。在真实系统中查看设备管理器,在端口里找到Com2,然后再属性页中的“端口设置”修改速率为115200。为使方便,在WinDbg的快捷方式属性中的“目标(T)”栏里输入:C:\Program Files (x86)\Windows Kits\8.0\Debuggers\x64\windbg.exe -y C:\Symbols\ -b -k com:port=\\.\pipe\com_2,baud=115200,pipe二.基本知识2.1使用MASM1实模式处理器工作的基础,Dos操作系统2保护模式寻址范围有4GB,Windows操作系统3 虚拟86模式为了兼容以前的MS-DOS程序,采用模拟的方法 4 可读可写的未定义变量(如缓冲区或者程序执行后才开始使用的)放在.data?,存放在_BSS节区,初始值为05 返回值永远在eax中,如果是结构体放在指向返回数据的指针6 mov ax,word ptr szBuffer 强制类型转换7 szHello db ‘Hello’,0dh,0ahDb ‘World’,0Sizeof szHello 的值为78 offset 是在编译时完成的,对于局部变量ebp不确定所以要使用addr,把地址放入eax中,用eax来代替变量地址使用ADDR 只能用在invoke语句中,它既可以获取全局变量的地址(.Data和.Data?中声明的变量),也可以获取局部变量的地址,由于在存取堆栈获取参数地址时使用了EBP和EAX,所以如果在ADDR标识的局部变量前使用EAX或者EBP寄存器作为参数就会出错。9 条件测试语句中表达式左边不能是常数,两边不能同时是变量10 循环语句,注意条件比较的操作数总看作无符号数.while 表达式.break .if 条件.continue.endw.repeat.break .if.continue.until10字节存储顺序Intel 为逆序存入以1000h的内存中,低位字节存入低地址,反序排列78h1000H56h1001H34h1002H12h1003H….1004H11 Unicode编码如pediy 它的ASII码为70h 65h 64h 69h 79 hUnicode 码为 0070h 0065h 0064h 0069h 0079h内存形式为从低字节到高字节Unicode版本的程序在Windows 9x下无法正常运行70006500640069007900PE文件的基地址由文件本身所设定,如VisualC++的EXE文件基地址DLL基地址,可以在链接应用时通过/BASE选项改变它2.2寄存器相关EAX 累加器,常见运算操作和函数返回值,优化的指令会优先将数据写入或读出EAX寄存器,再对数据进行进一步的计算,运算

文档评论(0)

wuailuo + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档