![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
总结
文章平均质量分 90
飞鸿踏雪(蓝屏选手)
住在二叉树上的小菜鸟,目标是蔚蓝的高空和绚烂的远方。草根二进制安全研究员,希望大佬多多指教
展开
-
DCOM远程激活拒绝访问的解决方式
在win7系统上一般是没有什么问题,而在win10及其以后的系统上,不出意外你就会得到这样的错误这是权限问题导致的拒绝访问,默认只允许Administrator用户远程激活。所以可以分为两种情况解决,一种是以Administrator用户进行远程激活,第二种是通过修改配置允许指定用户远程激活。在此之前需保证=》=》=》=》=》是的。原创 2024-08-19 19:18:42 · 667 阅读 · 0 评论 -
Windows内核开发:如何使用STL
大家都知道应用层c++的STL非常强大,非常好用,但是在内核下就没法用了。针对这个问题,经过我不懈的寻找,终于找到了解决内核无法使用STL的方法。原创 2024-05-05 16:58:59 · 432 阅读 · 0 评论 -
windows内核开发:如何使用反汇编引擎
最近在写个人项目中需要在内核模式下使用到反汇编引擎,找到几个并使用对比后我强烈推荐一款名叫BeaEngine的反汇编引擎。原创 2024-05-04 17:18:17 · 494 阅读 · 0 评论 -
数据结构:图
在自动化程序分析中,图和树的一些算法起到了至关重要的作用,所以在开始自动化程序分析的研究前,我用了两天复习了一遍数据结构中的图。本章主要内容有图的基本概念,图的存储和图相关的经典算法,并在附录中附带上完整代码的仓库链接。注:文章中并不会提到关于图的所有概念和定理,只有和程序分析中相关性比较大的那部分。文章中若有错误请指出,代码也存在可优化的空间,欢迎把你的优化代码提到中。原创 2024-05-02 15:47:46 · 1081 阅读 · 1 评论 -
Anti Rookit -- 检测隐藏进程
检测隐藏进程除了众所周知的枚举进程ID之外,还有枚举句柄表的方式。不过今天给大家带来的是第三种方法。原创 2024-04-27 23:49:50 · 1175 阅读 · 2 评论 -
ObRegisterCallbacks()返回0xC0000022(拒绝访问)解决办法
在开发测试环境下,没有打签名的驱动调用ObRegisterCallbacks会返回0xC0000022(拒绝访问)的错误码。这是由于该函数内部会进行驱动的签名校验。因此可以用以下代码绕过该检查。原创 2023-11-13 20:45:27 · 354 阅读 · 0 评论 -
ETW HOOK原理探析
关于ETW是什么我就不多说了,可以通过微软的相关文档了解到。据网上得知这项技术最早被披露于2345的驱动中,一位工程师将其代码逆向还原之后大白于天下。随后各大安全厂商相继使用这种技术实现监控系统调用、内存页错误等。它是一个相对于VT来说更稳定,更简单的系统监控方式。调用ZwTraceControlZwTraceControl启用ETW日志(Win8只有NtTraceControlNtTraceControl。原创 2023-11-11 20:58:37 · 1103 阅读 · 0 评论 -
Anatova勒索病毒分析
2019年爆出在国外发现的一款新型勒索病毒。文件名:Anatova.exe病毒使用的是单线程加密。大体加密步骤:打开文件 =》读取文件 =》随机生成Key+Iv =》Sala20加密文件 =》加密Key和Iv =》复写文件 =》关闭文件句柄。勒索病毒生成Key和Iv使用的是系统函数CryptGenRandom。Key固定长度为32字节,Iv固定长度为8字节。勒索病毒使用系统函数CryptEncrypt加密Key和Iv。原创 2023-08-17 17:38:02 · 306 阅读 · 0 评论 -
NISACTF2023 WP
2年多没玩CTF了,pwn显得手生了不少,我的PWN环境已经在硬盘的某个角落里吃灰了。今天参加了一场校赛,捣鼓了一下午,Reverse和PWN都AK了。其实比赛是新手向,没啥难度,不过有道PWN设计的比较巧妙,got了两个tips,也就是今天将要分享的。原创 2023-04-16 23:05:33 · 616 阅读 · 1 评论 -
01Editor最新破解
注册的提示信息还有界面的提示信息很丰富,这为我们定位关键代码提供了充分的线索。此函数条件为真的分支存在多对1情况,导致逆函数不能保证得到正确的原函数输入,而原函数的输入在后面验证的时候还需要用到。因此,这个函数的逆函数没有意义。在满足条件3、6和7,就能确定hb中的所有元素,然后反求得serial。注意:这个函数是多对一的,所以这个函数的反函数就成了一对多。以上就是所有注册算法流程,接下来考虑如何获得正确的任意用户名的序列号。因为有处条件永不满足。,用来和序列号某个部分进行对比的,所以该函数也不用求逆。原创 2022-12-30 13:01:56 · 10022 阅读 · 5 评论 -
纠正一下网上文章所说“利用RPC绕过CFG”的错误说法
网上说“利用RPC绕过CFG”的说法是不正确的,我先给出自己的观点,后面再说我的分析。网上有好几篇分析的文章,对绕过CFG一律都说是利用RPC。其实在这个漏洞场景下,攻击者只不过是借助RPC获得执行任意的功能(注意我这里说的是系统函数,因为系统函数必然是合法的地址。),如果是某个自己创建出来的堆栈地址则可能会触发CFG异常。注意到killcfg它的思路是利用RPC调用VirtualProtect函数去修改___guard_check_ical_pt。原创 2022-11-29 15:51:14 · 362 阅读 · 0 评论 -
House of pig 原理详解&实战
该方法适用于glibc-2.31及其以上版本,基本原理是综合glibc-2.31下的、IO_FILE结构和这三种利用手法,常用于目标程序中使用calloccalloc代替mallocmalloc分配内存的情形下。该方法的核心在于glibc中的IO_str_overflowIO_str_overflow函数内会连续调用mallocmalloc、memcpymemcpy、...原创 2022-08-29 16:57:16 · 1186 阅读 · 2 评论 -
Largebin Attack原理详解
攻击成效:能够向任意地址写堆地址,常配合其他攻击手法实现getshell。条件:能够修改Largebin−>bkLargebin−>bk。研究环境:Glibc2.31\textcolor{green}{研究环境:Glibc2.31}研究环境:Glibc2.31现在总结一下Largebin attack的一些利用条件和步骤。能够修改Largebin中的块的字段。程序中至少能够分配三种属于Largebin的不同大小的块。分配一块大小。...原创 2022-08-07 14:44:58 · 1529 阅读 · 0 评论 -
Tcache Stashing Unlink Attack 原理详解
calloc\textcolor{cornflowerblue}{calloc}calloc函数是直接调用_int_malloc\textcolor{cornflowerblue}{\_int\_malloc}_int_malloc函数分配内存的,并且会清空内存所以calloc\textcolor{cornflowerblue}{calloc}calloc可以越过 tcache取空闲内存。而malloc\textcolor{cornflowerblue}{malloc}malloc函数先是判断是否启用了原创 2022-08-06 17:28:38 · 1665 阅读 · 3 评论 -
CVE-2022-21882 分析&POC
0x0 漏洞描述该漏洞的成因和CVE-2021-1732类似,如果不了解,请先阅读我之前的分析:https://blog.csdn.net/qq_41252520/article/details/119349398主要因为xxxClientAllocExtraBytesFunc\textcolor{cornflowerblue}{xxxClientAllocExtraBytesFunc}xxxClientAllocExtraBytesFunc函数会回调用户空间中的user32!_xxxClientA原创 2022-04-29 23:17:05 · 2241 阅读 · 0 评论 -
父进程欺骗
3.1.简介父进程欺骗技术是说,把一个恶意进程的 PID指定为一个合法的进程(lsass.exe)的 PID。安全软件会通过对父子进程间关系的检测来判断该进程是否异常,攻击者以此技术规避启发式检测等防御手段。3.2.原理父进程欺骗用的最多的方法就是通过CreateProcess\textcolor{cornflowerblue}{CreateProcess}CreateProcess函数实现,其原型如下:BOOLWINAPICreateProcessA( _In_opt_ LPCS原创 2022-04-25 15:33:10 · 2916 阅读 · 0 评论 -
遗传算法学习
1.什么是遗传算法?1.1.遗传算法的定义遗传算法(Genetic Algorithm, GA)是受达尔文进化论的启示,模拟自然进化和遗传过程的计算模型。遗传算法的主要特点是通过种群的遗传和变异,采用概率化的寻优方法,不需要有确定的规则就能自动获取和指导优化搜索空间,自适应的调整搜索方向。1.2.遗传算法的相关术语基因型(genotype):性状染色体的内部表现;表现型(phenotype):染色体决定的性状的外部表现,或者说,根据基因型形成的个体的外部表现;进化(evolut原创 2022-04-22 09:56:23 · 1088 阅读 · 0 评论 -
Stack Overflow - SROP
0x0 原理signal机制是 类unix系统中进程之间传递信息的一种方法,也称之为 软中断信号,或 软中断。整个中断过程如下:内存向进程发送 signal信号,进程就会被挂起,进入内核态。内核会用将当前进程的 寄存器值、signal信息和指向 sigretrun的系统调用地址压入栈中,这几部分信息也叫做 ucontext以及siginfo,而保存这些信息的栈位于用户空间中。之后就会跳转到注册过得 signal handler中处理相应的 signal。在 signal handler执行完原创 2022-04-13 14:15:48 · 316 阅读 · 0 评论 -
两道逆向题分析总结
HWS2021——Enigma前言这是一道来自华为2021硬件安全冬令营线上赛的一道虚拟机逆向题,比较有特点的是整个虚拟机的操作隐藏在了异常处理函数中,正常用类似 OD调试器不能顺利调试。这种反调试结合虚拟机技巧值得学习。分析工具:IDA 7.01.分析1.1.整体流程程序没有加壳,运行之后出现提示:根据关键信息,来到主函数:int __cdecl main(int argc, const char **argv, const char **envp){ FILE *fout; //原创 2022-03-31 16:40:32 · 5248 阅读 · 0 评论 -
CVE-2021-40449 分析
前言该漏洞本身原理比较简单,而作为 Win10下的利用才是本篇文章的研究重点。1.漏洞简介1.1.漏洞描述win32kfull.sys中的 NtGdiResetDC\textcolor{cornflowerblue}{NtGdiResetDC}NtGdiResetDC函数存在 UAF漏洞,攻击者可以利用该漏洞进行本地权限提升。1.2.影响版本windows_10windows_10 20h2windows_10 21h1windows_10 1607windows_10 1809w原创 2022-03-24 17:38:50 · 1735 阅读 · 0 评论 -
Win7 x64下内核池溢出覆盖配额进程指针(Quota Process Pointer Overwrite)
0x0 简介在 Win7 x64位下,内核池的头部结构如下:nt!_POOL_HEADER +0x000 PreviousSize : Pos 0, 8 Bits // 前一个内核堆块大小除以0x10 +0x000 PoolIndex : Pos 8, 8 Bits // 该池所在池描述符表中的索引 +0x000 BlockSize : Pos 16, 8 Bits // 该池大小除以0x10 +0x000 PoolType原创 2022-03-19 20:24:07 · 1025 阅读 · 0 评论 -
Bitmap在Win7内核漏洞中的利用
Windows7下利用Bitmap借助内核漏洞获取内核读写原语原创 2022-03-17 17:58:28 · 4189 阅读 · 0 评论 -
HEVD--Win7_x32下内核池溢出利用
Win7_x32内核池溢出利用学习总结原创 2022-03-16 14:30:34 · 708 阅读 · 0 评论 -
2020网鼎杯玄武组re baby_vm复盘
2020网鼎杯玄武组re baby_vm wp,赛后参考大牛博客复盘学习并总结。原创 2022-02-27 16:54:11 · 980 阅读 · 0 评论 -
WinDbg设置调试符号路径与调试符号下载(一篇就够)
解决WinDbg设置符号路径,无法下载调试符号的问题原创 2022-02-23 18:15:32 · 8777 阅读 · 0 评论 -
CVE-2018-0744 分析
CVE-2018-07440x1 漏洞简介Windows 8.1 和 RT 8.1、Windows Server 2012 和 R2、Windows 10 Gold、1511、1607、1703 和 1709、Windows Server 2016 和 Windows Server 版本 1709 中的 Windows 内核由于对象的处理方式而允许提权漏洞在内存中,又名“Windows 特权提升漏洞”。0x2 影响版本Windows 8.1Windows RT 8.1Windows Serv原创 2021-09-10 18:13:44 · 621 阅读 · 0 评论 -
CVE-2019-9193 复现
CVE-2019-9193(PostgreSql 命令执行)复现0x0 简介PostgreSQL作者称为Post-Gres-Q-L,是开源的功能强大的关系型数据库,支持SQL语法。在9.3版本中增加了一个COPY TO/FROM PROGRAM功能。该功能允许数据库的超级用户以及pg_read_server_files组中的任何用户执行操作系统命令。0x1 影响版本9.3-11.20x2 环境搭建这里使用的是vulhub环境,进入到vulhub−master/postgres/CVE−20原创 2021-08-24 12:45:05 · 886 阅读 · 0 评论 -
CVE-2016-07255 分析
文章目录CVE-2016-072550x1 漏洞描述0x2 影响版本0x3 漏洞分析■ xxxNextWindow 逆向分析■ 漏洞验证■ 漏洞利用■ EXP■ 演示0x5 总结0x6 参考CVE-2016-072550x1 漏洞描述在windows的图形处理驱动win32k.sys中,函数 xxxNextWindow\textcolor{cornflowerblue}{xxxNextWindow }xxxNextWindow未检查对象的合法性就直接使用,存在安全隐患。攻击者可以通过精心设置该对原创 2021-08-14 11:51:11 · 457 阅读 · 0 评论 -
CVE-2016-0167分析
文章目录CVE-2016-01670x1 前言0x2 漏洞描述0x3 影响版本0x4 评级0x5 漏洞分析■ xxxMNDestroyHandler逆向分析■ MNFreePopup逆向分析■ HMAssignmentUnlock逆向分析■ MNFlushDestroyedPopups■ xxxMNDestroyHandler简要执行流程图■ xxxTrackPopupMenuEx逆向分析■ xxxMNLoop逆向分析■ 一条通往xxxMNDestroyHandler的路径分析0x6 漏洞利用■ 漏洞触发■原创 2021-08-12 16:12:13 · 639 阅读 · 0 评论 -
CVE-2015-2546 分析
文章目录CVE-2015-25460x0 漏洞描述0x1 影响版本0x2 漏洞分析■ xxxMNMouseMove逆向分析■ xxxMNFindWindowFromPoint逆向分析■ xxxSendMessage逆向分析■ xxxMNFindWindowFromPoint简要执行流程■ xxxMNHideNextHierarchy逆向分析■ xxxMNDestroyHandler逆向分析■ xxxMNMouseMove简要执行流程0x3 漏洞利用■ 漏洞利用简要流程图■ 内存释放后重用■ 漏洞利用的细节原创 2021-08-07 18:48:04 · 694 阅读 · 0 评论 -
CVE-2021-1732 分析
文章目录CVE-2021-17320x0 漏洞描述0x1 受影响版本0x2 漏洞分析■ 环境■ 分析■ NtUserConsoleControl逆向分析■ xxxSetWindowLong逆向分析■ xxxSetWindowLongPtr逆向分析■ CreateWindowEx生成HWND分析■ CreateMenu逆向分析■ xxxGetMenuBarInfo逆向分析■ Win10 1909泄露内核■ 归纳几个重要的结构体及其偏移0x3 漏洞利用1.获取需要用到的函数地址2.HOOK目标函数3.精心构造3原创 2021-08-03 14:50:55 · 1211 阅读 · 0 评论 -
Windows堆学习
文章目录Windows堆学习(一)0x0 堆的数据结构1.堆块2.堆表0x1 堆块的操作1.分配2.释放3.合并0x2 探索堆管理器1.堆管理器的架构2.堆分配函数的依赖关系0x3 堆的调试方法1.调试前准备2.调试过程部分细节0x4 总结Windows堆学习(一)0x0 堆的数据结构Windows中分堆块和堆表,其中我们通过动态分配内存函数(malloc\textcolor{cornflowerblue}{malloc}malloc、relooc\textcolor{cornflowerblue}原创 2021-03-19 18:18:30 · 502 阅读 · 0 评论 -
2020-09-27
Web&&Pwn前些天看到了山科大一位表哥的文章,提及了一些Web与Pwn结合的技术,非常符合我的理念,以此作为引子,开始探讨以下两道Web_Pwn题目。0x0 2019ciscn web——滑稽云音乐这道题目一看页面还是挺美观的,看得出来出题人用心了!翻看过后有用的页面就是注册登录和上传音乐了注册页面如下:如何源码泄露的部分就不说了,因为我是本地搭建的环境,当时比赛是什么流程我并不知道。直接进行代码审计吧。首先看一下注册页面的代码...if (isset($原创 2020-09-27 15:18:25 · 318 阅读 · 0 评论 -
Seacms6.27代码执行分析
分析首先利用代码审计工具打开网站目录,尝试搜索能够执行代码的函数。首先想到的是eval,实际上该cms的代码执行漏洞正好是eval发起的。搜索到包含该函数的信息很多,主要关注的是include/main.class.php里的如下区域:引用该文件的页面是搜索页面在每个 eval() 上面都加一句输出,看看传进来的参数的变化。根据输出的结果来看,此处并没有任何过滤,因此接下来的 eval 将会执行代码。所以Poc :http://127.0.0.1/search.php?searchty原创 2020-09-01 18:21:14 · 289 阅读 · 0 评论 -
2020ciscn 部分二进制WP(持续更新)
逆向0x0 z3从名字来看,暗示了使用z3解决这道题。分析main函数可以看出是一个42元一次方程组。最后在比较结果。[脚本]:from z3 import*ans=[0x4f17,0x9cf6,0x8ddb,0x8ea6,0x6929,0x9911,0x40a2,0x2f3e,0x62b6,0x4b82,0x486c,0x4002,0x52d7,0x2def,0x28dc,0x640d,0x528f,0x613b,0x4781,0x6b17,0x3237,0x2a93,0原创 2020-08-22 16:27:50 · 1387 阅读 · 0 评论 -
skctf2020wp
Pwn0x0 boring_canary【保护】:【分析】:主要代码如下:存在数组越界漏洞,可以通过v4避免覆写canary,然后就是常规的rop chain来getshell。然而主要问题是如何让scanf返回 -1,才能让程序执行我们的rop chain。我开始尝试输入负数,想通过修改V4的值来发生一些异常。当我输入 -3时,向 &v5[-24] 随意写入数据后程序果然异常了。为了一探究竟,开始进行调试。我将断点打在 0x400761,输入 -3 然后向其写入任意数据,程序原创 2020-06-08 10:40:27 · 356 阅读 · 0 评论 -
windows内核提权(一)之栈溢出
前言这个学期在做一个安全软件项目,涉及到windows的驱动开发,也因此项目为我敲开了windows内核的大门。这里面的东西奥妙无穷,亟待探索。环境HackSystem的作者专门为教学windows内核安全而写了一个漏洞驱动HEVD,里面包含了基本的堆栈溢出漏洞,并附带了EXP。我下载的是最新版的HEVD3.0。windows7 32位分析首先使用IDA静态分析一下,找到D...原创 2020-04-24 17:40:58 · 843 阅读 · 0 评论 -
虎符CTF2020 部分题目复现(连续更新)
PWN0x0 MarksMan【保护】:【代码】:很明显程序一开始就向我们泄露了libc的内存,如果通过检测,就可以任意地址写3个字节。如果能找到一处可控的调用,直接修改程one_gadget就可以了。看看这个check检查了什么这是过滤了部分字节,默认的one_gadget只能查看很少的可用地址,需要加上 -l参数,并指定一个较小的数字,如2,这样就能够得到更多可用地址。现...原创 2020-04-22 20:24:26 · 1717 阅读 · 0 评论 -
warshall算法求n阶邻接方阵的传递闭包
前言离散课上老师提到了这一个高效求关系的传递闭包的算法,对于二进制狗的我需要多掌握一些算法,于是在此做个总结。过程算法很简单,但是语言描述起来有点费解。简单说,用i表示行,j表示列。循环i=0->n(n是阶数)如果a[j][i]=1,则将j行的每个元素与i行进行逻辑加,即a[j][k]=a[i][k] | a[j][k](k=0->n)优化时间上:1.一开始邻接矩阵全...原创 2020-04-22 16:08:28 · 372 阅读 · 0 评论 -
LCTF-2017 2ez4u
保护分析典型的菜单型程序,可用的操作用增删改查。添加操作的伪代码:可以得到一个大概的结构体struct Apple{size_t Color;size_t Value;size_t Id;char Description[size]};这里需要注意一点,Color,Value,Id 占去了一个chunk 结构的 fd,bk,fd_size。输入也存在0截断:删...原创 2020-03-30 19:22:39 · 528 阅读 · 0 评论