随笔- 20  文章- 0  评论- 0  阅读- 5971 
03 2023 档案
远程线程注入检测
摘要:远程线程注入 远程线程注入是一种常见的注入手段,是一种跨进程创建线程的注入手法。 其实现思路是将待注入DLL的路径写入目标进程内存空间,并利用CreateRemoteThread和LoadLibrary函数使目标进程创建一个线程,将其入口地址设为LoadLibrary,进而加载待注入的DLL。 DL 阅读全文
posted @ 2023-03-27 16:17 Hanpto 阅读(436) 评论(0) 推荐(0) 编辑
Inline Hook检测方式
摘要:Inline Hook:Inline Hook技术是通过直接修改函数的前几个字节,将一个跳转指令插入到被Hook函数的开头,从而跳转到Hook函数。 Inline Hook根据使用场景不同,其跳转方式主要有以下5种: 故InlineHook的检测思路为:对函数的指定偏移处指令进行检测,若满足上述机器 阅读全文
posted @ 2023-03-25 19:23 Hanpto 阅读(567) 评论(0) 推荐(0) 编辑
API Hook检测方式
摘要:API Hook:在Windows系统中,大量的功能都是通过系统API提供的。API Hook技术就是拦截API调用,从而实现对程序的控制。API Hook技术可以通过修改IAT表来实现。 IAT(Import Address Table),是Windows系统用来存储程序在运行时需要调用的动态链接 阅读全文
posted @ 2023-03-25 19:08 Hanpto 阅读(387) 评论(0) 推荐(0) 编辑
热更新—动态加载dll
摘要:热更新:最简单的解释就是不关软件直接更新,更新期间软件直接用。 应用程序使用热更新具有以下好处: 1.增强应用程序的可扩展性和灵活性 2.减少应用程序的停机时间,提高用户体验。 3.更快地部署新功能和修复程序错 4.节省资源,降低维护成本 本文将介绍一种PC端常见的热更新手法——动态加载链接库 其实 阅读全文
posted @ 2023-03-25 12:41 Hanpto 阅读(959) 评论(0) 推荐(0) 编辑
Qt—TableWidget组件使用注意事项
摘要:TableWidget组件当开启了sortingEnable后,重新插入数据时,有时数据会消失。 解决方案: 每次在执行插入数据时,插入前关闭sortingEnable,插入后再打开sortingEnable。 如图所示: 阅读全文
posted @ 2023-03-24 18:34 Hanpto 阅读(28) 评论(0) 推荐(0) 编辑
Qt—QtNetwork使用注意事项
摘要:使用QtNetwrok库的https协议时,若出现UnknownNetworkError的错误,可能是因为缺少SSL相关的加密工具。 解决方案: 下载对应版本的OpenSSL,将两个对应的dll放入到exe同级目录下 (OpenSSL下载地址:http://slproweb.com/products 阅读全文
posted @ 2023-03-24 18:29 Hanpto 阅读(148) 评论(0) 推荐(0) 编辑
控制寄存器(Cr0-Cr3)
摘要:控制寄存器(CR0~CR3)用于控制和确定处理器的操作模式以及当前执行任务的特性。 CR0中含有控制处理器操作模式和状态的系统控制标志; CR1保留不用; CR2含有导致页错误的线性地址; CR3中含有页目录表物理内存基地址,因此该寄存器也被称为页目录基地址寄存器PDBR(Page-Director 阅读全文
posted @ 2023-03-24 12:18 Hanpto 阅读(757) 评论(0) 推荐(0) 编辑
IPC(进程间通信)
摘要:IPC有以下方式: 1.文件映射(内存映射) 2.邮件槽 3.管道 4.剪切板 5.父子进程 6.网络TCP 1.文件映射(数据量大,本地进程间) a.命名映射 A进程:打开文件,获得文件句柄,创建文件映射,获得映射句柄,将文件映射对象映射到当前地址空间,进行读写操作,卸载映射、关闭句柄 hFile 阅读全文
posted @ 2023-03-24 12:10 Hanpto 阅读(121) 评论(0) 推荐(0) 编辑
CreateThread——类内线程回调函数
摘要:CreateThread的函数声明如下: 点击查看代码 HANDLE WINAPI CreateThread( _In_opt_ LPSECURITY_ATTRIBUTES lpThreadAttributes, _In_ SIZE_T dwStackSize, _In_ LPTHREAD_STAR 阅读全文
posted @ 2023-03-24 12:04 Hanpto 阅读(264) 评论(0) 推荐(0) 编辑
R3枚举进程模块的方法
摘要:R3层枚举进程模块的方法有以下三种: 1.ToolHelp库 2.PsApi库 3.遍历Peb中的Ldr链表 1.ToolHelp库: 点击查看代码 HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, 0); if (hSna 阅读全文
posted @ 2023-03-24 12:03 Hanpto 阅读(50) 评论(0) 推荐(0) 编辑
R3枚举进程的方法——ToolHelp及PsApi
摘要:R3层枚举进程主要有两种方法,使用ToolHelp库及PsApi库 ToolHelp库: 点击查看代码 HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); if (hSnapshot == INVALID_HANDL 阅读全文
posted @ 2023-03-24 11:58 Hanpto 阅读(55) 评论(0) 推荐(0) 编辑
进程的创建过程
摘要:创建进程共有六个阶段: I:打开目标映像文件 Ⅱ:创建Windows的(内核)管理层进程对象,即“进程控制块”EPROCESS数据结构及相应的句柄 Ⅲ:创建该进程的初始(第一个)线程,包括其堆栈、上下文,以及“管理层线程对象”,即“线程控制块”ETHREAD数据结构及相应的句柄 Ⅳ:将新创建的进程通 阅读全文
posted @ 2023-03-24 11:53 Hanpto 阅读(278) 评论(0) 推荐(0) 编辑
分页机制及映射过程
摘要:分页机制和映射过程 x86 : CR3-PDT-PTT-offset 10-10-12 x86 with PAE : CR3-PDPT-PDT-PTT-offset 2-9-9-12 EPT(x64) : EPTP-PML4E-PDPTE-PDE-PTE-offset 9-9-9-9-12 x86 阅读全文
posted @ 2023-03-24 11:42 Hanpto 阅读(58) 评论(0) 推荐(0) 编辑
KiFastCallEntry Hook
摘要:KiFastCallEntry函数有什么用??? Ring0层Zw系列函数(如ZwSetEvent)在设置完函数服务号之后会调用KiSystemService函数, 在KiSystemService函数中又会跳转到KiFastCallEntry函数内部获取SSDT表的基地址,系统函数服务号,进而获得 阅读全文
posted @ 2023-03-24 11:32 Hanpto 阅读(108) 评论(0) 推荐(0) 编辑
SSDT Hook
摘要:SSDT表是什么?有什么用? SSDT(System Service Descriptor Table,系统服务描述符表),用来存储服务函数索引及服务函数地址。通过该表被保护起来,只具读的属性,不能写。(不过可以使用CRO寄存器的第1位来改变SSDT的属性。CRO寄存器第1位叫做保护属性位,控制着页 阅读全文
posted @ 2023-03-24 11:16 Hanpto 阅读(190) 评论(0) 推荐(0) 编辑
Qt—QtNetwork使用示例(查询Ip归属地)
摘要:以查询ip归属地的例子来学习C++的API接口调用。 常见的API接口可能会给出post及get两种访问方法,我们先学习较为简单的get方法。 首先是找到相关的接口,如https://ip.useragentinfo.com/json 使用get方式访问的话则是https://ip.useragen 阅读全文
posted @ 2023-03-22 09:45 Hanpto 阅读(419) 评论(0) 推荐(0) 编辑
(二)内存扫描器(面向对象版)
摘要:在此之前,我们实现了内存扫描器(面向过程版)。为了使用的简洁性及可重用性,我们将其模块化,改写为C++类的形式,将用户用不到的成员私有化,对外隐藏,只为其提供类似于首次扫描、再次扫描、内存读写等的接口。 修改后的内存扫描器源码如下: 点击查看代码 #pragma once #include<Wind 阅读全文
posted @ 2023-03-22 08:43 Hanpto 阅读(90) 评论(0) 推荐(0) 编辑
反调试手段检测——基于yara规则引擎
摘要:在软件开发中,反调试技术是一种保护软件免受恶意用户攻击的重要手段。它可以帮助开发人员防止黑客、逆向工程师和其他恶意用户试图使用调试工具来修改软件或者窃取敏感信息。但当反调试技术被一些恶意程序,如病毒木马所使用时,这就会增大安全人员分析其的难度。 Yara规则引擎是一个基于Yara语言的软件工具,可以 阅读全文
posted @ 2023-03-22 00:18 Hanpto 阅读(538) 评论(0) 推荐(0) 编辑
(一)内存扫描器(面向过程版)
摘要:以下是一个基于C语言和Win32API的内存扫描器的实现代码 首先定义一个结构体MEMBLOCK,用来存储内存块的信息 点击查看代码 typedef struct _MEMBLOCK { HANDLE hProcess; //进程句柄 PVOID addr; //内存块地址 int size; // 阅读全文
posted @ 2023-03-21 22:54 Hanpto 阅读(265) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示