sofree
驱动牛犊
驱动牛犊
  • 注册日期2002-11-20
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1428回复:6

怎么从dos的640k内存中挖取出一部分?(汇编)

楼主#
更多 发布于:2003-03-24 10:53
最近有个项目需要在int13中断里开个buffer,但int13是不允许直接这样做的,有人说可以在初始化时从dos的640k内存中挖取一部分,不知有谁知道具体该怎么做?
melchior
驱动牛犊
驱动牛犊
  • 注册日期2002-07-09
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望15点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2003-03-24 17:44
在0040:0000保存着BIOS信息。其中有一处记载着基本内存的大小。你可以通过改动它可以在基本内存的顶部获得一段空间。之后,没有人在会使用那段空间了。很多DOS病毒驻留内存都是这样做的。

前提是你必须是在纯DOS下。这年头,没有人用这个了。
magicx
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2014-08-18
  • 粉丝1
  • 关注0
  • 积分-14分
  • 威望13点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-03-24 20:24
在0040:0000保存着BIOS信息。其中有一处记载着基本内存的大小。你可以通过改动它可以在基本内存的顶部获得一段空间。之后,没有人在会使用那段空间了。很多DOS病毒驻留内存都是这样做的。

前提是你必须是在纯DOS下。这年头,没有人用这个了。


有一段历史了~~~ :P
[color=red]大头鬼! :P[/color]
sofree
驱动牛犊
驱动牛犊
  • 注册日期2002-11-20
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-03-25 09:29
那里有这方面的资料?
redsugar
驱动牛犊
驱动牛犊
  • 注册日期2003-03-05
  • 最后登录2009-06-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-03-25 10:23
那里有这方面的资料?


去买本《DOS/BIOS大全》之类的书看看。或参考一下十年前的经典病毒原码,就是那种感染后常规内存减少的。。STONE大概是吧,还有2708

[编辑 -  3/25/03 by  redsugar]
melchior
驱动牛犊
驱动牛犊
  • 注册日期2002-07-09
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望15点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
  • 社区居民
5楼#
发布于:2003-03-25 15:30
注意!你必须在DOS启动前就修改那个值!不然不起作用.你的代码可以写在系统盘的引导扇区里.确保你的程序是最先运行的.
Unique
驱动牛犊
驱动牛犊
  • 注册日期2003-04-16
  • 最后登录2003-05-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-04-17 10:42
通过打补丁不行吗?生成一个TSR程序,让INT 13H指向该程序,再由该程序指向原Int 13h.
游客

返回顶部