C++
Yoie
这个作者很懒,什么都没留下…
展开
-
64位Shellcode方式注入DLL
挟持NTDLL的API进行的远程注入DLL,支持主动启动进程方式加载原创 2023-07-18 09:33:07 · 788 阅读 · 0 评论 -
反汇编引擎udis86的使用
反汇编引擎udis86的使用方法,简洁明了原创 2023-03-28 21:26:30 · 378 阅读 · 0 评论 -
程序加壳后,异常处理无法被捕捉,导致的崩溃问题
编译配置导致 VM壳的加壳后执行异常处理崩溃原创 2023-03-28 21:06:20 · 514 阅读 · 0 评论 -
D3D11、D3D12开发中CreateSwapChain返回DXGI_ERROR_INVALID_CALL(0x887A0001)错误的坑
根据MSDN查询的描述中说0x887A0001错误是因为参数为空才会产生的,经过代码的仔细检查并没有任何问题。最后怀疑到了结构对齐上,没错就是这个,项目设定里的结构成员对齐,如果非默认值就会导致CreateSwapChain执行出错,如图设定即可:...原创 2021-10-20 08:32:18 · 3267 阅读 · 0 评论 -
Imgui的简单开发运用
外面比较流行的一个UI库,这里介绍下简单的使用方法引擎Git地址: https://github.com/ocornut/imgui本文使用Imgui版本为1.7开发环境 Win10,Directx11,VS2015前言 工程目录下的examples带有DX11的使用例子,通过查看代码得知使用WIN32_DX11环境开发除了添加imgui必要库外还需要添加以下文件,用于对imgui引擎的初始化和D3D设备绑定等操作。imgui_impl_...原创 2020-09-18 19:35:01 · 20947 阅读 · 0 评论 -
GetLastError 错误号说明
〖0〗-操作成功完成。〖1〗-功能错误。〖2〗-系统找不到指定的文件。〖3〗-系统找不到指定的路径。〖4〗-系统无法打开文件。〖5〗-拒绝访问。〖6〗-句柄无效。〖7〗-存储控制块被损坏。〖8〗-存储空间不足,无法处理此命令。〖9〗-存储控制块地址无效。〖10〗-环境错误。〖11〗-试图加载格式错误的程序。〖12〗-访问码无效。〖13〗-数据无效转载 2016-05-17 09:18:08 · 3088 阅读 · 0 评论 -
内存WriteWatch跟踪技术
#include #include typedef struct _POSITION_{ DWORD dx; DWORD dz; DWORD dy;}POSITION,*PPOSITION;#define BASE_SIZE 0x1000#define WALK_ADD 10DWORD WINAPI WatchThread(LPVOID Param){ ULON转载 2016-06-24 12:56:54 · 1834 阅读 · 0 评论 -
获取进程所属用户名
引用库#include #pragma comment( lib, "Wtsapi32.lib" )直接给出遍历函数void EnumProcessUserName(){ DWORD dwCount = 0; PWTS_PROCESS_INFO pi = { 0 }; int i = 0; DWORD dwSize = 0; char原创 2016-09-02 15:20:48 · 4304 阅读 · 0 评论 -
NTSTATUS 驱动错误码
00000000STATUS_SUCCESS00000000STATUS_WAIT_000000001STATUS_WAIT_100000002STATUS_WAIT_200000003STATUS_WAIT_30000003FSTATUS_WAIT_6300000080STATUS_ABANDONED00000080STATUS_ABANDONED_WAIT_0000000BFSTATUS_AB...转载 2018-03-15 10:16:34 · 1615 阅读 · 0 评论 -
监控自身进程指定内存块是否被读写(防CE)
无意当中看到的一种监控读写的方法,写了个DEMO留档// WsWatch.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <Psapi.h>#pragma comment(lib, "psapi.lib")#ifndef PAGE_SIZE#define PAGE_SIZE 0x1000#endif#define N...原创 2018-06-28 07:20:16 · 6539 阅读 · 1 评论 -
另类注册表注入
留个档,特点就是注入后只有ntdll加载了,其他系统模块都没加载,所以需要自己搞点东西void reg_inject_dll(LPCTSTR lpszExeName,LPCTSTR lpszDllName){ HKEY hKey; int dwFlag = 0x100; TCHAR szKey[MAX_PATH] = {}; StringCbPrintf(szKe...原创 2018-07-03 09:08:34 · 447 阅读 · 0 评论 -
进程内线程入口的探究
由于要写个检测功能,对于这块进行了下探究。线程的常规启动有2种:1、Createthread方式 ,纯win api的方法2、_beginthreadex方式,这是VC中安全使用线程的方法下面给出DEMO代码:#include #include unsigned int __stdcall DemoThread1(PVOID p){ while (1) { pri原创 2016-05-27 09:14:16 · 2282 阅读 · 0 评论 -
CRC算法实现
头文件:#include#include#include#includeclass CCRC{private: uint32_t m_crc32_table[256];public: CCRC(); uint32_t make_crc(uint32_t crc,unsigned char *str ,uint32_t size);};源文件:C原创 2015-12-22 22:05:28 · 823 阅读 · 0 评论 -
DWORD转二进制输出
//// main.cpp// MyParamClass//// Created by yoie on 15/12/14.// Copyright © 2015年 yoie. All rights reserved.//#include #include #define CROR(a,n,s) a >> n | a << (s - n)#define CROL(a原创 2015-12-17 09:48:26 · 1637 阅读 · 0 评论 -
VC++下ZIP压缩文件 或 文件夹
翻了很多资料又是一堆没用的代码,不是不能编译少代码就是缺库缺头,各种缺。老规矩还是自己整理,直接发完整版HZIP hz;TCHAR szZipPath[MAX_PATH];void MakeZip(TCHAR *lpPath){ TCHAR szFind[MAX_PATH],szFile[MAX_PATH],szZipDir[MAX_PATH] = {0}; WIN3原创 2013-04-08 15:07:42 · 1757 阅读 · 1 评论 -
DLL_Main实现对线程启动监控
废话不多直接上代码,懂得自然懂BOOL WINAPI DllMain(HMODULE hInstance,DWORD fdwReason,PVOID pvReserved){ if (fdwReason==DLL_THREAD_ATTACH) { DWORD tid = GetCurrentThreadId(); HANDLE hThread = OpenThread(TH原创 2013-07-22 15:03:46 · 1082 阅读 · 0 评论 -
LDR断链 隐藏DLL
typedef struct _LSA_UNICODE_STRING { USHORT Length; USHORT MaximumLength; PWSTR Buffer;} UNICODE_STRING, *PUNICODE_STRING;typedef struct _PEB_LDR_DATA{ DWORD Length; // +0x00 bool Initialize原创 2013-09-14 23:54:42 · 6763 阅读 · 4 评论 -
VC 自创画布绘制
前段时间研究图像识别,由于要用到自绘,翻了点资料,最终发现CreateBitmap才是王道,废话不多直接上代码//传入像素数组,返回Bitmap句柄,失败返回nullHBITMAP DarwMap(pvoid Buffer){ HBITMAP hBitmap =CreateBitmap(256,256,1,32,(LPVOID)Buffer); //直接将像素数组画在画布上 参数1原创 2013-12-09 09:14:04 · 1165 阅读 · 0 评论 -
关于内存加载DLL后修复重定位的问题
看网上的代码好累,摸索整理了一下,顺便巩固下PE首先介绍下PE头,分为2个部分1、DOS头 (IMAGE_DOS_HEADER)typedef struct _IMAGE_DOS_HEADER { // DOS .EXE header WORD e_magic; // ASCII字符MZ WORD e_c原创 2013-05-27 00:03:27 · 2344 阅读 · 0 评论 -
D3D9 com接口虚函数偏移
LPDIRECT3DDEVICE9 的结构 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void** ppvObj) PURE; STDMETHOD_(ULONG,AddRef)(THIS) PURE; STDMETHOD_(ULONG,Release)(THIS) PURE; STDMETHOD(TestCooper原创 2014-02-17 23:01:17 · 3816 阅读 · 0 评论 -
VC list的使用
assign() //给list赋值back() //返回最后一个元素begin() //返回指向第一个元素的迭代器clear() //删除所有元素empty() //如果list是空的则返回true end() //返回末尾的迭代器erase() //删除一个元素front() //返回第一个元素get_allocator() //返回list的配置器insert() //插原创 2014-10-12 09:29:43 · 707 阅读 · 0 评论 -
VC 命名空间的使用
使用方法1:#include #include namespace myfunc{ int func(int a,int b) { return a+b; }}using namespace myfunc;int main(void){ int a = 100; int b = 100; printf("%d\r\n",func(a,b)); syst原创 2014-10-12 09:38:47 · 945 阅读 · 0 评论 -
LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
NewPanderKing抬头是山,路在脚下!vs2010 问题 >LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏>LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏问题说明:当安装VS2012之后,原来的.NET 4.0会被替换为.NET 4.5。卸载VS2012时,不原创 2015-02-23 13:19:49 · 463 阅读 · 0 评论 -
C++下 VMP加壳宏
#define VMP_BEGINV \_asm _emit 0xEB \_asm _emit 0x10 \_asm _emit 0x56 \_asm _emit 0x4D \_asm _emit 0x50 \_asm _emit 0x72 \_asm _emit 0x6F \_asm _emit 0x74 \_asm _emit 0x65 \_asm _emit 0x63 \原创 2015-12-09 09:42:11 · 6693 阅读 · 0 评论 -
通过LNK文件(快捷方式)解析出目标文件的路径
尼玛的~网上找了一堆资料都是有问题的代码,各种转发,错的东西传来传去,误人子弟!!!自己重写了个,加上注释,留着备用引用头:#include 关键引用的类IShellLink:IShellLink主要方法:1、GetArguments:获得参数信息 2、GetDescription:获得描述信息3、GetHotkey:获得快捷键4、GetIconLoca原创 2013-03-18 19:53:38 · 6667 阅读 · 3 评论