python桌宠制作
dd1b36faf1f3206dd5cfb42140fab0c09efad96affb5413616c8a6989d1834d64ababe66ecf6374bc625bd1f9db7aef94ae7da43684881f4fa7e68190d966d83860b0c13e5df5e70cf025ea0cc167349f997da88a02ea600598fbefed71030469bacdd241487c3bb51f6c0116f9276dba7076ff57b5aff3d55cf29a93780228451a3c3377d4477c0db2c15ab279959eab96eb9c1c53c1657a21e02a18d5475871806a818cbccd972f6e566c80abdce268ba547a6e488368fd74011b96430bc67f19f1254310977ba87fdd24571c22aa045b6e5785aa125b204a03dceb4bdf4d661a1326059fcc49268e38f5b1f31fe6c462adae63c162c33f ...
第八届玄武杯pwn方向题解
ret2text 64出题人:mint1.wp:checksec:
堆栈不可执行,没有开canary防止栈溢出,没有开PIE
来到IDA中分析
有后面函数system('/bin/sh')位于hint中,记录其地址0x40136F
漏洞位于func函数
gets()函数不检查输入信息的长度,存在栈溢出风险
v1是栈上的变量,在执行完func函数后程序会根据栈上数据跳转到进入func函数前压入的父函数位置,我们需要利用gets函数输入数据覆盖掉这一返回地址,跳转到hint函数中利用后门函数获取shell,但是64位函数执行system(‘/bin/sh’)前需要堆栈平衡,当我们在backdoor函数之前加入一个 ret 指令后栈顶下移8个字节使之对齐 16Byte 为此满足了XMM寄存器的要求成功得到shell,关于堆栈平衡可以看这篇文章https://zhuanlan.zhihu.com/p/611961995
payload = b'a'*(0x30+8) + p64(ret) + p64(backdoor)
0x30个a是为了 ...
markdown语法教学
markdown语法教学什么是markdown语法?Markdown 是一种轻量级标记语言,用简单的符号标记文本格式,无需复杂排版操作就能生成结构化文档。
它的核心价值在于 “易读易写”,既适合日常记录(如笔记、待办),也能用于创作(如文章、报告),且生成的内容可轻松转换为 HTML、PDF 等格式。
核心优势
语法简单:仅需记住十几个基础符号,几分钟就能上手。
跨平台兼容:几乎所有笔记软件(如 Notion、Obsidian)、写作平台(如知乎、GitHub)都支持 Markdown。
专注内容:无需频繁点击格式按钮,用符号就能快速设置标题、列表等,减少排版干扰。
常用基础语法标题:在本软件中一共有6级标题 有几个#就是几级
加粗:这是一段加粗文本
1**这是一段加粗文本**
斜体:这是一段斜体文本
1*这是一段斜体文本*
转义如果你只是想要这个符号不想生成对应格式,可以使用” \ “转义
正常输入一段内容需要用到 *
12*3*3=
会变成这样:
233=
转义后则为
12\*3\*3=
2*3*3=
引用:
这是一段引用文本
1>这是一段 ...
AWDP
AWDP合集使用到的优秀插件
Accenture/VulFi: IDA Pro plugin for query based searching within the binary useful mainly for vulnerability research.
2025省赛电信量子杯这次的patch都很简单,但是还是要注意很多细节,比如patch.sh文件不能写错,challenge写漏了一个e导致浪费了16次机会(我就说这exp怎么这么厉害我改这么多都能利用成功),sh文件也就是执行shell的文件,用于把修改过的ELF文件替换到服务器上
打包命令1tar czvf patch.tar.gz patch.sh patch_ok
patch.sh一定要仔细检查有没有写对啊
12#!/bin/bash cp patch_ok /home/ctf/challenge/challenge
heap一道很典型的堆题应该是可以利用double free但是我不会打,但是漏洞还是知道的
ptr指针释放后未指零
出题人很友善在下面放了一个置零操作,那么来到汇编
改fre ...
IOT入门到入土-1
在学习了一段时间x86指令集后打算穿插着点MIPS指令集同步学习,从现在开始入门IOT
学习文章:《IoT从入门到入土》(1)–MIPS交叉编译环境搭建及其32位指令集
1.MIPS交叉编译环境搭建1234567891011121314#!/bin/sh# qemu安装sudo apt install qemusudo apt install qemu-system qemu-user-static binfmt-support# 顺带也将ARM依赖库安装一下sudo apt install libncurses5-dev gcc-arm-linux-gnueabi build-essential synaptic gcc-aarch64-linux-gnu# mips依赖库sudo apt-get install gcc-mips-linux-gnusudo apt-get install gcc-mipsel-linux-gnusudo apt-get install gcc-mips64-linux-gnuabi64sudo apt-get install gcc-mips64e ...
无题
title:25年新生赛合集date:2025-09-29 16:40:05tags:wpnewstar_wpGNU Debugger下发容器后在gdb中run
第一关找r12寄存器的16进制值,直接看就能看到
第二关找留在0x555555557c27该地址的一段话,直接用x/s 0x555555557c27找到一串字符
第三关下断点 直接b *0x00000
最后一关使用gdb修改指定地址的值 用set命令 set *0x0000 = 0xdeaf
pwn’s door打开IDA反编译找到key:7038329直接输入即可
INTbug整数溢出,v1在v2之上无法直接覆盖但是存在循环,v2大于零时每次v1都会加一,只要v1小于零就可以cat flag,__int16是 16 位有符号整数,最大值为 32767。当v1达到 32767 时,再执行++v1会发生溢出变成-32768。
exp
1234567891011121314151617from pwn import *context(arch = 'i386',os = 'lin ...
pwn出题小记
pwn出题小记参考文章:Docker部署小记 | 幻境
奇奇怪怪的教程 | Yxing
web和pwn题的简单动态flag实现_gzctf-CSDN博客
所使用的工具:docker、CTF-Xined
pwn题编译1234567gcc -o pwn pwn.c-static #指定静态链接#默认动态链接#指定动态链接文件gcc main.c -o main /usr/lib/x86_64-linux-gnu/libc.so.6
保护
1234567NX:-z execstack / -z noexecstack (关闭 / 开启) 不让执行栈上的数据,于是JMP ESP就不能用了Canary:-fno-stack-protector /-fstack-protector / -fstack-protector-all (关闭 / 开启 / 全开启) 栈里插入cookie信息PIE:-no-pie / -pie (关闭 / 开启) 地址随机化,另外打开后会有get_pc_thunkRELRO:-z norelro / -z lazy / -z now (关闭 / 部分开启 ...
栈复习
以下均针对AMD 指令集
ROPgadget12345$ROPgadget --binary pwn --only 'pop|ret' | grep 'rdi' #控制寄存器的值$ROPgadget --binary pwn --string '/bin/sh' #查找字符串$ROPgadget --binary pwn --only 'leave|ret' | grep 'leave'#查找leave ret指令地址$ROPgadget --binary pwn --ropchain #生成现成的rop利用链直接getshell,适用于静态编译的程序$ROPgadget --binary pwn --only 'ret' #查找ret指令的地址
ret2text32位栈传参,顺序从右向左,ebp占4个字节
栈布局
fun(a,b,c)
123456---- ebp----返回函数地址fun_addr----下一执行函数地址----c----b----a
pw ...
butterfly美化
本文用于记录博客修缮过程由于博客过于人机所以想要美化一下
借鉴文章:
Hexo-butterfly美化基础教程(一) | J1Zh0n9の小屋
Butterfly主题一图流背景及文章顶部图修改_butterfly设置背景图-CSDN博客
注意:本文中代码中的 + - 为添加加号要舍弃, - -为去除
一图流修改\ROOT\themes\butterfly_config.yml
编辑其中的 index_img、background、footer_bg 选项。设置网站背景,将主页顶部图和页脚背景改为透明。
新建styl文件
在ROOT\themes\butterfly\source\css\page目录,新建topimg.styl。
1234567891011121314151617181920212223242526// 顶部图#page-header, #page-header:before background-color: transparent !important background-image: unset !important.top-img height: ...
基础学习
[TOC]
建立学习参考目标
(1)短期参考比自己优秀的同龄人。阅读他们的文章和工作成果从细节中观察他们的学习方 式和工作方式。
(2)中期参考你的方向上的业内专家。了解他们的成长轨迹’跟踪他们关注的内容。
(3)长期参考业内老牌企业和先锋企业把握行业发展、技术趋势’为未来做积累
二进制文件从源代码到可执行文件编译原理编译器的作用是读人以某种语言(源语言)编写的程序,输出等价的用另一种语言(目标语言) 编写的程序。
GCC编译GCC编译主要包括四个阶段:预处理、编译、汇编、链接。*(-o 选项用于指定编译后生成的输出文件名)*
1gcc hello.c -o hello //终端运行即可获得可执行文件hello
hello.c–>hello.s–>hello.o
预处理将#开头的预处理指令转换后直接插入程序文本中,得到另一个c程序 hello.i
1gcc -E hello.c -o hello.i //-E可以单独执行预处理
预处理的一些处理规则如下:
递归处理#include预处理指令将对应文件的内容复制到该指令的位置;
删除所有的#define指令并且在 ...

