
C/C++编程
文章平均质量分 52
yeanhoo
这个作者很懒,什么都没留下…
展开
-
进程伪装实现将进程伪装成任意程序
进程伪装修改指定进程环境块中的进程路径以及命令行信息,从而达到进程 伪装的效果。获取进程的句柄内联汇编获取peb修改命令行和imagepath#include<windows.h>#include<winternl.h>BOOL DisguiseProcess(wchar_t *lpwszPath, wchar_t *lpwszCmd);int main(){ wchar_t *lpwszPath = L"c:\\windows\\system32\\c原创 2020-09-24 12:15:24 · 7081 阅读 · 1 评论 -
突破SESSION 0隔离的远线程注入
突破SESSION 0隔离的远线程注入与传统的CreateRemoteThread函数实现的远线程注入DLL的唯一区别在于,突破SESSION 0远线程注 入技术是使用比CreateRemoteThread函数更为底层的ZwCreateThreadEx函数来创建远线程,而具体的远线 程注入原理是相同的。#include<stdio.h>#include<windows.h>#include<Tlhelp32.h>#define NAME "wininit.exe原创 2020-09-24 12:14:01 · 701 阅读 · 0 评论 -
使用WMI provider创建进程
使用WMI provider创建进程#define _WIN32_DCOM#include <iostream>using namespace std;#include <comdef.h>#include <wbemidl.h>#pragma comment(lib, "wbemuuid.lib")void CreateClass(IWbemServices* pSvc);int main(){ HRESULT hr; hr = CoInitial原创 2020-09-24 12:12:54 · 688 阅读 · 0 评论 -
服务注册器创建服务+突破SESSION 0隔离创建用户进程
服务注册器创建服务+突破SESSION 0隔离创建用户进程病毒木马通常会把自己注入系统服务进程或是伪装成系统服务进程,并运行在SESSION 0中。处于 SESSION 0中的程序能正常执行普通程序的绝大部分操作,但是个别操作除外。例如,处于SESSION 0中 的系统服务进程,无法与普通用户进程通信,不能通过Windows消息机制进行通信,更不能创建普通的用户进程。从Windows VISTA开始,只有服务可以托管到SESSION 0中。注册自身为服务,在session 0 中创建用户进程(全局互原创 2020-09-24 12:12:03 · 630 阅读 · 0 评论 -
二进制漏洞——栈溢出复现
二进制漏洞——栈溢出复现栈布局如下:可以看出,要构造栈溢出需要将函数内部成员长度突破EBP并覆盖到返回地址处即可得到执行。构造代码如下:#include <stdio.h>#include <windows.h>__declspec(safebuffers) void OverFlow(char *);__declspec(dllexport) BOOL MyWinExec(char *,UINT);int main(int argc,char *argv[]原创 2020-09-24 12:10:41 · 525 阅读 · 0 评论 -
InlineHook任务管理器_ZwQuerySystemInformation_隐藏进程
InlineHook任务管理器_ZwQuerySystemInformation_隐藏进程hook步骤:查找目标函数地址修改目标函数第一条指令跳转到我们构造的函数卸载掉钩子,执行正常的目标函数过滤掉特定信息后返回hook代码如下#include<windows.h>#include<Winternl.h>BOOL hook_code();BOOL unHook_code();NTSTATUS WINAPI NewZwQuerySystem原创 2020-09-24 12:09:43 · 707 阅读 · 0 评论 -
ByPass UAC
ByPass UAC白名单程序 Bypass UAC有些系统程序是直接获取管理员权限,而不触发UAC弹框的,这类程序称为白名单程序.例如, slui.exe、wusa.exe、taskmgr.exe、msra.exe、eudcedit.exe、eventvwr.exe、CompMgmtLauncher.exe等.这些 白名单程序可以通过DLL劫持、注入或是修改注册表执行命令的方式启动目标程序,实现Bypass UAC提权操作利用CompMgmtLauncher.exe、该程序在启动时会查询注册原创 2020-09-24 12:08:39 · 1315 阅读 · 1 评论 -
编程实现APC注入dll到进程
APC注入线程被唤醒时APC中的注册函数会被执行,因此使用QueueUserAPC向APC队列插入函数即可完成注入#include <stdio.h>#include <windows.h>#include <Tlhelp32.h>BOOL ApcInject(char *,char *);DWORD GetProcessIdByProcessName(char *);BOOL GetAllThreadIdByProcessId(DWORD,PDWORD,P原创 2020-09-23 23:35:54 · 442 阅读 · 0 评论 -
c语言实现TCP socket通信
socket通信_TCPTCP面向字节流传输数据,提供可靠的数据传输服务。通过TCP传送的数据无差错、不丢失、不重复,而且按序到达。由于TCP是基于连接的,所以每一条TCP连接只能是点到点的交互通信。服务器端初始化Winsock环境后,便调用Socket函数创建流式套接字;然后对sockaddr_in结构体进行设置,设置服务器绑定的IP地址和端口等信息并调用 bind函数来绑定;绑定成功后,就可以调用listen函数设置连接数量,并进行监听。直到有来自客户端的连接请求,服务器便调用accept函数原创 2020-09-20 19:38:08 · 2053 阅读 · 1 评论 -
拍进程快照,代码实现遍历windows进程
步骤:1.CreateToolhelp32Snapshot拍摄快照2.Process32First,Process32Next枚举进程信息代码:#include <stdio.h>#include <windows.h>#include <Tlhelp32.h>BOOL EnumProcess();void main(){ EnumPr...原创 2020-01-07 15:01:59 · 461 阅读 · 0 评论 -
代码实现exe程序释放资源内容到文件
代码实现,将资源内容独立释放出来,恶意程序常用(隐藏恶意代码)步骤:1.添加资源,导入资源内容2.查找资源,加载资源,锁定资源3.保存到文件在项目解决方案中看到名为资源文件的空文件夹,右键添加–>资源单击自定义,然后在弹出的资源类型框中随便自己想要命名的类型(例如MYRES)然后双击所创建的类型名或点击导入导入自定义资源内容编写代码释放资源到文件这里需要注意,如果...原创 2020-01-06 17:03:10 · 1437 阅读 · 0 评论 -
代码实现全局消息钩子SetWindowsHookExA监视按键记录
简单的使用Windows提供的Hook API SetWindowsHookExA,实现弹窗提示每次按下的按键步骤:1.编写一个Dll调用SetWindowsHookExA,实现弹窗2.编写一个exe调用LoadLibrary加载生成的Dlldll代码如下#include<stdio.h>#include<windows.h>HHOOK shook;LRE...原创 2019-12-31 10:44:21 · 3217 阅读 · 0 评论 -
代码实现增加PE文件节区+修改IID结构(静态干预输入表),成功加载用户DLL
运加粗样式行结果图,在一个hello world运行之前程序代码实现让其加载我们的一个DLL文件。修改前后文件结构对比修改PE文件干预输入表的代码如下:一个简单的弹窗dll的实现代码如下:总结:在实际运行中,一部分程序无法修改或修改后无法正常运行,加载dll不稳定因素太多,如果有哪位大牛了解原因或BUG,还请告知一二。...原创 2019-12-26 15:28:49 · 724 阅读 · 0 评论 -
TEB,PEB,LDR结构
首先查看TEB所在地址接着查看teb结构图中,TEB结构中第一个成员为TIB结构,从偏移量可以看出从0x00到0x1C之间的内容均为TIB结构的成员,那么我们来查看TIB结构...原创 2019-10-15 11:45:42 · 2234 阅读 · 0 评论 -
远线程注入代码实现dll注入到进程
在其他进程中创建线程将DLL注入从而执行dllmain。原理:OpenProcess获得进程句柄。VirtualAllocEx申请内存。WriteProcessMemory将dll写入。CreateRemoteThread执行LoadLibrary加载dll效果图注入代码:#include<stdio.h>#include<windows.h>#defi...原创 2019-10-28 15:59:33 · 370 阅读 · 0 评论 -
进程注入之创建傀儡进程
傀儡进程:创建一个进程,然后将其虚拟地址里的内容掏空,注入想要注入的进程,以达到掩人耳目的效果步骤:1.以挂起的方式创建一个进程2.卸载该进程的内存映射,即掏空该进程虚拟内存空间中的内容3.获取该进程的CONTEXT上下文结构4.将要注入的程序读入到内存中5.在傀儡进程中申请足够的内存空间6.手动将要注入的程序写入傀儡进程中所申请的内存空间6.设置CONTEXT上下文的Eax为程序...原创 2019-10-19 19:48:55 · 1957 阅读 · 3 评论