跳转指令分三类:一、无条件跳转: JMP;二、根据 CX、ECX 寄存器的值跳转: JCXZ(CX 为 0 则跳转)、JECXZ(ECX 为 0 则跳转);三、根据 EFLAGS 寄存器的标志位跳转, 这个太多了.JMP 无条件转移指令1、段内直接短转移2、段内直接近转移3、段内间接近转移4、段间直...
分类:
其他好文 时间:
2016-01-04 23:54:51
阅读次数:
143
(一)跳转指令 一、无条件跳转指令(不管标志寄存器,执行到这局直接跳转) 1、段内直接跳转指令 (1)指令格式: JMP SHORT short_label; IP<--IP+DB,即代码直接跳转到此地址为 JMP near_label; IP<--IP+D16 基准的相应的地址中 (2)其实就是G...
分类:
其他好文 时间:
2015-12-09 00:22:01
阅读次数:
423
;day 1 org 0xc200 mov al, 0x13 mov ah, 0x00 int 0x10fin: hlt jmp fin
分类:
其他好文 时间:
2015-11-24 21:13:44
阅读次数:
163
显示字母与汉字现在我们明白了字符是怎么存在的,是怎么被显示出来的,下面我们将实践这个过程。一些准备工作。新建目录:D:\GX\ya\include,这里将存放头文件。boot.asm源码不变:[BITS16] ;编译成16位的指令[ORG0x7C00]jmp mainread_kernelloade...
分类:
其他好文 时间:
2015-11-16 20:59:32
阅读次数:
175
setjmp与longjmp是属于C语言中的,当然,C++也会有这两个函数了。他们的原型如下:int setjmp( jmp_buf env );作用:第一次调佣时,将寄存器的当前状态信息全部存入到env中,并返回0。如果在某处调用了longjmp(env,x),且x!=0,则setjmp的返回值将...
分类:
其他好文 时间:
2015-11-15 09:40:17
阅读次数:
301
用32位指令编写程序 上面用补充机器码的方式编写32位指令实在是麻烦,我们可以把16位与32位指令分离,分别编写16位与32位程序,这样就方便多了。 kernelloader跳转到32位的kernel.asm程序 修改kernelloader.asm,源码如下: [BITS 16] jmp main...
分类:
其他好文 时间:
2015-11-06 22:14:52
阅读次数:
258
1.编写引导程序org 0x7c00 ;将程序装载到指定的内存地址jmp entryentry:;初始化ds,es段寄存器 mov ax,cs mov ds,ax mov es,ax...
分类:
其他好文 时间:
2015-10-31 06:55:02
阅读次数:
210
去除nag窗口:方法一将je改成jmp跳过messageboxA方法二全部填充成Nop,选中右键二进制Nop填充第三种方法push的值改成1使句柄不存在获得模块句柄:第四种修改入口地址点击m进入内存分布图找到文件都双击进入找到入口点的地址返回主窗口将地址改成我们所需要的入口点的地址保存就可以了,再次...
分类:
其他好文 时间:
2015-10-30 17:01:27
阅读次数:
198
实现一个whoami 系统调用 系统调用的直观实现 问题+直观想法…用户程序调用whoami, 一个字符串"systemcall "放在操作系统中(系统引导时载入) ,取出来打印,有什么问题?不能随意的调用数据,不能随意的jmp 。 可以看到root 密码,可以修改它… 可以通过显存看到别人word...
分类:
其他好文 时间:
2015-10-28 12:18:25
阅读次数:
260
先看一下程序的运行情况先跳出了一个nag窗口点确定又跳出了一个NAG窗口,这是一些程序编写的时候常用的方法,设法让你购买正版软件,于是今天呢,学会了四种绕过NAG的方法我们先用OD加载进入这个程序F8单步调试,会发现一个跳转,我们可以用*第一种老办法,将je改为jmp无条件跳转就可以绕过第一个nag...
分类:
其他好文 时间:
2015-10-19 22:09:31
阅读次数:
177