- 博客(22)
- 资源 (6)
- 收藏
- 关注
原创 Hook检测
bool CheckHooks(const char* pszModule, const char* pszMethod, BYTE* pBytesToCheck, DWORD dwSize) { bool bOK = false; HANDLE hProcess = ::GetCurrentProcess(); HMODULE hModule = ::GetModuleHandle(pszModule); if (!hModule) return true; //The dll .
2021-07-07 22:39:44
766
原创 收藏001
#include <chrono> #include <iomanip> #include <Windows.h> #include <Psapi.h> #include <iostream> #include <sstream> #include <vector> #define INRANGE(x,a,b) (x >= a && x <= b) #define GET_BYTE( x .
2021-04-29 14:04:31
209
原创 Linux下脱UPX壳
首先下下载UPX二进制文件 就别去自己编译了 一大堆依赖环境 wget https://github.com/upx/upx/releases/download/v3.95/upx-3.95-amd64_linux.tar.xz 然后解压文件 (如果目录有upx开头的其他文件 请准确指定文件名) tar -Jxf upx*.tar.xz 将upx移动到系统变量 方便任何目录调用upx命令 如果不想移动 添加全局变量也行 sudo cp upx*/upx /usr/bin 脱UPX壳 (xxx改为你的
2020-09-23 19:23:09
2821
原创 wstring转string string转wstring
//通用版将wstring转化为string __inline std::string W_To_A(const std::wstring& wstr, unsigned int codepage = CP_ACP) { int nwstrlen = WideCharToMultiByte(codepage, 0, wstr.c_str(), -1, NULL, 0, NULL, NULL); if (nwstrlen > 0) { std::strin
2020-09-10 00:45:59
1909
原创 检验PE文件是否签名
#pragma unmanaged #include <stdio.h> #include <Windows.h> #include <wintrust.h> #include <wincrypt.h> #include <Softpub.h> BOOL VerifyEmbeddedSignature(LPCWSTR pwszSourceFile) { LONG lStatus; WINTRUST_FILE_INFO FileData;
2020-09-09 23:49:34
400
原创 驱动读写进程
NTSTATUS KeReadVirtualMemory(PEPROCESS Process, PVOID SourceAddress, PVOID TargetAddress, SIZE_T Size) { PSIZE_T Bytes; if (NT_SUCCESS(MmCopyVirtualMemory(Process, SourceAddress, PsGetCurrentProcess...
2020-04-20 10:33:13
1388
原创 内核读写进程
//#include <ntddk.h> #include <ntifs.h> DRIVER_INITIALIZE FxDriverEntry; #pragma alloc_text(INIT, FxDriverEntry) #define IOCTL_COOKIE CTL_CODE(FILE_DEVICE_UNKNOWN, 0x0301, METHOD_BUFFER...
2020-04-20 10:29:38
575
原创 STL取随机字符串
std::string strrnd(size_t i) { std::string s = ""; std::uniform_int_distribution<int> rng('!', 'z'); for (; i > 0; i--) s += rng(std::random_device()); return s; }
2020-02-25 18:21:40
406
原创 重写OpenProcess功能
__kernel_entry NTSYSCALLAPI NTSTATUS NtOpenProcess( PHANDLE ProcessHandle, ACCESS_MASK DesiredAccess, POBJECT_ATTRIBUTES ObjectAttributes, PCLIENT_ID ClientId ); voi...
2020-02-25 14:39:42
590
原创 LdrSetDllManifestProber监视本程序Dll加载
类型定义 typedef NTSTATUS( NTAPI * PLDR_MANIFEST_PROBER_ROUTINE ) ( IN HMODULE DllBase, IN PCWSTR FullDllPath, OUT PHANDLE ActivationContext ); typedef NTSTATUS( NTAPI * PLDR_ACTX_LANGUAGE_ROURINE ...
2020-02-25 14:21:29
621
原创 RtlRandom生成随机数字与字母
typedef ULONG (WINAPI *RtlRandom_NTAPI)(PULONG Seed); LPWSTR GenerateRandomNumbers(int Length) //生成指定长度的数字 { RtlRandom_NTAPI RtlRandom_s=NULL; RtlRandom_s=(RtlRandom_NTAPI)GetProcAddress(GetModuleH...
2020-02-25 14:17:04
867
原创 WinHttp 类封装
头文件 #pragma once #include <Windows.h> #include <stdio.h> #include <string> using std::string; using std::wstring; bool libHttp_Get(wstring wszServerName,WORD nServerPort, wstring w...
2020-01-17 16:44:04
1047
原创 c++ AES代码
#ifndef _ST_AES_H #define _ST_AES_H //////////////////////////////////////////////////////////////////////////// // 如果需要AES加密、解密在不同平台如PHP,JAVA等互通,必须要保证三个地方参数 // 统一,加密算法:均为AES;加密模式:CBC,CFB,ECB,OFB,PCB...
2020-01-17 15:20:45
550
原创 Ring3加载驱动源码
头文件 Instdrv.h #ifndef _INSTDRV_H_ #define _INSTDRV_H_ BOOL LoadDeviceDriver( IN const TCHAR * Name, IN const TCHAR * Path, OUT HANDLE * lphDevice, OUT PDWORD Error ); BOOL UnloadDeviceDr...
2019-11-12 01:23:35
910
原创 内核文件MD5计算
头文件 md5.h #ifndef _MD5_H #define _MD5_H /*********************************************************************** * 函数名称:MD5File * 函数描述:计算文件的MD5值 * 参数列表: * pStrFileName:文件名 * pStrFileMD5:得到的MD5 * 返...
2019-11-12 00:58:29
441
转载 拆开路径得到盘符、文件夹、文件名和扩展名的方法
当你拿到一个文件路径的字符串(比如这种:“C:\Windows\notepad.exe”),然后你应该如何处理才能快速获取到它的盘符、文件夹、文件名和文件扩展名呢?(比如你分别获取到“C:”、“\Windows\”、“notepad”、“exe”四个字符串) 当然是使用_splitpath函数了。 _splitpath函数原型: void _splitpath(const char*path,ch...
2019-07-21 02:46:16
369
转载 使用管道实现一对多进程通信
使用管道实现一对多进程通信 前言 在使用管道进行进程间通信,这里实现客户端发送两个参数,服务端接收两个参数,将处理过的结果返回. 服务端 server.c #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <Windows.h> #define SIZ...
2019-07-20 11:44:33
1614
1
转载 VC编程中,判断野指针
函数声明如下: BOOL WINAPI IsBadReadPtr( __in const VOID *lp, __in UINT_PTR ucb ); BOOL WINAPI IsBadWritePtr( __in LPVOID lp, __in UINT_PTR ucb ); 函数的第一个变量为内存首地址,第二个变量为大小。 使用函数举例如下: 变量 m_p3DPts[i].m_ppImgTgt...
2019-07-17 11:17:29
868
转载 各种免费API接口分享
IP查询: 淘宝: http://ip.taobao.com/service/getIpInfo.php?ip=220.182.8.7 搜狗: http://pv.sohu.com/cityjson 网易: http://ip.ws.126.net/ipquery?ip=182.42.171.88 天气api: https://ip.tianqiapi.com/?ip=27.193.13.255 ...
2019-07-03 14:44:55
1618
转载 libcurl下载到内存
针对上一篇文章libcurl下载到内存(string方法),略显得有点罗唆,我们采用最简单的办法修改对应的getinmem.c文件,来实现上述功能: struct MemoryStruct { char *memory; size_t size; }; //添加一个全局变量 struct MemoryStruct chunk; static void *myrealloc(void *pt...
2019-05-19 19:58:31
1007
1
转载 libcurl下载到内存(String方法)
libcurl的文档中有getinmemory.c这个例子,把下载的网页写入自己定义的一个memorystruct中,看了这个例子的做法,它需要自己照顾内存的开辟,特别是需要在curl_easy_perform的调用函数中释放已开辟的内存,很不利于函数的封装,而且应用于multihandle的时候,运行时会出莫名其妙的assert错误。因此改写了一下,将下载的内容放入stl的string中,这样根...
2019-05-19 19:56:00
1036
2
转载 使用 _access函数判断文件或文件夹是否存在
_access函数 int _access( const char *path, int mode ); int _waccess( const wchar_t *path, int mode ); 参数 path 文件或目录路径。 mode 读/写特性。 返回值 如果文件包含特定模式,每个函数返回 0。 函数返回 - 1,则名称文件不存在或不具有特定模式;在这种情况下,如下...
2019-05-19 13:39:03
4450
325462-sdm-vol-1-2abcd-3abcd.zip
2019-05-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