avatar
文章
331
标签
30
分类
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

WindowsAPI查缺补漏-INI配置文件与注册表操作
发表于2024-07-21|WinAPI
WindowsAPI查缺补漏-INI配置文件与注册表操作碎碎念INI文件即初始化文件,如Windows目录中Win.ini保存桌面设置和与应用程序运行有关信息,System.ini保存于硬件配置有关的信息,还有Control.ini等,但他们被映射到注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\Current Version\IniFileMapping中。单个INI文件大小不得超过64KB,注释以“;”开头且必须独占一行。键名不能存在“;”但键值可存在,键名不能为多行文本。 NT系统注册表由Windows\system32\Config目录中多个文件构成,文件运行时这些文件被系统独占,无任何权限(甚至是读),只能通过Windows提供的接口进行操作。常见键值数据类型有: 键值数据类型 含义 REG_SZ REG_DWORD REG_QWORD REG_BINARY REG_MULTI_SZ 字符串序列,每个字符串以1个\0结尾,最后一个以2个\0结尾 REG_EXPAND_SZ 包含对环 ...
Windows软件调试初探-架构和系统部件
发表于2024-07-20|Win系统调试
Windows软件调试初探-架构和系统部件系统概览在内核空间中: 硬件抽象层HAL隔离CPU架构层面核心硬件的硬件差异性,使内核和顶层模块可使同一的方式访问硬件,不负责的外设设备硬件通过I/O管理器加载不同设备驱动程序解决。执行体如内存管理器、进程管理器、I/O管理器。Windows子系统驱动程序Win32K.sys包括USER和GDI两部分,USER负责窗口管理、用户输入等,GDI负责显示输出和各种图形操作,还有DxgKrnl.sys图形核心负责管理GPU 有关核心任务。内核支持模块有用于内核调试的KDCOM.DLL,用于启动截断显示驱动的BOOTVID.DLL,用于检查模块完好性的CI.DLL,用于支持日志功能的CLFS.SYS,支持WHEA的PSHED.DLL,管理流媒体的KS.sys,网络套接字WinSock的内核空间接口驱动AFD.sys,管理网卡驱动的NDIS.sys,管理网络过滤驱动的Windows过滤平台清凉过滤器驱动程序Wfplw.sys,支持ACPI标准的ACPI.sys,PCI总线的PCI.sys,NTFS文件系统的实现NTFS.SYS。 在用 ...
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用来加载菜单资源: ...
1…8910…34
avatar
Monoceros406
Windows系统安全爱好者
文章
331
标签
30
分类
0
Follow Me
公告
哪里排版出锅了请告诉我QwQ QQ:1295625063
最新文章
Linux编程入门-系统选项2025-06-21
Linux编程入门-时间2025-06-15
Linux编程入门-用户管理与安全2025-06-15
Linux编程入门-内存管理2025-06-15
Linux编程入门-进程2025-06-14
标签
漏洞复现 恶意代码 密码学 Python 渗透测试 取证 编程语言 逆向工程 AWD Win系统调试 其他 GUI开发 解题报告 沙盒逃逸 算法 Win内核安全 OpenSSL 移动安全 UEFI 数学建模 Win驱动开发 WinAPI IoT PWN 前端开发 Web Linux Web3 后端开发 Misc
归档
  • 六月 20258
  • 五月 20259
  • 十二月 202413
  • 十一月 202412
  • 十月 202420
  • 九月 20243
  • 八月 20248
  • 七月 202413
网站资讯
文章数目 :
331
已运行时间 :
本站访客数 :
本站总访问量 :
最后更新时间 :
©2020 - 2025 By Monoceros406
框架 Hexo|主题 Butterfly