Rax
  • 2024-11-13汇编角度看值传递类对象
    首先奉上源代码classA{private:inti;public:A(){std::cout<<"defaultconstructoriscalled"<<std::endl;i=0;}A(int_i):i(_i){}A(constA&obj){std::cout<<"c
  • 2024-11-11c++ 对于传递引用和传递值的理解
    首先先上一段c++代码,可以看出foo函数参数是引用类型,bar函数参数是值类型typedefstructA{intx;inty;}A;voidfoo(A&a){ra.x++;}voidbar(Aa){a.x++;}intmain(){Aa={1,2};foo(a);bar(a);return0;}在vscode
  • 2024-11-012024御网线上Pwn方向题解
    ASMChecksec检查保护基本上保护都关闭了64位ida逆向程序只有一段,并且返回地址就是输入的数据,看起来就是srop了,找一下可以用的gadget通过异或清空rax值,然后通过异或ecx和1,异或rax和rcx即可增加rax的值,同理左移一位同样可以增加rax的值,将rax增加到0xf然后打srop,程序还给出了
  • 2024-10-17BUUCTF之Sandbox-bad
    BUUCTF之Sandbox-bad首先针对sandbox,我们需要有一个大概的认知,他是在一个代码执行环境下,脱离种种过滤和限制,最终成功拿到shell权限的过程,通常我们采用orw的方式来获取flag.orw全称onlyreadwrite,只使用readwrite函数将flag读取并且打印,shellcode分为三个步骤使用open函数
  • 2024-10-14Wx64ST:一款轻松可修改的C语言Shellcode模板
    原创Alpha_h4ckFreeBuf关于windows_x64_shellcode_templatewindows_x64_shellcode_template简称为Wx64ST,它是一款功能强大的Shellcode模板,该模板基于C语言编写,其简单、可扩展和易于修改等特性可以帮助广大安全研究人员轻松开发适用于Windowsx64的Shellcode。值得一提的是,
  • 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概念        同一个类的对象在内存中有完全相同的结构,如果作为一个整体进行复制或称拷贝是完全可行的。这个拷贝过程只需要拷贝数据成员,而函数成员是共用的(只有一份拷贝)。        在建立对象时可用同一类的另一个对象来初始化该对