youjiang
驱动牛犊
驱动牛犊
  • 注册日期2004-06-04
  • 最后登录2004-08-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:3920回复:26

绝对考倒论坛所有兄弟的难题!

楼主#
更多 发布于:2004-06-08 16:40
下面这个问题,我在CSDN论坛上问好过好久,没人能答,并写信给过

罗云彬,全国汇编高手
段钢,全国破解高手
张小龙,全国编程序
吴涛,中国20名优秀程序员之一
都没有回信,所以只好来请教了!

color.exe的作用:这是一个纯DOS程序,执行之后,全屏幕为蓝色,包括开机LOGO,WT,GHOST等的
执行操作界面也会被color.exe所释放出来的蓝色遮盖了!也就是蓝色会一直存在在DOS屏幕上
,会遮住DOS中所有的图形界面

当然这个程序对纯DOS环境图形而言,对WIN中图形无效,在DOS下虽然会一直显示蓝色,但可以
通过盲打WIN.COM会正常进入WINDOWS系统!(切记:color.exe并不是去关闭GHOST软件及它的操
作界面,其实GHOST的操作图形还是存在的,只是被蓝色遮住了)
简单的说这个COLOR。EXE是一个在DOS下会永远置顶的全屏幕蓝色图片,会遮住DOS下的WT,GHOST等操作界面(其实这时COLOR。EXE在起作用的同时,GHOST也在运行,这属于DOS的多任务技术)虽然蓝色会遮住屏幕,但是还是可以盲操作GHOST及c:\>win.com等!所以要开发这个EXE必须要调大量中断进行轮流分时和DOS多任务,及TSR、TSP等技术

好了,最后问一下,有没有,有关DOS多任务方面的资料!


有的高手认为这个COLOR.EXE不可能开发的出来,有些认为开发出来会好麻烦的!谁说的对呢?大家讨论一下吧!


[编辑 -  6/8/04 by  youjiang]
qiweixue
驱动小牛
驱动小牛
  • 注册日期2004-07-21
  • 最后登录2011-12-19
  • 粉丝0
  • 关注0
  • 积分1006分
  • 威望274点
  • 贡献值0点
  • 好评度268点
  • 原创分1分
  • 专家分0分
沙发#
发布于:2004-10-30 18:55
顶了,
???????????
加个分,混个脸熟,别忘了给偶加分啊~
zhenlongyang
驱动小牛
驱动小牛
  • 注册日期2004-10-28
  • 最后登录2010-07-26
  • 粉丝1
  • 关注0
  • 积分729分
  • 威望100点
  • 贡献值0点
  • 好评度66点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-10-29 00:41
应该说是有一定难度的,需要照顾很多种情况,我大概想了一个方法:首先将内存地址0xA000:0000-0xC000:0000的内容全部写入蓝色的颜色号(字符模式下显示缓冲区的结束地址我记不清了,不过写到0xC000:0000应该就够了),为保险,还应该使用显示卡端口操作将调色板设置正确,然后修改系统时钟中断0x08和dos空闲中断0x28,在其中不断的将显示页设置成当前显示模式下根本不可能用到的页,这样一切向显示缓冲区写数据的指令都不可能真正写到显存里去,另外,一般设置显示模式都使用标准BIOS中断活VESA的0x4FXX号功能调用,但只要修改了int 0x10号中断使其什么也不做,一般的软件就不可能修改得了显示模式,也就不可能在显示器上显示出真正的内容了,综合以上的方法应该可是实现所要求的功能。
Sundsea
驱动老牛
驱动老牛
  • 注册日期2003-05-06
  • 最后登录2012-06-05
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望35点
  • 贡献值0点
  • 好评度15点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-08-24 17:15
题目有点夸张!!
steven__xu
驱动牛犊
驱动牛犊
  • 注册日期2004-08-24
  • 最后登录2013-09-03
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-08-24 15:03
截获软中断是没有用的,绝大多数DOS下的CUI程序都直接写屏。
shuaihu
驱动牛犊
驱动牛犊
  • 注册日期2003-05-25
  • 最后登录2009-05-31
  • 粉丝0
  • 关注0
  • 积分53分
  • 威望35点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-07-29 07:41
