PC主板上的ROM中有个一出产日期,在内存FFF00H-FFFFFH的某几个单元中,请找到这个出产日期并试图改变它。

codelabs 2009-12-30 03:56:46
原题:PC主板上的ROM中有个一出产日期,在内存FFF00H-FFFFFH的某几个单元中,请找到这个出产日期并试图改变它。

我的思路:内存的地址=段地址*16+指针偏移地址
所以 FFF00=FFF0*16+0; FFFFF=FFFF*16+F
我在DEBUG中输入 -D FFF0:0 F
显示的是FFF0:0000 EF 53 FF 65 F0 4D F8 41 -F8 59 EC 39 E7 59 F8 32 .S.e.M.A.Y.9.Y.2

请问是我分析错了 还是本来就是这么显示的?
还有 原书中说:一个具体的物理地址可以有种段地址和偏移地址组成,那么为什么这题中只提示了内存地址就能判断出段地址和偏移地址呢?
通过这个问题我主要是想了解下 如果知道一个具体的内存地址,我们怎么推断出他的段地址和偏移地址?
接触汇编几天云云的
...全文
3478 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
wlnh_2004 2012-05-11
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 的回复:]

我的地址是在ffff:0 f,我也试着改了,确实改不了,可以不可以具体说下怎么改??
[/Quote]

我的可以改,但是重启以后又恢复了,用 e 命令改

e ffff:5 c "12/12/12"

love7200 2012-05-09
  • 打赏
  • 举报
回复
我的地址是在ffff:0 f,我也试着改了,确实改不了,可以不可以具体说下怎么改??
CL_it0204 2012-04-22
  • 打赏
  • 举报
回复
具体更改的步骤能说一下吗
newstyle2007 2012-02-04
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 tired456 的回复:]

我也做了这个题,找到了,而且试图改了,悲剧的是,还真的改掉了,更悲剧的是,还改了很多其他内容,并且不知道原来是什么,不会有什么后果吧?担惊啊
看了答案才知道,有些PC的ROM是可以改的,唉,悲催
[/Quote]
和你一样,我的也改成功了,吓了一跳
tired456 2011-10-01
  • 打赏
  • 举报
回复
我也做了这个题,找到了,而且试图改了,悲剧的是,还真的改掉了,更悲剧的是,还改了很多其他内容,并且不知道原来是什么,不会有什么后果吧?担惊啊
看了答案才知道,有些PC的ROM是可以改的,唉,悲催
疯夜 2011-09-07
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 yangli524685 的回复:]
引用 8 楼 ylq0808 的回复:

在内存fff0:f5 fc内存段中吧,这日期改变不了,只读存储器只能够读,不能够改写

-d fff0:f5 fc

FFF0:00F0 30 38 2F-31 33 2F 30 38 08/13/08
-
08/13/08是怎么得到的??求高手解答
[/Quote]在debug里,查询后就可以看到的
yangli524685 2011-08-15
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 ylq0808 的回复:]

在内存fff0:f5 fc内存段中吧,这日期改变不了,只读存储器只能够读,不能够改写

-d fff0:f5 fc

FFF0:00F0 30 38 2F-31 33 2F 30 38 08/13/08
-
[/Quote]08/13/08是怎么得到的??求高手解答
q254127863 2011-04-27
  • 打赏
  • 举报
回复
我也在做这个 我找到的地址是 FFF0:00F0 不知道不同主板是不是一样的。
ylq0808 2009-12-31
  • 打赏
  • 举报
回复
在内存fff0:f5 fc内存段中吧,这日期改变不了,只读存储器只能够读,不能够改写

-d fff0:f5 fc

FFF0:00F0 30 38 2F-31 33 2F 30 38 08/13/08
-
lucifer32 2009-12-31
  • 打赏
  • 举报
回复
BIOSROM应该都要校验和的, --> 我这个没看见校验和不通过啊, 反正正常开机了
cxdzxc 2009-12-31
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 lucifer32 的回复:]
PC主板上的ROM中有个一出产日期,

这个日期在电脑reset时候执行的第一条跳转指令附近, 地址在FFFF0=FFFF*16+0; FFFFF=FFFF*16+F
所以你的地址计算错误.
用debug如下:
-d ffff:0 f
FFFF:0000 EA 5B E0 00 F0 (date here...)

还有, 你想要改变这个地址内容, 直接写MEM是没用的, 因为这时候northbridge中会设置LOCK来关闭shadowMemory, 具体看MCH spec(PAM0—Programmable Attribute Map) , 而且, 就算这样改成功, reset之后还是会还原.  如果没源代码, 真正要改的话, 需要找到用的FLASH ROM是那个厂家生产的, 然后去找这个厂家这个类型的FLASH ROM的读写方法,非常的麻烦, 但是我试成功过. 其他的比如读ROM binary然后改, 我在binary里面找不到日期, 所以失败了.
[/Quote]
没这么容易吧,BIOSROM应该都要校验和的,即使你取下芯片用编程器改写,也过不了校验和检测那一关的.
lucifer32 2009-12-31
  • 打赏
  • 举报
回复

PC主板上的ROM中有个一出产日期,

这个日期在电脑reset时候执行的第一条跳转指令附近, 地址在FFFF0=FFFF*16+0; FFFFF=FFFF*16+F
所以你的地址计算错误.
用debug如下:
-d ffff:0 f
FFFF:0000 EA 5B E0 00 F0 (date here...)

还有, 你想要改变这个地址内容, 直接写MEM是没用的, 因为这时候northbridge中会设置LOCK来关闭shadowMemory, 具体看MCH spec(PAM0—Programmable Attribute Map) , 而且, 就算这样改成功, reset之后还是会还原. 如果没源代码, 真正要改的话, 需要找到用的FLASH ROM是那个厂家生产的, 然后去找这个厂家这个类型的FLASH ROM的读写方法,非常的麻烦, 但是我试成功过. 其他的比如读ROM binary然后改, 我在binary里面找不到日期, 所以失败了.
cxdzxc 2009-12-31
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 lucifer32 的回复:]
BIOSROM应该都要校验和的, --> 我这个没看见校验和不通过啊, 反正正常开机了

[/Quote]
莫非你是用工具改的,或者你的那个BIOS不是原厂的,已经屏蔽掉校验和的代码了
lucifer32 2009-12-31
  • 打赏
  • 举报
回复
只读存储器只能够读 -> 你试试把北桥PCI HOST BRIDGE的90H的地方值改成33, 然后用debug的e指令修改, 可以看到能修改的. 这段空间只是shadow ram, 仅intel, AMD的chipset不清楚
  • 打赏
  • 举报
回复
ffff:0005
PC上的BIOS都保持此位置的兼容。
chunxiao8543 2009-12-30
  • 打赏
  • 举报
回复
貌似上面写错了,
应该是-D FFF0:0,FF
256个字节的内容才对。

还有对主板BIOS不了解,上面说的仅针对问题。
满桌烟灰 2009-12-30
  • 打赏
  • 举报
回复
ROM是只读存储器,即使你知道地方,也得用编程器去写。
建议找到该ROM的二进制文件,在进行分析。
chunxiao8543 2009-12-30
  • 打赏
  • 举报
回复
应该是-D FFFF:0,FF
256个字节的内容才对。

21,459

社区成员

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

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