/*********************************************************************************************
特别警告：如果您当前已经运行了旧版本的WIN64AST，请重启后再运行新版本，否则可能会造成蓝屏死机。
*********************************************************************************************/

最新消息：
由于WIN10的新签名政策，如果WIN64AST无法在WIN10(1607)以及之后系统上加载驱动，请进入BIOS关闭SecureBoot，然后再试一次。


软件说明＆免责声明
==================
本软件能查看并管理64位WINDOWS系统的各种内核信息，可用于手工杀毒、辅助调试、内核研究等。
本软件的设计思想是：底层优先，兼顾安全。如果本软件因各种原因引发了蓝屏而导致您受到经济损失，本人恕不负责。


软件功能
========
1.进程/内存/线程/模块/句柄/窗口管理
2.内核模块查看
3.网络连接查看和禁止
4.查看/恢复SSDT和Shadow SSDT
5.扫描/恢复RING3和RING0的内联钩子
6.查看并删除消息钩子
7.查看/恢复重要驱动程序分发函数
8.查看/恢复内核对象例程钩子
9.枚举各种通告和回调
10.枚举I/O定时器
11.枚举DPC定时器
12.枚举MiniFilter/失效MiniFilter的回调函数
13.枚举/摘除过滤驱动
14.查看/备份/恢复/自动修复主引导记录(MBR)
15.进程行为监视(创建进程/创建线程/加载驱动/修改注册表/改动文件系统/连接网络/修改时间)
16.内核内存编辑
17.在驱动里枚举文件、强制新建/解锁/删除/破坏文件
18.在驱动里枚举注册表、强制删除/新建/重命名注册表键(KEY)和注册表值(VALUE)
19.禁止创建进程/禁止创建文件/禁止创建注册表键(KEY)和注册表值(VALUE)/禁止加载驱动/禁止联网/禁止读写磁盘敏感区域
20.校验文件签名
21.枚举/恢复中断描述符表钩子
22.枚举全局描述符表
23.显示特殊寄存器的值
24.检测进程的IAT钩子和EAT钩子
25.查看/备份/恢复/自动修复卷引导记录(VBR)
26.网络防火墙
27.枚举/删除SPI、BHO、IE右键菜单、WFP CALLOUT、NDIS FILTER
28.DLL/驱动加载器
29.枚举/删除自启动项、枚举/编辑文件关联
30.枚举/恢复内核回调表
31.PE文件查看器
32.证书拉黑工具
*.一些专供“WINDOWS驱动开发人员”使用的功能【警告：没有相关知识的用户请勿使用】
*.一些专供“特殊癖好游戏玩家”使用的功能【警告：部分相关功能需要付费才能使用】


软件需求
========
1.支持的系统：Win7x64/Win2008R2/Win8x64/Win2012/Win8.1x64/Win2012R2/WIN10（7600/7601/9200/9600/10240/10586/14393/15063/16299）
2.运行库：Win7x64和Win2008R2需要安装Microsoft .NET Framework 4才能运行（WIN8/WIN8.1/WIN10/WIN2012/WIN2012R2/WIN2016不用）【官方下载地址：http://www.microsoft.com/zh-cn/download/details.aspx?id=17718】
3.需要管理员权限（对Win64AST.exe按下右键，选择“以管理员身份运行”）
4.如果长时间使用“行为监视器”功能，推荐四核CPU和8GB以上的内存


初始设置
========
1.第一次运行时，强烈建议先打开“设置”选项卡，把软件可能需要的符号文件下载下来。
2.命令行参数：-RPOTECT。使用此参数时，软件自动加载驱动，并开启自我保护。
3.需要软件所在目录可写入，如果软件所在目录不可写，则会导致软件运行失败。
4.如果软件运行失败，可能是文件被破坏所致，可以删除软件同目录下的WIN64AST.DLL和WIN64AST.SYS，或者去官方网站下载最新版再试。


其它信息
========
1.QQ讨论群：173718777
2.软件作者：胡文亮（Tesla.Angela）
3.BUG反馈/建议意见：tesla.angela@qq.com
4.新版下载：http://m5home.blog.163.com/blog/static/2091221812012760245552
5.付费版详情：http://m5home.blog.163.com/blog/static/20912218120150231039815
6.常见问题解答：http://m5home.blog.163.com/blog/static/209122181201210137024457


目前已知的问题
==============
1.某些操作在配置低的机器上可能会卡（我测试的最低配置机器是AMD X2 245 + 2GB DDR2）
2.存在内存泄漏（由于这个软件是我的业余作品暂时没有时间解决这个问题）


