在翻出12年前用C#写的自我管理软件之后,进一步激发了本猫的怀旧情怀。
上一篇在此:
竟然无意间翻出12年前自己用C#写的程序
这不,昨天竟然又找出2010年写的一款Windows系统入侵检测及防御小工具,当时命名是:NtInfoGuy!
对于Windows的内部,本猫觉得有太多的东西需要了解,认知。
本猫非凡的、从不知足的探求本性驱使自己要拨开迷雾得见青天...
太多的木马,病毒,Rootkit隐藏在系统中,这需要我们去侦查、洞悉。对于一些系统程序员来说,了解当前NT系统的内部状态,信息同样也是相当有用和重要的。(反正当时本猫是这么想的)
虽然有不少这样的小工具, 但是它们都只是涉及到系统信息的各个不同子集。在这样一个背景下非常有必要(本猫YY的...)有一个可以查看NT系统完整状态信息的工具,于是NtInfoGuy应运而生了。
这个东东不是从石头中蹦出来的,却是从大熊猫脑海中逐渐浮现出来的。该工具采用控制台开发,当时觉得有精力的话可能会转成GUI的方式,不过现在看来估计永远也不会了...
我记得当时程序兼容的系统有:
Win2k(sp4),Winxp(sp3),Win2k3(sp2),Vista,Windows7(9年前啊!!!)
NtInfoGuy全部由C加上少量汇编开发而成,当时使用C+汇编的感觉真是爽爆了!!!
下面是几张实际运行的截图:
NtInfoGuy已实现的功能我简单回忆了一下,有下面这些:
1 显示系统SSDT表,SSDT Shadow表并且尝试寻找可能的服务表项钩子,红色标示出了可能的钩子;
2 显示系统GDT表,并且显示各个表项的属性;
3 显示系统IDT表,并且显示各个门的属性;
4 显示当前系统加载模块的信息,并且可识别出windows可信任模块;
红字表示不受信任的模块或在磁盘上未找到的模块。
5 直接从内核中获取系统加载模块的信息,在DbgView中显示;
6 显示系统各个主要部件内核变量的值.
当然觉得这还远远不够,下面是本猫当时还准备添加的功能:
- 1 准备再添加Inline Hook的识别,以及将Hook还原的功能;
- 2 将内核地址对应到一个区域中,比如一个驱动,换页池,非换页池等;
- 3 显示指定位置内核代码的反汇编;
- 4 增加GUI,可能用SDK,也可能用VB,C#等等语言来写;
- 5 更加全面的内核变量的显示,目前只是显示了内存管理器的内核变量。
- 希望有兴趣的童鞋可以参与进来。如果你一直是单干的程序员,甚至不是专业的程序员,但对编程有狂热的兴趣,想感受结对编程的乐趣,请和熊猫偶联系。如果你不懂系统编程,但是界面设计很有一手也可以加入。这个工具只是一个雏形,希望可以有更成熟的表现。 (也是自我YY么???)
下面是9年前写的使用说明,可以看到当时伪装成入侵防御软件的木马病毒有多猖狂,人与人还得相互信任啊!!!
程序说明 :
- 1 首先熊猫以人格担保代码里无任何木马,病毒,RootKit等无聊东东;
- 2 我写的代码是NtInfoGuy.exe和NtInfoGuy.dll加起来不到60KB,其他2个Dll是微软官方的调试
- 以及符号服务库,在运行时是要使用的。如果你的系统中安装了新版的WinDbg,另外这两个Dll
- 可以使用WinDbg目录中的新版本。
- 3 程序需要加载驱动程序进入内核取得信息;
- 4 程序需要自动连接到微软官方符号网站下载内核的符号文件,否则某些内核符号不能获得WinDbg下载符号文件是同样的道理。
- 5 该程序可能有BUG、漏洞,可能会导致系统崩溃,请在非关键系统上运行。该程序带来的一切损失和熊猫无关哦。
- 6 关于该程序的更多信息请观赏 : http://blog.csdn.net/mydo/archive/2010/0/17/5742188.aspx
- 7 程序第一次运行时因为要下载NT符号文件可能比较慢,一旦符号下载完成,以后的运行都会很快.
我记得符号文件下载的位置就在程序当前路径的syms文件夹中,所以运行程序后会自动到微软调试服务器中下载调试符号文件,当时很多人以为是木马行为...人与人之间起码的相互信任呢???
当时本猫还煞有其事开源了,开源了,开源了!!!
不过当时可没有GitHub啊!!!
NtInfoGuy下载地址 :
http://hopy.bokee.com/inc/NtInfoGuy.7z
NtInfoGuy的源代码还可以到看雪下载:
http://bbs.pediy.com/showthread.php?t=117432
最后想想本猫十几年前的自己,再看看现在的自己,感叹肥了一圈不说,那种天不怕地不怕的冲劲也淡了不少,所以说:种一棵树最好是10年前,其次就是现在!
大家是否也这样认为呢?
感谢观赏 ;)