<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[qq_20242529的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/qq_20242529</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_20242529]]></copyright><item><title><![CDATA[CTF pwn方向 ret2text 总结和例题]]></title><link>https://blog.youkuaiyun.com/qq_20242529/article/details/139101880</link><guid>https://blog.youkuaiyun.com/qq_20242529/article/details/139101880</guid><author>qq_20242529</author><pubDate>Tue, 21 May 2024 21:01:34 +0800</pubDate><description><![CDATA[这里用命令：ROPgadget --binary filename --only "pop|ret"这里有system（“/bin/sh”），要将主函数跳带这里就能拿shell。padding=0X9+4 这里的4是因为32位。找system函数。以Polar靶场的小狗汪汪汪为例子。因为是64所以要找rdi的地址。复制getshell的地址。以Polar靶场的x64为例。找bin/sh.或者$0等。这里有危险函数gets。]]></description><category></category></item><item><title><![CDATA[[NewStarCTF 2023 公开赛道]Unserialize]]></title><link>https://blog.youkuaiyun.com/qq_20242529/article/details/138319892</link><guid>https://blog.youkuaiyun.com/qq_20242529/article/details/138319892</guid><author>qq_20242529</author><pubDate>Mon, 29 Apr 2024 18:22:56 +0800</pubDate><description><![CDATA[PHP 序列化的时候 private和 protected 变量会引入不可见字符%00，private是%00类名%00属性名 ，protected为%00*%00属性名 ，注意这两个 %00就是 ascii 码0的字符。$cmd 是 private 属性的，赋值只能在内部赋值。浏览器输出的结果：O:4:"evil":1:{s:9:"evilcmd";要改为O:4:"evil":1:{s:9:"%00evil%00cmd";就是说上面的O:4:"evil":1:{s:9:"evilcmd";]]></description><category></category></item><item><title><![CDATA[[NewStarCTF 公开赛赛道]UnserializeOne]]></title><link>https://blog.youkuaiyun.com/qq_20242529/article/details/138316502</link><guid>https://blog.youkuaiyun.com/qq_20242529/article/details/138316502</guid><author>qq_20242529</author><pubDate>Mon, 29 Apr 2024 16:17:42 +0800</pubDate><description><![CDATA[先将代码复制进vscode，然后把所有和属性无关的删除。将结果以POST请求传给参数POP。这里不知道魔术方法的功能可以看这两个链接。这道题的链路比较好复原，正向逆向都可以。正向复原，图画的比较丑，谅解一下。这道题是反序列pop类型的。]]></description><category></category></item><item><title><![CDATA[[WUSTCTF2020]Cr0ssfun]]></title><link>https://blog.youkuaiyun.com/qq_20242529/article/details/137866309</link><guid>https://blog.youkuaiyun.com/qq_20242529/article/details/137866309</guid><author>qq_20242529</author><pubDate>Wed, 17 Apr 2024 11:38:43 +0800</pubDate><description><![CDATA[直接手扣出来~~~我是直接放在PC上用ctrl+F找出来的。这里明显 check函数是关键函数,点进去。IDA打开，进入main函数。再再再再再再再点进去。]]></description><category></category></item><item><title><![CDATA[[WUSTCTF2020]level1]]></title><link>https://blog.youkuaiyun.com/qq_20242529/article/details/137863092</link><guid>https://blog.youkuaiyun.com/qq_20242529/article/details/137863092</guid><author>qq_20242529</author><pubDate>Wed, 17 Apr 2024 10:37:49 +0800</pubDate><description><![CDATA[代码大概意思是他打开flag文件，通过加密来生成output文件。我们需要拿output文件逆向出flag文件。]]></description><category></category></item><item><title><![CDATA[[ACTF新生赛2020]rome 详解]]></title><link>https://blog.youkuaiyun.com/qq_20242529/article/details/137783386</link><guid>https://blog.youkuaiyun.com/qq_20242529/article/details/137783386</guid><author>qq_20242529</author><pubDate>Mon, 15 Apr 2024 17:30:57 +0800</pubDate><description><![CDATA[偏移量=-79-（-64）+97-64。偏移量=-51-（-64）+65-64。然后这里就有两个思路了，第一种就是计算偏移量进行逆向倒推出flag。先写出正常凯撒加密的代码假设偏移量为先右偏移了4,W为输入的明文,E为加密后的密文。这里计算方法就是用题目中的-51减去-64加上题目中的65-64得出偏移量为14。这里计算方法就是用题目中的-79减去-64加上题目中的97-64得出偏移量为18。先计算偏移量，看源码大写字母和小写字母的偏移量是不同的。第二种方法，暴力破解，就不需要分析出偏移量了。]]></description><category></category></item><item><title><![CDATA[[2019红帽杯]easyRE 1]]></title><link>https://blog.youkuaiyun.com/qq_20242529/article/details/137512315</link><guid>https://blog.youkuaiyun.com/qq_20242529/article/details/137512315</guid><author>qq_20242529</author><pubDate>Mon, 08 Apr 2024 17:12:40 +0800</pubDate><description><![CDATA[第三部分sub_410E90((unsigned __int8)(byte_6CC0A0[j] ^ *((_BYTE *)&v4 + j % 4)))我们主要看里面这部分(byte_6CC0A0[j] ^ *((_BYTE *)&v4 + j % 4))由v1^byte_6CC0A0[0]='f'和HIBYTE(v4) ^ (unsigned __int8)byte_6CC0A3) == 'g'这里有几个关键的地方。这里补充一下HIBYTE(v4)是指V4的高位的值，由于V1=V4也就是V1高位的值。]]></description><category></category></item><item><title><![CDATA[ctf reverse3]]></title><link>https://blog.youkuaiyun.com/qq_20242529/article/details/137370780</link><guid>https://blog.youkuaiyun.com/qq_20242529/article/details/137370780</guid><author>qq_20242529</author><pubDate>Thu, 04 Apr 2024 16:09:57 +0800</pubDate><description><![CDATA[他的表没有替换，那这道题就比较简单了。这里有个坑for i in range（0,16）中的16要为4的倍数，可以手动的猜一下数字，填14会报错。发现看漏了这里，这里就是有个偏移量，他会将我们输入的字符串base64编码后再每一位加一个偏移量。代码基本含义是，将我们输入的字符串通过sub_4110BE加密后与str2对比，相同为flag。所以现在我们要看Str2的内容还要看看sub_4110BE函数。将e3nifIH9b_C@n@dH复制到在线解码工具。看到这里人傻了，显然不是答案，然后继续看汇编代码。]]></description><category></category></item><item><title><![CDATA[ctf xor1]]></title><link>https://blog.youkuaiyun.com/qq_20242529/article/details/137370335</link><guid>https://blog.youkuaiyun.com/qq_20242529/article/details/137370335</guid><author>qq_20242529</author><pubDate>Thu, 04 Apr 2024 11:19:02 +0800</pubDate><description><![CDATA[代码含义，将我们输入的密码的前一项与当前项异或再将结果如global对比，下一步查看global的值。一开始以为这里就是他的值，后面想想不对，一般值前有db。双击aFKW这段字符串。让后shift+e提取内容。]]></description><category></category></item><item><title><![CDATA[ctf 内涵的软件]]></title><link>https://blog.youkuaiyun.com/qq_20242529/article/details/137355230</link><guid>https://blog.youkuaiyun.com/qq_20242529/article/details/137355230</guid><author>qq_20242529</author><pubDate>Wed, 03 Apr 2024 19:03:23 +0800</pubDate><description><![CDATA[这里蒙了一下V5的值，发现是flag。ida打开并且打开_main_0函数。exeinfo查看文件。]]></description><category></category></item><item><title><![CDATA[ctf reverse2]]></title><link>https://blog.youkuaiyun.com/qq_20242529/article/details/137355022</link><guid>https://blog.youkuaiyun.com/qq_20242529/article/details/137355022</guid><author>qq_20242529</author><pubDate>Wed, 03 Apr 2024 18:55:40 +0800</pubDate><description><![CDATA[分析代码，这道题是属于字符串替换类型，s2是我们输入的内容，flag经过字符串替换后与s2对比，对比成功即是flag。下一步双击flag，查看flag的值。代码运行结果为{hack1ng_fo1_fun}，加上前缀flag{hack1ng_fo1_fun}即为flag。发现是64位的elf文件，用ida打开看看，打开后查看main函数。flag的值为{hacking_for_fun}这题的思路总的来说和reverse1一样。用exeinfo查看文件结构。]]></description><category></category></item><item><title><![CDATA[CTF reverse1]]></title><link>https://blog.youkuaiyun.com/qq_20242529/article/details/137351583</link><guid>https://blog.youkuaiyun.com/qq_20242529/article/details/137351583</guid><author>qq_20242529</author><pubDate>Wed, 03 Apr 2024 17:17:02 +0800</pubDate><description><![CDATA[这里的sub_1400111D1和sub_14001128F明显是c中的printf和scanf,这里为了方便查看按N修改名字。粗略分析一下代码，大概得知，对比str1和str2，两个值一样的话就是flag，由于str1是我们输入的字符串，所以从str2入手。代码的大概意思是，对比我们输入的str1和处理过后的str2，相同的话str1就是flag了。这部分的代码意思是，遍历str2字符串ASCLL表的值为111的字符串替代为48的字符串。str2的内容为'{hello_world}']]></description><category></category></item><item><title><![CDATA[easyre1]]></title><link>https://blog.youkuaiyun.com/qq_20242529/article/details/137350299</link><guid>https://blog.youkuaiyun.com/qq_20242529/article/details/137350299</guid><author>qq_20242529</author><pubDate>Wed, 03 Apr 2024 16:37:30 +0800</pubDate><description><![CDATA[64位无壳，这里直接使用64位IDA打开。直奔main函数发现flag。]]></description><category></category></item><item><title><![CDATA[[MRCTF2020]Xor1 ctf 刷题日记]]></title><link>https://blog.youkuaiyun.com/qq_20242529/article/details/137019875</link><guid>https://blog.youkuaiyun.com/qq_20242529/article/details/137019875</guid><author>qq_20242529</author><pubDate>Mon, 25 Mar 2024 17:27:00 +0800</pubDate><description><![CDATA[【代码】[MRCTF2020]Xor1 ctf 刷题日记。]]></description><category></category></item></channel></rss>