搜索结果
查询Tags标签: eax,共有 95条记录-
Linux0.11 move_to_user_mode分析
/** IRET* 当使用IRET指令返回到相同保护级别的任务时,也就是当前的CS中的DPL和堆栈中的DPL相同时* IRET会从堆栈弹出代码段选择子及指令指针分别到CS与IP寄存器,* 并弹出标志寄存器内容到EFLAGS寄存器。* * 当使用IRET指令返回到一个不同的保护级别时,也就是当前的CS中…
2022/9/2 5:22:47 人评论 次浏览 -
关于应用程序头部信息
在launcher.asm的应用程序中,可以看到头部信息如下:use32org 0x0db MENUET01 ; 8 byte id dd 0x01 ; header version dd START ; start of code dd I_END ; size…
2022/8/28 1:22:50 人评论 次浏览 -
编写X86的ShellCode
ShellCode 定义 ShellCode是不依赖环境,放到任何地方都能够执行的机器码 编写ShellCode的方式有两种,分别是用编程语言编写或者用ShellCode生成器自动生成 ShellCode生成器生成的shellcode功能比较单一,常见的ShellCode生成器有shell storm、Msfvenom等 而用编程语言写…
2022/8/25 5:23:21 人评论 次浏览 -
X86汇编层面的方法调用。
本文主要描述了X64下的汇编层面的方法调用。具体来说就是一个C语言的方法被另外一个方法调用,是如果在汇编语言X64的规范中实现的。 1.假设有如下C语言文件 "test.c"点击查看代码 int sumNine(int one, int two, int three, int four, int five, int six, int …
2022/8/22 1:26:06 人评论 次浏览 -
linux-0.11分析:boot文件 head.s 第三篇随笔
head.s 参考 [github这个博主的][ https://github.com/sunym1993/flash-linux0.11-talk ]改变栈顶位置 _pg_dir: startup_32:movl $0x10,%eaxmov %ax,%dsmov %ax,%esmov %ax,%fsmov %ax,%gslss _stack_start,%esp先是分别ds,es,fs,gs的值都置成了0x10 然后这段lss _sta…
2022/8/2 5:22:44 人评论 次浏览 -
内联汇编的使用,函数返回值的外部调用
#include "windows.h" #include "stdio.h"_declspec(naked) void Fun() {_asm{push ebp;mov ebp ,esp;sub esp ,0x40;push esi;push edi;push ecx;mov eax,0xcccccccc;mov ecx,0x10;lea edi,[ebp-0x40];REP STOS DWORD PTR ES:[EDI];mov eax,[ebp+0x8…
2022/5/25 1:22:54 人评论 次浏览 -
汇编学习笔记
dispmsg eax=要输出字符串地址dispc al=要输出字符dispcrlf 换行disphd 以16进制输出8位dispuid 输出无符号十进制数dispsid 输出有符号十进制数readmsg入口:eax=字符串地址 出口:eax=字符数量readc al=读入的字符readhd eax=读入的8位十六进制数readuid eax=读入的无符…
2022/5/11 11:23:57 人评论 次浏览 -
WindowsPE权威指南学习过程中的代码片段
第一个基础的HelloWorld.386.model flat,stdcalloption casemap:noneinclude windows.inc include user32.inc includelib user32.lib include kernel32.inc includelib kernel32.lib.data szText db HelloWorld,0.code start:invoke MessageBox,NULL,offset szText,NULL,…
2022/4/3 7:19:34 人评论 次浏览 -
你管这叫操作系统源码(三)
文章目录 重新设置idt和gdtIntel内存管理:分段与分页进入main前的最后一跃资料重新设置idt和gdt 正式进入 c 语言写的 main.c 之前的 head.s 究竟写了点啥?head.s 文件很短: _pg_dir: _startup_32:mov eax,0x10mov ds,axmov es,axmov fs,axmov gs,axlss esp,_stack_sta…
2022/2/28 22:22:10 人评论 次浏览 -
计算机系统-汇编基础
一.寄存器&数据传送mov指令 1.80386通用寄存器 16位:AX,BX,CX,DX;SI,DI;SP,BP; 8位:AH,AL;BH,BL;CH,CL;DH,DL 32位:EAX,EBX,ECX,EDX;ESI,EDI;ESP,EBP 段寄存器:DS,ES,SS等 2.AT&T汇编代码 格式:指令 源操作数,目的…
2022/2/28 1:23:44 人评论 次浏览 -
数组和指针的区别
// test.c void test() {char array[4] = {0};*(array + 0) = 0x00;array[1] = 0x11;*(array + 2) = 0x22;array[3] = 0x33;char *pointer = array;pointer[0] = 0x00;pointer[1] = 0x11;pointer[2] = 0x22;pointer[3] = 0x33; }// Makefile test.o: test.cgcc -c -O0 -m3…
2022/2/20 6:28:16 人评论 次浏览 -
反汇编分析C语言
环境 VC6.0环境 空函数反汇编 #include "stdafx.h" void function(){} int main(int argc, char* argv[]) {function();printf("Hello World!\n");return 0; }我们通过反汇编来分析这段空函数###函数外部 10: function(); 00401068 call …
2022/2/8 17:12:34 人评论 次浏览 -
day01.2-初识汇编
一、逻辑运算逻辑运算:与(and)、或(or)、亦或(xor)、非(not) 计算机除了数据,还要做运算,二进制之间会进行逻辑运算,计算机不会加减乘除,这些运算计算机都是通过移位或者通过逻辑运算实现的。因为计算机只认识二进制数,所以所有的加减等运算都是通过CPU对二…
2022/2/2 14:14:09 人评论 次浏览 -
NASM 汇编学习6
slen:push ebxmov ebx, eaxnextchar: cmp byte[eax], 0jz finished inc eax jmp nextchar finished:sub eax,ebxpop ebxret;--------------------- ; void sprint(String message) ; String printing functionsprint:push edxpush ecxpush ebxpush eaxcall slenmov edx, e…
2022/2/2 1:29:26 人评论 次浏览 -
CSAPP Bomblab 学习记录
Bomblab 针对自学材料的bomblab解题过程。 phase_1 disas phase_1查看对应函数的汇编代码,发现其将0x402400作为第二个参数传入strings_not_equal 函数,如果该函数返回值为0,函数结束,否则引爆炸弹。 因此,合理推测其是在比较输入的字符串和0x402400处的字符串,通过在…
2022/1/29 6:04:27 人评论 次浏览