随笔分类 - Windows
摘要:程序设置了int3断点函数 CPU获取后,根据IDT表中的int3的处理函数 主要工作大概是 填充 _KTRAP_FRAME 结构体, 保存的是异常发生时的寄存器环境, 因为在异常处理完毕之后,需要返回产生异常的地方继续执行 然后把异常给CommonDispatchException IDT 表中
阅读全文
摘要:WinDbg 的基本使用 WinDbg 支持的调试方式 直接调试(打开一个 exe 程序) 附加调试 (附加到一个已经在运行的进程上) 入侵式:可以改变代码的执行流程和寄存器的内容。 非入侵式:不可以改变代码的执行流程,实际上就是挂起了目标进程,对目标进程的线 程环境和内存进行远程访问操作。 基础指
阅读全文
摘要:HOOK练习 头文件内容 Dllmain文件内容 main
阅读全文
摘要:注入 概述 DLL注入的初始动力源自于程序员对其他第三方应用程序进行功能扩展的愿望 注册表注入 ComRes注入 APC注入 消息钩子注入 远程线程注入 依赖可信进程注入 劫持进程创建注入 输入法注入 HOOK HOOK中文名钩子 HOOK的函数: 系统提供的消息HOOK机制 自定义HOOK编程技巧
阅读全文
摘要:权限管理 查询权限 管理员启动 遍历权限 提升权限 内存管理 Windows提供了以下3种方式管理内存数据 堆:适合用来管理大量的小型对象,使用堆管理方式可以非常方便的帮我们管理所需要的内存空间,而无需去 关心一些细节问题,但是堆管理方式的效率较低,堆内存的控制不够灵活 虚拟内存:适合用于管理大型的
阅读全文
摘要:PE基础3 导入表的作用是什么? 没有它exe能运行吗? 导入外部模块,提供的API,变量,类 可以没有导入表(这个程序没有用到其它模块) 导出表的作用是什么? 没有它exe能运行吗? 导出模块名,函数(序号),变量,类 通常导出表用于dll,没有导出表程序也可以运行 已知一个dll名,和一个dll
阅读全文
摘要:PE基础2 (PIMAGE_NT_HEADER)(DOS.e_lfanew + (DWORD)m_pBuff) 区段头位置 = pNt + 4 + 文件头的大小 + 扩展头大小 IMAGE_FIRST_SECTION() VirtualAdddress : 区段在内存的相对虚拟地址 RVA Point
阅读全文
摘要:PE文件概述 文件格式 .png 、.mp4、.gif、.dll等等,这些文件都具有不同格式 不能随意修改这些文件,否则将无法打开 PE文件(可执行文件) 学习PE文件目标 掌握PE文件就掌握winodws运行秘密 掌握PE文件对逆向,病毒分析,调试,漏洞.....不可替代作 PE文件常见术语 字段
阅读全文
摘要:双进程守护 当打开一个进程A的时候,此进程检测是否存在进程B,如果不存在就创建进程B。 进程B的作用是检测进程A是否被关闭,如果被关闭了,就再创建一个进程A。 双进程守护A.exe代码如下: 双进程守护B.exe代码如下:
阅读全文
摘要:第三部分:内核区同步 等待函数(WaitForObject) 等待函数的形式 单个:WaitForSingleObject 多个:WaitForMultipleObjects 单个:WaitForSingleObject 多个:WaitForMultipleObjects 一个可以被等待的对象通常由
阅读全文
摘要:第二部分:用户区同步 同步和互斥 同步:就是按照一定的顺序执行不同的线程 互斥:当一个线程访问某一资源的时候,其它线程不能同时访问 同步:就是按照一定的顺序执行不同的线程 互斥:当一个线程访问某一资源的时候,其它线程不能同时访问 多线程产生的问题 产生问题的原因 原子操作(Interlocked..
阅读全文
摘要:第一部分:线程 什么是线程? 线程其实可以理解为一段正在执行中的代码,它最少由一个线程内核对象和一个栈组成。 线程之间是没有从属关系的,同一进程下的所有线程都可以访问进程内的所有内容。 主线程其实是创建进程时创建的线程,主线程一旦退出,所有子线程也会退出。 线程其实可以理解为一段正在执行中的代码,它
阅读全文
摘要:进程通信 使用 WM_COPYDATA 客户端(发送端) // 1. 找到窗口程序 HWND hWnd = FindWindow(NULL, L"Window1"); // 2. 构建一个 COPYDATASTRUCT 结构体 COPYDATASTRUCT CopyData = { 0 }; C
阅读全文
摘要:文件操作 不带句柄的文件操作 // 1. 拷贝文件,第三个参数为 FALSE 表示会覆盖 // CopyFile(L"D:\\1.txt", L"E:\\2.txt", FALSE); // 2. 移动文件,相当于改名 // MoveFile(L"D:\\1.txt", L"D:\\2.txt"
阅读全文
摘要:进程 什么是进程? 通俗的来讲,进程就是一个运行中的程序,最少包含一个虚拟空间,通常是 4 GB大小,一组提供数据和代码的模块,通产是 dll 和 exe 文件,一个进程内核对象和最少一个线程。 进程类似于一个容器,提供给线程一块空间和需要执行的操作,线程用于进行执行。 什么是模块? 提供代码和数据
阅读全文
摘要:内核对象 什么是内核对象? 内核对象本质上是一个结构体,我们不能直接的操作一个内核对象,需要通过操作系统提供的一系列函数和我们使用的内核对象句柄对它进行一系列的修改。 如何操作内核对象? 创建一个内核对象:CreateXXX(对象) 打开一个内核对象使用: OpenXXX(对象名) 通常来讲,每一个
阅读全文

浙公网安备 33010602011771号