随笔分类 -  汇编

摘要:需要使用汇编来演示如下代码 需要下载ollydbg汇编调试器 点击File-Open随意打开一个exe文件 我这里随便找到c:/windows/explorer.exe文件这里EIP的值表示下一次运行需要执行的代码位置双击 EIP红色地址 左边代码会自动跳转到对应的代... 阅读全文
posted @ 2016-08-06 12:14 饺子吃遍天 阅读(568) 评论(0) 推荐(0)
摘要:OEP OEP:(Original Entry Point),程序的入口点未加壳的程序 oep表示程序的入口点 加壳的程序会隐藏oep 找到真正的oep可以脱壳 并且反向调试程序 阅读全文
posted @ 2015-05-07 20:20 饺子吃遍天 阅读(830) 评论(0) 推荐(0)
摘要:Cy位是进位位,用来表示本次无符号数运算结果的溢出溢出。由于无符号数的最高有效位只有数位意义而无符号意义,所以该位所产生的进位应该是本次运算结果的实际进位值。所以说:进位位Cy是在给定二进制数的位数范围内,代表了本次运算结果的溢出情况。另一方面,它所保存的进位值有时... 阅读全文
posted @ 2015-04-21 09:22 饺子吃遍天 阅读(1158) 评论(0) 推荐(0)
摘要:如下6个状态标志位 1)O标志(溢出标志) (OverFlow Flag)O标志表示溢出。溢出位是用来表示带符号数的运算结果超出有限字长的表示范围的标志。它是根据两个操作数的符号及其变化来设置的。如两个操作数符号相同而运算结果的符号与之相反时 则O标志=1,反之,O标... 阅读全文
posted @ 2015-04-20 10:54 饺子吃遍天 阅读(699) 评论(0) 推荐(0)
摘要:因为在汇编机器语言中存在 ds ds是连续的数据段 直接使用ds写入 过程麻烦masm使用伪指令 来定义数据类型 并且自动写入ds段安装 winmasm v2.2 调试如下例子 学习4个指令的区别data segment a1 db 12H ;这里表... 阅读全文
posted @ 2015-04-16 19:36 饺子吃遍天 阅读(456) 评论(0) 推荐(0)
摘要:指令:编译软件最终编译成机器码伪指令:不编译成机器码 只是告诉编译器应该怎么做宏指令 : 将一堆指令合并编写 完成一个特定的任务 这里要让编译器知道是否是宏指令就需要伪指令声明这里举例 lea命令和offset命令lea为机器指令 offset为伪指令比如lea ... 阅读全文
posted @ 2015-04-16 11:21 饺子吃遍天 阅读(771) 评论(0) 推荐(0)
摘要:AH&AL=AX(accumulator):累加寄存器 BH&BL=BX(base):基址寄存器 CH&CL=CX(count):计数寄存器 DH&DL=DX(data):数据寄存器 SP(Stack Pointer):堆栈指针寄存器 BP(Base Pointer)... 阅读全文
posted @ 2015-04-15 16:48 饺子吃遍天 阅读(332) 评论(0) 推荐(0)
摘要:所有对寄存器的指令操作 都是操作寄存器中的值 比如 mov ax,3 将 立即数3 赋值给ax 而不是将3写入了某个内存 只是写入了ax这个寄存器中 只有通用寄存器才能操作立即数 其他断寄存器 以及内存单元都要通过通用寄存器来中转比如 mov ax,4mov d... 阅读全文
posted @ 2013-06-30 10:59 饺子吃遍天 阅读(501) 评论(0) 推荐(0)
摘要:总线分为 3种 地址总线,数据总线,控制总线 比如 要往内存地址a 写入 1 三条总线配合如下cpu通过 地址总线发送内存地址a到内存中 内存定位到a地址 cpu通过数据中线发送1到内存a地址 cpu通过控制总线发送写的指令 内存将1写入a地址怎么... 阅读全文
posted @ 2013-06-26 14:12 饺子吃遍天 阅读(490) 评论(0) 推荐(0)
摘要:首先先要清楚汇编中堆栈的原理 才能了解 stdcall的约束 这里 是我通过ollydbg汇编代码调试去理解比如 我们看到这个方法的调用位置为 00401378 找到这个地址的调用代码为00401378 |. E8 BD000000 call 00401... 阅读全文
posted @ 2012-11-06 19:36 饺子吃遍天 阅读(572) 评论(0) 推荐(0)
摘要:16位下 内存必须通过 段和偏移地址 去找到对应的内存 位置 每个段只能处理64K个地址32位置下 能够处理的地址总数达到 2的 32次方 也就是 4294967296个地址=4GB的内存空间就不再需要 将数据划分成段 了可以用任意的段寄存器寻址任意的地址空间 不再需... 阅读全文
posted @ 2012-11-06 19:31 饺子吃遍天 阅读(356) 评论(0) 推荐(0)
摘要:1 16位微机的内存管理模式 1 16位微机的内存管理模式 2 32位微机的内存管理模式 2 32位微机的内存管理模式 寄存器的分类寄存器主 要 用 途通用寄 存 器数据 寄存器AX乘、除运算,字的输入输出,中间结果的缓存AL字节的乘、除运算,字节的输入输出,十... 阅读全文
posted @ 2012-11-06 17:21 饺子吃遍天 阅读(685) 评论(0) 推荐(0)
摘要:八进制十六进制十进制字符八进制十六进制十进制字符00000nul1004064@01011soh1014165A02022stx1024266B03033etx1034367C04044eot1044468D05055enq1054569E06066ack106467... 阅读全文
posted @ 2012-03-29 14:09 饺子吃遍天 阅读(171) 评论(0) 推荐(0)
摘要:ASSUME CS:code,DS:data;用于定义段例如:assume cs:code,ds:dataSEGMENTENDS;用于定义数据或者代码例如:data segment msg db "122" bbs db 99,2d,3ddata endsSTAR... 阅读全文
posted @ 2012-03-29 12:14 饺子吃遍天 阅读(251) 评论(0) 推荐(0)
摘要:data segmentINTVALUE DB 6 ;使用别名的方式来定义字节变量 DB 'A', 'D', 0Dh, '$' ;不使用别名定义必须通过ds偏移来获取值LOOPTABLE DB 1, 3, 5, 7, 9, 11,? ;data endsDB... 阅读全文
posted @ 2012-03-29 11:48 饺子吃遍天 阅读(251) 评论(0) 推荐(0)
摘要:存储单元中所存放的二进制信息通常称为该存储单元的内容或值,并且规定: 一个字节的内容是该字节单元内存放的二进制信息; 一个字的内容是该字地址所指向的单元及其后继一个单元的内容拼接而成; 一个双字的内容是该字地址所指向的单元及其后继三个单元的内容拼接而成。在拼接“字内容... 阅读全文
posted @ 2012-03-29 10:21 饺子吃遍天 阅读(290) 评论(0) 推荐(0)
摘要:当除数是字节 也就是8位的时候 被除数必须是16位 被除数存放在ax寄存器中 除数放在bl中除到得 结果是 商是8位放在al中 余数放在ah中例子mov ax,0006hmov bl,02hdiv bl使用debug调试时 查看结果执行div bl查看ax的结果... 阅读全文
posted @ 2012-03-28 10:38 饺子吃遍天 阅读(1413) 评论(0) 推荐(0)
摘要:1、字节(DB)define byte一个字节有8位二进制组成,其最高位是第7位,最低位是第0位。在表示有符号数时,最高位就是符号位。00001001 =910001011 = -11 有符号 = 139 ... 阅读全文
posted @ 2012-03-10 22:58 饺子吃遍天 阅读(392) 评论(0) 推荐(0)
摘要:1. 系统引导时,中断向量表放在内存何处? 系统刚引导时,内存0x00000到0x0003FF共1KB的空间用于存放中断向量表。每个中断向量占用4个字节,共可存储256个中断向量。2. 系统引导时,处在实模式下,只可寻址1MB,为什么要用4个字节来寻址中断呢处... 阅读全文
posted @ 2012-03-10 12:51 饺子吃遍天 阅读(152) 评论(0) 推荐(0)
摘要:ASSUME CS:CODES,DS:DATAS,SS:STACKSDATAS SEGMENT ;此处输入数据段代码 msg db "first","k111",112DATAS ENDSSTACKS SEGMENT ;此处输入堆栈段代码STAC... 阅读全文
posted @ 2012-03-10 12:24 饺子吃遍天 阅读(313) 评论(0) 推荐(0)