
C++黑客编程
「已注销」
这个作者很懒,什么都没留下…
展开
-
黑客编程之线程劫持
#include <Windows.h>#include <stdio.h>#pragma pack(1)typedef struct _STCode{ BYTE PushCode; // push指令码 DWORD DllAddress; // 注入的dll字符串地址 USHORT CallCode; // call指令码 DWORD FuncAddress; // LoadLibrary函数地址 BYTE LoopCode[7]; // 循环指令}ST原创 2022-04-25 11:40:01 · 789 阅读 · 0 评论 -
Windows注入之SetWindowsHookEx
// console#include <Windows.h>#include <stdio.h>typedef LRESULT (*TestHookProc)(int code, WPARAM wParam, LPARAM lParam);int main(){ HWND hwnd = FindWindow(NULL, L"SetWindowHook"); DWORD dwThreadId = 0; DWORD dwProcessId = 0; HMODULE原创 2022-04-24 13:53:36 · 1100 阅读 · 0 评论 -
Windows下的U盘监控
// Windows应用程序都是基于消息/事件驱动的,任何一个窗口都能接收消息,并对该消息作出相应的处理。// U盘等移动设备的插入或者移除操作有与之对应的消息-WM_DEVICECHANGE。实现监控U盘的插入和拔出,只需要捕获这个消息并对它进行处理即可实现。// PS:WindowProc函数:// 功能:消息处理回调函数。// 原型:LRESULT CALLBACK WindowProc (// HWND hwnd,// UINT uMsg,//原创 2021-10-24 14:07:43 · 1940 阅读 · 0 评论 -
windows文件遍历
// 文件遍历用到了WIN32 API中的FindFirstFile、FindNextFile和FindClose函数。// FindFirstFile函数:// 功能:它搜索与特定名称相匹配的文件或子目录。// 原型:HANDLE WINAPI FindFirstFile(_In_ LPCTSTR lpFileName, _Out_ LPWIN32_FILE_DATA lpFindFileData)// 参数:lpFileName:指定目录、路径,以及文件名。文件名可以包括通配符,星号(*)表原创 2021-10-23 10:23:46 · 1001 阅读 · 0 评论 -
进程隐藏之API HOOK
// 在Windows中,用户进程的所有操作都是基于WIN32 API来实现的,例如使用任务管理器来查看进程等操作。// API HOOK技术是一种改变API执行结果的技术。// PS:ZwQuerySystemInformation函数:// 功能:获取指定的系统信息。// 原型:NTSTASTUS WINAPI ZwQuerySystemInformation (// _In_ SYSTEM_INFORMATION_CLASS SystemInformationClass,原创 2021-10-20 22:52:04 · 1290 阅读 · 0 评论 -
提权技术之Bypass UAC
// UAC(用户账户控制)是微软在Windows VISTA以后版本中引入的一种安全机制。通过UAC,应用程序和任务始终在非管理员权限下的安全上下文中运行。// 除非特别授予管理员权限。UAC可以阻止未经授权的应用程序自动进行安装,并防止无意地更改系统设置。// UAC需要授权的动作包括:配置Windows Update、增加或删除用户账户、更改用户账户的类型、改变UAC设置、安装ActiveX、安装或移除程序、安装设备驱动程序、// 设置家长控制、将文件移动或复制到Program File或Wi原创 2021-10-19 23:22:35 · 980 阅读 · 0 评论 -
创建系统服务
// 系统进程自启动是通过创建系统服务并设置服务启动类型为自动启动来实现的。// PS:OpenSCManager函数:// 功能:建立一个到服务控制管理器的连接,并打开指定的数据库。// 原型:SC_HANDLE OpenSCManager (// LPCTSTR lpMachineName,// LPCTSTR lpDatabaseName,// DWORD dwDesiredAccess// )// 参数:原创 2021-10-17 16:50:55 · 758 阅读 · 0 评论 -
自启动技术之计划任务
// Windows系统可以设置计划任务来执行一些定时任务。// 原理:使用Window Shell编程实现创建计划任务时,会设计COM组件接口的调用。计划任务包括三个部分:初始化操作、创建任务计划操作、删除任务计划操作。// PS:初始化操作:// PS:步骤:// 首先,通过CoInitialize函数来初始化COM接口环境。// 其次,调用CoCrateInstance函数创建任务服务对象ITaskService,并将其连接到任务服务上。// 最后,从I原创 2021-10-16 16:23:35 · 466 阅读 · 0 评论 -
启动技术之快速目录自启动
// 在Windows中,存在着很多可以实现开机自启动的地方,可以利用进程监控器Procmon.exe来监控系统开机启动的过程。// PS:SHGetSpecialFolderPath函数:// 功能:获取指定的系统目录。// 原型:BOOL SHGetSpecialFolderPath (// HWND hwndOwner,// LPTSTR lpszPath,// int nFolder,// BOOL fCreat原创 2021-10-16 12:41:49 · 203 阅读 · 0 评论 -
突破SESSION 0隔离创建用户进程
// 病毒木马通常会把自己注入系统服务进程或是伪装成系统服务进程,并运行在SESSION 0中。// 处于SESSION 0中的进程能执行普通程序的绝大部分操作,但是不能创建UI界面以及通过消息机制与普通进程进行通信。// 从Vista开始,微软为windows添加了SESSION机制,也叫做会话隔离机制,目的就是将系统服务进程与普通用户进程进行隔离,运行在不同的权限下。// 一般只有服务进程才能运行在SESSION 0中。// 为了让系统进程能创建带UI的、能通信的用户进程,微软提供了以WTS原创 2021-10-16 12:16:45 · 847 阅读 · 0 评论 -
隐藏技术之进程伪装
// 简单的进程伪装就是修改进程名称,比如svchost.exe、services.exe等系统进程。// 高级的进程伪装就是修改进程的PEB数据,也就是在任务管理器中看到的进程的名称、启动路径等信息。// NtQueryInformationProcess函数// 作用:获取指定进程的信息。// 原型:NSTATUS WINAPI NtQueryInformationProcess(// _In_ HANLDE hProcess;// _In_ PROCESSIN原创 2021-10-16 11:08:09 · 1758 阅读 · 0 评论 -
开机自启动之注册表操作
// Windows启动后,会根据注册表项中的键值来进行枚举,获取启动程序的路径,根据路径创建进程以启动程序。// 在32系统中,有两个启动注册表项:// HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Run// HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion\\Run// 在64位系统下,进行了映射,对应的注册表项为:/原创 2021-10-14 23:02:16 · 2139 阅读 · 0 评论 -
进程单一运行实例
// 确保运行一个进程实例的方式有很多,可以通过扫描进程列表来实现,也可以通过枚举程序窗口的方式来实现,也可以通过共享全局变量的方式来实现,// 更简单的方式是通过创建系统命名互斥对象来实现。// PS:实现原理:// 通常情况下,系统中的进程是相互独立的,每个进程都有自己的独立资源和地址空间,进程间互不影响。所以同一个进程可以重复运行。对于特殊情况(共享系统资源)下,会有进程互斥现象产生。// 微软提供了CreateMutex函数来创建或者打开一个已命名或未命名的互斥对象,程原创 2021-10-14 22:44:04 · 319 阅读 · 0 评论 -
文件管理之内核API
// 创建文件或目录// PS:ZwCreateFile函数:// 功能:创建一个新文件/目录或打开一个已存在的文件/目录。// 原型:NTSTATUS ZwCreateFile(// _Out_ HANDLE FileHandle,// _In_ ACCESS_MASK DesiredAccess,// _In_ POBJECT_ATTRIBUTES ObjectAttributes,// _Out_ PIO_STAT原创 2021-10-12 21:20:46 · 339 阅读 · 0 评论 -
Windows进程遍历
// 进程遍历:获取计算机系统上运行的所有进程的信息,包括用户进程和系统进程。// 进程遍历的方式有很多:// 1.通过进程快照。// 2.使用ZwQuerySystemInformation函数。// 3.使用EnumProcess函数。// 4.通过PowerShell获取。// 5.通过WMI方式获取。// CreateToolhelp32Snapshot函数:// 功能:获取进程信息为指定的进程、进程使用的堆、模块、线程,为其建立一个快照。// 原型原创 2021-10-12 08:33:07 · 896 阅读 · 0 评论 -
截图代码-窗口截图
bool Tool::capturePicture(QString strWndName, QString strFilepath){ HWND hwnd = ::FindWindowW(NULL, strWndName.toStdWString().c_str()); if (NULL == hwnd ) return false; HDC hdcWindow; HDC hdcMemDC = NULL; HBITMAP hbmScreen = N原创 2021-10-11 10:53:29 · 1329 阅读 · 1 评论 -
WinInet库之Http通信
// 超文本传输协议(HyperText Transfer Protocol)是互联网上应用最广泛的协议,主要是用于网页的浏览。// HTTP采用了请求-应答模式,也就是俗称的客户端/服务器模型,简称C/S模型。// 其中,客户端向服务器发送一个请求,请求一般包括请求行、请求头和请求体三个部分。// 在请求头中包含请求头中包含请求方法、URL、协议版本以及请求修饰符,客户消息和内容的类似于MIME的消息结构。// 服务器以一个状态作为响应,响应的内容包括消息协议的版本,成功或者错误编码加上包含服务器原创 2021-10-10 11:40:43 · 577 阅读 · 0 评论 -
WinInet库之FTP通信
// 文件传输协议(File Transfer Protocol,简称FTP)用在互联网上文件的双向传输,是主用于文件的上传和下载处理的协议。// 上传是指将文件从本地计算机中复制到远程主机上。下载是指将远程主机上的文件复制到本地计算机上。// FTP是专门为文件传输而生的,传输效率高,稳定性好。公司内部通常会有多个FTP服务器,用于共享公司内部的资料。// 在Windows上,微软提供了WinInet(即Windows Internet)库用于方便网络程序的开发。WinInet支持FTP、HTTP原创 2021-10-09 23:48:52 · 660 阅读 · 0 评论 -
Crypto++密码库之AES对称加密
Crypto++密码库是开源项目,可以去Github上下载,使用VS2010+进行编译,生成cryptlib.lib库文件,可用在项目中,进行加解密操作。// 对称加密是指加密和解密使用相同的秘钥,比较出名的算法有AES对称加密算法。// AES对称加密就是对16字节(128位)数据进行加密的过程,也就是把这128位数据通过一系列的变化编程另外一个128位数据。// 由于加密的数据的长度是不确定的,不一定是128的整数倍,所以,在处理加密的过程中,要增加补位代码。// 加密步骤:// 1.声明原创 2021-10-07 17:18:58 · 1222 阅读 · 0 评论