avatar
文章
319
标签
29
分类
0

Home
Archives
Tags
Categories
List
  • Music
  • Movie
Link
About
The Blog of Monoceros406
搜索
Home
Archives
Tags
Categories
List
  • Music
  • Movie
Link
About

The Blog of Monoceros406

Windows软件调试初探-进程与线程
发表于2024-07-18|Win系统调试
Windows软件调试初探-进程与线程进程资源每个进程都有这些资源: 一个虚拟地址空间。 全局唯一Cid,即PID。 一个可执行映像,即该进程可执行文件在内存中的表示。 一个或多个线程。 一个内核空间中的EPROCESS。 一个内核空间中的对象句柄表。 一个用于描述内存目录表起始位置的基地址,即页目录基地址DirBase。当CPU切换到该进程时,将该地址加载到页表基地址寄存器如CR3或TTBR,再由RVA翻译为正确物理地址。 一个用户空间中的PEB。 一个访问令牌。 例如列出系统所有进程: 123456789101112131415161718192021226: kd> !process 0 0 //第一个参数为EPROCESS地址 0表示所有 第二个0为最少信息**** NT ACTIVE PROCESS DUMP ****PROCESS ffff84898203c440 //进程EPROCESS地址 SessionId: none Cid: 0004 Peb: 00000000 ParentCid: 0000 //会话、客户进程ID、进程环境快地址、父进 ...
WindowsAPI查缺补漏-动态链接库
发表于2024-07-14|WinAPI
WindowsAPI查缺补漏-动态链接库静态链接库静态链接库头文件: 123#pragma onceint funAdd(int a, int b);int funMul(int a, int b); 静态链接源文件: 1234567#include "StaticLinkLibrary.h"int funAdd(int a, int b) { return a + b;};int funMul(int a, int b) { return a * b;}; 调用方: 12345678#include <Windows.h>#include "StaticLinkLibrary.h" // StaticLinkLibrary.h头文件#pragma comment(lib, "StaticLinkLibrary.lib") // StaticLinkLibrary.lib对象库int WINAPI WinMain(HINS ...
WindowsAPI查缺补漏-剪贴板
发表于2024-07-13|WinAPI
WindowsAPI查缺补漏-剪贴板常用函数OpenClipboard打开剪贴板: 123BOOL OpenClipboard( _In_opt_ HWND hWndNewOwner //与剪贴板相关联得窗口句柄); 在关闭剪贴板前其他应用程序无法打开剪贴板。 EmptyClipboard清空剪贴板中数据,并把OpenClipboard的hWndNewOwner指定的窗口设为剪贴板的新所有者。若hWndNewOwner为NULL则导致后续SetClipboardData失败。 1BOOL EmptyClipboard(VOID); SetClipboardData把指定格式的数据写入剪贴板: 1234HANDLE SetClipboardData( _In_ UINT uFormat, //要写入剪贴板中数据的格式 _In_opt_ HANDLE hMem //数据的句柄); //成功返回剪贴板数据句柄 失败NULL 其中uFormat常用的有: 枚举值 含义 CF_TEXT ANSI文本格式 CF_UNICODETEXT Unicode文本格式 ...
WindowsAPI查缺补漏-进程
发表于2024-07-08|WinAPI
WindowsAPI查缺补漏-进程创建进程ShellExecute打开i可执行文件、文档文件、网址等。 12345678HINSTANCE ShellExecute( _In_opt_ HWND hwnd, //父窗口句柄 _In_opt_ LPCTSTR lpOperation, //指定的操作 _In_ LPCTSTR lpFile, //要操作的文件或文件夹 _In_opt_ LPCTSTR lpParameters, //当lpFile为可执行文件时 为命令行参数 _In_opt_ LPCTSTR lpDirectory, //要操作的文件的默认工作目录 _In_ INT nShowCmd //显示标志) lpOperation可以是: 枚举值 含义 open 由关联的默认程序打开lpFile文件/文件夹 explore 资源管理器打开lpFIle文件夹 edit 用编辑器(记事本)打开lpFile指定的文档,不是文档则调用失败 print 打印lpFile指定的文件,不是文档文件则失败 find 从l ...
WindowsAPI查缺补漏-文件驱动器目录
发表于2024-06-12|WinAPI
WindowsAPI查缺补漏-文件驱动器目录碎碎念硬盘容量=柱面数(磁道数)*磁头数(盘面数)*每磁道扇区数*每扇区字节数。 目录SetCurrentDirectory设置当前目录: 123BOOL SetCurrentDirectory( LPCTSTR lpPathName) GetCurrentDirectory获取当前目录: 1234DWORD GetCurrentDirectory( _In_ DWORD nBufferLength, //缓冲区大小 单位字符 _Out_ LPTSTR lpBuffer //返回当前目录) GetFullPathName获取一个文件完整路径: 123456DWORD WINAPI GetFullPathName( _In_ LPCTSTR lpFileName, //文件名称 _In_ DWORD nBufferLength, //缓冲区大小 单位字符 _Out_ LPTSTR lpBuffer, //返回完整路径文件名 _Outptr_opt_ LPTSTR* lpFilePart / ...
WindowsAPI查缺补漏-内存管理
发表于2024-06-12|WinAPI
WindowsAPI查缺补漏-内存管理碎碎念x64下虚拟地址空间空指针赋值分区,为0x00000000`00000000~0x00000000`0000FFFF,大小约为64KB。用于帮助开发人员捕捉对NULL指针的赋值,例如这样malloc失败时返回NULL,帮助开发人员调错: 12LPINT pInt = (LPINT)malloc(sizeof(INT));*pInt = 5; 用户模式分区,为0x00000000`00010000~0x00007FFF`FFFFFFFF,大小约为128TB。用于每个进程使用,动态链接库也装载到这里,需要内存管理单元MMU将虚地址映射为物理地址。因为这分区用不着这么大,操作系统选择不支持,如Windows Server 2016只支持24TB,Windows 10只支持8TB。 64KB禁入分区,为0x00007FFF`FFFF0000~0x00007FFF`FFFFFFFF,大小约为64KB。Windows系统保留,禁止访问。 内核模式分区,为0x00008000`00000000~0xFFFFFFFF`FFFFFFFF,大小约为167772 ...
WindowsAPI窗口程序设计-常用控件
发表于2024-06-09|WinAPI
WindowsAPI窗口程序设计-常用控件按钮类本篇搞一个全是按钮的页面,从上到下分别是普通按钮、图标按钮、位图按钮和自绘按钮,接下来是三个分组框。第一个叫政治面貌,里面有一组单选按钮,分别是中共党员、共青团员、无党派人士。第二个叫个人爱好,里面有3个多选框,分别是看书、唱歌、听音乐。第三个叫荣誉称号,里面有三个三态多选框,即有对勾、有灰色对勾和无对勾,分别是团队核心、技术能手和先进个人。最后有个默认按钮为获取单选复选状态。 常用按钮样式: 枚举值 含义 BS_PUSHBUTTON 普通按钮 BS_NOTIFY 系统发送带有BN_KILLFOCUS和BN_SETFOCUS通知码的WM_COMMAND消息到父窗口 BS_ICON 图标按钮 BS_BITMAP 位图按钮 BS_OWNERDRAW 自绘按钮,按钮需要重绘时父窗口收到WM_DRAWITEM消息 BS_GROUPBOX 分组框 BS_AUTORADIOBUTTON 自动单选窗口 BS_AUTOCHECKBOX 自动复选框 BS_AUTO3STATE 自动三态复选框 BS_DEFPU ...
WindowsAPI窗口程序设计-菜单与资源
发表于2024-06-08|WinAPI
WindowsAPI窗口程序设计-菜单与资源菜单-菜单资源法开始在资源文件区新建.rc资源文件,在Menu字样下新建一个菜单IDR_MENU,然后就可以可视的方式设计菜单。双击每个菜单项,在属性窗口中设置ID,例如ID_FILE_NEW、ID_FILE_OPEN等。 菜单添加法一:设置WNDCLASSEX结构的lpszMenuName字段,需要把IDR_MENU转为LPCTSTR类型。 1wcex.lpszMenuName = MAKEINTRESOURCE(IDR_MENU); 法二:创建窗口时指定hMenu参数: 123HMENU hMenu;hMenu = LoadMenu(hInstance, MAKEINTRESOURCE(IDR_MENU));HWND hWnd = CreateWindowEx(0, szWindowClass, szTitle, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 300, 180, NULL, hMenu, hInstance, NULL); 其中LoadMenu用来加载菜单资源: ...
WindowsAPI窗口程序设计-基础语法
发表于2024-06-07|WinAPI
WindowsAPI窗口程序设计-基础语法基本概念WinMain入口函数。 123456INT WINAPI _tWinMain( _In_ HINSTANCE hInstance, //应用程序当前实例句柄 _In_opt_ HINSTANCE hPrevInstance, //废弃 _In_ LPSTR lpCmdLine, //命令行参数字符串 不包括可执行文件名 _In_ INT nShowCmd //该程序最初怎么显示); MessageBox消息提示框。 123456INT WINAPI MessageBox( _In_opt_ HWND hWnd, //所有者窗口句柄 _In_opt_ LPCTSTR lpText, //显示的消息内容 _In_opt_ LPCTSTR lpCaption, //标题 _In_ UINT uType //图标按钮样式) 按钮取值: 12345678MB_ABORTRETRYIGNOREMB_CANCELTRYCONTINUEMB_HELPMB_OKMB_OKCANCELMB_RETRYC ...
ImGUI开发入门实战
发表于2024-06-06|GUI开发
ImGUI开发入门实战此篇已废弃,不想学这个了。 简介ImGUI已在Github上开源,分为主分支和docking分支。主分支需要在控制台窗口的基础上,新建绘制窗口,窗体绘制在该窗口中。主分支可以用来游戏写挂,例如将绘制窗口透明、外部绘制并大小位置跟随游戏变换。docking主要用来制作桌面软件。 开始去Github上下载ImGUI,把里面根目录的各个.cpp和.h都拿出来。在backends目录下还需要imgui_impl_dx12(DirectX12)那俩和imgui_impl_win32的。 链接器的附加依赖项要有d3d12.lib、d3dcompiler.lib、dxgi.lib。 然后模板直接抄example_win32_directx12就行… main.h: 1234567891011121314151617#pragma once#include "imconfig.h"#include "imgui.h"#include "imgui_impl_dx12.h"#include "imgui_impl ...
1…789…32
avatar
Monoceros406
Windows系统安全爱好者
文章
319
标签
29
分类
0
Follow Me
公告
哪里排版出锅了请告诉我QwQ QQ:1295625063
最新文章
Qt6开发入门-常用控件简介2025-05-11
Qt6开发入门-Qt框架综述2025-05-11
C++后端开发入门-环境配置与多线程编程2025-05-05
Qt6开发入门-环境配置与入门2025-05-05
差分隐私实践入门2025-05-03
标签
Win驱动开发 密码学 Python IoT 前端开发 PWN 漏洞复现 Misc 渗透测试 恶意代码 解题报告 AWD WinAPI GUI开发 算法 移动安全 后端开发 沙盒逃逸 逆向工程 取证 Web3 UEFI Web 编程语言 Win系统调试 OpenSSL 数学建模 其他 Win内核安全
归档
  • 五月 20255
  • 十二月 202413
  • 十一月 202412
  • 十月 202420
  • 九月 20243
  • 八月 20248
  • 七月 202413
  • 六月 20249
网站资讯
文章数目 :
319
已运行时间 :
本站访客数 :
本站总访问量 :
最后更新时间 :
©2020 - 2025 By Monoceros406
框架 Hexo|主题 Butterfly