<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[CharlesGodX的博客]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/CharlesGodX</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; CharlesGodX]]></copyright><item><title><![CDATA[NTFS CVE-2020-17096 分析复现]]></title><link>https://blog.csdn.net/CharlesGodX/article/details/112801387</link><guid>https://blog.csdn.net/CharlesGodX/article/details/112801387</guid><author>CharlesGodX</author><pubDate>Tue, 19 Jan 2021 10:43:37 +0800</pubDate><description><![CDATA[转自先知社区：https://xz.aliyun.com/t/8996
简介
2020年12月微软发布CVE-2020-17096的补丁，zecops团队对此漏洞进行了分析，文章在这里，本文根据其文章进行复现学习。这个洞是NTFS模块，zecops分析出来是内存泄露，但是微软对这类内存泄漏的洞很少收，并且标注的是Remote Code Execution，zecops团队也没有找到远程代码执行的地方，所以真正是否为zecops团队分析的那样还需要进一步研究。
补丁对比
问题出在ntfs.sys中，下面是对比]]></description><category></category></item><item><title><![CDATA[类型混淆漏洞模式浅析]]></title><link>https://blog.csdn.net/CharlesGodX/article/details/112220824</link><guid>https://blog.csdn.net/CharlesGodX/article/details/112220824</guid><author>CharlesGodX</author><pubDate>Tue, 05 Jan 2021 11:29:32 +0800</pubDate><description><![CDATA[转自先知社区：https://xz.aliyun.com/t/8594
简介
这几天在twitter上无意间发现了一个讲类型混淆的paper，遂决定分析一下Windows内核中类型混淆的漏洞模式，本文也是基于两篇paper进行分析学习，首先介绍C++中类型混淆的原理，然后介绍一个Direct X模块的漏洞 。读完本文你会发现实际上后面这个内核洞和前面介绍的C++类型混淆关系不大，是的，我也这么觉得。这么做的原因是前面这部分适合拿来学习原理，原理介绍清楚了之后，后面就靠积累和发散了，实际上你会发现还是有很多相]]></description><category></category></item><item><title><![CDATA[WinDbg Tricks]]></title><link>https://blog.csdn.net/CharlesGodX/article/details/109534898</link><guid>https://blog.csdn.net/CharlesGodX/article/details/109534898</guid><author>CharlesGodX</author><pubDate>Fri, 06 Nov 2020 18:51:16 +0800</pubDate><description><![CDATA[本文搜集了一些windbg常用的命令，方便自己查阅，老版本windbg现在已经集成在visual studio里面，新版本的直接在Microsoft Store里面可以搜到，不过新的windbg preview版本不是很稳定，不过UI挺友好的。下面的内容不定期补充，首先放一个官方对windbg命令介绍的地址

https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/commands

