- 2024-11-20网络安全(超级详细)零基础带你一步一步走进缓冲区溢出漏洞和shellcode编写!
零基础带你走进缓冲区溢出,编写shellcode。写在前面的话:本人是以一个零基础者角度来带着大家去理解缓冲区溢出漏洞,当然如果你是开发者更好。#注:如果有转载请注明出处!创作不易、谢谢合作。#0、环境搭建:#本次实验所用到的工具有:x32dbg:一个基于qt开发的、开源调试器。ghid
- 2024-11-09反汇编命令学习以及分析越界和空指针问题
1,反汇编命令行(1)move语法格式:movdestination,source例如:moveax,0x1;将立即数1复制到eax寄存器。立即数到寄存器mov[ebx],eax;将eax寄存器的值复制到ebx寄存器指向的内存地址,寄存器到内存moveax,ebx ;将ebx寄存器的值复制到eax,寄存器到寄存器moveax,[ebp-4]
- 2024-10-20101 - Lecture 8
汇编语言、指令执行、CPU寄存器和内存Executionofinstructions指令执行取指-执行循环(fetch-executioncycle):•CPU遵循“取指-执行”循环。取指阶段对于所有指令都是一致的,而执行阶段则取决于指令的类型。指令类型:•CPU使用不同类型的指令,这些指令可以组合起来完
- 2024-10-10操作系统:内核的基本实现(一)屏幕输出与C语言支持
使用C语言cdecl约定HimuOSKernel遵守cdecl约定,在32位操作系统上,函数实参在线程栈上按照从右至左的顺序依次压栈(x86cdecl的参数总是在栈上)函数结果保存在寄存器EAX/AX/AL中浮点型结果存放在寄存器ST0中编译后的函数名前缀以一个下划线字符调用者负责清栈8比特或
- 2024-09-26Windows 系统调用
目录xp_NtReadFile0xFFE0300h系统调用xp_KiIntSystemCallint2Ehxp_KiSystemService源码asmENTER_SYSCALLmacroEXIT_ALLmacroxp_KiSystemService源码asmSSDT结构xp_KiSystemService反编译asm快速系统调用入口方式不同xp_KiFastSystemCall反编译ASM用户空间信息保存不
- 2024-09-14测量读写msr寄存器的耗时
msr寄存器的读写有两个指令rdmsr和wrmsr。他们可以用来读写一些系统相关的寄存器。格式是:首先向ecx写入msr寄存器的地址,这要查一下手册。对于rdmsr,会将读到的信息,一个64bit数据,高32bit放到edx,低32存访到eax。对于wrmsr,除了向ecx写入msr寄存器的地址,还要向edx和eax写入要写入的值
- 2024-08-10渗透测试基础及x64dbg调试器
一、实验原理x64dbg是一款开源且免费的Ring3级动态调试器,采用QT编写,支持32/64位程序。其反汇编引擎BeaEngine和Capstone功能极其强大,也有丰富的插件和脚本功能,且并保持更新,目前已经基本替代了OllDbg。软件解压后根目录存在x96dbg,双击x96dbg,出现三个弹窗,会
- 2024-07-09not_the_same_3dsctf_2016
not_the_same_3dsctf_2016查看保护就不说了IDA反编译发现为静态编译,不用找libc了这点节省不少功夫。打开main函数,发现栈溢出漏洞偏移为45,这个是根据gdb的cyclic算出来的发现后门函数get_secret,功能是把flag读取赋值给fl4g初步思路为通过栈溢出,调用get_secret,再通过write函
- 2024-05-29栈溢出漏洞利用,详解基本ROP,构造rop链条实现攻击(pwn入门)
写在前面:随着NX(Non-eXecutable)保护的开启,传统的直接向栈或者堆上直接注入代码的方式难以继续发挥效果,由此攻击者们也提出来相应的方法来绕过保护。目前被广泛使用的攻击手法是 返回导向编程 (ReturnOrientedProgramming),其主要思想是在 栈缓冲区溢出的基础上,利用
- 2024-05-27Linux C编程一站式学习-x86汇编基础
要彻底搞清楚C语言的原理,必须要深入到指令一层去理解。你写一行C代码,编译器会生成什么样的指令,要做到心中有数。本章介绍汇编程序的一些基础知识。1.最简单的汇编程序#PURPOSE:Simpleprogramthatexitsandreturnsa#statuscodebacktotheLinuxkernel##INPUT:no
- 2024-03-31CTFshow pwn31
PWN31使用checksec查看保护发现除了canary剩下保护全开,那么就没有前面几个题目那么简单了,ida打开看见他给了我们main函数地址虽然开了pie但是在他们之间的偏移是一定的,那么我们就可以通过他给的main函数的真实地址减去偏移得到文件(elf)的基地址,然后puts_pltputs_got表地址就
- 2024-03-25微机原理上机实验记录
eg0202.asm;eg0202.asmincludeio32.inc.datacountdword12345678h,9abcdef0h,0,0,3721h.codestart:moveax,33221100hmovebx,eaxmovecx,countmovebx,offsetcountmovedx,[ebx]movesi,[ebx+4]movesi,4movedi,count[esi]movedi,[ebx+esi]movecx,[eb
- 2024-03-08植物大战僵尸,用QT注入代码,AT&T汇编语法
遇到了硬茬子,找了半天资料才找到,因为这个QT是mingw编译的,好像编译器是gcc吧,我也不太懂,但是查了半天知道他的语法是AT&T,而我在学汇编的时候学的是8086,好像叫intel语法。所以开头就碰壁到崩溃。。但是又不想放弃换MFC框架。。也不想用QT5.0+的版本。因为毕竟以后还是高版本好用吗。
- 2024-02-14迟来的HIT2024和reaworld2024体验赛WP
目录前言碎语2024.2.14中午rwctf2024体验赛vision哈工大青训营2024结营赛计算器小技巧神奇玩意gdb!再也不用苦哈哈往回翻跟踪fork赛后复现rwpwnhttp搜索字符串,github找源码具体构造GET路径穿越POST栈溢出构造ROP前言碎语2024.2.14中午过年玩也玩了,休息也休息了,终于把之前
- 2023-12-30网络攻防技术——shellcode编写
实验5:shellcode编写实验实验内容:shellcode广泛用于许多涉及代码注入的攻击中。编写shellcode是相当有挑战性的。虽然我们可以很容易地从互联网上找到现有的shellcode,但是能够从头开始编写我们自己的shellcode总是令人兴奋的。shellcode中涉及到几种有趣的技术。本实验室的目的是
- 2023-12-14汇编-JNAE无符号小于则跳转
.386.modelflat,stdcalloptioncasemap:none.stack4096IncludeIrvine32.incincludelibIrvine32.libExitProcessPROTO,dwExitCode:DWORD.data.codemainPROCmoveax,10cmpeax,100;比较eax和10的大小jnaelabel
- 2023-09-25王道408计组汇编语言部分学习总结
x86汇编语言指令基础x86处理器中程序计数器PC通常被称为IP 高级语言—>汇编语言—>机器语言x86架构CPU,有哪些寄存器EAX通用寄存器EBXECXEDXESI变址寄存器变址寄存器可用于线性表、字符串的处理EDIEBP堆栈基指针堆栈寄存器用于实现函数调用 ESP堆栈顶指针moveax,ebx#
- 2023-09-144.1 应用层Hook挂钩原理分析
InlineHook是一种计算机安全编程技术,其原理是在计算机程序执行期间进行拦截、修改、增强现有函数功能。它使用钩子函数(也可以称为回调函数)来截获程序执行的各种事件,并在事件发生前或后进行自定义处理,从而控制或增强程序行为。Hook技术常被用于系统加速、功能增强、等领域。本章将
- 2023-08-291.5 编写自定位ShellCode弹窗
在笔者上一篇文章中简单的介绍了如何运用汇编语言编写一段弹窗代码,虽然简易ShellCode可以被正常执行,但却存在很多问题,由于采用了硬编址的方式来调用相应API函数的,那么就会存在一个很大的缺陷,如果操作系统的版本不统或系统重启过,那么基址将会发生变化,此时如果再次调用基址参数则会
- 2023-08-20常见反调试技术
反调试技术一.使用WindowsAPI函数1.IsDebuggerPresent函数2.CheckRemoteDebuggerPresent函数3.OutputDebuggerPresent函数二.手动检测数据结构1.检测BeingDebugged属性BeingDebugged属性位于PEB结构的第二个字节位置处moveax,dwordptrfs:[30h];//fs:[30h]指向的
- 2023-08-04ret2syscall
ret2syscall介绍解题老规矩,先用checksecret2syscall检查一下有做什么保护没有。Arch:i386-32-littleRELRO:PartialRELROStack:NocanaryfoundNX:NXenabledPIE:NoPIE(0x8048000)可以看到开启了栈不可执行,部分随机地
- 2023-07-031.5 编写自定位ShellCode弹窗
在笔者上一篇文章中简单的介绍了如何运用汇编语言编写一段弹窗代码,虽然简易ShellCode可以被正常执行,但却存在很多问题,由于采用了硬编址的方式来调用相应API函数的,那么就会存在一个很大的缺陷,如果操作系统的版本不统或系统重启过,那么基址将会发生变化,此时如果再次调用基址参数则会
- 2023-06-14java开发系统内核:使用一个中断实现多个API调用
在上一节,我们实现了通过中断访问内核API的功能,本节,我们进一步改进中断调用内核API的机制。当前,我们使用一个中断来对应一个API,问题是内核导出的API不可能只有一个,如果始终保持一个中断对应一个API的话,那么CPU只支持两百多个中断,也就是说,按照上一节的办法,我们内核最多只能导出两百
- 2023-05-30廖雪峰博客汇编函数压栈的解析
intadd_a_and_b(inta,intb){returna+b;}intmain(){returnadd_a_and_b(2,3);}_add_a_and_b:push%ebxmov%eax,[%esp+8]mov%ebx,[%esp+12]add%eax,%ebxpop%ebxret_main:push3push
- 2023-05-25漏洞
jmpesp跳板可以适应shellcode的内存地址动态的变化windows中系统dll,比如kernel32,user32基本上在每一个进程中的地址都相同,但下次开机就不同了所以我们在user32中找一个jmpesp指令,jmpesp对应的指令是0xFFE4OD有一个插件,OllyUni.dll可以快速找到jmpesp这一系列的指令 xo