<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[aksghj的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/aksghj</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; aksghj]]></copyright><item><title><![CDATA[[PWN] Linux中的pkeys安全机制及绕过]]></title><link>https://blog.youkuaiyun.com/aksghj/article/details/155246559</link><guid>https://blog.youkuaiyun.com/aksghj/article/details/155246559</guid><author>aksghj</author><pubDate>Wed, 26 Nov 2025 22:56:29 +0800</pubDate><description><![CDATA[本文介绍了内存保护键（pkeys）机制及其在CTF PWN中的应用。pkeys通过页表键标识和线程局部寄存器实现高效内存权限切换，相比传统mprotect性能更优。x86_64架构下每个保护键占用4位，提供16种权限组合，通过PKRU寄存器管理。arm64架构则使用3位编码8个键，支持读写执行权限控制。文中结合?CTF题目&quot;弥达斯之触&quot;展示了pkeys的实际应用，该题通过随机生成保护键并配合seccomp限制系统调用，考察选手绕过保护机制的能力。系统调用pkey_alloc()、pkey]]></description><category></category></item><item><title><![CDATA[fmt_str练习]]></title><link>https://blog.youkuaiyun.com/aksghj/article/details/149771005</link><guid>https://blog.youkuaiyun.com/aksghj/article/details/149771005</guid><author>aksghj</author><pubDate>Sat, 22 Nov 2025 12:50:04 +0800</pubDate><description><![CDATA[利用pwntools的fmt_str模块,将printf的got劫持为system的got。开启了部分RELRO,那么可以劫持printf的got为system的got，那么执行。先通过测试找到该格式化字符的偏移是4。然后泄露setvbuf的got地址。只有这里一个格式化字符串漏洞。开启了NX,部分RELRO。]]></description><category></category></item><item><title><![CDATA[一文讲透PWN中格式化字符串漏洞的可变参数]]></title><link>https://blog.youkuaiyun.com/aksghj/article/details/155113449</link><guid>https://blog.youkuaiyun.com/aksghj/article/details/155113449</guid><author>aksghj</author><pubDate>Sat, 22 Nov 2025 12:47:51 +0800</pubDate><description><![CDATA[本文深入解析了pwn中格式化字符串漏洞利用的核心原理，重点阐述了可变参数机制在x86_64 System V ABI下的实现方式。文章从固定参数与可变参数的区别入手，详细介绍了va_list、va_start、va_arg等关键宏的工作机制，揭示了参数如何通过寄存器与栈传递。特别分析了漏洞利用时如何通过%k$p等格式控制符泄露内存数据，解释了&quot;找偏移&quot;的本质是追踪va_arg对寄存器区和栈空间的参数读取过程。全文系统性地梳理了格式化字符串漏洞背后的底层原理，为安全研究人员提供了深入理解这]]></description><category></category></item><item><title><![CDATA[MoeCTF2025_逆向AK详解]]></title><link>https://blog.youkuaiyun.com/aksghj/article/details/150268587</link><guid>https://blog.youkuaiyun.com/aksghj/article/details/150268587</guid><author>aksghj</author><pubDate>Mon, 17 Nov 2025 20:58:12 +0800</pubDate><description><![CDATA[moectf2025逆向详解]]></description><category></category></item><item><title><![CDATA[安卓逆向上手(一)工具安装]]></title><link>https://blog.youkuaiyun.com/aksghj/article/details/152600534</link><guid>https://blog.youkuaiyun.com/aksghj/article/details/152600534</guid><author>aksghj</author><pubDate>Mon, 06 Oct 2025 12:57:54 +0800</pubDate><description><![CDATA[本文介绍了多款安卓应用分析与逆向工具。雷电模拟器和夜神模拟器用于运行安卓应用；ADB是官方安卓调试工具；JADX和JD用于APK反编译；Apktool可反编译资源文件；GAD专注字节码分析；JEB能处理复杂加固APK；Frida需要root权限配置使用。每款工具都有其特定用途，如逆向分析、资源提取等，并附上了下载地址和相关教程链接。]]></description><category></category></item><item><title><![CDATA[【万字详解】PWN canary绕过和相关技术]]></title><link>https://blog.youkuaiyun.com/aksghj/article/details/150922805</link><guid>https://blog.youkuaiyun.com/aksghj/article/details/150922805</guid><author>aksghj</author><pubDate>Thu, 04 Sep 2025 19:32:44 +0800</pubDate><description><![CDATA[canary是一种防范栈溢出的程序保护机制，设计思想就是在一个栈溢出高危区域的尾部插入一个类似cookie的值，在函数返回时检测这个canary值是否发生改变来检测是否有溢出发生。]]></description><category></category></item><item><title><![CDATA[Black_watch入群题PWN 栈迁移题目分析]]></title><link>https://blog.youkuaiyun.com/aksghj/article/details/150788808</link><guid>https://blog.youkuaiyun.com/aksghj/article/details/150788808</guid><author>aksghj</author><pubDate>Mon, 25 Aug 2025 22:33:32 +0800</pubDate><description><![CDATA[一道32位的栈迁移题目。]]></description><category></category></item><item><title><![CDATA[gyctf_2020_borrowstack栈迁移题目分析]]></title><link>https://blog.youkuaiyun.com/aksghj/article/details/150777259</link><guid>https://blog.youkuaiyun.com/aksghj/article/details/150777259</guid><author>aksghj</author><pubDate>Mon, 25 Aug 2025 19:22:33 +0800</pubDate><description><![CDATA[一道64位的迁移到bss段的题目。]]></description><category></category></item><item><title><![CDATA[ciscn_2019_es_2 栈迁移题目分析]]></title><link>https://blog.youkuaiyun.com/aksghj/article/details/150646683</link><guid>https://blog.youkuaiyun.com/aksghj/article/details/150646683</guid><author>aksghj</author><pubDate>Sun, 24 Aug 2025 12:23:09 +0800</pubDate><description><![CDATA[栈迁移的核心是对leave和ret指令的理解和运用。]]></description><category></category></item><item><title><![CDATA[2025磐石行动初赛_account分析]]></title><link>https://blog.youkuaiyun.com/aksghj/article/details/150142990</link><guid>https://blog.youkuaiyun.com/aksghj/article/details/150142990</guid><author>aksghj</author><pubDate>Mon, 11 Aug 2025 00:24:30 +0800</pubDate><description><![CDATA[那么exp分两次利用漏洞，第一次泄露libc地址，第二次执行system(“/bin/sh”)获取 shell。这个transform函数的作用是将 32 位无符号整数转换为对应的有符号整数表示（补码形式）循环逻辑为：用户输入整数到v1[0]，若输入非 0，则执行v1[++v2] = v1[0]。32位没有canary。]]></description><category></category></item><item><title><![CDATA[Rust入门(一)_开发环境配置及格式化]]></title><link>https://blog.youkuaiyun.com/aksghj/article/details/150031577</link><guid>https://blog.youkuaiyun.com/aksghj/article/details/150031577</guid><author>aksghj</author><pubDate>Sat, 09 Aug 2025 17:31:56 +0800</pubDate><description><![CDATA[比如 “会叫” 是一种行为，狗和猫都有这个行为，但具体叫的方式不同（汪汪 vs 喵喵）。去官网下载https://www.jetbrains.com/rust/，因为RustRover的个人非商用版免费，所以也不需要找破解版，正常使用就行。如果想使用 0 以外的字符（比如字母、符号或其他数字）作为填充符，需要在宽度前直接指定该字符，且该字符必须是非数字（因为数字会被解析为宽度的一部分）。比如现实中的 “狗”“猫” 是具体的动物，在代码中可以用结构体表示它们的属性（名字、年龄等）。(“{}（猫）喵喵叫！]]></description><category></category></item><item><title><![CDATA[栈劫持_x86(stack pivoting)(一)]]></title><link>https://blog.youkuaiyun.com/aksghj/article/details/149774920</link><guid>https://blog.youkuaiyun.com/aksghj/article/details/149774920</guid><author>aksghj</author><pubDate>Sun, 03 Aug 2025 09:56:47 +0800</pubDate><description><![CDATA[（stack pivoting）是将栈转移到固定可控的目标上的一种方法，比如转移到bss段上或者是转移到堆上。一般来说，我们可能在以下情况中需要使用栈劫持。在某些技巧中，也可以通过栈劫持这种方法来进行一次性的不需要返回到main函数的Payload。还有一些其他情况，比如能在bss段输入大量数据，但是栈溢出的时候只能控制返回地址甚至只能控制rbp的情况。当然，特殊情况下，只能控制rbp的一个字节。下面通过一个例子解释。]]></description><category></category></item><item><title><![CDATA[格式化字符串漏洞_x86详解]]></title><link>https://blog.youkuaiyun.com/aksghj/article/details/149647813</link><guid>https://blog.youkuaiyun.com/aksghj/article/details/149647813</guid><author>aksghj</author><pubDate>Tue, 29 Jul 2025 11:44:32 +0800</pubDate><description><![CDATA[格式化字符串函数接受可变数量的参数，并将第一个参数作为格式化字符串，根据其解析之后的参数。格式化字符串的利用分为三个部分（1）格式化字符串函数（2）格式化字符串（3）后续参数(可选)其中，printf()函数就是格式化字符串函数"output1:%s,output2:%p,output3:%4,2f"就是格式化字符串a,b,c就是后续参数格式化字符串最常见的漏洞就是参数未写全，比如这样一个语句。]]></description><category></category></item><item><title><![CDATA[ret2libc3_x64]]></title><link>https://blog.youkuaiyun.com/aksghj/article/details/149640734</link><guid>https://blog.youkuaiyun.com/aksghj/article/details/149640734</guid><author>aksghj</author><pubDate>Fri, 25 Jul 2025 16:03:23 +0800</pubDate><description><![CDATA[​。]]></description><category></category></item><item><title><![CDATA[ret2libc3_x86]]></title><link>https://blog.youkuaiyun.com/aksghj/article/details/149411110</link><guid>https://blog.youkuaiyun.com/aksghj/article/details/149411110</guid><author>aksghj</author><pubDate>Thu, 17 Jul 2025 03:09:36 +0800</pubDate><description><![CDATA[这里要进行两次溢出，第一次先用puts泄漏某个函数(这里是gets)的got地址，然后再用计算出的libc库偏移找到system和“/bin/sh”ret2libc3中，只有一个gets的溢出，system和“/bin/sh”都需要自己获取。实际题目中常常要用到LibcSearcher之类的小工具来寻找libc库版本。答案是动态链接库中的函数和字符串。先用gdb的vmmap找到库地址。与retlibc2保护相同。]]></description><category></category></item><item><title><![CDATA[ret2libc2(x86)]]></title><link>https://blog.youkuaiyun.com/aksghj/article/details/149410817</link><guid>https://blog.youkuaiyun.com/aksghj/article/details/149410817</guid><author>aksghj</author><pubDate>Thu, 17 Jul 2025 02:29:20 +0800</pubDate><description><![CDATA[双函数ROP。]]></description><category></category></item></channel></rss>