avatar
文章
324
标签
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查缺补漏-内存管理
发表于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 ...
WindowsAPI查缺补漏-多线程
发表于2024-06-05|WinAPI
WindowsAPI查缺补漏-多线程线程创建与销毁CreateThread在当前进程创建新线程。 12345678HANDLE WINAPI CreateThread( _In_opt_ LPSECURITY_ATTRIBUTES lpThreadAttributes, //线程安全属性结构 _In_ SIZE_T dwStackSize, //线程栈空间大小 _In_ LPTHREAD_START_ROUTINE lpStartAddress, //线程函数指针 _In_opt_ LPVOID lpParameter, //传递给线程函数的参数 _In_ DWORD dwCreationFlags, //线程创建标志 _Out_opt_ LPDWORD lpThreadId //返回线程ID) 例子: 123456HANDLE hThread;hThread = ::CreateThread(NULL, 0, ThreadProc, NULL, 0, NULL);if (hThread != NULL) { ::CloseHand ...
保护模式入门
发表于2024-06-04|逆向工程
保护模式入门段寄存器一共有8个:ES、CS、SS、DS、FS、GS、LDTR、TR。每个段寄存器结构如下: 1234Base 32bitLimit 32bitAttribute 16bitSelector 16bit (只有这16位是可见的) 读写方法:用mov时,mov ax,es只能读16位可见部分,mov ds,ax能写96位。读写LDTR用sldt或lldt,读写tr用str或ltr。 成员如下,其中GS在Windows中不用: 段寄存器 Selector Attribute Base Limit ES 0023 RW 0 0xFFFFFFFF CS 001B RX 0 0xFFFFFFFF SS 0023 RW 0 0xFFFFFFFF DS 0023 RW 0 0xFFFFFFFF FS 003B RW 0x7FFDE000 0xFFF 在调试时,单步调试触发单步调试异常进入内核,内核会把GS清零。段寄存器在内联汇编实现时编译器可能会瞎改。 段描述符分为全局描述符表GDT和局部描述符表LDT,但后者Windows不用。CPU有个寄存器GDT ...
Python-逆向实用工具
发表于2024-06-03|逆向工程
Python-逆向实用工具PEfile解析头部数据123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354import hashlib,pefile# 计算得到数据长度,自动使用推荐大小def NumberOfBytesHumanRepresentation(value): if value <= 1024: return '%s bytes' % value elif value < 1024 * 1024: return '%.1f KB' % (float(value) / 1024.0) elif value < 1024 * 1024 * 1024: return '%.1f MB' % (float(value) / 1024.0 / 1024.0) else: return & ...
WindowsAPI编程核心技术-强制性功能
发表于2024-05-30|Win内核安全
WindowsAPI编程核心技术-强制性功能强制结束进程PspTerminateThreadByPointer法用未导出函数PspTerminateThreadByPointer结束一个进程的所有线程,这个进程也随之消亡了。该函数声明: 12345NTSTATUS PspTerminateThreadByPointer( PETHREAD pEThread, NTSTATUS ntExitCode, BOOLEAN bDirectTerminate) 但要注意函数指针的声明的调用约定: 1234567#ifdef _WIN64 // 64 位 typedef NTSTATUS(__fastcall *PSPTERMINATETHREADBYPOINTER) (PETHREAD pEThread, NTSTATUS ntExitCode, BOOLEAN bDirectTerminate);#else // 32 位 typedef NTSTATUS(*PSPTERMINATETHREADBYPOINTER) (PETHREAD pEThrea ...
WindowsAPI编程核心技术-过PatchGuard防护
发表于2024-05-30|Win内核安全
WindowsAPI编程核心技术-过PatchGuard防护驱动隐藏过PatchGuard摘链未导出函数MiProcessLoaderEntry从全局链表中插入或删除一个模块,操作时同样设置PatchGuard监控的全局数据,所以不会触发PatchGuard导致蓝屏。声明如下: 12345NTSTATUS __stdcall MiProcessLoaderEntry( PVOID pList, //双向链表 BOOLEAN bOperate //操作标志 TRUE插入链表 FALSE删除链表); //x86NTSTATUS __fastcall MiProcessLoaderEntry(PVOID pList,BOOLEAN bOperate); //x64 对Ntoskrnl.exe丢IDA进行分析,对导出函数NtSetSystemInformation内存特征码扫描定位未导出函数MmLoadSystemImage地址。 对于x86和x64的Windows 7和Windows 8.1,在MmLoadSystemImage函数内存中扫描定位MiProcessLoaderE ...
1…8910…33
avatar
Monoceros406
Windows系统安全爱好者
文章
324
标签
30
分类
0
Follow Me
公告
哪里排版出锅了请告诉我QwQ QQ:1295625063
最新文章
C++后端开发入门-FTP服务器与Libevent初探2025-06-01
C++后端开发入门-HTTP服务器编程2025-05-31
C++后端开发入门-服务器模型编程2025-05-31
C++后端开发入门-UDP与原始套接字编程2025-05-25
C++后端开发入门-TCP服务器编程2025-05-19
标签
漏洞复现 数学建模 编程语言 PWN 解题报告 Win内核安全 Web3 Web 恶意代码 沙盒逃逸 渗透测试 OpenSSL Win驱动开发 C++ 其他 Win系统调试 密码学 WinAPI AWD Python GUI开发 后端开发 算法 Misc 取证 IoT 前端开发 逆向工程 UEFI 移动安全
归档
  • 六月 20251
  • 五月 20259
  • 十二月 202413
  • 十一月 202412
  • 十月 202420
  • 九月 20243
  • 八月 20248
  • 七月 202413
网站资讯
文章数目 :
324
已运行时间 :
4 天
本站访客数 :
14108
本站总访问量 :
20340
最后更新时间 :
4 天前
©2020 - 2025 By Monoceros406
框架 Hexo|主题 Butterfly