3

关于从哪里开始的任何想法?

4

3 回答 3

1

SoftICE ( wiki ) 仍然可能是 Windows 上最好的调试器。它具有您正在寻找的低级功能,并且可以暂停 Windows 中的所有操作,这对于查看内存更改非常有用。尽管它已经停产,并且最近有许多反 SoftICE 措施(主要是为了保护商业软件),但也有一些隐蔽的选项可以在它之上使用:IceStealth 或 IceExt。你真的必须自己找出这些软件的来源,可能有点工作。或者,还有其他调试器:Sysersoft声称已经在 SoftICE 停止的地方占据了上风(虽然我没有玩过它),还有一个开源替代品Rasta Ring 0 Debugger,它自 2006 年以来就没有开发过。

于 2009-12-13T23:09:44.003 回答
1

如果您要扫描的进程当前正在运行,那么您可以将其作为调试器连接并抓取其地址空间。

如果您想一般地刮取内存,则需要安装驱动程序或类似的东西,以摆脱用户空间。

于 2009-12-13T22:24:16.670 回答
1

这是一个非常有趣的概念,虽然它听起来很险恶,一个root-kit...对于初学者来说,你需要将你的程序权限提升到管理员的权限,并以某种方式开发某种驱动程序(可能是块模式驱动程序)并从用户区对驱动程序进行轮询调用以传递数据块(因此是块模式驱动程序)。作为参数传递给驱动程序(我想象)的块的长度,然后用户端代码将检索数据并扫描数据块。

问题是,由于驱动程序必须驻留在 ring0 内核模式才能获取内存块,因此您最终会产生 BSOD 和大量调试问题。听起来我喜欢受虐狂,但是你可以再次使用 VirtualBox 并将 Windows 安装到 VM 中。

您需要四处寻找 Windows 内核模式驱动程序 SDK,这将使您能够编写驱动程序。除此之外,我不知道怎么做!:)

这是我要坚持的我最喜欢的问题。

祝你好运,希望这会有所帮助,最好的问候,汤姆。

于 2009-12-13T23:56:58.553 回答