X86指令主要包括:运算类指令(算术运算和逻辑运算)、传送类指令、转移类指令、控制类指令,一条指令要么改变通用寄存器的内容,或者改变标志位,或者改变存储器单元的内容,或者改变外设端口的内容,或者改变指令指针。 1.传送指令,作用是把数据或地址传送到寄存器或存储单元中。 MOV指令(传送) PUSH指 ...
分类:
其他好文 时间:
2020-06-02 11:10:49
阅读次数:
51
简介 分为inline hook 和 iat hook inline HOOK 修改api前5个字节 为 jmp 地址(偏移) 计算公式为(地址):我们函数地址 - 当前地址(api地址)-5 inline HOOK 代码 #include <iostream> #include<Windows.h ...
8086cpu的转移指令分为以下几类: 无条件转移指令(如:jmp) 条件转移指令 循环指令 过程 中断 9.1 操作符0ffset 操作符offset在汇编语言中是由编译器处理的符号,他的功能是取得标号的偏移地址。 9.2 jmp指令 jmp为无条件转移,可以只修改ip,也可以同时修改cs和ip ...
分类:
其他好文 时间:
2020-05-23 14:51:27
阅读次数:
78
深入特权级转移A.深入理解调用门1.调用门用于向高特权级的代码段转移2.调用门描述符的特权级低于当前特权级关于调用门的注意事项1.调用门支持特权级同级转移2.调用门同级转移被处理为普通函数调用或直接跳转3.CALL通过调用门能提升特权级,jmp通过调用门只能同级转移4.通过调用门特权级返回(retf)时,对目标代码段以及栈段进行特权级检查,对相关段寄存器强制清零(指向高特权级数据的段寄存器)代码%
分类:
其他好文 时间:
2020-05-02 23:20:06
阅读次数:
111
不管逆向分析什么。我们肯定要先正向跑一遍。搞清楚我们要找的是什么。理清思路。 从图片可以看出。当我们姓名和序列号不对时,他会有个弹窗提示错误。所以我们可以从这个弹窗入手。它判断我们输入的姓名和序列号的对错肯定是弹窗之前判断的。所以我们要在弹窗函数下个断点。win32API的MessageBoxA函数 ...
分类:
其他好文 时间:
2020-04-30 13:10:10
阅读次数:
60
代码间跳转的执行流程 以下面代码为例,看CPU在跳转过程做了什么操作。 jmp 0x20,0x004183d7 (一)段选择子拆分 0x20的二进制形式 0000_0000_0010_0000; RPL=00; TI=0; INDEX=4; (二)查表得到段描述符 TI=0,所以查GDT表; IND ...
分类:
其他好文 时间:
2020-04-23 23:30:24
阅读次数:
119
00EA841C |. /75 6A JNZ SHORT taskmgr.00EA8488 00EA841E |. |8D4D F4 LEA ECX,[LOCAL.3] 00EA8421 |. |51 PUSH ECX ; /pResult 00EA8422 |. |68 F4010000 PUSH ...
一、要求 二、上机调试 1.debug调试开始,首先查看反编译后的汇编代码(假设ob38就是段地址1000) 2.执行第一条指令mov ax,6 3.执行第二条指令call ax,也就是call 6(我们知道,对于call 16位reg格式来说,相当于push ip;jmp 16位reg。) 执行了 ...
分类:
其他好文 时间:
2020-03-31 14:53:03
阅读次数:
101
一、实验内容 需要回答的问题在第二部分里面 1、掌握NOP, JNE, JE, JMP, CMP汇编指令的机器码 NOP:0x90 空指令;运行该指令时单片机什么都不做,但是会占用一个指令的时间;当指令间需要有延时时,可以插入“NOP”指令。 JNE:0x75 条件转移指令;ZF标志位为0时跳转。 ...
分类:
其他好文 时间:
2020-03-23 00:31:06
阅读次数:
96
一、实验名称 逆向及Bof基础实践 二、实验目的 1.掌握NOP, JNE, JE, JMP, CMP汇编指令的机器码 2.掌握反汇编与十六进制编程器 3.能正确修改机器指令改变程序执行流程 4.能正确构造payload进行bof攻击 三、实验内容 本次实验的对象是一个名为pwn1的linux可执行 ...
分类:
其他好文 时间:
2020-03-23 00:27:34
阅读次数:
134