更新历史
========
2017-11-05：1.19
1.支持WIN10-16299
2.修复枚举句柄时造成内核对象泄露的BUG

2017-05-14：1.10[BETA8]
1.支持WIN10-15063
2.修复WIN10阻止驱动加载蓝屏的BUG
3.修复枚举端口在WIN7之后系统蓝屏的BUG
4.修复某些情况下INLINE-HOOK检查蓝屏的BUG
5.修复了MINIFILTER过滤函数枚举不全的BUG
6.修复了WIN8之后系统扫描内核钩子容易导致蓝屏的BUG
7.增加“测试系统设置”（一键关闭UAC和自动更新等功能）
8.增加“禁止驱动自启动并重命名驱动文件然后立即重启”的功能
9.关闭软件默认不卸载驱动，加快下次启动速度以及防止阻碍系统关机
10.[VIP]解决“强力进程保护”开启时不勾选“窗口访问”也有保护效果

2016-08-31：1.10[BETA7]
1.支持WIN10-14393
2.修改了WIN7结束进程和线程蓝屏的问题
3.修复了某些情况下进程枚举不全的问题
4.修复了某些情况下句柄枚举不全的问题
5.解决了无法读写某些带保护进程内存的问题
6.解决“内核探索者”读取内核内存时蓝屏的问题
7.UI微调（修正module/thread/handle等窗口在WIN10系统下显示不全的问题）
8.[VIP]解决某些系统因使用“时间变速”而导致卡顿的问题

2015-12-28：1.10[BETA6]
1.支持WIN10-10586
2.新增汇编器
3.新增枚举NDIS FILTER
4.新增枚举/删除用户名
5.新增枚举/删除输入法
6.新增转储内核内存（保存一片内核内存为文件）
7.新增转储进程内存（输出进程里所有有效的内存块为文件）
8.新增枚举/恢复HHIVE对象挂钩（隶属于OBJECT HOOK）
9.新增“失效但不摘除定时器”功能
10.新增扫描任意模块的代码段修改
11.新增扫描任意模块的EAT/IAT修改
12.增强了枚举网络连接（枚举前处理掉可能存在的HOOK）
13.修复了几个枚举不全/数据错误/功能无效/导致蓝屏的bug
14.UI微调（比如列表刷新后在底部状态栏显示有多少项、默认横纵比为1:0.618）
15.[VIP]新增强力进程保护（包括窗口信息保护、进程句柄保护、内存信息保护）
16.[VIP]新增恢复DebugObject.ValidAccessMask、暂时性禁用对象回调、使KdDisableDebugger失效
17.[VIP]进程和DLL路径欺骗新增支持WIN8/8.1/10-10240/10-10586
18.[VIP]“全局时间速度控制器”新增“保持系统时间正常”的选项
19.[VIP]“内核DLL注入”新增使用APC方式注入DLL
20.[VIP]修正了若干可能导致蓝屏的BUG

2015-08-04：1.10[BETA5]
1.支持WIN10
2.改进“内核回调表”界面（支持选择单一进程或全部进程）
3.增强“自启动项检查”（调用AUTORUNS实现，AUTORUNS本是RING3级工具，一般来说对恶意软件没效果，但WIN64AST通过一些手段提升了AUTORUNS枚举和删除注册表项目的能力，可用卡巴、360之类的AV测试效果）
4.[VIP]改进了“时间速度调节”可能导致WIN7系统变卡的问题

2015-07-04：1.10[BETA4]
1.修正了一些WIN7系统上无法获取线程入口地址的BUG
2.改进了一些WIN7系统上无法动态开启本地内核调试的BUG
3.支持注入DLL和SHELLCODE到32位进程
4.增加检测关键MSR
5.增加了证书拉黑功能（专门对付带签名的流氓软件）
6.增加PE文件结构查看器
7.增加显示更多特殊寄存器的值
8.内核探索者增加指令：RDMSR、WRMSR
9.完善了进程内字符串/特征码搜索
10.增强了进程操作的强度
11.新增NTFS解析
12.新增HIVE解析
13.修正了SHUTDOWN回调枚举不全的问题
14.修正了一些可能导致自身崩溃的BUG
15.新增显示重要驱动IRP的原始地址
16.增强了一些列表的用户友好性
17.[VIP]新增文件保护
18.[VIP]新增注册表保护
19.[VIP]新增内核注入DLL
20.[VIP]新增时间速度调节器（内核级变速齿轮）

