个人博客地址:https://www.vstral.cn/ 欢迎大家来踩
10 2024 档案
摘要:函数调用 X86下,遵循被调用者使用规则,函数在调用子函数之前,保存相关寄存器的内容。 函数调用时,参数先入栈,接着为返回地址入栈,BP寄存器入栈、再接着就是子函数的局部变量之类的了。 常用寄存器 栈帧结构 函数调用时栈帧结构
阅读全文
摘要:花指令是什么? 花指令是在代码中插入的不影响程序运行的垃圾指令(脏字节),让编译器无法反编译,起到混淆代码的作用。 高质量学习链接: https://bbs.kanxue.com/thread-282725.htm
阅读全文
摘要:https://ctf-wiki.org/pwn/linux/user-mode/stackoverflow/x86/basic-rop/#ret2libc 1. 有system有binsh 这种好弄,直接 from pwn import * sh = process('./ret2libc1')
阅读全文
摘要:https://blog.csdn.net/sinat_26472165/article/details/85342766 JEPG的SOF0图像基本信息-帧结构 FFC0-SOF0-图像基本信息 同样的,0011指示了SOF0块长度为17个字节。 前8个字节分别为: 字节数 示例中的值 示例中的含
阅读全文
摘要:1.NotEnoughTime 这道题我发现存在网络问题可能会导致出现问题,建议关闭代理。 第二个就是要注意每个算式返回整数 点击查看代码 from pwn import * import math context.log_level='debug' p = remote('127.0.0.1',1
阅读全文
摘要:学习地址:https://websec.readthedocs.io/zh/latest/vuln/ssrf.html 例题:【Moectf2024】ImageCloud前置 题目给出url后面有个?url=, 貌似是一个很经典的漏洞, flag在/etc/passwd里。 故构造http://12
阅读全文
摘要:题目地址:https://www.nssctf.cn/problem/4546 主要思路: 利用Pwntools发送字节码调用执行execve("/bin/sh", NULL, NULL)实现 要点: 一定要添加context.binary = './shellcode' 解释:pwntools的一
阅读全文
摘要:1. 使用cat指令 cat flag 2.使用重定向 echo $(<flag) <flag:这里使用了文件重定向操作符 <,将文件 flag 的内容直接读取为标准输入,输出的就是文件的完整内容。 $(...):这是命令替换操作符,它会执行括号中的命令,并将执行结果替换为这个命令的输出内容。在这个
阅读全文
摘要:加壳是什么? 程序保护机制,保护程序不那么容易呗逆向。 upx是一种开源的压缩壳软件 命令行执行: 加壳:UPX + sample.exe 脱壳:upx -d sqmlp.exe(一般不管用) 手动脱壳 1.找到原始程序的入口地址(OEP) 2.在原始程序入口地址处设置**硬件断点**(下次调试可快
阅读全文
摘要:IDA打开,查看func()函数,得到以下代码 点击查看代码 unsigned __int64 func() { size_t input1[6]; // [rsp+Ch] [rbp-84h] BYREF char nptr[72]; // [rsp+40h] [rbp-50h] BYREF uns
阅读全文
摘要:程序主要逻辑:先读取一个数字length作为第二次读取的字符串的长度,用read写入length长度到bytes_point所指向的内存中。 补充知识: atoi函数:"ASCII to Integer"用于将字符串转换为整数。 定义如下: int atoi(const char *str);
阅读全文
摘要:这道题给了一个.s文件 解决方案有两个: 1.利用gcc编译成可执行文件,然后反编译生成伪代码 2.直接分析汇编(我不会。。。) 1.利用gcc编译成可执行文件 linux执行gcc -o 1.s 1 IDA打开,分析并编写,注意一定要在字符串末尾加上\0结束符!!! 点击查看代码 #include
阅读全文
摘要:1.砍树 下载题目得到一个apk文件,jadx打开,查看Android.Manifest.xml 查看MainActivity 发现使用了一个I0o0I处理了输入和Syclover,猜测应该是对text处理后与Syclover对比,当result赋值为1就成功了。故查看I0o0I 发现I0o0I再s
阅读全文