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

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 ...
WindowsAPI编程核心技术-模块加载监控
发表于2024-05-29|Win内核安全
WindowsAPI编程核心技术-模块加载监控前置芝士PsSetLoadImageNotifyRoutine设置模块加载回调函数,完成模块加载时通知回调函数。 123NTSTATUS PsSetLoadImageNotifyRoutine( _In_ PLOAD_IMAGE_NOTIFY_ROUTINE NotifyRoutine //指向回调函数); 可通过PsRemoveLoadImageNotifyRoutine删除回调。 PLOAD_IMAGE_NOTIFY_ROUTINE回调函数。 12345VOID SetLoadImageNotifyRoutine( _In_opt_ PUNICODE_STRING FullImageName, //标识可执行映像文件 _In_ HANDLE ProcessId, //加载模块所属进程ID 驱动程序为0 _In_ PIMAGE_INFO ImageInfo); IMAGE_INFO1234567891011121314151617181920typedef struct _IMAGE_INFO { ...
WindowsAPI编程核心技术-进线程监控
发表于2024-05-28|Win内核安全
WindowsAPI编程核心技术-进线程监控进线程枚举进程枚举: 1234567891011121314151617181920212223242526272829#include <ntifs.h>NTKERNELAPI UCHAR* PsGetProcessImageFileName(IN PEPROCESS Process); //未公开的进行导出即可NTKERNELAPI HANDLE PsGetProcessInheritedFromUniqueProcessId(IN PEPROCESS Process);//未公开进行导出// 根据进程ID返回进程EPROCESS结构体,失败返回NULLPEPROCESS LookupProcess(HANDLE Pid){ PEPROCESS eprocess = NULL; NTSTATUS Status = STATUS_UNSUCCESSFUL; Status = PsLookupProcessByProcessId(Pid, &eprocess); if (NT_SUCCES ...
1…8910…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