2015-03-31：1.10[BETA3]
1.恢复了“内核探索者”功能并对不常用命令进行了精简
2.新增枚举和设置文件关联
3.新增枚举和恢复内核回调表
4.界面微调以及修复一些小BUG

2015-01-01：1.10[BETA2]
1.解决部分系统上用户态HOOK扫描不全的问题
2.解决内核态INLINE HOOK扫描不全的问题
3.增加扫描内核态EAT/IAT HOOK的功能
4.增加扫描全局无签名DLL的功能
5.增强文件破坏功能（支持多种磁盘类型并能无视大部分HOOK）
6.增加显示更多IRP分发函数的信息
7.增加显示更多OBJECT类型的信息
8.增强无签名DLL/SYS加载器功能（支持CALL导出函数和驱动控制码）
9.增加重启突破WIN7/8/8.1X64的PATCHGUARD的功能
10.增加更多防火墙的过滤条件（端口、目录[可以禁止整个目录下的程序访问网络]）
11.恢复并完善“行为监视器”功能
12.其它一些小的改进
其它：增加了一些“有趣的”功能（可反悔的隐藏进程、隐藏驱动、隐藏文件、隐藏注册表、修改进程/DLL路径、修改驱动路径）
备注：部分“有趣的”功能仅对付费用户开放！如需购买请直接联系本人QQ(1923208126)！付费版详情请见软件发布页！

2014-06-15：1.10[BETA1]
1.[+]彻底重写UI加快启动速度、修改众多可能导致蓝屏的BUG（特别是意外蓝屏后重启运行会再次蓝屏的BUG）
2.[+]新增枚举WFP CALLOUT和WFP Driver
3.[+]新增查看所有驱动的IRP分发函数
4.[+]新增对动态WIN8/8.1开启LKD的支持
5.[+]新增系统敏感项目检查（目前只检查了IFEO，以后慢慢增加）
6.[-]取消隐藏进程功能（本软件不是进程隐藏工具）、取消中文界面（本人空闲时间有限不打算把有限的精力用在语言上）

2014-02-22：1.04[稳定版]
1.新增查看自启动项
2.新增检查系统关键部位
3.新增定位内核模块到对应的注册表
4.新增枚举内核模块时扫描可疑驱动对象
5.新增全局禁止联网
6.新增禁止写MBR
7.增强“程序员功能”中的驱动加载（可以直接加载无签名驱动）
8.修正禁用MINIFILTER过滤函数时可能导致蓝屏的BUG
9.修正注册表编辑器的一个隐性蓝屏BUG
10.修正枚举/删除超多层畸形目录时蓝屏的BUG
11.修正“行为监视器”中获取注册表信息不正确的BUG
12.修正某些电脑上“强制关机”不起作用的BUG

2013-11-29：1.03B[正式版]
1.监控访问网络
2.监视系统时间改变
3.检测/备份/恢复VBR
4.简易防火墙
5.枚举/删除SPI、BHO、IE右键菜单
6.驱动和DLL加载器
7.动态开启关闭LKD（本地内核调试）
8.增强显示枚举句柄的信息
9.增强动态开启关闭DSE（驱动签名强制）
10.恢复隐藏进程功能（增加会触发PG的警告）
11.按照WINDBG的格式修改eb/ew/ed/eq的用法
12.修复存在恶意minifilter的情况下枚举文件蓝屏、无法复制/重命名文件的BUG
13.增强底层方式读写文件/磁盘功能
14.修复一些小BUG和更加界面友好性（比如支持拖放文件）

2013-09-15：1.03A[正式版]
1.修复各种BUG，增加在WIN8.1上的稳定性
2.窗体大小可以任意调节

2013-09-08：1.03[测试版]
1.[+]支持Windows 8.1
2.[+]动态禁用Driver Signature Enforcement（驱动签名强制）
3.[*]完善了底层方式读写磁盘的逻辑（解决部分电脑上无法读写MBR的问题，遇到GPT分区会提示）
4.[*]完善了句柄的枚举

2013-08-07：1.02[正式版]
01.删除：“隐藏进程”功能
02.修复：某些listview复制信息不全的问题
03.修复：内核模块定位错误
04.修复：注册表某些项目显示不全
05.修复：解锁文件的BUG
06.修复：卸载DLL的BUG
07.新增：进程『启动时间』、『启动参数』数据
08.新增：注入DLL到系统进程（SMSS.EXE和CSRSS.EXE除外）
09.新增：简单识别工作队列线程（信息不保证正确）
10.新增：读写进程内存时禁用COPY-ON-WRITE
11.新增：内核探索者命令（虚拟地址转换、物理地址映射等）
12.新增：文件管理器功能（设置文件权限、创建硬链接、查看句柄占用信息、查看重启删除列表）

