
Windows
Windows编程
虚知道
这个作者很懒,什么都没留下…
展开
-
Windows编程-判断模块是否装入了最佳位置
//判断每个模块是否都装入了合适的位置//第一个参数是进程的ID,第二个参数是某个模块的起始地址,是现在的模块被装入的起始地址//最佳地址和现在装入的地址如果对不上,那就说明没有PVOID GetModulePreferredBaseAddr(DWORD dwProcessId, PVOID pvModuleRemote){ PVOID pvModulePreferredBaseAddr = NULL; /* * 在Windows系统里,所有可执行程序有遵守一个标准,PE标原创 2021-10-05 15:06:21 · 167 阅读 · 0 评论 -
Windows编程-判断一个程序是64还是32位的小程序
//编写一个判断进程是否位64位程序的函数typedef BOOL (WINAPI *LPFN_ISWOW64PROCESS) (HANDLE, PBOOL);LPFN_ISWOW64PROCESS fnIsWow64Process;BOOL IsWow64(HANDLE hProcess){ BOOL bIsWow64 = FALSE; /* * IsWowProcess is not available on all aupproted version of windo原创 2021-10-04 16:26:10 · 230 阅读 · 0 评论 -
Windows编程-获取当前程序的运行目录,获取当前系统的版本号
#include <iostream>#include <windows.h>#include <tchar.h>using namespace std;int main(){ //获取进程的当前目录,对于工程师是必要的 //GetCurrentDirectory 获取进程当前目录 //SetCurrentDirectory 设置进程当前目录 TCHAR szPath[MAX_PATH]; GetCurrentDirec原创 2021-10-04 11:31:30 · 519 阅读 · 0 评论 -
Windows编程-通过一个程序打开另一个程序,CreateProcess参数详解
#include <iostream>#include <windows.h>#include <stdio.h>#include <tchar.h>using namespace std;DWORD WINAPI ThreadProc(LPVOID lpParameter);int main(int argc, char* argv[]){ STARTUPINFO info;//info里面有巨多的参数,可以控制进程的信息,比如说是否全原创 2021-10-04 11:29:38 · 960 阅读 · 0 评论 -
Windows编程-怎样安全结束一个进程?结束一个进程要做哪些工作?
#include <iostream>#include <windows.h>#include <tchar.h>using namespace std;DWORD WINAPI ThreadProc(LPVOID);int main(){ //结束一个进程-进程结束的方式: /* * 1.进程的主线程返回(最好的方式) * 主线程就是Main,WinMain代表的线程,也是进程中的第一个线程 * 主线程返回,进程原创 2021-10-04 11:24:05 · 735 阅读 · 0 评论 -
Windows编程-做一个简单的命令行程序
#include <iostream>#include <windows.h>#include <tchar.h>#include <stdio.h>using namespace std;int main(){ TCHAR ws_Directory[MAX_PATH]; GetCurrentDirectory(MAX_PATH, ws_Directory); //_tprintf(L"%s\n",ws_Directory)原创 2021-10-04 11:22:29 · 985 阅读 · 0 评论 -
Windows编程-查看进程是否具有管理员权限
#include <iostream>#include <windows.h>#include <tchar.h>#include <shlobj.h>using namespace std;//查看进程是否具有管理员权限//可以把这个函数当API来用//这个函数返回一个bool值,当函数返回true,函数成功/* * 参数说明: * TOKEN_ELEVATION_TYPE *pElevationType:获得当前令牌的等级,确认令牌提升原创 2021-10-04 11:21:18 · 1695 阅读 · 0 评论 -
Windows编程-提升进程权限,以管理权限启动另一个程序
#include <iostream>#include <windows.h>#include <tchar.h>using namespace std;//提高自己的权限/* * 这个函数,将进程权限提升成具有调试权限的进程,这个权限应该是进程所能具有的最大权限 * 前提启动这个进程的账户必须是一个管理员,否则没法提升*///当fEnable = TRUE 的时候,授予当前进程调试权限//当fEnable = FALSE 的时候,收回调试权限//原创 2021-10-04 11:16:30 · 1439 阅读 · 0 评论 -
Windows编程-获取其他进程的命令行信息
#include <iostream>#include <windows.h>#include <tchar.h>#include <winternl.h>//如何获得其他进程的命令行信息?/* * 每一个进程里面都对应一个环境变量快PEB * 如果想要获得其他进程的命令行信息,首先就要获得其他进程的PEB结构体 * * 如何获得其他进程的PEB结构体信息? * NtQueryinformationProcess 函数 * 第一个参数是进原创 2021-10-04 11:13:37 · 1457 阅读 · 0 评论 -
Windows编程-未装入dll或函数未找到错误?undefined reference to xxx
举个例子#include <iostream>#include <windows.h>#include <tchar.h>#include <winternl.h>using namespace std;int main(int argc, char* argv[]){ PROCESS_BASIC_INFORMATION pi; memset(&pi, 0, sizeof(pi)); NTSTATUS re = N原创 2021-10-04 10:44:12 · 783 阅读 · 0 评论 -
Windows编程-环境变量的输出与修改,宽字符类型的输出
对于TCHAR或者wchar_t这种Unicode类型字符——宽字符的输出。对于c有 _tprintf(L"%s\n",str);对于c++有 wcout << str;#include <iostream>#include <windows.h>#include <tchar.h>using namespace std;//获取环境变量int main(){ //_environ 是系统预定义的,Unicode版本是_wenviro原创 2021-10-01 10:54:54 · 554 阅读 · 0 评论 -
Windows编程-handle/hmodule/hinstance/hwnd的区别
handle 是代表系统的内核对象,如文件句柄,线程句柄,进程句柄。hmodule 是代表应用程序载入的模块,win32系统下通常是被载入模块的线性地址。hinstance 在win32下与hmodule是相同的东西,在win32下还存在主要是因为win16程序使用hinstance来区别task。hwnd 是窗口句柄...转载 2021-09-30 17:58:15 · 378 阅读 · 0 评论 -
Windows编程-GetModuleHandle,GetCurrentProcess,OpenProcess的区别?
GetModuleHandle得到模块的句柄GetCurrentProcess得到当前进程的伪句柄,一般是-1OpenProcess通过进程ID,得到进程的句柄OpenProcess函数在Qt进程快照一篇使用过。原创 2021-09-30 17:41:23 · 551 阅读 · 0 评论