<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[evolve_b7的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/evolve_b7</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; evolve_b7]]></copyright><item><title><![CDATA[house of 系列]]></title><link>https://blog.youkuaiyun.com/evolve_b7/article/details/166255125</link><guid>https://blog.youkuaiyun.com/evolve_b7/article/details/166255125</guid><author>evolve_b7</author><pubDate>Mon, 21 Sep 2026 21:27:33 +0800</pubDate><description><![CDATA[很多利用都依赖free的功能，但是程序没有给free函数，我们可以通过申请比 top chunk size 大的 chunk 但是比 mmap_minsize 小的空间，然后因为没有符合的大小所以会先free原来的 top chunk 再申请一个新的，原来的 top chunk 会被放到 unsorted bin 中，然后利用unsorted bin attack 结合FSOP。]]></description><category></category></item><item><title><![CDATA[dasctf2026夏季赛pwnwp]]></title><link>https://blog.youkuaiyun.com/evolve_b7/article/details/162358528</link><guid>https://blog.youkuaiyun.com/evolve_b7/article/details/162358528</guid><author>evolve_b7</author><pubDate>Sat, 27 Jun 2026 09:17:45 +0800</pubDate><description><![CDATA[tt_timer_cb()里真正执行 DMA 时，它没有用 deferred_dst/deferred_len/deferred_src/deferred_dir，而是重新读取了当前 channel 里的字段。// 输入,inputt。// LEA,生成指针。]]></description><category></category></item><item><title><![CDATA[pwn整数溢出]]></title><link>https://blog.youkuaiyun.com/evolve_b7/article/details/161365817</link><guid>https://blog.youkuaiyun.com/evolve_b7/article/details/161365817</guid><author>evolve_b7</author><pubDate>Sun, 24 May 2026 15:26:32 +0800</pubDate><description><![CDATA[当程序中的数据超过其数据类型的范围，则会造成溢出，整数类型的溢出被称为整数溢出。有符号整数无符号整数浮点数存储：1.负数的存储采用补码2.浮点数的存储(-1)^s表示符号位，当s=0，V为正数；当s=1，V为负数。M表示有效数字，大于等于1，小于2。2^E表示指数位。二进制码M乘以2的n次方，相当于将二进制码M的小数点向右移动n位,于科学计数法类似关于整数的异常情况主要有三种：溢出，只有有符号数才会发生溢出。有符号数的最高位表示符号，在两正或两负相加时，有可能改变符号位的值，产生溢出。]]></description><category></category></item><item><title><![CDATA[VMpwn学习]]></title><link>https://blog.youkuaiyun.com/evolve_b7/article/details/161347502</link><guid>https://blog.youkuaiyun.com/evolve_b7/article/details/161347502</guid><author>evolve_b7</author><pubDate>Sat, 23 May 2026 22:09:44 +0800</pubDate><description><![CDATA[VMpwn = 在虚拟机（VM）环境里进行 pwn（漏洞利用）的安全挑战题，核心在于需要我们分析出不同的opcode(操作码)的功能，再从中找出漏洞，一个逆向的过程：就是将代码翻译为机器和人都无法识别的一串伪代码字节流，在具体执行时再对这些伪代码进行一一翻译解释，逐步还原为原始代码并执行。这段用于翻译伪代码并负责具体执行的子程序就叫做虚拟机VM。它以一个函数的形式存在，函数的参数就是字节码的内存地址。]]></description><category></category></item><item><title><![CDATA[pwn 中堆的简单理解]]></title><link>https://blog.youkuaiyun.com/evolve_b7/article/details/160720050</link><guid>https://blog.youkuaiyun.com/evolve_b7/article/details/160720050</guid><author>evolve_b7</author><pubDate>Sat, 02 May 2026 21:34:37 +0800</pubDate><description><![CDATA[Glibc 上的堆堆是每个程序被分配到的一块内存区域，和栈主要区别是 堆内存是动态分配，程序可以从 heap 段请求一块内存或释放一块内存同时，堆是全局的，在程序的任意位置都可以访问到堆，并不一定要调用 malloc 函数访问。这是因为C语言使用指针指向动态内存，但同时指针也带来了一定的开销。指针也很危险，而且指针真的很难啊……堆使用两个函数来原理内存，分别是 brk(),mmap()注意，申请内存时， Linux 内核只会先分配一段虚拟内存，真正使用时才会映射到物理内存上去。]]></description><category></category></item><item><title><![CDATA[对 SROP 简单的理解]]></title><link>https://blog.youkuaiyun.com/evolve_b7/article/details/160382376</link><guid>https://blog.youkuaiyun.com/evolve_b7/article/details/160382376</guid><author>evolve_b7</author><pubDate>Tue, 21 Apr 2026 21:50:48 +0800</pubDate><description><![CDATA[一个软件异常或正常执行时都可以触发signal ，用相对应的信号名通知进程，告诉进程发生了什么。从而，在攻击时，我们可以伪造一份假的 signal frame，然后 syscall 执行 sigreturn ，寄存器中的值就是我们想要的，最后执行目标动作。有 syscall ，一般一个SROP会利用两次 syscall ，一次执行 sigreturn 一次执行目标。利用 read 的返回值, read 实际的返回值是read读入的字节数，而且返回值就在 rax。：是 Linux/Unix 系统中，内核在。]]></description><category></category></item></channel></rss>