雨者
码龄6年
  • 155,646
    被访问
  • 98
    原创
  • 621,597
    排名
  • 51
    粉丝
关注
提问 私信

个人简介:纸上得来终觉浅,绝知此事要躬行。

  • 加入CSDN时间: 2016-02-07
博客简介:

雨者

博客描述:
往事如烟,朦胧中,看尽三生尘缘。
查看详细资料
个人成就
  • 获得46次点赞
  • 内容获得20次评论
  • 获得161次收藏
创作历程
  • 5篇
    2019年
  • 46篇
    2018年
  • 48篇
    2017年
成就勋章
TA的专栏
  • c/c++
    41篇
  • Windows编程
    32篇
  • 设计模式
    6篇
  • ACM/NOI/NOIP
    26篇
  • Python
    13篇
  • PAT
    14篇
  • 数据结构
    2篇
  • Java EE
    1篇
  • Java SE
  • Matlab
  • 数学建模
  • 资料分享
    1篇
  • 算法
  • Linux
  • 影像处理
  • CCF-CSP
  • 漫漫汇编路
    1篇
兴趣领域 设置
  • 安全
    系统安全web安全
  • 最近
  • 文章
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

安全之路 —— 利用APC队列实现跨进程注入

简介在之前的文章中笔者曾经为大家介绍过使用CreateRemoteThread函数来实现远程线程注入,毫无疑问最经典的注入方式,但也因为如此,这种方式到今天已经几乎被所有安全软件所防御。所以今天笔者要介绍的是一种相对比较“另类”的方式,被称作**“APC注入”。APC(Asynchronous Procedure Call),全称为异步过程调用**,指的是函数在特定线程中被异步执行。简单地说,...
原创
发布博客 2019.03.24 ·
466 阅读 ·
0 点赞 ·
0 评论

C++多线程同步技巧(四)--- 信号量

简介信号量是维护0到指定最大值之间的同步对象。信号量状态在其计数大于0时是有信号的,而其计数是0时是无信号的。信号量对象在控制上可以支持有限数量共享资源的访问,可以用于线程同步,预防死锁等领域。信号量的特点和用途可用下列几句话定义:(1)如果当前资源的数量大于0,则信号量有效;(2)如果当前资源数量是0,则信号量无效;(3)系统决不允许当前资源的数量为负值;(4)当前资源数量决不...
原创
发布博客 2019.03.24 ·
366 阅读 ·
0 点赞 ·
0 评论

C++多线程同步技巧(三)--- 互斥体

简介Windows互斥对象机制。 只有拥有互斥对象的线程才有访问公共资源的权限,因为互斥对象只有一个,所以能保证公共资源不会同时被多个线程访问,在线程同步与保证程序单体运行上都有相当大的用处。代码样例//////////////////////////////////// FileName : MutexDemo.cpp// Creator : PeterZheng// Date...
原创
发布博客 2019.03.24 ·
237 阅读 ·
0 点赞 ·
0 评论

C++实现程序单实例运行的两种方式

简介在我们编写程序的时候,经常会注意到的一个问题就是如何能够让程序只运行一个实例,确保不会让同一个程序多次运行,从而产生诸多相同进程,给我们的带来不便呢?那么常用的有以下四种方法,第一种方法是通过扫描进程列表比对进程名来检测,第二种方法是通过枚举程序窗口的方式,第三种方法是采用共享全局变量来实现,第四种方法是通过创建互斥体来实现。那么在这些方法中,第一种和第二种方法是有缺陷的,扫描进程列表比...
原创
发布博客 2019.02.28 ·
1029 阅读 ·
0 点赞 ·
0 评论

使用Windows全局钩子打造键盘记录器

简介键盘记录功能一直是木马等恶意软件窥探用户隐私的标配,那么这个功能是怎么实现的呢?在Ring3级下,微软就为我们内置了一个Hook窗口消息的API,也就是SetWindowsHookEx函数,这个函数能够实现优先拦截提交给特定窗口的信息,并进行拦截者需要的处理,然后再提交给窗口函数或是下一个钩子函数,函数第一个参数为idHook,需要设置钩子的类型,在以下代码样例中我们选择安装的钩子类型为W...
原创
发布博客 2019.02.18 ·
2048 阅读 ·
1 点赞 ·
1 评论

洛谷P1553 数字反转(升级版)

题目简介题目描述      给定一个数,请将该数各个位上数字反转得到一个新数。      这次与NOIp2011普及组第一题不同的是:这个数可以是小数,分数,百分数,整数。整数反转是将所有数
原创
发布博客 2018.12.03 ·
471 阅读 ·
1 点赞 ·
0 评论

C++多线程同步技巧(二) ---事件

简介Windows在线程同步方面提供了多种信号处理机制,其中一种便是使用 CreateEvent() 函数创建事件,然后使用信号控制同步。其中将事件变为有信号可使用 SetEvent() 函数,将事件信号复位(变为无信号)可使用 ResetEvent() 函数,信号可以配合 WaitForSingleObject() 函数进行控制,当有信号时,此函数便会放行;无信号时,此函数会将阻塞。提...
原创
发布博客 2018.10.01 ·
241 阅读 ·
0 点赞 ·
0 评论

安全之路 —— C++实现进程守护

简介所谓进程守护,就是A进程为了保护自己不被结束,创建了一个守护线程来保护自己,一旦被结束进程,便重新启动。进程守护的方法多被应用于恶意软件,是一个保护自己进程的一个简单方式,在ring3下即可轻松实现。而创建守护线程的方法多采用远程线程注入的方式,笔者之前曾介绍过远程线程注入的基本方式,主要分为DLL远程注入和无DLL远程注入。代码实现////////////////////...
原创
发布博客 2018.09.08 ·
2641 阅读 ·
0 点赞 ·
2 评论

