一、实验要求 找一个系统调用,系统调用号为学号最后2位相同的系统调用; 通过汇编指令触发该系统调用; 通过gdb跟踪该系统调用的内核处理过程; 重点阅读分析系统调用入口的保存现场、恢复现场和系统调用返回,以及重点关注系统调用过程中内核堆栈状态的变化。 二、实验目的 理解Linux操作系统调用; 了解 ...
分类:
其他好文 时间:
2020-05-24 11:30:49
阅读次数:
78
一、实验要求 1.学号末尾为59,故采用59号系统调用execve。 2.通过汇编指令触发系统调用 3.通过gdb跟踪该系统调用的内核处理过程 4.重点阅读分析系统调用入口的保存现场和恢复现场 二、环境准备 1. 安装环境 1 sudo apt install build-essential 2 s ...
分类:
系统相关 时间:
2020-05-24 00:40:41
阅读次数:
89
9.7jcxz指令 jcxz指令为有条件转移指令,所有的有条件转移指令都是短转移,在对应的机器码中包含转移的位移,而不是目的地址。对ip的修改范围都为-128~127 指令格式:jcxz 标号 (如果cx=0,则转移到标号处执行) jcxz 标号 指令操作: 当cx=0时,ip=ip+2位位移 8位 ...
分类:
其他好文 时间:
2020-05-23 16:53:51
阅读次数:
67
@ "TOC" 1 操作说明 本次实验采用20号系统调用 通过汇编指令触发该系统调用 通过gdb跟踪该系统调用的内核处理过程 阅读分析系统调用入口的保存现场、恢复现场和系统调用返回,以及关注系统调用过程中内核堆栈状态的变化 2 知识预备 我们知道,中断是操作系统的一个重要概念,是操作系统并发操作的的 ...
分类:
系统相关 时间:
2020-05-23 11:27:16
阅读次数:
56
0:200~0:2FF是相对安全的,可这段空间的容量只有256个字节,如果我们需要的空间超过256个字节该怎么办呢? 在操作系统的环境中,合法地通过操作系统取得的空间都是安全的,因为操作系统不会让一个程序所用的空间和其他程序以及系统自己的空间相冲突。在操作系统允许的情况下,程序可以取得任意容量的空间 ...
分类:
编程语言 时间:
2020-05-15 20:31:51
阅读次数:
94
编程语言分为低级语言和高级语言,机器语言、汇编语言是低级语言,C、C++、java、python等是高级语言。 机器语言是最底层的语言直接执行,汇编语言通过汇编器翻译成机器指令后执行,一条汇编指令,对应着一条机器指令。 高级语言编程的程序有三种执行方式: 1.一种是编译执行,程序语句先通过编译器(负 ...
分类:
编程语言 时间:
2020-05-08 20:00:30
阅读次数:
122
涉及到以下汇编指令: pushl: 入栈 ebp指向栈底 esp指向栈顶 入栈时只需要将esp下移, 将入栈的值放入esp指向的地址,如下图所示: popl: 出栈 先将栈顶的数据保存,再将esp上移 call:顾名思义,调用一个函数 调用一个函数需要将当前执行到的指令位置(eip寄存器的值)保存, ...
分类:
其他好文 时间:
2020-05-07 00:26:08
阅读次数:
72
基础知识 机器语言和汇编语言 机器语言是机器指令的集合,是一列二进制数字,每一种微处理器都有自己的机器指令集。因为机器语言难以记忆,容易出错,故诞生了汇编语言。汇编语言由汇编指令组成,汇编指令是机器指令便于记忆的格式。汇编语言可以由编译器将其编译为机器码,由计算机最终执行。 汇编语言有以下3类指令组 ...
分类:
其他好文 时间:
2020-04-30 23:01:15
阅读次数:
73
汇编语言基础 汇编语言不仅与cpu指令集架构有关系,也与微架构对指令集的具体实现有关系. 汇编语言的产生 机器指令难以辨别和记忆,于是产生了汇编语言。 汇编语言的主体是汇编指令。汇编指令和机器指令的差别在于指令的表示方法上。汇编指令是机器指令便于记忆的书写格式。 汇编语言程序工作过程 汇编语言组成 ...
分类:
编程语言 时间:
2020-04-30 13:28:05
阅读次数:
63
汇编指令太多了,这里借鉴了一位大神整理的指令: X86和X87汇编指令大全(有注释) 一、数据传输指令 它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据. 1. 通用数据传送指令. MOV 传送字或字节. MOVSX 先符号扩展,再传送. MOVZX 先零扩展,再传送. PUSH 把字压入堆栈 ...
分类:
其他好文 时间:
2020-04-26 11:03:40
阅读次数:
72