RAX
  • 2024-09-04Wx64ST:一款轻松可修改的C语言Shellcode模板
    关于windows_x64_shellcode_templatewindows_x64_shellcode_template简称为Wx64ST,它是一款功能强大的Shellcode模板,该模板基于C语言编写,其简单、可扩展和易于修改等特性可以帮助广大安全研究人员轻松开发适用于Windowsx64的Shellcode。值得一提的是,该模板代码可以加载Load
  • 2024-09-01从Vue的Weex迁移到Rax Weex
    据说:rax几乎没啥使用文档,有问题直接查询react官方文档,屡试屡爽目前没有实践过,先存下一言生成的文档:从Vue的Weex迁移到RaxWeex涉及到从一种前端框架(Vue)到另一种框架(Rax)的转换,同时保持与Weex的兼容性。由于Weex本身是一个跨平台的移动开发框架,支持Vue和Rax等多种前端框架,迁移
  • 2024-09-01羊城杯2024 pwn4的反思
    前言今天无聊乱刷的时候发现有师傅说羊城杯的pwn4(hardsandbox)用openat2只能打通本地,远程无法打通,于是点击看了一下文章,发现了一个对沙箱的逃逸的知识点。正文为什么openat2无法打通远程Qanux师傅说是远程的kernel(linux内核)版本是5.4,而openat2系统调用是在kernel5.6
  • 2024-09-01一个操作系统的设计与实现——第25章 多处理器(上):多处理器同步原语
    25.1多处理器同步原语的实现原理当计算机中存在不止一个CPU时,基于关中断的同步原语就失效了。这是因为每个CPU的中断是独立的,关闭一个CPU的中断并不会影响其他CPU。从本质上说,中断由rflags控制,但rflags在每个CPU中都有一个,因此,只有找到一个共享区域,才能实现多CPU间的同步原语。
  • 2024-08-06汇编代码分析
    目录汇编代码每一列的含义代码分析详细步骤机器码解释总结.text:00000001800833A3loc_1800833A3:;CODEXREF:sub_180083250+144↑j.text:00000001800833A3488D442438learax,[rsp+490h
  • 2024-08-06Linux 下 objdump 命令的使用
    目录一、概述二、常用参数说明三、实例四、实例分析一、概述objdump工具是用来显示二进制文件的信息,就是以一种可阅读的格式让你更多地了解二进制文件可能带有的附加信息。该命令常用于Linux下反汇编目标文件或者可执行文件。什么是反汇编反汇编(disassembly)是
  • 2024-07-30summer2024_orw
    妈呀普天同庆,终于过了啊啊啊啊啊【尖叫】【阴暗爬行】orw原理就是有两个函数可以控制函数禁用prtcl()和seccomp()prctl#include<sys/prctl.h>intprctl(intoption,unsignedlongarg2,unsignedlongarg3,unsignedlongarg4,unsignedlongarg5);//主要关注prctl()
  • 2024-07-27《Programming from the Ground Up》阅读笔记:p88-p94
    《ProgrammingfromtheGroundUp》学习第5天,p88-p94总结,总计7页。一、技术总结1.touppercase.s#PURPOSE:Thisprogramconvertsaninputfile#toanoutputfilewithallletters#convertedtouppercase.#PROCESSING:#(1)Opentheinputfile#(2)Opentheoutput
  • 2024-07-18记一次VMware 虚拟机遇到意外重启的内核级排查操作
    背景:用户业务虚拟机遇到不明原因导致操作系统重启,引起业务中断需求:要求排查具体原因,定位问题根源先来查看虚拟机的事件,事件发生时间:13:37:21 再到虚拟机对应的宿主机查看相关日志,宿主机日志看到的时间需+8才能与VCenter上的事件时间对应得上,因此我们过滤05:37分左右的日志
  • 2024-07-14函数调用栈
    1、程序源代码:[xuanmiao@localhostPractice]$catmain.c#include<stdio.h>intplus(inta,intb){intc=a+b;returnc;}intmain(){inta=1,b=2;intc=0;c=plus(a,b);return0;}2、编译[xuanmiao@localhostPractice
  • 2024-06-05CSAPP Lab02——Bomb Lab完成思路详解
    看见的看不见的瞬间的永恒的青草长啊大雪飘扬——月亮之上完整代码见:CSAPP/bombatmain·SnowLegend-star/CSAPP(github.com)01字符串比较简单的把输入的字符串和地址“0x402400”内早已存储的字符串相比较。如果两个字符串相等则函数返回,否则炸弹爆炸。这里有
  • 2024-06-02复盘DRK CTF收获
    flower_tea1、call与retn的花指令callloc_140001224//call到loc_140001224位置,并将栈顶设置为返回地址0x14000121Fpoprax//将栈顶元素(返回地址)弹到rax中addrax,0Ch//将rax加上0x0Cpushrax//将rax入栈,即将当前rax的值作为返回地址retn
  • 2024-05-29栈溢出漏洞利用,详解基本ROP,构造rop链条实现攻击(pwn入门)
    写在前面:随着NX(Non-eXecutable)保护的开启,传统的直接向栈或者堆上直接注入代码的方式难以继续发挥效果,由此攻击者们也提出来相应的方法来绕过保护。目前被广泛使用的攻击手法是 返回导向编程 (ReturnOrientedProgramming),其主要思想是在 栈缓冲区溢出的基础上,利用
  • 2024-05-21再探虚函数
    虚函数是一种成员函数,其行为可以在派生类中被覆盖,支持动态调用派发。使用示例代码如下:extern"C"{//避免operator<<多次调用,简化汇编代码voidprintln(constchar*s){std::cout<<s<<std::endl;}}void*operatornew(size_tn){void*p=malloc(n);
  • 2024-05-04csapp-bomblab(自信满满版)
    反汇编bomb文件要查看机器代码文件的内容,有一类称为反汇编器(disassembler,assembler是汇编程序,dis-加在某些词语前表示相反的意思)的程序非常有用。这些程序根据机器代码产生一种类似于汇编代码的格式。在linux系统中,带‘-d’命令行标志的程序OBJDUMP(表示“objectdump”)可以充当这
  • 2024-04-29ret2csu和srop
    ret2csu:其实就是一种攻击手法,当我们没有完整的gadget的时候,我们就可以使用csu这个手法来进行攻击,那么csu是什么呢?这个其实就是在程序中一般都会有一段万能的控制参数的gadget,里面可以控制rbx,rbp,r12,r13,r14,r15以及rdx,rsi,edi的值,并且还可以call我们指定的地址。然后劫持程序
  • 2024-04-24Win10_x64 21h2调试体系分析
    参考https://www.52pojie.cn/thread-1728894-1-1.html记的笔记,发出来参考下,抛砖引玉,有错误多纠正。还望各位大佬别嘲笑。平台如下:版本      Windows10专业版版本号      21H2安装日期      &#8206;2021-&#8206;08-&#8206;23操作系统内部版本  
  • 2024-04-24CSAPP Lab-4 Architecture Lab
    本次实验是有关书上第四章设计的Y86-64处理器的,实验分为三个部分,分别是编写几个简单的Y86-64程序、使用一条新指令扩展SEQ模拟器以及优化Y86-64的基准测试程序和处理器设计。实验准备需要简单复习一下Y86-64的指令集架构以及处理器架构呢。指令集架构指令集:指令功
  • 2024-04-18c++ std::string能否存储二进制字符以及'\0'字符?
    c++的字符串类std::string能否存储二进制字符以及字符'\0'?要解决这个问题,我们首先要了解c++的std::string的存储结构。(注意不同的平台下C++规范对std::string的实现不完全一致,例如sizeof(std::string)在linuxx64gcc-4.4下的输出是8,而在macgcc4.2下的输出是24;这篇文章以Li
  • 2024-04-02类的函数成员(三):拷贝构造函数
    一.什么是拷贝构造函数?1.1概念        同一个类的对象在内存中有完全相同的结构,如果作为一个整体进行复制或称拷贝是完全可行的。这个拷贝过程只需要拷贝数据成员,而函数成员是共用的(只有一份拷贝)。        在建立对象时可用同一类的另一个对象来初始化该对
  • 2024-04-01安洵杯2023 side_channel , initiate!:侧信道爆破flag
    当程序有办法读取到flag但无法将flag输出出来时,可以采用侧信道爆破flag确定其内容。例题:安洵杯2023side_channel,initiate!题目本身很简单,允许在bss上写一大段,然后一个栈溢出。但沙箱是这个画风:函数里还有一个单纯的movrax0fh,允许了rt_stgreturn和mprotect的权限,很明显的提
  • 2024-03-20WolvCTF2024 一道RE题目的分析
    doubledelete'srevenge:这道题给了两个附件:reveng1(elf)和一个未知格式文件flag.txt.enchxd看一下这个文件应该是加密过的文件再来分析一下elf程序逻辑是读取文件,然后进行加密,然后再写出文件,刚才那个flag.txt.enc加密过程:fread(ptr,1uLL,0x30uLL,stream);//
  • 2024-03-12CSAPP Bomb Lab
    frompixiv参考博客手把手教你拆解CSAPP的炸弹实验室BombLabGDB调试-从入门实践到原理Linux上分屏软件Tmux使用教程知识点gdbjump函数名/*地址名jump能够很灵活地在gdb调试汇编代码时跳转当一不小心错过了关键信息时,我们便可以使用jumprun(
  • 2024-03-02杂七杂八wp(NewStar_Week1和BeginCTF2024的部分pwn)
    碎碎念咱就一纯小白,以为带了Begin这一单词的CTF能对我仁慈一点,结果吧,太喜欢了,被狠狠拷打,从头自闭到尾,属于是从这次比赛又狠狠学习到不少知识了废话不多说,上正文嘞BeginCTFOne_bytechecksec嗯,基本啥都开了,喜欢捏。但是尊贵的CTFer,该“源审,启动!”了可以看到两个read,一个是
  • 2024-01-26CSAPP-C3
    0.警告不要试图通过这篇意识流笔记自学。右转睿站九曲阑干,可以帮你快速建立基本概念。1.基本的汇编语法I.数据格式三种数据类型:立即数:常数,一般用十进制表示,如果要使用十六进制表示,在前面加上$寄存器:寄存器内存:把内存抽象成一个大数组,使用M[i]的形式来理解i地址指