安全之路 —— 无DLL文件实现远程进程注入

简介        在之前的章节中,笔者曾介
原创
发布博客 2018.08.20 ·
1121 阅读 ·
0 点赞 ·
0 评论

C++设计模式 ==> 原型模式

简介        所谓原型模式就是用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象。举一个简单的例子,一个人想要批量分发自己的名片,然而名片千篇一律,只是偶
原创
发布博客 2018.08.17 ·
330 阅读 ·
0 点赞 ·
0 评论

C++设计模式 ==> 工厂模式

简介在之前,笔者曾简单介绍过简单工厂模式,我们说过简单工厂模式可以使用工厂类根据需求动态生成子类对象,从而方便了未来对算法进行维护和扩展。而工厂模式相较之于简单工厂模式更为复杂,工厂模式对工厂类进行了详细的子类化,为每一个算法都建立了独立的工厂,这样的优点在于可以在算法扩展的时候避免修改总工厂类,而只要生成相应的子类就可以了,尽可能避免了违背“开闭原则”的情况,但缺点在于这样switch一类的...
原创
发布博客 2018.08.15 ·
236 阅读 ·
0 点赞 ·
0 评论

C++设计模式 ==> 代理模式

简介代理模式,顾名思义,就是让一个代理替代真实事物做事情,切结果是是等效的,就相当于现实世界中的中介。在设计模式中,代理模式需要一个代理类来实例化真实事物类的对象,然后可以创建代理对象代替真实对象处理一些事情。代理模式可以起到隔离真实事物类的作用,在网络通信等后面有诸多应用。 下面我们使用一个简单的代码样例来演示一下代理模式的工作过程:假设有一位小A(RealPersuitePeople类)...
原创
发布博客 2018.08.12 ·
799 阅读 ·
0 点赞 ·
0 评论

C++设计模式 ==> 装饰(者)模式

简介装饰模式指的是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。装饰模式使用对象嵌套的思想,实现对一个对象动态地进行选择性的属性赋予与去除,例如有一篇固定的文本,我们可以给它装饰上“词汇过滤”与“文本加密”两个属性,但同时也要注意装饰顺序:例如文本如果先进行加密操作就没法进行词汇过滤的操作了。 下面演示一个简单的装饰模式...
原创
发布博客 2018.08.11 ·
219 阅读 ·
0 点赞 ·
0 评论

C++设计模式 ==> 策略模式与简单工厂模式结合

简介策略模式相较之于简单工厂模式适用于生产方法经常变化且方法较为繁多的情况,因为生产方法时常变化就会需要频繁修改工厂类,违背了开闭原则,这时就可以用策略类由客户端根据需求动态切换策略。且策略模式通过进一步封装了代码细节,没有像简单工厂模式那样在客户端创建详细的对象,而把任务交给了策略类去执行,所以客户端不会知道太多算法实现的细节。当然,在更多的情况下,策略模式一般可以与简单工厂模式并用,将进行...
原创
发布博客 2018.08.09 ·
647 阅读 ·
0 点赞 ·
0 评论

C++设计模式 ==> 简单工厂模式

简述工厂模式的核心在于使用一个工厂类根据需求动态生成子类对象,以计算器程序作为例子,加减乘除都分别作为运算类的子类,然后让工厂类根据要求动态实例化子类。图示代码实现///////////////////////////////// @ FileName : Operation.h// @ Date : 2018-08-06 18:04/////////////...
原创
发布博客 2018.08.08 ·
199 阅读 ·
1 点赞 ·
0 评论

使用C++对物理网卡/虚拟网卡进行识别(包含内外网筛选)

简介 在Socket编程的时候,我们需要实时获取我们所需要的IP地址。例如在编写后门的时候,我们可能需要获得有效的外网IP或内网IP;有时候我们可能需要判断我们获取的是否是虚拟机网卡,这时候就需要对每一张网卡上的IP进行识别。以下笔者总结了一些常用的处理方法供大家参考。C++代码样例头文件(包含IP处理函数)////////////////////////////...
原创
发布博客 2018.06.22 ·
2361 阅读 ·
2 点赞 ·
0 评论

安全之路 —— 利用端口复用技术隐藏后门端口

简介 前面我们介绍到我们可以用进程注入的方法,借用其他应用的端口收发信息,从而达到穿墙的效果,那么今天介绍一种新的方法,叫做端口复用技术,他能够与其他应用绑定同一个端口,但同时进行端口复用的程序会接管之前程序的信息接受权,所以我们在复用端口后,要对非后门信息通过127.0.0.1本机回环地址进行消息转发。C++代码样例///////////////////////////////...
原创
发布博客 2018.06.01 ·
1376 阅读 ·
0 点赞 ·
1 评论

安全之路 —— 借助DLL进行远程线程注入实现穿墙与隐藏进程

简介        大多数后门或病毒要想初步实现隐藏进程,即不被像任务管理器这样典型的RING3级进程管理器找到过于明显的不明进程,其中比较著名的方法就是通过远程线程注入的方法注入将恶意进程的DLL文件注入系统
原创
发布博客 2018.05.16 ·
953 阅读 ·
0 点赞 ·
0 评论

SVCHOST启动服务实战

本文转载自:https://blog.csdn.net/huanglong8/article/details/70666987 转载出处: https://sanwen8.cn/p/2cenbHs.html最近在做小项目,用到了一些此类技术,觉得文章很细,手把手教的,粘在这里备忘下。。。...
转载
发布博客 2018.05.09 ·
2513 阅读 ·
2 点赞 ·
0 评论
加载更多