符号
windbg里面下载微软符号都需要梯子，]]></description><category></category></item><item><title><![CDATA[二进制安全之路总结]]></title><link>https://blog.csdn.net/CharlesGodX/article/details/106093928</link><guid>https://blog.csdn.net/CharlesGodX/article/details/106093928</guid><author>CharlesGodX</author><pubDate>Wed, 13 May 2020 11:16:42 +0800</pubDate><description><![CDATA[我是一个从2018年才开始接触安全的二进制菜鸡，虽然学安全是靠时间不断积累的，但其实有很多技巧和总结可以让你少走弯路，下面分享一些自己不成熟的经验，所以有什么您觉得不对的地方还是希望您多多包含，为什么写在自我介绍里面呢？因为不想单独开一篇（懒
第一个我认为最主要的点就是英语决定了你的上限，无论在计算机行业学什么，英语绝对是决定上限的东西，所以不论如何英语不能丢，虽然我没资格说这句话。
第二个就是扩大自己的圈子和眼界，在自己初期打CTF的时候，对CTF的定位比较奇怪，我觉得CTF给我带来最主要的东西不是技术，]]></description><category></category></item><item><title><![CDATA[CTF密码学之SM4]]></title><link>https://blog.csdn.net/CharlesGodX/article/details/90215374</link><guid>https://blog.csdn.net/CharlesGodX/article/details/90215374</guid><author>CharlesGodX</author><pubDate>Sun, 13 Oct 2019 17:01:41 +0800</pubDate><description><![CDATA[介绍
SM4.0（原名SMS4.0）是中华人民共和国政府采用的一种分组密码标准，由国家密码管理局于2012年3月21日发布。相关标准为“GM/T 0002-2012《SM4分组密码算法》（原SMS4分组密码算法）”。在商用密码体系中，SM4主要用于数据加密，其算法公开，分组长度与密钥长度均为128bit，加密算法与密钥扩展算法都采用32轮非线性迭代结构，S盒为固定的8比特输入8比特输出。SM4.0...]]></description><category></category></item><item><title><![CDATA[0ctf2017-babypwn]]></title><link>https://blog.csdn.net/CharlesGodX/article/details/100705362</link><guid>https://blog.csdn.net/CharlesGodX/article/details/100705362</guid><author>CharlesGodX</author><pubDate>Tue, 10 Sep 2019 17:18:29 +0800</pubDate><description><![CDATA[前言
本片文章从0ctf2017-babyheap这一道pwn题目入手，讲解pwn堆中的一些利用手法
题目链接
分析程序
首先检查程序保护，所有的保护措施都是开启的，这意味着我们想要改写程序流程考虑从malloc_hook和free_hook入手
[*] '/home/thunder/Desktop/codes/ctf/pwn/heap/0ctf_babyheap/0ctfbabyheap'
  ...]]></description><category></category></item><item><title><![CDATA[CTF密码学之RC4]]></title><link>https://blog.csdn.net/CharlesGodX/article/details/90065683</link><guid>https://blog.csdn.net/CharlesGodX/article/details/90065683</guid><author>CharlesGodX</author><pubDate>Fri, 10 May 2019 15:18:27 +0800</pubDate><description><![CDATA[原理
在密码学中，RC4（来自Rivest Cipher 4的缩写）是一种流加密算法，密钥长度可变。它加解密使用相同的密钥，因此也属于对称加密算法。RC4是有线等效加密（WEP）中采用的加密算法，也曾经是TLS可采用的算法之一。
加密过程




参数
作用




S-box(S)
256长度的char型数组，定义为: unsigned char sBox[256]


Key(K)
自定义的密...]]></description><category></category></item><item><title><![CDATA[CTF密码学之Base64,Base32,Base16]]></title><link>https://blog.csdn.net/CharlesGodX/article/details/90041914</link><guid>https://blog.csdn.net/CharlesGodX/article/details/90041914</guid><author>CharlesGodX</author><pubDate>Thu, 09 May 2019 16:51:43 +0800</pubDate><description><![CDATA[CTF-Base64
原理
Base64可以将ASCII字符串或者是二进制编码成只包含A—Z，a—z，0—9，+，/ 这64个字符（ 26个大写字母，26个小写字母，10个数字，1个+，一个 / 刚好64个字符）。这64个字符用6个bit位就可以全部表示出来，一个字节有8个bit 位，那么还剩下两个bit位，这两个bit位用0来补充。其实，一个Base64字符仍然是8个bit位，但是有效部分只有右...]]></description><category></category></item><item><title><![CDATA[CTF-z3简要介绍]]></title><link>https://blog.csdn.net/CharlesGodX/article/details/89931468</link><guid>https://blog.csdn.net/CharlesGodX/article/details/89931468</guid><author>CharlesGodX</author><pubDate>Wed, 08 May 2019 23:42:31 +0800</pubDate><description><![CDATA[介绍
Z3是微软研究院的一个定理验证器。它是由麻省理工学院授权的，常用来解一些方程组，在做一些CTF逆向题目的时候很有用，下面就简单介绍一下这个工具。
下载
官网：https://github.com/Z3Prover/z3
这里讲Linux下的安装，在官网下载源码之后进入主目录，执行下面的命令即可，一定要源码安装，挺难安装的一定要耐心，实在不行用docker
python scripts/mk_...]]></description><category></category></item><item><title><![CDATA[pwn-ret2dl-resolve]]></title><link>https://blog.csdn.net/CharlesGodX/article/details/89816548</link><guid>https://blog.csdn.net/CharlesGodX/article/details/89816548</guid><author>CharlesGodX</author><pubDate>Sat, 04 May 2019 19:02:59 +0800</pubDate><description><![CDATA[pwn-ret2dl-resolve
0x00：漏洞介绍
ret2dl-resovle这种技术在pwn中的运用也挺多的，可以类比Windows下的IAT技术进行学习，了解这个技术之前，我们需要知道ELF文件中各个函数的加载过程，下面就演示一下GOT表是如何加载的，首先我们编译一个简单的程序
#include &lt;stdio.h&gt;
int main()
{
    puts("Hello ...]]></description><category></category></item><item><title><![CDATA[angr-CTF符号执行]]></title><link>https://blog.csdn.net/CharlesGodX/article/details/89503964</link><guid>https://blog.csdn.net/CharlesGodX/article/details/89503964</guid><author>CharlesGodX</author><pubDate>Wed, 24 Apr 2019 22:14:01 +0800</pubDate><description><![CDATA[0x00：简介
符号执行简单来说就是用符号来模拟程序执行，在我看来就相当于暴力破解，比如一个程序要求你进行一个复杂的运算，每次动态调试只能输入一次，然而符合执行可以尽可能的遍历每一条路径，这样就方便了许多。
0x01：安装
这里不建议实体机安装，坑太多，直接上docker，安装教程
0x02：例题
r100(defcamp)
题目链接
将程序载入IDA静态分析，主函数如下
 signed __in...]]></description><category></category></item><item><title><![CDATA[DDCTF-Bin部分wp]]></title><link>https://blog.csdn.net/CharlesGodX/article/details/89439431</link><guid>https://blog.csdn.net/CharlesGodX/article/details/89439431</guid><author>CharlesGodX</author><pubDate>Sun, 21 Apr 2019 22:49:11 +0800</pubDate><description><![CDATA[Reverse1
