
Windows
文章平均质量分 81
shang_cm
一个希望世界和平喜欢碎碎念的家伙。。。
喜欢技术细节的家伙
展开
-
Windows驱动开发详解 第三章(Windows驱动编译环境配置、安装及调试)
由于微软的WDK驱动开发工具包,只提供了C、C++语言的库和头文件,因此最好使用C/C++来编写驱动文件函数调用约定函数调用步骤:将函数的返回地址压入堆栈将函数的参数压入堆栈(有四种方式)_cdecl:C语言调用约定_stdcall:标准调用约定_fastcall:快速调用约定thiscall:C++类成员函数调用约定调用函数(即call 函数地址)函数执行结束退出时对栈进行平衡(同样四种方式,与参数入栈对应)Windows驱动程序,编写需要使用标准调用约定(_stdcall).原创 2021-12-25 15:23:07 · 1105 阅读 · 0 评论 -
关于如何使用c++中的try/catch捕获SEH异常并处理
两者区别:C++异常与SEH区别可参考《Windows核心编程第五版》第25章 25.2节(727页)下面取自原文:注意:C++异常和SEH异常不是同一个东西!!!C++使用try,catch作为关键字进行捕获异常(C++标准自己定义的异常)SEH是Windows操作系统自身使用并提供的一种捕获系统异常的方式,使用__try、__except、__finally、__leave作为关键字进行捕获异常(windows系统定义的异常)无法使用C++异常处理捕获SEH异常,同样SEH异常也无法捕原创 2020-12-24 06:02:10 · 2473 阅读 · 0 评论 -
汇编语言快速入门笔记
寄存器EAX:累加器,一般存放运算结果EBX:基址寄存器,一般用作内存寻址的基地址,DS段的数据指针ECX:计数器,一般用作字符串操作和循环操作的计数器EDX:用于存储部分乘法结果和部分除法被除数EBP:基址指针,SS段的数据指针ESP:栈顶指针,一般指向栈顶EDI:字符串操作的目标指针,ES段的数据指针ESI:字符串操作的源指针,SS段的数据指针FALAGS寄存器:内存的表现形式立即数MOV EAX, DWORD PTR DS:[0x????????]寄存器MOV EBX,原创 2020-11-29 01:22:35 · 547 阅读 · 0 评论 -
win32实现文件追加
实现原理:打开两个文件,循环读取要追加的文件内容,然后写入到要被追加文件的末尾相关api:CreateFile、SetFilePointerEx、ReadFile、WriteFile微软官方示例:https://docs.microsoft.com/zh-cn/windows/win32/fileio/appending-one-file-to-another-file/*funn...原创 2020-02-09 20:28:20 · 654 阅读 · 0 评论 -
GetWindowText卡住问题分析与解决
GetWindowText卡住问题分析场景复现现象:现象分析原因:场景复现来看这段mfc小代码void CgetwindowtextShutdownDlg::OnBnClickedOk(){ // TODO: 在此添加控件通知处理程序代码 HANDLE hThread = (HANDLE)_beginthreadex(NULL, 0, ThreadStaticEntryPoint, t...原创 2019-12-02 17:03:25 · 2129 阅读 · 0 评论 -
Windows 获取指定PID进程的程序位数
1. 需求背景在使用DLL注入时,进程需要获取目标进程的位数,来决定注入32位/64位的DLL2. 实现原理调用win32 APIIsWow64Process3. 代码如下#include <windows.h>#include <tchar.h>/** 作者: shang_cm* 时间: 2019-10-09* 函数功能: 获取指定PID进程的位...原创 2019-10-09 10:10:40 · 1058 阅读 · 0 评论 -
Windows下获取子进程标准输出
需求来源:项目上有用到需要获取ffmpeg的命令输出,进行解析,而后添加成进度条的形式表现出来因此写了个获取子进程输出的通用工具代码实现原理:创建可继承的匿名管道将其中的写管道,作为createprocss的参数传入,替换子进程的标准输出调用readfile从读管道进行循环读取内容代码如下:#include <windows.h>#include <tchar...原创 2019-08-27 10:54:57 · 2744 阅读 · 0 评论 -
Windows 获取当前系统所有共享目录及名称
1. 命令行方式net share命令2. Win32Api NetShareEnum方式MSDN链接: https://docs.microsoft.com/zh-cn/windows/desktop/api/lmshare/nf-lmshare-netshareenum#include <lm.h>#include <vector>#include...原创 2019-06-18 12:01:12 · 1361 阅读 · 0 评论 -
一个通过深度优先方式遍历文件夹(包括子文件夹)的小算法
#include <windows.h>#include <tchar.h>#include <stack>using namespace std;//定义回调函数typedef VOID(* FPTENUMCALLBACK)(LPCTSTR szFullPath, VOID *ptUser);BOOL EnumDirectory(LPCTST...原创 2019-01-26 10:52:42 · 980 阅读 · 0 评论 -
Windows下的字符编码转换
简述各个编码概念ANSI:多种编码方式的集合,ANSI并不是一种真正的编码(规定了字符和二进制字节之间的转换关系)Windows操作系统下,文件保存默认使用ANSI编码在Windows操作系统下,不同的语言对应于ANSI中的不同编码如果当前操作系统语言为中文,则ANSI对应于GB2312/GBK编码;如果当前操作系统语言为韩文,则ANSI对应于Shift_JIS编码如果当前操作系统...原创 2019-01-05 16:39:25 · 2134 阅读 · 0 评论