汇编语言
文章平均质量分 66
ThatAllOver
学习快乐才是快乐。
展开
-
汇编语言of640KB限制
DOS操作系统运行在实模式下面,而8086CPU寻址范围仅仅1MB,系统已经自动使用的存储器地址被安排在高端,地址从A0000h(640KB)开始的384KB,这里面有用于显示的视频缓冲区和BIOS的地址空间,而中断向量表和BIOS数据区被安排在低端地址剩下的从500h开始到A0000h总共不到640KB的内存操作系统和程序能够使用的,程序不能够使用这640KB以外的空间。...原创 2018-10-18 12:18:29 · 348 阅读 · 0 评论 -
VS2017的DEBUG版本的main函数地址模板
push ebpmov ebp,espcall 0x00000000//获取环境变量push eax call 0x00000000//获取命令行参数指针mov eax,dword ptr ds:[eax]push eax call 0x00000000//获取命令行个数mov ecx,dword ptr ds:[eax]push ecxcall main//调用main函数...原创 2019-05-04 21:27:42 · 297 阅读 · 0 评论 -
OD入门基础
JE, JZ – 结果为零则跳转JNE, JNZ – 结果不为零则跳转JS – 结果为负则跳转JNS – 结果不为负则跳转JP, JPE – 结果中1的个数为偶数则跳转JNP, JNPE – 结果为1的个数为奇数则跳转JO – 结果溢出了则跳转JNO – 结果没有溢出则跳转JB, JNAE – 小于则跳转 (无符号数)JNB, JAE – 大于等于则跳转 (无符...转载 2019-03-16 21:05:10 · 961 阅读 · 0 评论 -
OD入门基础
NOP(无操作)PUSH指令-将操作数压入堆栈中POP指令是出栈PUSHAD指令把所有通用寄存器的内容按一定顺序压入到堆栈中,PUSHAD也就相当于’PUSH EAX,PUSH ECX,PUSH EDX,PUSH EBX,PUSH ESP,PUSH EBP,PUSH ESI, PUSH EDI’POPAD 该指令与PUSHAD正好相反PUSHA...转载 2019-03-15 23:01:18 · 2543 阅读 · 0 评论 -
OD基础入门
O 标志(溢出标志)A 标志(辅助进位标志)P 标志(奇偶标志)该二进制数中的的 1 的总个数为偶数时,P 标志被设置Z 标志(零标志)当运算产生的结果为 0 时被设置为1S 标志(符号标志)运算结果为负时设置为 1C 标志(进位标志) 超过最大数值时设置...转载 2019-03-15 22:50:18 · 1214 阅读 · 0 评论 -
OD基本图标功能
L 图标或 View-> Log,显示日志窗口,通过配置,可以显示 OllyDbg 启动时保存在日志窗口 的不同类型信息,也涉及条件断点的信息。以后我们会再次用到它,现在让我们看一下当前 运行进程(CrackMe)的信息和它加载的库文件。E 按钮 View ->Executables 显示程序运行使用的模块:exe,,dll,,ocx 和其它。M 按钮或 View->Me...转载 2019-03-15 22:37:41 · 474 阅读 · 0 评论 -
汇编语言of条件转移指令
ja,无符号数大于时,cf=0 zf=0jae,无符号数大于等于时,cf=0jb,无符号数小于时,cf=1jbe,无符号数小于等于时,cf=1 zf=1jc,有进位时,cf=1jcxz,ecx为0时,ecx=0je,相等时,zf=1jg,有符号数大于时,zf=0 sf=ofjge,有符号数大于等于时,sf=ofjl,有符号数小于时,sf!=ofjle,有符号...原创 2018-10-22 21:38:03 · 1247 阅读 · 0 评论 -
汇编语言of常用指令
dst:目的操作符 src:源操作符 str dst,把任务状态段寄存器tr内容保存到dst指定的地址中。ltr src,从src指定的地址中装入数据给任务状态段寄存器tr。sldt dst,把局部描述符表寄存器ldtr内容保存到dst指定地址中。lldt src,从src指定地址中装入数据给局部描述符表寄存器ldtr。sidt dst,把中断描述符表寄...原创 2018-10-22 21:18:54 · 2398 阅读 · 0 评论 -
汇编语言of控制寄存器
控制寄存器有三个。1.指令指针控制寄存器IP,instruction pointer,用来装载程序指令的地址,和cs结合起来可以准确地指向下一条指令要执行的地址,在16位CPU中寻址在64kb内,在32位CPU中可以寻址4gb。2.程序状态字寄存器PSW,program status word,记录一条指令执行后程序所处的状态,也是有着16位和32位之分,示意图自己百度。cf,carr...原创 2018-10-17 20:54:01 · 1224 阅读 · 0 评论 -
汇编语言of段寄存器
段寄存器segment用来说明段的起始地址,有cs,ds,es,ss,任何CPU中长度都是16位。cs段寄存器,code segment,代码段起始地址。ds段寄存器,data segment,数据段起始地址,内存访问一般默认ds为段基地址。es段寄存器,extra segment,附加段起始地址。ss段寄存器,stack segment,堆栈段起始地址,bp,sp默认ss为段基地...原创 2018-10-17 20:33:05 · 761 阅读 · 0 评论 -
汇编语言of保护模式下的描述符类型
保护模式下的描述符可以分为三种类型,就是存储段描述符,系统段描述符,控制描述符。不同类型的描述符长度都是相同的,都是8个字节。存储段描述符描述代码和数据区域,包括代码段和数据段的起始地址和范围。系统段描述符描述一些特定的数据区域,主要是局部描述符表和任务状态段。控制描述符描述程序的控制转移调用中断切换任务。在描述符的八个字节里面有两位是用来说明这个描述符级别的,叫描述符特权级,英文...原创 2018-10-17 20:26:30 · 391 阅读 · 0 评论 -
汇编语言基础知识of通用寄存器
通用寄存器有8个,都是16为位的,分别是ax,bx,cx, dx,si,di,sp, bp,其中寄存器ax,bx,cx, dx又被分为高八位和低八位,高八位和低八位都可以区分开来使用。ax寄存器的高八位是ah,低八位是al。bx寄存器的高八位是bh,低八位是bl。cx寄存器的高八位是ch,低八位是cl。dx寄存器的高八位是dh,低八位是dl。ax寄存器,accumulator,...原创 2018-10-17 19:48:03 · 1328 阅读 · 0 评论 -
反汇编引擎的工作原理
OllyDBG和IDA都有一个很重要的功能:反汇编在X86平台下使用的汇编指令对应的二进制机器码为Intel 指令集一Opcode,Intel指令手册中描述的指令由6部分组成:Irsinucton Prefixes 指令前缀Opcode 指令操作码Mode R/M 操作数类型SIB Displacement 辅助Mode R/M,计算偏移地址Immedate 立即数 ...原创 2018-10-22 17:32:24 · 2588 阅读 · 0 评论 -
从零开发一个反汇编引擎,手工分析Opcode???
很久以前就想着自己开发一个反汇编引擎了,不久前又对这方面有兴趣,所有就研究了一下,其实也就那么一回事,不算太难的东西,语言基础比较好的兄弟可以去读一下微软的官方文档《64-ia-32-architectures-software-developer-instruction-set-reference-manual-3253》里面的2.2 IA-32E MODE和附录A,其它可以读一下《ArtofD...原创 2019-06-23 14:37:17 · 2218 阅读 · 1 评论