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窗口程序设计-基础语法
发表于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 ...
WindowsAPI编程核心技术-Minifilter文件监控
发表于2024-05-30|Win内核安全
WindowsAPI编程核心技术-Minifilter文件监控这节不讲Minifilter,只讲实现,入门Minifilter看驱动篇。 拦截IRP请求本节在FLT_OPERATION_REGISTRATION中设置IRP_MJ_CREATE、IRP_MJ_READ、IRP_MJ_WRITE、IRP_MJ_SET_INFORMATION,分别对应文件创建、读取、写入、属性修改等。 123456789101112131415161718192021// operation registrationCONST FLT_OPERATION_REGISTRATION Callbacks[] = { { IRP_MJ_CREATE, 0, Minifilter_FileMonitor_TestPreOperation, Minifilter_FileMonitor_TestPostOperation }, { IRP_MJ_READ, 0, Minifilter_FileMonitor_ ...
WindowsAPI编程核心技术-对象监控
发表于2024-05-29|Win内核安全
WindowsAPI编程核心技术-对象监控碎碎念对象监控指的是线程句柄对象、进程句柄对象、桌面句柄对象的监控。 这个技术病毒木马常用。病毒木马的对象监控回调常用来会自行线程或进程的保护,保护指定程序不被杀毒软件或用户强制结束运行。结束进程时要获取打开的进程句柄,所以病毒木马通过对进程对象进行监控,使系统获取句柄失败,从而实现进程保护。 前置芝士ObRegisterCallbacks注册线程、进程和桌面句柄操作的回调函数。驱动程序必须有数字签名。 1234NTSTATUS ObRegisterCallbacks( _In_ POB_CALLBACK_REGISTER CallBackRegistration, //指定回调例程列表和其他注册信息 _Out_ PVOID* RegistrationHandle //接收已注册回调例程集合的标识) 用ObUnRegisterCallbacks注销回调例程。 OB_CALLBACK_REGISTRATION1234567typedef struct _OB_CALLBACK_REGISTRATION { _In_ ...
WindowsAPI编程核心技术-注册表监控
发表于2024-05-29|Win内核安全
WindowsAPI编程核心技术-注册表监控前置芝士CmRegisterCallback注册注册表监控例程。卸载用CmUnRegisterCallback。 12345NTSTATUS CmRegisterCallback( _In_ PEX_CALLBACK_FUNCTION Function, //回调例程地址 _In_opt_ PVOID Context, //例程参数 一般空余 _Out_ PLARGE_INTEGER Cookie //回调例程标识/句柄) PEX_CALLBACK_FUNCTION回调函数。 12345NTSTATUS RegistryCallback( _In_ PVOID CallbackContext, //参数 _In_opt_ PVOID Argument1, //操作类型 _In_opt_ PVOID Argument2 //操作信息) Argument1的结构如下: 1234567891011121314151617181920212223242526272829303132333435363738394 ...
1…91011…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