查看文件，发现是upx壳，我们用命令直接脱壳
thunder@thunder-PC:~/Desktop/CTF/reverse/DDCTF2019$ file reverse1_final.exe 
reverse1_final.exe: PE32 executable (console) Intel 80386, for MS Windows, UPX compressed
t...]]></description><category></category></item><item><title><![CDATA[pwn-堆溢出off-by-one]]></title><link>https://blog.csdn.net/CharlesGodX/article/details/89266708</link><guid>https://blog.csdn.net/CharlesGodX/article/details/89266708</guid><author>CharlesGodX</author><pubDate>Wed, 17 Apr 2019 00:29:23 +0800</pubDate><description><![CDATA[Thunder_J@Thunder_J-virtual-machine:~/桌面$ python exp.py 
[+] Starting local process './Storm_note': pid 16030
[*] '/home/Thunder_J/\xe6\xa1\x8c\xe9\x9d\xa2/Storm_note'
    Arch:     amd64-64-little
  ...]]></description><category></category></item><item><title><![CDATA[pwn-2019西湖论剑之story]]></title><link>https://blog.csdn.net/CharlesGodX/article/details/89162963</link><guid>https://blog.csdn.net/CharlesGodX/article/details/89162963</guid><author>CharlesGodX</author><pubDate>Tue, 09 Apr 2019 21:32:47 +0800</pubDate><description><![CDATA[0x00：前言
这道题是64位程序，涉及到canary绕过，格式化字符串漏洞，是一道非常好的练习题
0x01：题目思路
首先检查保护，可以看到有堆栈不可执行和canary保护
Thunder_J@Thunder_J-virtual-machine:~/桌面$ checksec story 
[*] '/home/Thunder_J/\xe6\xa1\x8c\xe9\x9d\xa2/story'
 ...]]></description><category></category></item><item><title><![CDATA[Pwn-栈转移(stack immigration)]]></title><link>https://blog.csdn.net/CharlesGodX/article/details/89113401</link><guid>https://blog.csdn.net/CharlesGodX/article/details/89113401</guid><author>CharlesGodX</author><pubDate>Mon, 08 Apr 2019 22:56:41 +0800</pubDate><description><![CDATA[0x00：前言
