sjinc88
驱动牛犊
驱动牛犊
  • 注册日期2004-06-28
  • 最后登录2004-07-14
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1816回复:6

求助?初学者该如何入门?

楼主#
更多 发布于:2004-06-28 15:21
请问初学firmware,该如何入门?
有那方面的教程,
用UltraEdit打开bin文件为什么只能看到16进制的乱码?有的却只有一堆数字,我该如何来转换成能看懂的?



[编辑 -  6/30/04 by  sjinc88]
cat339
驱动牛犊
驱动牛犊
  • 注册日期2003-10-22
  • 最后登录2005-01-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-06-29 15:54
Firmware也分肺
sjinc88
驱动牛犊
驱动牛犊
  • 注册日期2004-06-28
  • 最后登录2004-07-14
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-06-30 13:15
是*.bin
firmerliu
驱动牛犊
驱动牛犊
  • 注册日期2003-02-19
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分71分
  • 威望206点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-07-08 16:07
*.bin是经过编译后的文件,初学者当然是看不懂了。
学FirmWare,一是要有编程的思路,二是要学会看懂硬件结构。一切都得靠自己。现在市面上有关这方面的书很多的,一般大学电子与计算机专业方面的都有开51的课,多看看教材,好好学就行了。不要想一下子就会,一天会一点就行了。
冰冻三尺非一日之寒
sjinc88
驱动牛犊
驱动牛犊
  • 注册日期2004-06-28
  • 最后登录2004-07-14
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-07-08 17:06
有没有比较直接的,如用什么软件转换
mstidragon
驱动牛犊
驱动牛犊
  • 注册日期2004-06-30
  • 最后登录2009-09-14
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望3点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-07-09 11:02
你如果要看懂别人的*.bin文件的话,首先你要精通汇编.然后要熟记一些常用的机器码和汇编的对应转化关系,对一些编译原理,段之类的都要有一定的了解,还有需要多看SPEC,这样你才会明白里面的一些数字的含义.比如说你拿到一个BIOS的bin文件,看到一个"EA 5B E0 00 F0"这样的16进制代码,那么你应该可以想到这是一个JMP的跳转指令,实际上是跳到f000:e05b处执行代码.EO5B是什么?就是BIOS规范里定义的POST的入口地址.实际上这个数字一般出现在fff0处,因为计算机启动的时候一般就是从f000:fff0处执行代码,而且这个地方一般放的都是一条跳转指令.再比如说你看到一个"E8...."什么的,这有可能就是一条"call"指令.还有你如果看到"52 53 44 54"这样的东西,这有可能就是RSDT(ROOT SYSTEM DESCRIPTION TABLE,ACPI TABLE的一部分,98启动可以没有ACPI,2000有的版本需要,有的不需要,如果要启动XP,bios里面必须有ACPI,MS的下一代操作系统,也需要BIOS vendor在bios里面提供ACPI)结构的开始位置了,然后你根据规范,第几个成员变量,找到它指向的其他结构的指针地址,然后通过计算,一般又可以找到其他ACPI表的地址.要看懂别人编译好的bin文件的话,其实也不需要太长的时间,但需要有高人指点,被指点次数多了,你也不知不觉的会了.
sjinc88
驱动牛犊
驱动牛犊
  • 注册日期2004-06-28
  • 最后登录2004-07-14
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-07-11 16:23
多谢指点!!!
   不知对于*.hex的文件又该如何处理,如
:020000020000FC
:1000000000017C9247D320010801FFFF00017C9290
:1000100000017C9200017C9200017C9200017C92A4
:1000200000017C9200017C9200017C920001F32C83
:100030000000F7D4000117B000005AA600017C921E
:1000400000017C9200017C9200017C9200017C9274
:100050000001844400017C9200017C9200017C92AA
:1000600000017C9200007BA200017C9200017C9246
:1000700000017C9200017C9200017C9200017C9244
:1000800000017C9200017C9200017C9200017C9234
:1000900000017C9200002DD800017C9200017C922E
:1000A00000017C9200017C9200017C9200017C9214
游客

返回顶部