天脉网下载中心
PsNull
  • 文件版本:V3 Build 1421 汉化版
  • 适用平台:Win9x/Me/NT/2000/XP
  • 整理日期:2008-08-29 15:38
  • 文件大小:109.9KB
  • 下载次数:
软件介绍

  1. Intro

  本软件是一个 NT 平台下的进程管理器, 适用于 Windows 2000/XP/2003/Vista。

  主界面上方显示了当前系统中存在的进程, 其中隐藏进程会用红色标明, 下方有进程的

  详细信息, 如路径、命令行、启动时间、线程列表、模块列表。

  在工具菜单中有查看 IDT、GDT, 查看并恢复 SSDT、Shadow SSDT、inline hook 和消

  息钩子的功能。

  使用时需自担风险。

  2. Tips

  使用本软件需要管理员级别权限 (SeDebugPrivilege、SeLoadDriverPrivilege)。

  只有被探测到, 且不存在于 PsActiveProcessList 中的进程才会被标明为红色, 因此

  某些使用 Ring3 API Hook 隐藏的进程不会显示为红色。之所以不使用 ToolHelp32 对照一

  遍是因为其效率极低 (使用一次 CreateToolhelp32Snapshot 比使用驱动遍历三条链表的时

  间还要长), 在存在大量进程的情况下占用比较高的 cpu。

  当进程数量较多的情况下, 自动刷新可能会占用较高的 cpu, 您可以在文件菜单中取消

  自动刷新。需要刷新的时候使用右键菜单或按 F5 即可。

  进程列表中默认不显示已经被标记为结束的进程。如果有的进程为了隐藏自己而设定了

  这个标记, 您可以通过选择“显示状态为 Deleting 的进程”来看到它们。

  本软件的自我保护挂钩了 ObReferenceObjectByHandle 和 NtUserQueryWindow, 请不要

  和其它挂钩了这两个函数的软件一同使用, 否则有可能发生不可预料的后果。(如果一定要使

  用, 请遵循先启动的后退出原则) 另外, 使用 -hide 参数启动本软件可以隐藏自身。

  查看 SSDT、Shadow 列表时, 可以通过选择“仅显示被挂钩的函数”过滤掉未被挂钩的

  函数, 也可以通过根据“挂钩”列排序来完成。

  IDT、GDT 基址变化是由于您的电脑具有多个处理器, 属于正常现象。

  扫描 Inline Hook 时, 您可以通过加载符号文件来获得更加准确的结果。方法是将最新版

  本的 dbghelp.dll、symsrv.dll 复制到 PsNull3.exe 所在的目录, 并在扫描的时候选择“使

  用 dbghelp.dll 加载外部符号”, 并填入正确的符号文件搜索路径来实现。如果使用网络符号

  源, 则需要下载 2MB 左右的文件, 时间视网速而定。

  恢复 inline hook 具有一定的危险性, 首先要看一下扫描结果是否正确, 因为内核数据变

  动较大, 软件有可能将数据段误认为代码段。一般情况下, 出现大量连续地址、反汇编结果十分

  杂乱就说明扫描结果不正确。在恢复长度不为一行的 hook 时, 需要讲究顺序。下面举三个例子:

  (1) 360 的 KeUserModeCallback

  0x80570163 nt!KeUserModeCallback 5 push 30 ... jmp b18e9d70 C:\Program Files\360Safebox\SafeBoxKrnl.sys

  0x80570168 nt!KeUserModeCallback + 0x5 1 dec esi nop -

  0x80570169 nt!KeUserModeCallback + 0x6 1 sub al, 04 ??? nop -

  这个 hook 有三行, 我们需要先恢复下面两行, 再恢复第一行。

  (2) IL 的 PspTerminateThreadByPointer

  0x80575f6f nt!PspTerminateThreadByPointer - 0x5 5 nop ... jmp af3f0fbc C:\WINDOWS\system32\drivers\ILDriver.sys

  0x80575f74 nt!PspTerminateThreadByPointer 2 mov edi, edi jmp 80575f6f C:\WINDOWS\system32\ntoskrnl.exe

  这个 hook 采用类似 MS Detour 的实现, 需要先恢复下面一行, 上面一行可以不恢复。

  (3) KV2008 的 RtlImageNtHeader

  0x8084403a nt!RtlImageNtHeader 1 mov edi, edi ??? nop -

  0x8084403b nt!RtlImageNtHeader + 0x1 1 call dword ptr ss:[ebp-75h] ??? nop -

  0x8084403c nt!RtlImageNtHeader + 0x2 1 push ebp nop -

  0x8084403d nt!RtlImageNtHeader + 0x3 1 mov ebp, esp ??? nop -

  0x8084403e nt!RtlImageNtHeader + 0x4 1 in al, dx nop -

  0x8084403f nt!RtlImageNtHeader + 0x5 1 push ecx nop -

  0x80844040 nt!RtlImageNtHeader + 0x6 1 xor eax, eax ??? nop -

  0x80844041 nt!RtlImageNtHeader + 0x7 1 ror byte ptr ss:[ebp+5051fc4d],50 ??? nop -

  0x80844042 nt!RtlImageNtHeader + 0x8 1 lea ecx,dword ptr ss:[ebp-04h] ??? nop -

  0x80844043 nt!RtlImageNtHeader + 0x9 1 dec ebp nop -

  0x80844044 nt!RtlImageNtHeader + 0xa 5 cld ... jmp 82390370 -

  0x80844049 nt!RtlImageNtHeader + 0xf 1 jnz 80844053 ??? nop -

  由于程序设计的时候没有考虑到这种 BT 的 hook, 所以只能全部选中, 然后一起恢复。虽然

  这个函数调用并不频繁, 但是仍然有一定的 BSOD 几率。(只是理论上的, 我没遇到过)

  如果需要使用调试器调试本软件, 恢复 ObReferenceObjectByHandle hook 即可。

  3. Special Thanks

  感谢名单在关于对话框内, 顺序按照各人瞬间 RP 值排序。

  4. Contact me

  如果使用时遇到了问题或发现了 bug 请及时与我联系。Feel free to talk!

下载地址
  • 网通下载一
  • 网通下载三
  • 网通下载一
  • 电信下载三