- 2024-09-10常回家看看之house_of_kiwi
houseofkiwi前言:house_of_kiwi一般是通过触发__malloc_assert来刷新IO流,最后可以劫持程序流或者通过和setcontext来打配合来进行栈迁移来得到flag。我们看看触发的源码#ifIS_IN(libc)#ifndefNDEBUG#define__assert_fail(assertion,file,line,function) \ __ma
- 2024-07-31ucontext源码分析
gcc函数调用进入一个函数后的栈布局/*+----------------------------+|第6个参数后的参数(如果有)|+----------------------------+|返回地址(调用函数的下一个指令)|+----------------------------+|上一个函数rbp|+----------------------------+|
- 2024-05-21再探虚函数
虚函数是一种成员函数,其行为可以在派生类中被覆盖,支持动态调用派发。使用示例代码如下:extern"C"{//避免operator<<多次调用,简化汇编代码voidprintln(constchar*s){std::cout<<s<<std::endl;}}void*operatornew(size_tn){void*p=malloc(n);
- 2023-12-02【pwn】shellcode revenge --0~9,A~Z字符的shellcode
查一下保护拖进ida看主要逻辑这里的代码逻辑为mmap开辟一段有执行的地址,可以写入shellcode,但这次写入的shellcode有限制if(buf>90||buf<=47||buf>57&&buf<=64) break;这里的限制shellcode的十六进制数对应的字符只能是0~9,A~Z,这些十六进制数对应的shellcode
- 2023-07-11虚函数
虚函数虚函数表示例//codeofvirtualfunction//filename:test.cpp#include<stdio.h>classA{public: virtual~A(){} voiddraw(){draw_imp();}protected: virtualvoiddraw_imp(){}};classB:publicA{public:protected: voiddraw_imp()overrid
- 2023-05-058080并口时序
介绍8080并口协议有多种类型,主要通过bus_interface的线数进行区分,主要有8-bit、16-bit、9-bit、18-bit等四种模式。第一类: MCU-InterfaceMode Register/Content GRAM 8080 8-bitmode D[7:0] D[7:0],WRX,RDX,CSX,D/CX(RS) 80
- 2023-04-13《深入理解计算机系统第三版》第三章家庭作业参考答案
简述最近看docker和k8s的底层实现原理,严重感觉自己对底层的知识了解不足,于是开始业余时间深入看一些底层书籍,就找了本据说是理解整个计算机体系的入门书-《深入理解计算机系统》.直接买的最新的第三版,从第三章开始看的,第二章接下来有心情再看(看了几眼全是如何手算进制间计算之类
- 2023-03-23CSAPP-Architecture Lab
PartA前置准备gcc-Wall-O1-g-cyis.cgcc-Wall-O1-g-cisa.cgcc-Wall-O1-gyis.oisa.o-oyisgcc-Wall-O1-g-cyas.cflexyas-grammar.lexmake:fl
- 2022-12-14PWN ORW 最短的shellcode(33字节!)
前言:下面的rdx就是read(1,buf,n)中的n,这个值太大或者太小都没办法正常读。所以分两种大情况:orw:(64bit,34字节,针对需要调整rdx的情况:)shellcode=asm('''movedx,0x6761
- 2022-12-04强网拟态-2022-pwn-only
强网拟态-2022-pwn-only总结该题的沙箱我们可以通过execveat绕过,但是注意execveat是个系统调用2.29以后存在一个key(bk)检查,不能直接doublefree可以通过已经申请
- 2022-10-281!5! 花式shellcode
1!5!花式shellcodedasctf十月的一道题,听哥们在这给你说唱main函数首先mmap了0x1000的一个rwx段,然后起始地址是固定的0x10000,然后往里面读入0x200的内容,中间有个check函
- 2022-10-22计算机系统导论 Bomb Lab Phase 1~6 全解
ICSBombLab——TheUltimateCompanion经验教训:不要尝试通过眼睛瞪来把结果瞪出来——不打草稿的话,难度太大了。不要瞎改内存地址来试图通过——不然会结算成爆炸。
- 2022-09-21JVM方法调用——java之间
Java方法之间解释方法到解释方法进入解释方法到解释方法是最为简单的一种情况,最常见的调用是invokevirtual。有关的代码在TemplateTable::invokevirtual中:voidTemplat