怎样将BIOS ROM中的内容反汇编成汇编指令?

moonsheepneu 2003-08-21 11:03:09
可以使用那个的工具软件?
AWARD BIOS使用哪一套指令系统
...全文
352 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
ffwin 2003-11-26
  • 打赏
  • 举报
回复
有个很现成的工具为什么不用?用sr6或者sr7中的一个附件,可以直接将bios,显示卡的信息等,以及字符发生器以及字模等反编译出来。
ChinaPlayer 2003-11-26
  • 打赏
  • 举报
回复
mark
SoRoMan 2003-10-29
  • 打赏
  • 举报
回复
除了boot block,bios裡的其它內容肯定是壓縮過的。bios在執行過程中,將要加載的部分解壓後load到影射內存(UMB范圍內)執行。bios代碼中很多的跳越點(call),可以看出在影射內存的執行位置。所以,讀出壓縮過的代碼直接反匯編或從內存中反匯編肯定不行。一般都是用debug卡,通過串口或並口連另外一台pc調試。但要在源代碼中設置斷點,所以不是那麼好反匯編出來的。很多廠商只是在幾個bios大戶受權的源代碼中增添一些個性功能。有實力的研發單位少啊。
Rayanywhere 2003-10-29
  • 打赏
  • 举报
回复
楼上的 那个pdf文件那里可以下载到啊?
cuicui2060 2003-10-29
  • 打赏
  • 举报
回复
我现在也在反汇编BIOS代码,用的是W32DSM,源文件没后缀,我改成。EXE后反编译。在FFFF0处得到第一条指令
:0001.0000 EA2300FFF8 jmp F8FF:0023
我想应该就是入口吧,但是继续在F9013处得到的是:
:0001.0000 FFFFFFFFFFFFFFFFFFFF BYTE 10 DUP(0ffh)
后面一直重复这段代码。直到:
:0001.6FDC 00EA add dl, ch
:0001.6FDE 2300 and ax, [bx+si]
:0001.6FE0 FF BYTE 0ffh
:0001.6FE1 F8 clc
:0001.6FE2 FFFFFFFFFFFFFFFFFFFF BYTE 10 DUP(0ffh)
目前还在思考中,先贴出来以共参考,希望对你有帮助:)
uhml 2003-09-13
  • 打赏
  • 举报
回复
《BIOS研发技术剖析》
作者:陈文钦著 出版日期:2001年9月第1版 页数:488
超星转的PDF版
pcbs@sohu.com
home.91i.net/richardhuang
hswxf 2003-09-12
  • 打赏
  • 举报
回复
楼主:
太炒了
你要什么样子的,我给你一个汇编下的,是用INTEL的还是68000的等
W32API 2003-09-10
  • 打赏
  • 举报
回复
呵呵,我看该是发我那个贴上的了。。。。

TO:BadEnglish(BadEnglish)兄
多谢支持,希望继续帮忙
BadEnglish 2003-09-10
  • 打赏
  • 举报
回复
对不起,上面发错地方了,删除
BadEnglish 2003-09-10
  • 打赏
  • 举报
回复
你的要求是“对 一些控制参数,控制方法,
或输出的内容进行修改”
如此高的要求恐怕只能先猜出指令集来反汇编了。
如果只是修改某个参数,也许还可以碰碰运气,
前面有人提过的类似办法,
找0聚集的区域应该是存储全局变量的地方,
看看有没有某个眼熟的数字(参数)。
hswxf 2003-09-09
  • 打赏
  • 举报
回复
BIOS的内容有二个方法可以获取:
1、有很多的BIOS文件上网站找到打开就行了至于工具由你喜好定
2、用编程器读出再编译
W32API 2003-09-09
  • 打赏
  • 举报
回复
怎么不能?你一边跟踪一边调试,什么都出来了
xuanyuanhaobo 2003-09-09
  • 打赏
  • 举报
回复
Fanyunfeng(Fanyunfeng)

说得非常正确,如果你们想看什么东东的话,几乎看不出什么名堂,除非先执行,将他们全解压
Fanyunfeng 2003-09-08
  • 打赏
  • 举报
回复
好向没那么容易,一些BIOS使用压缩技术,读出的不定是什么东西,直接反汇编我觉得只能得到一部分内容.
zhangze 2003-09-08
  • 打赏
  • 举报
回复
读BIOS程序很好写.70写地址.71读数据.一个循环搞定,晕倒,这样读出来的cmos内容,和bios无关。
cmos是数据,bios是程序及接口。我认为可以用 Shui_Shui(阿水水) 的方法,但是我从一些资料得知,bios程序是经过压缩保存的,所以如果想好好研究的话,就得把它解压了。
我从别的资料还得知:
计算机启动之后程序定位在ffff:fff0的位置(我记得是这个位置,不能保证其正确性),但通常该位置是一个跳转,我分析了以后的部分程序,这里的程序应该是已经解压之后的。如果我们在实模式下直接将程序跳转到这里,当然,电脑冷启动。对于这种方法得到的结果,我不知道是正确还是不正确,因为我无法验证
W32API 2003-09-08
  • 打赏
  • 举报
回复
倒了~~~~~~~~~~~~
不会象读 EEPROM 的方式读啊
用 IC 读写器就 OK 了嘛。。。
kuangjingbo 2003-09-08
  • 打赏
  • 举报
回复
用循环读出,然后反汇编应该可以。
BadEnglish 2003-09-08
  • 打赏
  • 举报
回复
有这书吗?什么CPU的?不是8088的吧?
SoRoMan 2003-09-08
  • 打赏
  • 举报
回复
好像有一本<<BIOS核心剖析>>
里面附有几例BIOS源代码,详细分析了BIOS工作原理及编写.
很不错哦!
djygrdzh 2003-09-06
  • 打赏
  • 举报
回复
to 搂主:用软件的方法读出bios代码理论上是可行的,你可以试着直接读取最高1M内存的内容,如果读到0FFFFFFF0以下10字节的内容为ea 0e5b......那就说明你成功了:)那是一个长跳转,AMD,Award和phoenix三家公司的bios第一条指令都是这个。
加载更多回复(10)

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