自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(62)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 QT 禁止DPI 缩放

DPI 禁用

2023-02-24 17:20:21 1011

原创 windows sdk 链接

链接Windows sdk

2023-02-15 11:05:30 106

原创 封装调用C++类的成员子对象的函数

利用宏调用类的成员子对象的任意函数

2022-09-23 15:21:57 450

原创 解决 501 版本之后不显示系统 tooltips 的问题

  TOOLINFO ti;  memset(&ti, 0, sizeof(TOOLINFO));  #if _WIN32_WINNT>0x0500  ti.cbSize = sizeof(TOOLINFO)-sizeof(void*);  #else  ti.cbSize = sizeof(TOOLINFO);  #endif

2022-06-17 10:27:37 113

原创 利用DirectShow简单判断摄像头权限并预览

// ConsoleApplication1.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//#include <iostream>#include "windows.h" #include "TCHAR.h" #include <dshow.h>LRESULT CALLBACK WindowProc( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam...

2022-03-14 15:58:31 282

原创 C++ 判断字符是Emoji表情

int IsEmojiChar(wchar_t _ch1, wchar_t _ch2){ if ((0XD800 <= _ch1) && (_ch1 <= 0XDBFF)) { UINT _tmp = ((_ch1 - 0XD800) * (UINT)0X400) + (_ch2 - 0XDC00) + (UINT)0X10000; if (0X1D00 <= _tmp && _tmp <= 0X1F77F) { retur..

2021-06-28 16:55:47 927

原创 vs2015 编译 x64 Cef 的方法

cmakecmake-G"VisualStudio14Win64" D:\....\cef -B D:...\cef\build 产生的就是 64 位配置的工程wenj

2021-06-23 19:59:43 272

原创 DuiLib 避免会绘制系统默认白底标题栏的方法

窗口的xif (uMsg == WM_NCACTIVATE) { if (!::IsIconic(m_hWnd)) { return (wParam == 0) ? TRUE : FALSE; } } else if (uMsg == WM_NCCALCSIZE) { return 0; } else if (uMsg == WM_NCPAINT) {...

2021-06-09 19:20:33 152

转载 处理 __iob_func 无法链接的问题

转自:http://www.cnblogs.com/ubosm/p/5444919.html使用vs2015编译ffmpeg的一个小项时,出现了__imp__fprintf和__imp____iob_func 的错误,google了一下,有的人 建议下载SDL源码重新编译一下,当然这个方案非常不科学。所以又继续搜,终于有所发现。这是老外的原话:In visual studio 2015, stdin, stderr, stdout are defined as follow :#defin

2021-05-10 11:19:19 548

原创 程序无法启动0xc000007b 的终极处理办法

网上有很多教程,总结起来就是缺库。所以用直接粗暴处理。能运行和不能运行的两个环境 C:\windows*wow64 目录(32位之类的换目录即可)进行对比。将不同文件直接拷贝过去即可。可以根据使用的IDE 工具集选需要的比如 vs2015 对应 **140 *.dll。...

2021-03-17 14:45:36 335

原创 调用门-中断门拾遗

个人备忘,一些总结。中断门和调用门的细节不赘述,网上很多。调用门,用 iretd 返回。来深度理解调用门(正常应该 retf 返回)void __declspec(naked) Dym(){ __asm { int 3; //retf; // 正常应该用 retf 返回 mov eax, 0x11112222; mov ebx, 0x22222222; mov ecx, 0x33333333;

2020-09-30 13:30:18 640 1

原创 windbg 内核调试部分命令

dg 0x10 查看段描述符dg 0x00 0x80 可以查看一部分段描述符,和上面一样后面这个数字可以自己修改的r gdtr查看 GDT 表地址dq 0x… 或者 dq gdtr 都可以查看GDT表内容也可以查看一个范围内的eq 修改GDT表...

2020-09-25 14:33:16 295

原创 GDT 表与段选择子等解析

全局描述表(GDT Global Descriptor Table):在保护模式下一个重要的数据结构。GDT可以被放在内存的任何位置,那么当程序员通过段寄存器来引用一个段描述符时,CPU必须知道GDT的入口,也就是基地址放在哪里,所以Intel的设计者门提供了一个寄存器GDTR用来存放GDT的入口地址,程序员将GDT设定在内存中某个位置之后,可以通过LGDT指令将GDT的入口地址装入此寄存器,从此以后,CPU就根据此寄存器中的内容作为GDT的入口来访问GDT了。GDT是保护模式所必须的数据结构,也是唯一

2020-09-17 15:05:11 1622

转载 Windows 内核编程

转载

2020-09-07 17:56:41 153

原创 封装统一模板调用动态库(dll)

enum CallLibType{ eStdCall, eCdecl, eFastCall};template<typename ResultType, typename ...params>void CallLibrary(CallLibType eType, std::string strDll, std::string strFuncName, ResultType& ret, params... para){ HMODULE hd = LoadLibraryA

2020-07-24 10:55:33 256

原创 构造线程任务函数,允许任意任意函数作为任务

构造线程任务函数,允许任意调用任意函数int fun1(int a){ std::cout << a << std::endl; return 0;}int fun2(int a, int b){ std::cout << a << " " << b << std::endl; return 0;}void fun3(std::string str){ std::cout << str <&

2020-07-21 16:01:25 129

转载 多种DLL注入技术原理介绍

转载自:[翻译]多种DLL注入技术原理介绍Git 地址https://github.com/fdiskyou/injectAllTheThings

2020-07-15 16:52:16 209

原创 解析URL的域名证书

可以通过 openssl 获取常规的,但是部分网站获取不正确。// 请使用 CertFreeCertificateContext 释放 *p_contextvoid GetCertFromDomain(const wchar_t* domain, int nPort, CERT_CONTEXT** p_context){ if (NULL == domain || NULL == p_context) { return; } static HINTERNET hsession = NU

2020-06-28 14:01:32 611

原创 解决VC使用unicode字符集时某些ANSI版本函数无法调用的问题

查看windows 一个函数的定义如下:WINBASEAPI_NullNull_terminated_LPCHWINAPIGetEnvironmentStrings( VOID );WINBASEAPI_NullNull_terminated_LPWCHWINAPIGetEnvironmentStringsW( VOID );#ifde...

2020-04-29 11:32:00 255

原创 创建专有命名空间的内核命名对象

代码来自 Windows 核心编程。简单修改测试通过(win10)。可能需要管理员权限。提权代码这里没写。本文只是一个简单示例。do { wchar_t* _namespace = L"TestNamespace"; wchar_t* _mutexName = L"mutexName"; wchar_t* _boundName = L"TestBoundName"; HA...

2020-04-26 16:50:21 222

原创 利用 openssl 加解密

std::string EncryptByOpenSSL(const std::string& str, const EVP_CIPHER* evp, const unsigned char* key, const unsigned char* iv, bool bEncrypt){ std::string strCipher1; { BIO* bio = BIO_new(B...

2020-04-14 14:16:53 340 1

原创 使用 openssl 的 RSA 加解密测试及总结

先看代码void MyRSA_Test(RSA *rsa, bool bUsePublicEncrypt, int padding){ unsigned char plain[512] = "Hello world!"; unsigned char cipper[512] = { 0 }; unsigned char newplain[512] = { 0 }; int outl ...

2020-04-13 10:52:24 803

原创 x86 条件转移指令窥探

条件转移指令(参考)JA/JNBE 不小于或不等于时转移.JAE/JNB 大于或等于转移.JB/JNAE 小于转移.JBE/JNA 小于或等于转移.以上四条,测试无符号整数运算的结果(标志C和Z).JG/JNLE 大于转移.JGE/JNL 大于或等于转移.JL/JNGE 小于转移.JLE/JNG 小于或等于转移.以...

2020-03-17 14:33:53 1326

转载 X86 汇编快速入门

基本部分或:基本部分call ret 细节汇编浮点指令fld、fstp、fadd寄存器介绍汇编指令解析inter 官方手册

2020-03-13 17:06:47 225

原创 函数调用约定与 call 指令杂谈

首先本文关于函数调用约定部分来自转载和整理,参考文章:C/C++函数调用约定函数调用约定解析一:函数调用约定;函数调用约定是函数调用者和被调用的函数体之间关于参数传递、返回值传递、堆栈清除、寄存器使用的一种约定;它是需要二进制级别兼容的强约定,函数调用者和函数体如果使用不同的调用约定,将可能造成程序执行错误,必须把它看作是函数声明的一部分;二:常见的函数调用约定;VC6中的函数调用约...

2020-03-13 16:26:55 567 1

原创 PE 文件总体结构概述

前面多篇文章讲了PE文件格式,导入导出表的解析。这里新开一篇来作为总结,或者说作为最开始的概述。本文以 kernel32.dll 为例。使用工具 PEView.exe 查看如下:可以看到其主要分成几个部分:1: Dos 头,IMAGFE_DOS_HEADER 长度 0x402: Dos Stub 。3: NT Header 起始位置由 Dos头中最后一个字段指定。4: 连续...

2020-03-06 11:22:25 334

原创 PE文件和COFF文件格式分析——导入表

因为之前已经介绍了PE基本格式已经导出表相关,因此一些基本的东西就直接省略,用工具直接定位。本次以 kernel32.dll 为例,查看其导入表。首先用 Stud_PE.exe 查看导入表的位置如下:也就是在文件的地址 0x084c88。跳过去看看,以红线开始查看导入表定义:typedef struct _IMAGE_IMPORT_DESCRIPTOR { union { ...

2020-03-05 17:19:38 333

转载 PE文件和COFF文件格式分析——导出表

回顾前文 PE文件和COFF文件格式分析(1),并以典型的 msvcp80.dll 来分析。文件最开始是一个0x40字节的结构。typedef struct _IMAGE_DOS_HEADER { // DOS .EXE header WORD e_magic; // Magic number WORD e_cblp;...

2020-03-03 16:54:42 646

转载 Delphi 调用控制面板设置功能

转载自https://www.cnblogs.com/FKdelphi/p/4654585.html如有侵权联系本人删除应用程序运行时,有时需要对系统环境有特殊要求。例如,在Delphi数据库应用程序中可能需要进行BDE(Borland Database Engine)或ODBC数据源名称(DSN:Data Source Name)的设置;在网络应用程序中可能需要进行网络配置设置、Mod...

2020-02-28 16:58:47 152

转载 PE文件和COFF文件格式分析(1)

本文主要来自相关系列博文(breaksoftware的csdn博客 https://blog.csdn.net/breaksoftware/article/details/7710323)。自己,稍微调整,整理。MS 2.0节是PE文件格式中第一个“节”。其大致结构如下:在VC\PlatformSDK\Include\WinNT.h文件中有对MS-DOS 2.0兼容EXE文件头的完整定义...

2020-02-28 10:52:29 721

原创 DLL 内部获取自身绝对路径

常见的获取方法是通过 GetModuleHandle(NULL),获取当前EXE句柄,然后通过GetModuleFileName获取EXE路径。Dll在该路径下加上 “xxx.dll”,即可。但是有时候 dll 与 exe 不一定在一个位置,甚至 dll 并没有按照指定的目录关系与 exe 有明确的对应关系,甚至 dll 的最终名称作为 dll 的编写者并不清楚(比如重命名)。有以下几种方法:...

2020-02-27 10:59:07 1335

原创 Windows 下动态库的 DllMain 与 c++ 相关坑

有时候需要在 DllMain 中写一些代码,比如下面这样,其中 TestAttach 等函数里面有需要的一些代码,里面的代码片在采用 DllMain 调用之前完全运行正常。BOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call, ...

2020-02-25 14:48:47 1226

转载 getsockopt、setsocketopt、ioctlsocket和WSAIoctl 详解

转载自:http://www.360doc.com/content/13/0115/11/10977253_260278513.shtml套接字选项和I/O控制命令 套接字一旦建立,通过套接字选项和I/O控制命令对各种属性进行操作,便可对套接字的行为产生影响。有的选项只用于信息的返回,而有的选项则可在应用程序中影响套接字的行为。I / O控制命令肯定会对套接字的行为产生影响。...

2020-01-04 14:11:40 1195

原创 GIT 配置beyond compare 作为默认比较工具

[diff] tool = bc4 [difftool] prompt = false [difftool "bc4"] cmd = "\"D:\\Program Files\\Beyond Compare 4\\BComp.exe\" \"$LOCAL\" \"$REMOTE\" \"$BASE\" \"$MERGED\""注意:路径用 \\ 而不...

2019-12-13 13:54:13 482

原创 修改虚函数中部分函数和HOOK虚函数

class CTestVirtual{public: virtual void FunA() { std::cout << "FuncA " << m_iNum << std::endl; } virtual void FunB() { std::cout << "Fun...

2019-11-13 13:55:52 184

原创 文件重定向问题

if (Wow64DisableWow64FsRedirection(p)) then begin if not CopyFileEx('C:\Users\xxx\Desktop\A.txt', 'C:\Windows\system32\drivers\AAAA.txt', nil, nil,nil, 0) then begin ShowMessag...

2019-10-25 14:48:39 131

原创 利用dll和def文件生成lib文件

VisualC++开发工具提供了两个命令行工具,一个是dumpbin.exe,另一个是lib.exe。利用这两个工具即可从dll导出其对应的lib。1、在命令行执行:dumpbin/exportsyourdll.dll>yourdll.def2、编辑yourdll.def文件,使之格式与.def文件格式一致。比如:EXPORTSfn1fn23、在命令行执...

2019-04-09 17:25:19 322

原创 通过ISimpleAudioVolume修改程序音量

#include <AudioClient.h>#include <audiopolicy.h>#include <mmdeviceapi.h>#include <endpointvolume.h>#define Release_Com_Obj(obj) if ((obj)) (obj)->Release();#define C...

2019-04-01 16:30:26 1170

原创 批处理字符串操作

很好的批处理字符串操作实例https://www.dostips.com/DtTipsStringManipulation.php#Snippets.Replace

2019-02-27 15:36:36 417

原创 Git 出现 updating the current branch in a non-bare repository remote: is denied,

修改.git/config[receive]denyCurrentBranch = updateInstead

2018-12-07 10:21:05 874

mhook-master.zip

https://github.com/martona/mhook https://github.com/martona/mhook https://github.com/martona/mhook

2019-09-11

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除