![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
文章平均质量分 86
Anansi_safe
一位整日做梦,妄想进入Google的arch教低端人士
展开
-
Chrome代码分析(二)——EscapeAnalysisPhase
本阶段最主要的功能就是检查对象是否为逃逸,将逃逸对象保留的同时将未逃逸的对象删除,除此之外此阶段还会将一些不必要的节点简化或替换为其他节点。原创 2022-11-14 14:57:17 · 520 阅读 · 0 评论 -
Chrome代码分析(一)——Node对象结构
Node结构.....use与edge原创 2022-11-02 10:21:18 · 932 阅读 · 1 评论 -
Chrome漏洞分析与利用(九)——issue 1296150(cve 2022-0609)
issue 1296150(CVE 202-0609)由于此漏洞在chromium release版本下触发失败,通过查看issue页面发现崩溃产生于DCHECK(),故尝试编译debug版进行漏洞调试安装vs,勾选以下组件其余默认,vs最好安装在默认路径否则在编译时可能出现问题,具体问题及解决办法查看v8编译。然后设置好环境变量使用以下方法获取指定版本chromium的源码再使用以下方法同步源码并同时执行runhooks使用以下方法清理目录最后执行以下内容打开编译配置文件在编译配置原创 2022-07-08 15:37:41 · 1628 阅读 · 0 评论 -
Chrome漏洞分析与利用(一)——Windows V8漏洞环境编译
Windows V8漏洞环境编译工具:ninja: ninja git地址depot-tools: depot-tools git地址vs2019: 官网下载,使用默认安装路径,否则在用v8gen.py时会因为路径问题导致失败,如果非要使用自定义路径,则需要去改v8源码目录中的vs_toolchain.py脚本,其中有一行代码path = os.path.expandvars('%ProgramFiles(x86)%' + '/Microsoft Visual Studio/%s' % versi原创 2022-02-16 14:40:42 · 1345 阅读 · 0 评论 -
CVE-2020-17087逆向分析
文章写了很久今天才发现一直是草稿状态。。。。----------------------------------分割线---------------------------------------漏洞逆向分析17087是一个位于Cng.sys内核中的一个整形溢出漏洞,此内核主要用于各种加密算法以及其Key的管理,此内核暴露了大量的ioctl code供应用层程序调用,用我写了一半的fuzz工具(一直划水,开发进度缓慢目前也就只能做做ioctl code探测了…)探测一下哪些ioctl可用,这些ioct原创 2021-03-08 15:44:57 · 766 阅读 · 0 评论 -
win10_x64下shellcode提权工具(SYSTEM权限)
之前写过一篇远线程注入与一篇shellcode编写的文章:Win10_X64远线程注入dll(非CreateRemoteThread)Windows 10_X64环境shellcode编写上一次是通过远线程注入,将指定的dll模块加载进我们指定的进程,这一次将我们写好的shellcode注入进指定的进程,从而执行任意代码。首先我们要清楚如何获取一个具有system权限的cmd,想要获取一个具有system权限的cmd,首先这个cmd得是一个具有system权限进程的子进程,windows下具有sys原创 2020-11-22 18:08:39 · 3519 阅读 · 1 评论 -
Windows 10_X64环境shellcode编写
环境windows 10_x64windbg_x64x64dbgnasm适用于 VS 2017 的 x64 本机工具命令提示(安装visual studio会自带)redasmshellcodeshellcode是一段用于利用软件漏洞而执行的代码,shellcode为16进制的机器码,因为经常让攻击者获得shell而得名。shellcode常常使用机器语言/汇编编写。 可在暂存器eip溢出后,塞入一段可让CPU执行的shellcode机器码,让电脑可以执行攻击者的任意指令。虽然现在的操原创 2020-11-20 22:46:42 · 2100 阅读 · 1 评论 -
CVE-2020-0769逆向分析
受影响版本:系统 版本Microsoft Windows 10 Windows 10 1607Windows 10 1709Windows 10 1803Windows 10 1809Windows 10 1903Windows 10 1909Windows 7 SP1 Windows 8.1 Windows RT 8.1 Windows Server 2008 SP2Windows Server 2008 R2 SP1Windows Server 2012Windows Se原创 2021-09-13 16:00:59 · 651 阅读 · 0 评论 -
CVE-2020-16898逆向分析
CVE-2020-16898漏洞是一个典型的栈溢出漏洞,此漏洞由于出现在内核层所以最有可能造成的便是系统蓝屏宕机,也不排除利用栈溢出造成任意代码执行,但由于系统自身带有的___security_cookie安全机制,造成代码执行的可能不大。受影响的版本:windows_10 : 1709/1803/1903/1909/2004window_server_2019 : *window_server : 1903/1909/2004官方安全更新:Microsoft360cert使用IDA Pro原创 2021-09-13 16:00:14 · 1409 阅读 · 3 评论 -
浅谈C/C++函数指针与异步回调机制
函数指针与指针函数先来看两种声明:int* fun(int i);int (*fun)(int i);首先明确,前者为指针函数,后者为函数指针,他们的区别就在于:一个返回值类型为int型指针的函数一个指向返回值类型为int的函数的指针也就是说函数指针可以将函数变成一个类似与变量的东西供我们操作两者的用法实例:1.#include<stdio.h>#include<stdlib.h>int* fun(int i){ return ((int*)ma原创 2020-10-08 00:44:11 · 2667 阅读 · 0 评论 -
Win10_X64远线程注入dll(非CreateRemoteThread)
谈到远线程注入,首先肯定会想到使用CreateRemoteThread,但这个API无法对系统进程进行注入,而且根据我个人的验证发现这个函数在win10下也无法正常将dll注入进记事本进程(淦!)。好在在我的不懈努力的百度、google下发现了另一种思路,那就是使用ZwCreateThread这个内核API,CreateRemoteThread在底层也调用了这个API,CreateRemoteThread底层会调用内核函数ZwCreateThreadEx,而系统调用此函数时,如果发现是系统进程,会把函数的第原创 2020-09-27 23:42:51 · 3136 阅读 · 0 评论 -
对TP-Link SR20 tddp协议漏洞的详细逆向研究
最近段时间一直忙于找工作,从而导致博客许久没有好好的写一篇(好不容易要写了结果csdn的linux下网页登陆又出bug,只能把截图放到windows下,好不容易图都截完了转存截切,结果打开时所有图片格式又损坏了,又重新去linux截,真可谓是…一波三折),导致这段时间学到的很多知识没能记下来,罪过罪过…正题从一开始研究IOT安全开始就了解到过一个关于TP-Link SR20的固件漏洞,也复现利用过这个漏洞,但对这个漏洞的产生的具体细节了解甚微,今天就用IDA来逆向分析一下这个漏洞,关于TP-Link S原创 2020-07-27 01:38:12 · 2044 阅读 · 0 评论 -
SHA-1算法解释与C/C++实现
SHA-1与MD5算法一样,也属于是一种哈希算法,并非是密码算法,也是因为其不可逆性,导致其在密码界常有应用,他与MD5的区别:输出定长为20字节安全强度更强算法计算过程略有不同算法实现过程与其他哈希算法一样,首先肯定是对原文数据进行填充,输入不定长度的原文,要使其长度满足: “长度 mod 512bit =448bit”不管其长度是否满足,都要在其后至少添加一个十进制数128即0x80,其二进制形式为1000 0000,如果长度不满足就在添加完0x80后继续填充0,一致填充到满足"长度原创 2020-05-18 13:34:22 · 2034 阅读 · 0 评论 -
dll劫持代码演示
DLL文件在说dll劫持之前,我觉得有必要先说明一下dll文件的用途,dll文件是windows下的动态链接库文件,通常情况下,我们的应用程序并不是将所有的代码内容都生成为一个exe可执行文件的,开发者会将部分内容编译打包成一个后缀为.dll的库文件,这样做就我所知有三大好处:应用程序本体体积会很小。不同程序间可共享一个库文件。可以增强程序的可扩展性。介于这些好处,微软本身也是鼓励动态库文件的使用,当然,他也有一个缺点,那就是每次发布程序,都要讲这些dll文件打包与应用程序放在同一目录下发布,原创 2020-05-14 18:55:28 · 1179 阅读 · 0 评论 -
MD5算法解释及C/C++实现
关于MD5MD5是由Ronald Linn Rivest设计,于1992年公开,用以取代MD4算法的一种散列算法,首先要明确的是,他本身并非是一种加密算法,但因为其不可逆性,导致在密码界也常有应用,因为不可逆性,曾一度被认为是一种比较安全的算法,但据说被我天朝山东大学的一位女教授给破解了,只用几个小时就可以将其碰撞(就是用不同的明文算出相同的密文,姑且这样形容…),所以就目前而言,已经不再是一种百分之百安全的算法了(跟md5出自同宗的SHA-1算法据说也被谷歌给破了…)算法过程MD5算法的过程,总体简原创 2020-05-12 00:58:02 · 813 阅读 · 0 评论 -
快速排序C代码实现(非递归)
1原创 2020-05-07 01:10:52 · 1570 阅读 · 0 评论 -
RSA加密算法解释与C++实现
最近因为一些原因对密码学产生了点兴趣,继之前用代码实现BASE64之后最近又搞起了RSA,这让我这个数学渣用从头开始学数学。。。。泪RSA加密算法RSA加密算法是由三位MIT大佬发现的,故RSA算法名称由来就是取他们三位名字i的首字母。RSA算法是一种典型的不对称加密算法,说到不对称加密就会想到对称加密,在密码学加密算法大致可分为两种:对称加密与不对称加密。对称加密什么是对称加密,简单来...原创 2020-05-03 22:00:03 · 5936 阅读 · 3 评论 -
快速排序C语言
快速排序,就像他的名字,相对而言十分快速,时间复杂度较低,所以在对程序运行时间有一定要求的场合可以选择快速排序来进行数据的排序快速排序首先在步骤上分为:首先选取一个基准数,直接取首元素即可对于从左往右降序排序,将比基准数小的数放到基准数左边,比基准数大的放到右边,如果一个在右边的数比基准数大,那就放着不动,继续向左比较,直到找到一个比基准数小的数,然后放到基准数左边,然后开始比较左边,左边...原创 2020-03-29 12:10:07 · 2491 阅读 · 0 评论 -
C++ 实现Base64编码
Base64编码是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法,Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信息。采用Base64编码具有不可读性,需要解码后才能阅读。编码实现过程想要实现对字符串的base64编码,首先肯定要知道它的编码过程,在进行编码前首先要设置码表const u_ch...原创 2020-03-25 19:11:08 · 3135 阅读 · 0 评论 -
C++实现PE文件添加新节区(加壳器)
最近潜心研究二进制安全,接触到了shellcode还有加壳脱壳有关的内容,于是心血来潮,想用自己不怎么成熟的编程功夫来实现写一个加壳器,并记录下代码编写过程中遇到的坑。(以下文章中区段==节区)PE文件格式pe(Portable Executable)其实就是在windows系统上的程序文件,这种文件格式在windows系列操作系统上基本上是通用的,我们平时见到的.exe、.dll、.obj...原创 2020-03-21 17:38:45 · 2626 阅读 · 6 评论 -
栈帧详解
栈帧作用栈帧在程序中负责保存程序的局部变量、参数与函数最终执行完后的返回地址。我们在写C语言代码时经常会接触到的一个概念“局部变量”就是由栈帧来负责保存维护的。栈从数据结构上来说,是一种先进后出的数据接管,可以把他想象成一个水桶,要存入的数据就是一个个的盘子,现在将盘子按顺序一个一个放入桶中,当要用到盘子要取出盘子的时候,最后一个放入的盘子肯定第一个被取出,第一个放入的盘子肯定最后一个被取出...原创 2020-03-12 18:42:53 · 1324 阅读 · 0 评论 -
基于Qt的多人实时桌面共享
首先需要进行问题分析,想要达到多人实时桌面共享功能,要先解决四个问题:1.如何截取桌面画面2. 如何暂存画面,且能够快速的存取, 并且方便进行收发3.暂存的图片以何种格式保存4.利用何种网络协议进行通讯首先解决第一个问题,也是最好解决的问题,在Qt中可以利用QScreen*screen=QApplication::primaryScreen();QPixmap pixbuf=scr...原创 2020-02-07 12:18:10 · 2894 阅读 · 0 评论 -
win10下驱动进程保护
网上可以查到很多WIN7下的驱动后台进程保护代码,而那些代码在WIN10下并不适用,故写此篇来文章来总结我在编写WIN10下后台进程保护驱动程序的过程与经验说起进程关闭,通常会用三种方法:1.利用进程管理器关闭2.打开CMD,调用taskkill指令关闭3.调用taskkill加上-t参数,进行强行进程关闭...原创 2020-01-31 00:48:52 · 11759 阅读 · 34 评论