<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[m0_52343643的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/m0_52343643</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; m0_52343643]]></copyright><item><title><![CDATA[Tcache漏洞]]></title><link>https://blog.youkuaiyun.com/m0_52343643/article/details/126945803</link><guid>https://blog.youkuaiyun.com/m0_52343643/article/details/126945803</guid><author>m0_52343643</author><pubDate>Thu, 06 Apr 2023 20:03:41 +0800</pubDate><description><![CDATA[tcache 为每个线程创建一个缓存（cache），从而实现无锁的分配算法，有不错的性能提升。正式提供了该机制，并默认开启647）：放入相应 bins 中的 chunk 都会在其用户数据中包含，指向同 bins 中的下一个 chunk。]]></description><category></category></item><item><title><![CDATA[【堆漏洞 - Unsorted bin/ Large bin Attack】]]></title><link>https://blog.youkuaiyun.com/m0_52343643/article/details/126748276</link><guid>https://blog.youkuaiyun.com/m0_52343643/article/details/126748276</guid><author>m0_52343643</author><pubDate>Thu, 06 Apr 2023 20:03:06 +0800</pubDate><description><![CDATA[malloc 从 unsorted bin 取 chunk 的时候，如果对应的 tcache bin 还未装满，则会将 unsorted bin 里的 chunk 全部放进对应的 tcache bin，然后再从 tcache bin 中取出。使 unsorted chunk 大于链表中最小的 chunk 时的利用失效，必须使 unsorted chunk 小于链表中最小的 chunk。unsorted chunk 小于链表中最小的 chunk 的时候会执行前一句，反之执行后一句。]]></description><category></category></item><item><title><![CDATA[【堆漏洞 - Fastbin attack】]]></title><link>https://blog.youkuaiyun.com/m0_52343643/article/details/126605353</link><guid>https://blog.youkuaiyun.com/m0_52343643/article/details/126605353</guid><author>m0_52343643</author><pubDate>Thu, 06 Apr 2023 20:02:13 +0800</pubDate><description><![CDATA[漏洞发生于fastbin的chunk，且存在堆溢出、use-after-free 等能控制 chunk 内容的漏洞。]]></description><category></category></item><item><title><![CDATA[【堆漏洞-Use after free】]]></title><link>https://blog.youkuaiyun.com/m0_52343643/article/details/126586871</link><guid>https://blog.youkuaiyun.com/m0_52343643/article/details/126586871</guid><author>m0_52343643</author><pubDate>Thu, 06 Apr 2023 20:01:19 +0800</pubDate><description><![CDATA[释放堆时没有将堆指针设为NULL，使得可以继续使用这个堆指针操作空中（执行或修改）释放堆中的内容。]]></description><category></category></item><item><title><![CDATA[【堆学习】]]></title><link>https://blog.youkuaiyun.com/m0_52343643/article/details/125411956</link><guid>https://blog.youkuaiyun.com/m0_52343643/article/details/125411956</guid><author>m0_52343643</author><pubDate>Thu, 06 Apr 2023 19:58:18 +0800</pubDate><description><![CDATA[arena包含一片或数片连续的内存，堆块从中划分。//该变量用于控制程序串行访问同一个分配区，当一个线程获取了分配区之后，其它线程要想访问该分配区，就必须等待该线程分配完成后才能够使用。/* Serialize access. */ //flags 记录了分配区的一些标志，比如 bit0 记录了分配区是否有 fast bin chunk ，bit1 标识分配区是否能返回连续的虚拟地址空间 int flags;]]></description><category></category></item><item><title><![CDATA[【堆漏洞-unlink】]]></title><link>https://blog.youkuaiyun.com/m0_52343643/article/details/126217015</link><guid>https://blog.youkuaiyun.com/m0_52343643/article/details/126217015</guid><author>m0_52343643</author><pubDate>Thu, 06 Apr 2023 19:58:03 +0800</pubDate><description><![CDATA[当一个堆块（非fastbin）释放时，libc会先看其相邻的堆块是否空闲，空闲的话就将这个相邻堆块从bins中取出，并与当前释放堆块合并，而这个bins中取出堆块的过程就是unlink。]]></description><category></category></item><item><title><![CDATA[【堆漏洞-Off_by_one】]]></title><link>https://blog.youkuaiyun.com/m0_52343643/article/details/125522062</link><guid>https://blog.youkuaiyun.com/m0_52343643/article/details/125522062</guid><author>m0_52343643</author><pubDate>Thu, 06 Apr 2023 19:57:08 +0800</pubDate><description><![CDATA[缓冲区溢出的一种，只能溢出一个字节普通  off_by_one ，修改堆上指针通过溢出修改堆块头，制造堆块重叠，达到泄露与改写目的-(1) 扩展被释放堆块-(2) 扩展已分配堆块-(3) 收缩被释放堆块-常见的漏洞场景1、 for循环多接收了一个字符2、 strcpy与strlen的行为不一致，strlen不计算入‘ \x00 ’，strcpy会把‘ \x00 ’一同复制3、判断字符串结束符为‘ \n ’，而不是‘ \x00 ’版本问题。]]></description><category></category></item><item><title><![CDATA[Pwn-高阶ROP-[栈溢出]/篇3]]></title><link>https://blog.youkuaiyun.com/m0_52343643/article/details/124425832</link><guid>https://blog.youkuaiyun.com/m0_52343643/article/details/124425832</guid><author>m0_52343643</author><pubDate>Wed, 11 May 2022 19:38:38 +0800</pubDate><description><![CDATA[大概调用过程：
也就是我们这里先调用了write函数的plt表项触发了_dl_runtime_resolve函数（会push linkmap）之后会先到.rel.plt段，通过plt中给的push <偏移>在.rel.plt段中找到偏移处对应函数的重定位表项，再通过该表项的r_info（一个偏移量），找到.dynsym段中对应偏移量函数的符号表项，又通过该符号表项的st_name（也是一个偏移量）在.dynstr段找到对应的字符串，最后就会通过这个字符串（函数名）来调用该函数。]]></description><category></category></item><item><title><![CDATA[buuctf-逆向-reverse3]]></title><link>https://blog.youkuaiyun.com/m0_52343643/article/details/124331253</link><guid>https://blog.youkuaiyun.com/m0_52343643/article/details/124331253</guid><author>m0_52343643</author><pubDate>Thu, 21 Apr 2022 21:50:50 +0800</pubDate><description><![CDATA[题目