2013-02-21：1.01[正式版]
01.兼容：可以在“带网络连接的安全模式”下运行（但部分和minifilter驱动有关的功能无法使用）
02.兼容：修正了与某HIPS共用时导致获取SSDT原始地址错误的问题
03.修改：手动检测MBR Rootkit改为自动检测
04.修改：高亮非微软项目（多个相关列表）
05.增强：使用“随机驱动文件名”防止某些软件根据文件名来阻止驱动加载
06.增强：结束进程
07.增强：枚举进程模块
08.增强：INLINE HOOK检测新增一些重要的未导出函数（如KiSystemCall64等）
09.新增：窗口探测器、消息洪水攻击
10.新增：自动修复MBR（穿部分还原，测试能过『雨过天晴20130111』）
11.新增：文件扇区清零（穿部分还原，测试能过『雨过天晴20130111』、『冰点7.51.20.4170』、『影子卫士1.2.0.355』、『Returnil 2011(1.0.5.5400)』）
12.新增：导出注册表项
13.新增：定位到文件/注册表（行为监视器）
14.新增：命令行参数nosafecheck（启动时不进行安全检查加快启动速度）
15.新增：显示驱动服务名、删除驱动文件以及相关注册表项目、卸载驱动
16.新增：枚举/申请/释放/转储/反汇编进程内存、修改进程内存属性、内存内容查找
17.新增：当行为监视器拦截到驱动加载时，把驱动文件复制到C盘根目录
18.新增：根据进程名保护进程
19.新增：显示指定类型文件、给文件和文件夹加上/去除“只读/隐藏/系统属性”
20.其他：图标换成了戴尔ALIENWARE品牌的图标

2013-01-22：1.00[正式版]
1.新增文件管理功能
2.新增注册表编辑功能

2013-01-01：1.00[BETA6]
1.新增“废除回调函数”功能
2.新增枚举/恢复IDT钩子
3.新增扫描/恢复进程的IAT钩子和EAT钩子
4.新增枚举/恢复ClassPNP.sys、ATAPI.sys、NDIS.sys、TCPIP.sys的分发函数
5.新增查看特殊寄存器的值
6.新增枚举全局描述符表
7.内核探索者新增10条命令
8.行为监视器新增“排除指定PID”功能，信息显示上更加详细

2012-12-10：1.00[BETA5]
1.新增枚举FSD分发函数
2.新增枚举内核对象
3.新增枚举I/O定时器和DPC定时器
4.新增枚举MiniFilter和过滤驱动
5.新增枚举Object回调
6.新增网络连接远程IP地理地址检测
7.新增检测MBR ROOTKIT(目前还很弱，以后慢慢增强)

2012-11-10：1.00[BETA4]
1.新增支持WINDOWS 8 X64(9200)

2012-11-04：1.00[BETA3]
1.新增枚举回调
2.新增进程行为监视
3.新增中文语言界面

2012-09-16：1.00[BETA2]
1.新增注入DLL和SHELLCODE
2.部分解决内存泄漏
3.不再要破解内核才能运行

2012-09-07：1.00[BETA1]
1.新增强删注册表键/值
2.新增进程保护
3.新增INLINE HOOK扫描
4.内核内存查看

更早之前的更新：
2012-07-06：0.04[C0/QS]【修正了上一版的一些BUG，以及进行界面微调，没有功能性更新】
2012-07-02：0.04[B3/QS]【新增枚举并删除消息钩子、解锁文件，修正了上一版的一些BUG】
2012-03-10：0.04[B2/QS]【新增隐藏进程以及强制读写进程内存，修正了上一版的一些BUG】
2012-02-26：0.04[B1/ES]【新增查看/恢复Shadow SSDT】
2012-02-23：0.04[A2/QS]【修正了上一版的一些BUG】
2012-02-19：0.04[A1/ES]【新增支持查看/恢复SSDT，强制删除文件】
2011-08-22：0.03[A2/ES]【修复BUG和界面微调】
2011-07-11：0.03[A1/ES]【修复BUG和界面微调】
2011-05-08：0.02[ES]   【修复BUG和界面微调】
2011-02-03：0.01       【第一个版本】


