毛泽东思想主观题
...
pwn入门-canary&PIE bypass
pwn入门-canary&PIE bypass 主函数没有get shel怎么办?(ret2text) 整个程序没有system函数怎么办?(ret2libc)64位程序就这么简单?(ret2csu) 静态编译怎么办?(ret2syscall) 保护不全有没有好办法?(ret2shellcode) 栈与非栈的格式化字符串 canarycanary:是一种用来防护栈溢出的保护机制。其原理是在一个函数的入口处,先从fs/gs寄存器中取出一个4字节(eax)或者8字节(rax)的值存到栈上,当函数结束时会检查这个栈上的值是否和存进去的值一致 canary保存在tls结构体中。 all和部分是有区别的 all是在所有方法都会加Cancary,部分只会在char那边加 123456789101112131415161718192021222324252627#include <stdio.h>#include <stdlib.h>#include <unistd.h>int func_1(){ char...
马克思主义基本原理
马克思主义基本原理导论1.什么是马克思主义?马克思主义具有哪些鲜明的特征? ==什么是马克思主义== ...
逆向攻防世界CTF系列59-reverse-for-the-holy-grail-350
逆向攻防世界CTF系列59-reverse-for-the-holy-grail-35064位,无壳 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354int __fastcall main(int argc, const char **argv, const char **envp){ int valid; // ebx int v4; // ebx __int64 v5; // rbx void *v7[2]; // [rsp+0h] [rbp-70h] BYREF _BYTE v8[16]; // [rsp+10h] [rbp-60h] BYREF void *v9[2]; // [rsp+20h] [rbp-50h] BYREF _BYTE v10[16]; // [rsp+30h] [rbp-40h] BYREF void *v11[2]; // [rsp+40h] [rbp-30h] BYREF...
逆向攻防世界CTF系列58-serial-150
逆向攻防世界CTF系列58-serial-15064位无壳 想着是不是被加密了 查了资料发现这种代码和数据混合的就是花指令。对于第一个红框中jz short near ptr...
pwn入门-ELF文件概述程序装载与虚拟内存
pwn入门-ELF文件概述程序装载与虚拟内存参考程序加载 - CTF Wiki和https://www.bilibili.com/video/BV1Uv411j7fr?spm_id_from=333.788.videopod.episodes&vd_source=d76ad0aadca055336653cd966075f064&p=3 pwn概述exploit:用于攻击的脚本与方案 payload:攻击载荷,是的目标进程被劫持控制流的数据 shellcode:调用攻击目标的she的代码 攻击流程: C语言执行流程C语言代码到可执行文件流程: 目标文件未经过链接,虽然知道自己任务但是不知道如何去做,比如put为何就是输入,需要将多个机器码目标文件链接成一个可执行文件 广义:文件中的数据是可执行代码的文件.out、.exe、.sh、.py 狭义:文件中的数据是机器码的文件.out、.exe、.dll、.so Windows:PE(Portable...
攻防世界38-FlatScience-CTFWeb
攻防世界38-FlatScience-Web攻防世界38-FlatScience-CTFWeb-CSDN博客
攻防世界37-unseping-CTFWeb
攻防世界37-unseping-CTFWeb1234567891011121314151617181920212223242526272829303132333435363738394041<?phphighlight_file(__FILE__);class ease{ private $method; private $args; function __construct($method, $args) { $this->method = $method; $this->args = $args; } function __destruct(){ if (in_array($this->method, array("ping"))) { call_user_func_array(array($this, $this->method), $this->args); ...
0xgame RE wp
0xgame REXor::Random wp参考官解 看到一大堆,别慌,冷静分析 主函数大概可以划分成三部分:先检查了flag的格式和长度,之后⽣成随机数 v21 异或加密⼀边检查。注意密钥从 v21和 重点说⼀下中间随机数的部分。 我们如果仔细看了这些代码,就知道中间只是个异或,那么密文在哪,我们沿着算法网上找就能找到v13,不过还不能直接用(当然c语言可以直接用这个),这是小端存储的也就是说0c,4f,….,存储的,建议先去了解 那么问题就是中间的v21了,他是个(伪)随机数,只要设定了种子,每次出来的结果都是一样的(当然受到版本的影响) 12345678910inited = init_random(); std::string::basic_string(v20, v14); v6 = check((__int64)v20); std::string::~string(v20); if ( v6 ) { srand(0x1919810u); inited = rand(); } v21 =...
MoeCTF-Web
MoeCTF-WebPetStore 题解(pickle反序列化)审计源码,小白没发现什么,看了提示是pickle序列化与反序列化,查看Dockerfile,flag在环境变量里 pickle模块提供了一种简单且强大的方法来实现对象的序列化和反序列化,使得开发者能够方便地将复杂的Python对象转化为字节流并在需要时重新还原。 基本使用 12345678import pickledata = {'name': 'Alice', 'age': 25}serialized_data = pickle.dumps(data)deserialized_data =...