大家该想的办法都想出来了,本人也同样认为这是一个简单的问题,根本不需要考虑的太复杂,上面同仁的回答已经能够解决问题了。
coolicelee
驱动牛犊
驱动牛犊
  • 注册日期2003-08-04
  • 最后登录2012-09-29
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-07-08 13:55
既然你是纯DOS的,建议你试一下改中断,比如你可以时钟中断(许多病毒就是这么干的),在其中把字符缓冲区和图形缓冲区全涂蓝,随便翻翻汇编的书都有改中断的方法,比在win32下hook还简单有效,甚至用debug写个.com就行,.exe肝火太大 :D
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-07-03 18:03
能说说你为什么一定要去弄哪个东西呢?
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
newmanbupt
驱动牛犊
驱动牛犊
  • 注册日期2004-06-29
  • 最后登录2004-07-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-06-29 18:19
怀疑楼主想搞病毒
PS:全国高手可不会理你的,人家忙得很

同意你的看法
gjltce
驱动小牛
驱动小牛
  • 注册日期2003-07-05
  • 最后登录2011-12-10
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望59点
  • 贡献值0点
  • 好评度25点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-06-25 09:52
问题太简单了,人家就不理你了.
walkonthesky
驱动中牛
驱动中牛
  • 注册日期2003-11-26
  • 最后登录2012-11-06
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2004-06-18 16:39
真搞不懂
简单的问题复杂化

[img]http://www.driverdevelop.com/forum/upload/walkonthesky/2004-07-08_2004-07-07_b847.gif[/img]
duqiang2050
驱动牛犊
驱动牛犊
  • 注册日期2003-08-08
  • 最后登录2004-06-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2004-06-13 12:33
应该是重写了中断服务程序
youjiang
驱动牛犊
驱动牛犊
  • 注册日期2004-06-04
  • 最后登录2004-08-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2004-06-11 10:06
color.exe的作用:这是一个纯DOS程序,执行之后,全屏幕为蓝色,包括开机LOGO,WT,GHOST等的
执行操作界面也会被color.exe所释放出来的蓝色遮盖了!也就是蓝色会一直存在在DOS屏幕上
,会遮住DOS中所有的图形界面

当然这个程序对纯DOS环境图形而言,对WIN中图形无效,在DOS下虽然会一直显示蓝色,但可以
通过盲打WIN.COM会正常进入WINDOWS系统!(切记:color.exe并不是去关闭GHOST软件及它的操
作界面,其实GHOST的操作图形还是存在的,只是被蓝色遮住了)

简单的说这个COLOR。EXE是一个在DOS下会永远置顶的全屏幕蓝色图片,会遮住DOS下的WT?
附件名称/大小 下载次数 最后更新
2004-06-11_color.zip (3KB)  2
clementzhao
驱动大牛
驱动大牛
  • 注册日期2003-05-08
  • 最后登录2009-02-20
  • 粉丝0
  • 关注0
  • 积分28分
  • 威望63点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2004-06-10 17:50
下面这个问题,我在CSDN论坛上问好过好久,没人能答,并写信给过

罗云彬,全国汇编高手
段钢,全国破解高手
张小龙,全国编程序
吴涛,中国20名优秀程序员之一
都没有回信,所以只好来请教了!

color.exe的作用:这是一个纯DOS程序,执行之后,全屏幕为蓝色,包括开机LOGO,WT,GHOST等的
执行操作界面也会被color.exe所释放出来的蓝色遮盖了!也就是蓝色会一直存在在DOS屏幕上
,会遮住DOS中所有的图形界面

当然这个程序对纯DOS环境图形而言,对WIN中图形无效,在DOS下虽然会一直显示蓝色,但可以
通过盲打WIN.COM会正常进入WINDOWS系统!(切记:color.exe并不是去关闭GHOST软件及它的操
作界面,其实GHOST的操作图形还是存在的,只是被蓝色遮住了)
简单的说这个COLOR。EXE是一个在DOS下会永远置顶的全屏幕蓝色图片,会遮住DOS下的WT,GHOST等操作界面(其实这时COLOR。EXE在起作用的同时,GHOST也在运行,这属于DOS的多任务技术)虽然蓝色会遮住屏幕,但是还是可以盲操作GHOST及c:>win.com等!所以要开发这个EXE必须要调大量中断进行轮流分时和DOS多任务,及TSR、TSP等技术

好了,最后问一下,有没有,有关DOS多任务方面的资料!


