![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++编程
文章平均质量分 62
Psy_Hacker
这个作者很懒,什么都没留下…
展开
-
遍历延迟导入表
不多比比,直接上代码:// 同时遍历PE文件的导入表、导出表的函数名#include<Windows.h>#include<stdio.h>#include <DelayImp.h>#pragma warning(disable : 4996)DWORD RVA_2_RAW(char* buf, DWORD Rva, DWORD Raw, BOOL flag);DWORD DelayImport(char* buf);typedef struct Img原创 2021-10-20 11:38:24 · 174 阅读 · 0 评论 -
Windows服务之突破会话隔离——远线程注入
Windows服务第二话,会话隔离,关于服务不得不提的就是会话隔离机制了。服务作为一个特殊的应用程序,随着系统的开启和关闭而开始停止工作,部分情况下可能存在部分服务需要用户手动开启(一般都是用户自己自定义的服务)。在早期的Windows操作系统中,Windows 服务在后台执行着各种各样任务,支持着我们日常的桌面操作。有时候可能需要服务与用户进行信息或界面交互操作。这个时候系统的服务以及应用程序是运行在同一个会话空间的,但是这个时候会存在较大的安全隐患。因为服务在运行的时候是提升权限进行运行的,但是大部分原创 2021-04-13 10:41:35 · 791 阅读 · 1 评论 -
Windows服务二三事——编写Windows服务
Windows服务程序有固定的模式,一般由4个部分构成:main()、Servicemain()、ServerHandle()、自定义函数。main函数的作用与其他程序的主函数其实从主要作用上讲是一致的,主要作用就是创建服务分派表并且启动服务控制分派机制。简单讲就是初始化服务程序,开始干活。典型的服务main函数的代码如下:int main(){ SERVICE_TABLE_ENTRY ServiceTable[2]; ServiceTable[0].lpServiceName =(LPSTR)原创 2021-04-10 18:55:46 · 1709 阅读 · 0 评论 -
在本地搭建基于TCP协议的服务器端和客户端(实现通信)——如果天总也不亮,那就摸黑过生活
前不久分析了一个挖矿病毒,整个过程可以说是极其折磨人,但是也有很多值得学习的地方,最近几天一直在反思和学习病毒在执行过程中涉及到的一些点。今天尝试测试了在本地搭建基于TCP协议进行通信的服务器和客户端,并且让二者实现一个简单的通信。不多说,直接上代码,之后再简要解释一下代码分为两段,(同时需要打开两个VS,创建两个项目,分别进行编译运行)服务端:#include<stdio.h>#include<windows.h>#include<winsock.h>#p原创 2020-05-21 16:51:38 · 1997 阅读 · 2 评论 -
简单的网络端口扫描——你已手握刀剑,那么就准备战斗
这两填在分析一个彦根的阿时候,其中涉及到端口扫描这样的功能,自己又不太了解,所以专门查看了一下这方面的东西(主要是网络编程相关的东西),发现这个东西说的很高大上,其实真的使用起来也很容易实现,就自己上首先了一个简易的代码。原理其实很简单:就是通过指定的端口向指定的计算机发起连接,如果成功,就说明该计算机的目标端口是开放的,反之就是关闭的(当然,这个成功是在代码不出错的情况下)主要的代码逻辑如下:1、创建一个套接字2、设置套接字内包含的地址以及端口信息,也就是说在进行扫描之前,要确保我们知道你要扫描的原创 2020-05-20 20:00:24 · 181 阅读 · 0 评论 -
Windows父进程创建子进程 自我创建——我还年轻 我还年轻
在Windows操作系统环境下,通过父进程创建一个子进程来执行不同的功能,在病毒分析的过程中是一种比较常见的手段。这次的实验过程是通过伏见城来创建一个同名的子进程,也就是进程的自创建,当然也可以推广到在其他进程空间创建子线程,这就涉及到注入了,下次再聊。直接上代码:#include<Windows.h>#include <iostream>void ChildProcess(){ MessageBoxA(NULL,"子进程","成功",MB_OK); Sleep(3000原创 2020-05-18 19:54:38 · 1942 阅读 · 0 评论 -
PE加载器——你爱的很沉重,可还是得看她想不想要
构造PE加载器,简而言之就是手动把PE文件在内存中展开,并且如果有重定位表的话手动修复重定位表,以及修复IAT表等一些重要数据。源码:#include<stdio.h>#include<windows.h>#include<winnt.h>int main(){ HANDLE hFile = CreateFileA("你的测试程序的绝对地址", G...原创 2020-04-20 14:50:42 · 1120 阅读 · 0 评论 -
补:PE结构遍历输入表——因为不爱,所以都错
之前一直说再看一遍PE结构的东西,想着温故知新,能看到之前没有注意到的东西吧。加上上一篇的遍历导出表,这一次的遍历导入表,纯手工制作,鲜香出炉,之后会再补上一篇手动实现PE加载器的代码,望诸君笑纳共勉。先看源码:#include <iostream>#include<windows.h>DWORD RVA_RAW(DWORD RVA, unsigned char *...原创 2020-04-19 13:26:17 · 257 阅读 · 0 评论 -
补:PE文件遍历导出表——有人为你哭,说明你还是个东西
之前一直要写的遍历导出表,一直没写,最近回去复习了一下PE结构关于IAT和EAT的内容,写了个遍历导出表的程序,也算是结了之前文章里说的话吧。源码:// ExportTable.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//#include <iostream>#include<windows.h>using namespace s...原创 2020-04-16 19:21:33 · 578 阅读 · 4 评论 -
补——HOOK API函数
HOOKAPI的意思就是,给系统函数API挂钩,让系统调用API的时候,先执行我们自己设定的程序,之后再决定是不是执行具体的API函数的功能。HOOK API的原理:如下图:至于是否执行完整API函数的完整代码则无所谓大概思路:1、 要hook MessageBox这个API,首先要获取到这个API的地址,这个API是User32.dll的导出函数,所以要先获得这个模块的地址2、 获...原创 2020-04-06 21:27:38 · 613 阅读 · 0 评论 -
C++编程——cin、getline()、get()
cin是C++中的输入流,在使用过程当中也十分便捷,今天记录一下,在使用单纯使用cin和使用cin.getline()以及cin.get()时候遇到的问题:1、cin的使用:作为字符串输入的主要方式之一,cin在字符串的使用的过程中,通过空字符来确定输入的结束,当然这个空字符可以是空格、制表符、换行符,以及真正的字符串的结束标志’\0’,但是我们在使用的过程中不可能手动输入空字符,所以通常情况...原创 2020-04-04 23:18:46 · 811 阅读 · 3 评论 -
C++编程——cout.setf()函数
cout.setf()函数有两种格式fmtflags setf(fmtflage) //第一原型fmtflags setf(fmtflags, fmtflags) //第二原型其中ios_base::fixed表示:用正常的记数方法显示浮点数(与科学计数法相对应);ios_base::floatfield表示小数点后保留6位小数具体内容可以看一下两篇博文:https://blog.c...原创 2020-03-15 09:57:59 · 477 阅读 · 1 评论