EAX
  • 2024-06-16第一章 进制,寄存器,汇编指令(公开课)
     一、进制1、十进制:由0.1.2.3.4.5.6.7.8.9组成,逢十进一2、二进制:由0.1组成,逢二进一eg:0--01--12--103--114--1005--1016--1103、十六进制:由0.1.2.3.4.5.6.7.8.9.A.B.C.D.E.F组成,逢十六进一4、八进制eg:2-3=?二、exe程序1、PE文件结构:任何一个在Windows上运行的可执行文件都要遵
  • 2024-06-05标志寄存器
    标志寄存器EFLAGS寄存器 1.进位标志CF运算结果的最高位产生进位或者借位,那么CF=1注:前提是要确定数据宽度2.奇偶标志PF反映运算结果中'1'的个数,若个数为偶PF=1,为奇则PF=0注:结果转为二进制,数1的个数3.辅助进位标志AF1)在字操作时,发生低字节向高字节进位或者借位时,AF=12)
  • 2024-06-05CSAPP Lab02——Bomb Lab完成思路详解
    看见的看不见的瞬间的永恒的青草长啊大雪飘扬——月亮之上完整代码见:CSAPP/bombatmain·SnowLegend-star/CSAPP(github.com)01字符串比较简单的把输入的字符串和地址“0x402400”内早已存储的字符串相比较。如果两个字符串相等则函数返回,否则炸弹爆炸。这里有
  • 2024-05-29栈溢出漏洞利用,详解基本ROP,构造rop链条实现攻击(pwn入门)
    写在前面:随着NX(Non-eXecutable)保护的开启,传统的直接向栈或者堆上直接注入代码的方式难以继续发挥效果,由此攻击者们也提出来相应的方法来绕过保护。目前被广泛使用的攻击手法是 返回导向编程 (ReturnOrientedProgramming),其主要思想是在 栈缓冲区溢出的基础上,利用
  • 2024-05-27第一周
    汇编语言vscode反汇编-execdisassemble/m-execdisassemble/mmain-execinforegisters//寄存器信息字节长度1byte=8bits1word=2bytes=16bits1dword=4bytes=32bits逻辑运算运算andorxor00000010111001111110计算机加法
  • 2024-05-27Linux C编程一站式学习-x86汇编基础
    要彻底搞清楚C语言的原理,必须要深入到指令一层去理解。你写一行C代码,编译器会生成什么样的指令,要做到心中有数。本章介绍汇编程序的一些基础知识。1.最简单的汇编程序#PURPOSE:Simpleprogramthatexitsandreturnsa#statuscodebacktotheLinuxkernel##INPUT:no
  • 2024-05-26ret2syscall
    ret2syscallROP原理:在栈缓冲区溢出的基础上,利用程序中已有的小片段(gadgets:以ret为结尾的指令序列)来改变某些寄存器或者变量的值,从而控制程序的执行流程核心:利用了指令集中的ret指令,改变了指令流的执行顺序核心指令:ROPgadget--binary文件名--only'pop|ret'(三个空格!!!)若
  • 2024-05-20计算机系统基础 | HUST.CS
    第三章定点运算指令以下是定点运算指令(ADD、SUB、INC、DEC、NEG、CMP、MUL、IMUL、DIV、IDIV)的汇总表格,包括每条指令的格式、操作描述及其对标志位的影响。指令格式操作描述OF(溢出标志)SF(符号标志)CF(进位标志)ZF(零标志)ADDaddsrc,dstdst=dst+src结果溢出时
  • 2024-05-18驱动内存加载[理论]
    07驱动内存加载驱动加载介绍内存驱动加载不需要签名当双击一个PE程序的时候发生了什么1.通过explorer.exe(资源管理器)定位到双击的文件2.资源管理器通过CreatProcess创建进程3.创建进程的时候开辟一块空间此时在R3(PEB)和R0(填充基址)需要的地方挂上R3的物理页4.通过文
  • 2024-05-13汇编语言——寄存器
    寄存器程序的本质软件/程序的执行过程硬盘中程序或者软件打开后,会被装载到内存中,由CPU进行读取内存中的机器指令,再由CPU控制计算机进行相应操作CPU组成寄存器:信息存储运算器:信息处理控制器:控制其他器件进行工作寄存器与内存通常,CPU会先将内存中的数据存储到寄
  • 2024-05-11__asm__ __volatile__ GCC的内嵌汇编语法 AT&T汇编语言语法 AT&T ASM Syntax
    1Overview 开发一个OS,尽管绝大部分代码只需要用C/C++等高级语言就可以了,但至少和硬件相关部分的代码需要使用汇编语言,另外,由于启动部分的代码有大小限制,使用精练的汇编可以缩小目标代码的Size。另外,对于某些需要被经常调用的代码,使用汇编来写可以提高性能。所以我们必须了解汇
  • 2024-05-0909. C语言内嵌汇编代码
    C语言函数内可以自定义一段汇编代码,在GCC编译器中使用asm或__asm__关键词定义一段汇编代码,并可选添加volatile关键字,表示不要让编译器优化这段汇编代码。内嵌汇编代码格式如下:__asm__(  "汇编代码"  :输出描述  :输入描述  :修改描述);汇编代码部分
  • 2024-05-04内联函数、引用、汇编
    内联函数内联函数是一种特殊的C++函数,编译器会将它的代码直接插入到调用它的位置,而不是像普通函数那样进行函数调用。这可以减少函数调用的开销,从而提高性能。#include<iostream>usingnamespacestd;intfunc(intv1,intv2){ returnv1+v2;}inlineintfunc1
  • 2024-05-04csapp-bomblab(自信满满版)
    反汇编bomb文件要查看机器代码文件的内容,有一类称为反汇编器(disassembler,assembler是汇编程序,dis-加在某些词语前表示相反的意思)的程序非常有用。这些程序根据机器代码产生一种类似于汇编代码的格式。在linux系统中,带‘-d’命令行标志的程序OBJDUMP(表示“objectdump”)可以充当这
  • 2024-04-29delphi 2006中,使用stdcall调用约定时,压缩结构参数的bug分析
    问题今天遇到一个很奇怪的问题,有一个dephi2006写的dll,使用了stdcall的调用约定,参数传递了结构体,在函数中收到的结构体值和传入的不一致,最后一个boolean类型,应为False,收到的是True,如下图:代码//结构体定义RStruct=packedrecordi1:Integer;i2:Integer;i3:I
  • 2024-04-26手机写操作系统之 用32位汇编指令
    手机写操作系统之用32位汇编指令编写程序kernelloader跳转到32位的kernel.asm程序kernelloader.asm,源码如下:[BITS16]jmpmaingdt_entriesequ3;共有三个段描述符:null,oscode32,osdata32peequ1
  • 2024-04-24boom lab分析
    单步调试:(gdb)bt#10x0000000000401347instrings_not_equal()#20x0000000000400eeeinphase_1()#30x0000000000400e3finmain(argc=<optimizedout>,argv=<optimizedout>)atbomb.c:74这里的执行流程为:/*Hmm...Sixphasesmustbemoresecur
  • 2024-04-24CSAPP Lab-2 BOMBLAB
    第二个Lab就比较有趣了。这一个Lab的任务是,我们得到了一个bomb炸弹程序,这个炸弹程序有\(6\)个phase,每个phase都会读取我们的输入,判断我们的输入是否符合要求,如果正确这个phase的炸弹就会被拆除,否则炸弹就会爆炸。我们需要借助各种工具,对程序进行反汇编等等,获得能够
  • 2024-04-22re-vctf2024-vm
    vctf2024-vm一.vctf2024vm题的题解,一直没有整理,是赛后看大佬wp才知道是upx魔改+rc4的。。二.解题思路1.去upx魔改:VCTF2024ezvm(虚拟机逆向初探)_vctfvm-CSDN博客[原创]UPX源码学习和简单修改-加壳脱壳-看雪-安全社区|安全招聘|kanxue.com加壳流程:(博客总结)a.写入文件的
  • 2024-04-12汇编语言简易教程(8):寻址模式
    汇编语言简易教程(8):寻址模式寻址模式是使用正在访问(读取或写入)的数据项的地址来访问内存中的值的受支持方法。这可能包括变量的名称或数组中的位置。基本的寻址模式包含:寄存器立即数内存寻址注意事项使用[]需要注意:访问内存的唯一方法是使用方括号([]'s)。省略括号
  • 2024-04-12汇编语言简易教程(8):寻址模式
    汇编语言简易教程(8):寻址模式寻址模式是使用正在访问(读取或写入)的数据项的地址来访问内存中的值的受支持方法。这可能包括变量的名称或数组中的位置。基本的寻址模式包含:寄存器立即数内存寻址注意事项使用[]需要注意:访问内存的唯一方法是使用方括号([]'s)。省略括号
  • 2024-04-07切换栈操作
    1.何时需要切换栈:上下文切换,如:当需要切换进程时,需要保存正在运行的进程并切换到新的进程。当从一个函数切换到另一个函数时,需要保存原有的栈寄存器2.切换栈需要有哪些基本操作:1.切换进程时,什么可以表示一个正在运行的程序?程序中各个寄存器的值表
  • 2024-04-02111
    includeio32.inc .codestart: moveax,80h calldisprf calldisphd calldispcrlf addeax,3 calldisprf calldisphd calldispcrlf addeax,80h calldisprf calldisphd calldispcrlf addeax,3 calldisprf calldisphd calldispcrlf calldisp
  • 2024-03-28记一次 .NET某防伪验证系统 崩溃分析
    一:背景1.讲故事昨晚给训练营里面的一位朋友分析了一个程序崩溃的故障,因为看小伙子昨天在群里问了一天也没搞定,干脆自己亲自上阵吧,抓取的dump也是我极力推荐的用procdump注册AEDebug的方式,省去了很多沟通成本。二:WinDbg分析1.为什么会崩溃windbg有一个非常强大的点就是
  • 2024-03-20WolvCTF2024 一道RE题目的分析
    doubledelete'srevenge:这道题给了两个附件:reveng1(elf)和一个未知格式文件flag.txt.enchxd看一下这个文件应该是加密过的文件再来分析一下elf程序逻辑是读取文件,然后进行加密,然后再写出文件,刚才那个flag.txt.enc加密过程:fread(ptr,1uLL,0x30uLL,stream);//