栈转移(stack immigration)主要是为了解决栈溢出可以溢出空间大小不足的问题，HITCON-Training-master 的 lab6 就是用的这个原理，我们来实践一下这道题目。
0x01：实例
题目链接：
https://github.com/scwuaptx/HITCON-Training/blob/master/LAB/lab6/migration
运行一下程...]]></description><category></category></item><item><title><![CDATA[Docker基本操作]]></title><link>https://blog.csdn.net/CharlesGodX/article/details/88932769</link><guid>https://blog.csdn.net/CharlesGodX/article/details/88932769</guid><author>CharlesGodX</author><pubDate>Mon, 01 Apr 2019 00:42:02 +0800</pubDate><description><![CDATA[0x00：介绍
Docker 属于 Linux 容器的一种封装，提供简单易用的容器使用接口。它是目前最流行的 Linux 容器解决方案。Docker 将应用程序与该程序的依赖，打包在一个文件里面。运行这个文件，就会生成一个虚拟容器。程序在这个虚拟容器里运行，就好像在真实的物理机上运行一样。有了 Docker，就不用担心环境问题。 虚拟机和Docker不同，虚拟机是模拟了硬件和环境，安装时需要选择硬...]]></description><category></category></item><item><title><![CDATA[hctf2016[pwn]-fheap]]></title><link>https://blog.csdn.net/CharlesGodX/article/details/88911417</link><guid>https://blog.csdn.net/CharlesGodX/article/details/88911417</guid><author>CharlesGodX</author><pubDate>Sat, 30 Mar 2019 13:57:54 +0800</pubDate><description><![CDATA[0x00：前言
这道题是一道堆栈混合加格式化字符串的题目，题目的利用点不错，很适合好好做一遍。
0x01：题目链接
https://github.com/zh-explorer/hctf2016-fheap
0x02：解题思路
首先查看程序保护
root@Thunder_J-virtual-machine:~/桌面# checksec pwn-f
[*] Checking for new vers...]]></description><category></category></item><item><title><![CDATA[PE文件详解(C制作PE格式解析器)]]></title><link>https://blog.csdn.net/CharlesGodX/article/details/88597403</link><guid>https://blog.csdn.net/CharlesGodX/article/details/88597403</guid><author>CharlesGodX</author><pubDate>Wed, 27 Mar 2019 17:04:05 +0800</pubDate><description><![CDATA[0x00：前言
PE文件可以说是在逆向的各个领域都有涉及，特别是病毒领域，如果你是一名病毒制造者，那你肯定是对PE文件有详细的了解，那么这里我就详细介绍一下PE文件，最后我们用C来写一个PE格式解析器。
0x01：PE格式
要了解PE文件，首先要知道PE格式，那么什么是PE格式呢，既然是一个格式，那肯定是我们都需要遵循的定理，下面这张图就是PE文件格式的图片(来自看雪)，非常大一张图片，其实PE格...]]></description><category></category></item><item><title><![CDATA[exp合集]]></title><link>https://blog.csdn.net/CharlesGodX/article/details/88759087</link><guid>https://blog.csdn.net/CharlesGodX/article/details/88759087</guid><author>CharlesGodX</author><pubDate>Sat, 23 Mar 2019 12:57:31 +0800</pubDate><description><![CDATA[0x00：前言
这里有许多我做过的pwn题目的exp记录，包括各大平台的一些题目，不断更新，我会简要写一些做题的思路，有时间就弄出来当成一个专题详解。
0x01：栈系列
canary绕过
题目链接
https://github.com/ThunderJie/CTF-Practice/tree/master/CTF-Pwn/canary
思路和exp
通过找print函数输出的地方距离canary的...]]></description><category></category></item><item><title><![CDATA[Pwn-Overflow Free Chunk(堆溢出)]]></title><link>https://blog.csdn.net/CharlesGodX/article/details/88753484</link><guid>https://blog.csdn.net/CharlesGodX/article/details/88753484</guid><author>CharlesGodX</author><pubDate>Fri, 22 Mar 2019 23:27:26 +0800</pubDate><description><![CDATA[0x00：前言
这次介绍一种和栈溢出类似名字的堆溢出攻击，首先借用应用CTF-Wiki上的例子理解一下堆溢出。
0x01：漏洞介绍
堆溢出是指程序向某个堆块中写入的字节数超过了堆块本身可使用的字节数（之所以是可使用而不是用户申请的字节数，是因为堆管理器会对用户所申请的字节数进行调整，这也导致可利用的字节数都不小于用户申请的字节数），因而导致了数据溢出，并覆盖到物理相邻的高地址的下一个堆块，我们用两...]]></description><category></category></item></channel></rss>