附录：Kernel Explorer命令
=========================
总体说明：
1.数字仅允许使用10进制数字（1234）和16进制数字（0xABCD）
2.函数名可以是ntoskrnl.exe和hal.dll的导出函数，以及(S)SSDT上的函数。
------
db 地址/函数名 个数             （显示一定个数的BYTE ，如果不指定个数，默认个数为128）
例如：【db 0xFFFFF8001234567 0x64】、【db NtUserPostMessage】、【db ntopenprocess 2048】
------
dw 地址/函数名 个数             （显示一定个数的WORD ，如果不指定个数，默认个数为64）
例如：【dw 0xFFFFF8001234567 0x64】、【dw NtUserPostMessage】、【dw ntopenprocess 2048】
------
dd 地址/函数名 个数             （显示一定个数的DWORD，如果不指定个数，默认个数为32）
例如：【dd 0xFFFFF8001234567 0x64】、【dd NtUserPostMessage】、【dd ntopenprocess 2048】
------
dq 地址/函数名 个数             （显示一定个数的QWORD，如果不指定个数，默认个数为16）
例如：【dq 0xFFFFF8001234567 0x64】、【dq NtUserPostMessage】、【dq ntopenprocess 2048】
------
eb 地址/函数名 b1 b2 b3 ... bN  （给指定地址写入一个BYTE，或者一个字节数组）
例如：【eb 0xFFFFF8001234567 0x64】、【eb NtUserPostMessage 0x90 0xC3】
------
ew 地址/函数名 w1 w2 w3 ... wN  （给指定地址写入一个WORD）
例如：【ew 0xFFFFF8001234567 0x6464】、【ew NtUserPostMessage 0x90C3 0xC390】
------
ed 地址/函数名 d1 d2 d3 ... dN  （给指定地址写入一个DWORD）
例如：【ed 0xFFFFF8001234567 0x64646464】、【ed NtUserPostMessage 0x909090C3 0x909090C3】
------
eq 地址/函数名 q1 q2 q3 ... qN  （给指定地址写入一个QWORD）
例如：【eq 0xFFFFF8001234567 0x6464646464646464】、【eq NtUserPostMessage 0x90909090909090C3 0x90909090909090C3】
------
u 地址/函数名 指令条数          （反汇编一个地址，如果不指定指令条数，默认条数为8，如果输入0，则反汇编到出现ret或者长度大于PAGE_SIZE为止）
例如：【ub 0xFFFFF8001234567 0x64】、【ub NtUserPostMessage】
------
uf 地址/函数名                  （反汇编整个函数，遇到ret或者jmp则停止）
例如：【uf 0xFFFFF8001234567】、【uf NtUserPostMessage】
-------
kma 长度                        （分配内核内存，返回起始地址）
例如：【kma 20】
-------
kfr 起始地址                    （释放分配的内核内存）
例如：【kfr 0xFFFFF8001234567】
-------
kms 起始地址 字节 长度          （设置内核内存的值）
例如：【kms 0xFFFFF8001234567 0 20】
-------
kmc 目标地址 原始地址 长度      （复制内核内存）
例如：【kmc 0xFFFFF8001234567 0xFFFFF8007654321 20】
-------
kec 起始地址                    （执行内核shellcode）
例如：【kec 0xFFFFF8001234567】
------
vtop EPROCESS 虚拟地址          （虚拟地址转换为物理地址）
例如：【vtop 0xFFFFF8001234567 0x12345678】
------
mpa 物理地址 长度               （映射物理地址）
例如：【mpa 0x0 64】
------
umpa 虚拟地址 长度              （取消映射物理地址）
例如：【umpa 0xFFFFF8001234567 64】
------
rdmsr 寄存器ID                  （显示特定MSR的值）
例如：【rdmsr 0x1234】
------
wrmsr 寄存器ID 值               （设置特定MSR的值）
例如：【wrmsr 0x1234 1234】
------
dkm 地址 大小 文件路径		（把内核内存转储为文件）
例如：【dkm 0xfffff80012345678 1234 c:\test.bin】
------
dpm 进程ID 文件夹路径		（转储进程的所有内存）
例如：【dpm 1234 c:\】
------
syminit                         （初始化符号）
无范例
------
help                            （获得帮助信息）
无范例
------
cls                             （清屏）
无范例
------
option 选项名 值                （设置选项）
|-【option chkmemsafe 1/0】（打开/关闭内存有效性检查）