如何实现类似softice,TRwin等的字符界面...(200分)

  • 主题发起人 主题发起人 cAkk
  • 开始时间 开始时间
C

cAkk

Unregistered / Unconfirmed
GUEST, unregistred user!
用过softice等调试工具的都知道,热建激活后,可以出现一个字符窗口,
注意是真正的"字符窗口",怎样实现的? delphi能否做到?
 
做个控制台程序
 
>做个控制台程序
不是这样的,
不是softice,trwin不想用图形介面,
而是为了控制系统所资源、事件,为了能调试所有的模块(包括OS的代码),
是不能用windows所提供的与图形界面关系紧密的API或其它内核代码。

但同时,又要处理接管各种东西,
于是必须有个自己的管理界面,
使用字符方式自然是最快捷,安全的了。

理论上,
要处于这种方式,不能利用windows API, 必须使程序运行于0级,
这必然要利用Vxd,sys等,
显然,Delphi是无法作到的,不过C++Builder可以。

但是事际上,
从各种真正hacker们的研究,
可以不通过Vxd ,sys等来获得系统0级,
也许用delphi也许可以吧,
这得进行测试,
不过这种方式就算成功,
安全性也不是很高,无法进行复杂的操作控制。
 
Go on,关注!
 
amo: 能否稍微详细一点? 即使delphi做不到也可以,只要将一讲原理?
比如:为什么有0级权限就可以显示字符界面? 怎样出来的?
讲讲原理即可.
 
有0级权限就可以直接操作内存,端口,
可以调用BIOS中断,比如INT 10H
甚至可以直接写屏
 
; 首先说明一点,amo没作过相关的东西,现在也没时间测试,所说的只限于讨论,或者
只是一种猜测估计。是不是这样,只有与其作者探讨一下或自己去测试一把了。
对softice或trwin,要显示字符自然是不能用textout之类的API了,要显示字符怎么办?
直接写屏或用int10了。而且对这种程序,过于花哨的界面只会加大程序的不稳定性。
在windows这个环境下,os控制了所有资源,一般的应用是在cpu3级下被执行,为了调试
这些应用或os本身,程序自然要处于较高级别。
而我们知道, 把程序放在CPU的0级特权下执行,就可以直接访问硬件,还有执行一些
特权指令。这样与os处于同一级别,就可以观察调试os代码,调试一般应用更不是问题了。
对于具体的softice和trwin,它们的实现是不完全相同的,softice更为霸道,它控制了所有
的系统资料,似乎它的级别比windows更高,而trwin则真的是与os同级。
(呵呵,好象跑题了;)
如上面所述,要处于较高级别,在windows下只有用Vxd,sys(后缀名无所谓,可能是.exe)
的办法了。同时,在Vxd,sys中,要显示的话,也没法调用textout。 因为这已经不是window
的世界了,没有窗口的概念了。
所以:
>为什么有0级权限就可以显示字符界面
不是有...就...,而是在...只有...;-)
 
明白一些了,谢谢amo.

还有没有人要补充?
 
多人接受答案了。
 
后退
顶部