VS2017静态编译QT with openssl
VS2017 静态编译QT with openssl在GitHub已经有人写了一个很好用的脚本。 Click me 在根目录会看到两个lnk 对应不同版本的vs console (x86 or x64) 在这我编译的32位的版本 建议把脚本放在盘符根目录 QT会因为路经过长而出现BUG 下载脚 ...
Read more
VS2017编译 Bitcoin master
VS2017编译 Bitcoin master with Qt下载源码1git clone https://github.com/bitcoin/bitcoin 下载Vcpkg 用来配置bitcoin需要用到的第三方库 1git clone https://github.com/Mic ...
Read more
Inline Hook
Inline 原理与流程Inline hook 就是在运行的流程中插入跳转指令(call/jmp)来抢夺程序运行流程的一个方法。 在编程中我们常用if else或其他语句来控制程序的流程,而在汇编中使用的是cmp和jmp等指令, cmp是比较,jmp是无条件跳转。 jmp指令后面跟随一个地址,像这样 ...
Read more
Window PE感染型木马分析
PE感染型木马分析在正式看代码之前先对exe结构(PE)做一个简单了解 PE中的Section当我们写完代码,编译为二进制文件之后。在代码中初始化变量的值会被全部提取出来,并整合在一起,在二进制文件中,找到一块连续的空间放进去并称之为节(section)。在生成之前的图片,文件等其他资源,同样被整合 ...
Read more
Windows内核对象
内核对象概述 在Windows内核中有一种很重要的数据结构管理机制,就是内核对象。引用层的进程、线程、文件、驱动模块、时间、信号量等对象或者打开的句柄在内核中都有之对应的内核结构对象。 如上图,一个Windows内核对象可以分为对象头和对象体两个部分。在对象头中至少有1个OBJECT_HEADER和 ...
Read more
SSDT、PEB、TEB & Hook
SSDT概述SSDT全称是”System Services Descriptor Table”(系统服务描述符表),在内核中的实际名称是”KeSeriveDescriptorTable“。这个表已通过内核ntoskrnl.exe导出(在x64里不导出)。 SSDT用于处理应用层通过kernel32. ...
Read more
Window启动过程
Windows启动包含下面几个阶段1. 启动自检阶段​ 在打开电源时,计算机开始自检过程,从BIOS中载入必要的指令,然后进行一系列的自检操作,进行硬件的初始化检查(内存,硬盘,键盘等),同时在屏幕上显示信息。 2. 初始化启动阶段​ 自检完成后,根据CMOS的设置,BIOS加载启动 ...
Read more
WinDbg & VMware 双机调试 查看内核数据结构

WinDbg 推荐微软商店安装,UI好看

WinDbg本地调试无法通过下断点来跟踪内核的执行,就需要采取特殊的方法,可以通过USB、1394火线等把两台机器连接起来,一台机器运行被调试的内核,另一台机器运行WinDbg,这样就可以调试内核了。不过两台机器的内核调试成本太高,实际上都是通过WinDbg结合虚拟机的方式来调试内核的。虚拟机平台自行选择。

Read more
Windows地址空间
虚拟地址空间当处理器读取或写入存储器位置时,它使用虚拟地址。作为读或写操作的一部分,处理器将虚拟地址转换为物理地址。通过虚拟地址访问内存具有以下优势: 程序可以使用连续范围的虚拟地址来访问在物理内存中不连续的大内存缓冲区。 程序可以使用一系列虚拟地址来访问大于可用物理内存的内存缓冲区。随着物理内 ...
Read more
Window开机过程
一、第一阶段:BIOS上个世纪70年代初,”只读内存”(read-only memory,缩写为ROM)发明,开机程序被刷入ROM芯片,计算机通电后,第一件事就是读取它。 这块芯片里的程序叫做”基本輸出輸入系統”(Basic Input/Output System),简称为BIOS。 1.1 硬件自 ...
Read more