BUUCTF在线评测 reverse3



思路

Exeinfo PE查看程序为32位，无壳



打开IDA ，找到有main_0函数，F5得C伪码，分析如何得到 right flag!



查看Str2的内容为 e3nifIH9b_C@n@dH





知道了Str2，也知道Dest经过变化的代码，我们可以写脚本得到原来变化前的Dest，但是变化前的Dest从v4来，得到v4的sub_4110BE有什么作用我们不清楚，就动态调试看看



字符串查找到程序输入入口，F2下断点，运行输入.]]></description><category></category></item><item><title><![CDATA[逆向学习1-[脱壳技术]/篇1]]></title><link>https://blog.youkuaiyun.com/m0_52343643/article/details/123557782</link><guid>https://blog.youkuaiyun.com/m0_52343643/article/details/123557782</guid><author>m0_52343643</author><pubDate>Thu, 21 Apr 2022 20:40:00 +0800</pubDate><description><![CDATA[壳

壳是包裹在程序外的一层代码，通常先于程序执行，达到防止源程序不被非法修改或反编译的目的

壳的分类

壳分为压缩壳和加密壳

压缩壳

压缩壳主要是帮助减少PE文件（Windows下的文件格式）大小，隐藏PE文件内部的代码和资源

常见的压缩壳有：Upx、ASpack、PECompat

加密壳

加密壳应用有多种防止代码逆向分析的技术，用该壳的PE文件会比原文件大很多，有时恶意程序也用加密壳来降低杀毒软件的扫描

常见的加密壳有：ASProtector、Armadillo、EXECryptor、T.]]></description><category></category></item><item><title><![CDATA[Pwn中阶学习1-[栈溢出]/篇3]]></title><link>https://blog.youkuaiyun.com/m0_52343643/article/details/123990221</link><guid>https://blog.youkuaiyun.com/m0_52343643/article/details/123990221</guid><author>m0_52343643</author><pubDate>Thu, 14 Apr 2022 15:33:33 +0800</pubDate><description><![CDATA[这种题型一般是在题目没有给出程序文件的时候，我们对程序一无所知，对程序是否栈溢出、栈溢出长度、gadget地址，源函数地址等只能进行爆破得到

攻击条件：

    程序存在栈溢出漏洞
    服务器端的进程在崩溃后会重新启动，且启动进程地址与先前一样。目前 nginx, MySQL, Apache, OpenSSH 等服务器应用都是符合这种特性的。

BROP绕过ASLR、NX、Canary保护

步骤

    爆破栈溢出长度
    得到漏洞函数或main函数地址（stop gadget：使程序返回地]]></description><category></category></item><item><title><![CDATA[Pwn基础学习1-[栈溢出]/篇2]]></title><link>https://blog.youkuaiyun.com/m0_52343643/article/details/123505122</link><guid>https://blog.youkuaiyun.com/m0_52343643/article/details/123505122</guid><author>m0_52343643</author><pubDate>Tue, 29 Mar 2022 22:49:48 +0800</pubDate><description><![CDATA[继上一篇的内容
题目3-ret2syscall
定义
控制程序执行系统调用
原理
不同于之前的 ret2text 和 ret2shellcode 题型，系统调用并不是执行程序中现有的代码或自己写进去的代码，其实就如其字面意思，系统调用就是我们让系统来调用一些函数，那么如何做到让系统来调用，需要满足以下几个条件：

某函数的系统调用号【系统调用号表】—— 放在寄存器 eax
	需传入某函数的参数 —— 放在寄存器 ebx、ecx、edx
	一个指令 —— int 0x80
int 0x80（软中断）]]></description><category></category></item><item><title><![CDATA[Pwn基础学习1-[栈溢出]/篇1]]></title><link>https://blog.youkuaiyun.com/m0_52343643/article/details/123368434</link><guid>https://blog.youkuaiyun.com/m0_52343643/article/details/123368434</guid><author>m0_52343643</author><pubDate>Mon, 14 Mar 2022 18:02:06 +0800</pubDate><description><![CDATA[是缓冲区溢出的一种，当缓冲区数据大于缓冲区大小时，缓冲区之外的有用数据就会被多出去的缓冲区数据覆盖改写，从而可能导致程序崩溃。]]></description><category></category></item></channel></rss>