有的高手认为这个COLOR.EXE不可能开发的出来,有些认为开发出来会好麻烦的!谁说的对呢?大家讨论一下吧!


[编辑 -  6/8/04 by  youjiang]

怀疑楼主想搞病毒
PS:全国高手可不会理你的,人家忙得很
struct
驱动小牛
驱动小牛
  • 注册日期2003-08-21
  • 最后登录2013-12-05
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望50点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2004-06-10 15:33

...
告诉你一个你30分钟就能开发出来的方法,首先出去买一只刷子..接着买一桶0000CC色的涂料或者油漆...接着回到你家,然后启动电脑,进入DOS,再接着打开油漆..用刷子沾一点,然后涂到屏幕上...你看变蓝了,多方便啊,而且你想写什么字就写什么字,都不用动脑子D...


哈哈
明天的事明天再说
RED_spring
驱动中牛
驱动中牛
  • 注册日期2002-07-28
  • 最后登录2016-11-06
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望19点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
  • 社区居民
15楼#
发布于:2004-06-10 13:49
我说说自己的看法:
首先,dos不是一个能运行多任务的操作系统,这在dos的书籍中有明确指出,否则微软也不会自断后路,用windows取而代之。
再就是dos对内存的管理的范围太小。完全属于“螺蛳壳里作道场”的情形。
最难的是你让多个程序同时运行。理论上虽说可以用类似多线程的办法轮换执行这些程序,但实际上同时在dos系统中驻留多个程序并运行是很困难的。一因为可供使用的内存太少,二是由于dos的中断功能是事先定义好的,你只能在这些定义好的功能中选择你所需要的某个功能。
  反过来看,从dos出现到被windows取代的那么多年间,不要说多任务程序了,较好的驻留内存的程序也是凤毛麟角、少之又少了。可见其难度之大。
   由于dos出现得很早,现在会dos成了稀罕之物。窃以为有特殊需要倒也罢了,否则没有必要为已经过时的东西费神。不知道兄台以为然否?  
  



同意。 看看32位的CPU对多任务的支持吧。 dos与windows之类的操作系统根本就不是一个时代的东西。(冷兵器时代和热兵器时代,哈哈) 不用火药的弓箭,即使构思再巧妙、设计再合理,也没粗制烂造的鸟枪打的远。所以对实模式的程序,你就别奢望太多了。
cltflq83
驱动牛犊
驱动牛犊
  • 注册日期2004-06-10
  • 最后登录2004-06-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2004-06-10 10:28
1、解决办法之一是截获 int 10h 和 int 21h中所有输出字符的功能,直接返回即可。挂接
中断的技术
很老了,不用我再说了吧?
2、对于剩下的一部分直接写视频缓冲区的程序,可以通过把视频显示页切换到非默认的页面
即可,这样
这些程序往标准的缓冲区地址写数据就显示不出来了。

3.编写一个tsr,调用时钟中断(int 1ah),将前景背景都设成1,即将b800:1h--b800:f9fh(奇数)单元填充为11h.
4.更好的方法是修改显示页号,一般程序都是

写0号页面,你可以将当前页面设置成1或其它,

就可以使应用程序的输出内容不显示出来了.
这么多方法,呵呵,应该可以完成你的要求了吧,今天没空,有空,我想写个源程序上传上来的!

如果你觉的难,我还教你下面一个方法,绝对简单易用,不过是和你开个玩笑的哦
告诉你一个你30分钟就能开发出来的方法,首先出去买一只刷子..接着买一桶0000CC色的涂料或者油漆...接着回到你家,然后启动电脑,进入DOS,再接着打开油漆..用刷子沾一点,然后涂到屏幕上...你看变蓝了,多方便啊,而且你想写什么字就写什么字,都不用动脑子D...
walkonthesky
驱动中牛
驱动中牛
  • 注册日期2003-11-26
  • 最后登录2012-11-06
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2004-06-10 08:47
看来楼上和我一样的投机

[img]http://www.driverdevelop.com/forum/upload/walkonthesky/2004-07-08_2004-07-07_b847.gif[/img]
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
18楼#
发布于:2004-06-09 20:49
控制到VGA的信号,不管是什么都显示blue,呵呵
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
19楼#
发布于:2004-06-09 20:06
有时间的话,还是考虑写一个拦截WINDOWS显示驱动的东西吧......
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
上一页
游客

返回顶部