关于vista引导代码的机器码。

zhgwbzhd 2009-06-09 09:51:03
vista的引导扇区的代码。

0000:EB 52

0054:FA //CLI
0055:33C0 //XOR AX,AX
0057:8ED0 //MOV SS,AX [SS=0]
0059:BC007C //MOV SP,7C00 [SP=7C00]
005C:FB //STI
005D:68C007 //PUSH 07C0 这个应该是这个意思吧
0060:1F //POP DS DS=07C0
0061:1E //PUSH DS 下面要跳的段基址
0062:686600 //PUSH 0066 下面要跳的偏移
0065:CB //RETF 跳到07C0:0066 也就是 0000:7C66 处执行

由于MBR代码会读该扇区到 0000:7C00,也就是接着执行这里
可是下面的代码如何解释呢??
0066:88 16 0E 00 66 81 3E 03 00 4E 54 46 53

如果解释为
0066:88 16 0E 00 //MOV BYTE [000E],DL 可是上面还没有给DL赋值呢啊。

谢谢高手指点啊。
...全文
121 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhgwbzhd 2009-06-15
  • 打赏
  • 举报
回复
谢谢!007.
这个中断确实是一个测试作用。
十分感谢你提供的资料。

我从google上输入int1A确没有找到。汗。。。。
zhgwbzhd 2009-06-15
  • 打赏
  • 举报
回复
终于找到了 微软的 官方资料了。
真不容易啊。

http://www.microsoft.com/whdc/system/platform/hwsecurity/BitLockerReq.mspx

右边的 “BitLockerReq.doc”文档中


BIOS 92.12.5
The TCG BIOS Interface must implement the TCG_StatusCheck function.
The input parameters must be interpreted as follows:
• AX = BB00h.
• All other registers are ignored.

The TCG_StatusCheck function has the following return requirements:
• EAX = 0h or EAX [31:16] = TCG_INTERFACE_SHUTDOWN and EAX [15:0] = TCG_PC_TPM_ERROR if the interface has been shut down.
• EBX = 41504354h.
• ECX = version (described below).
• EDX = feature flags (currently 0).
• ESI = 32-bit physical address of the TCG Event log. This must not be zero.
• EDI = 32-bit physical address of the first byte of the last event of the log.
• CF = 0.
• CS, DS, ES, SS, ESP and EBP must be preserved.

The version (ECX) must indicate a TPM version of at least 1.2. The fields are as follows:
• Bits 7:0(CL)=TCG BIOS Minor Version (02h for v1.2).
• Bits 15:8(CH)=TCG BIOS Major Version (01h for v1.0).
• Bits 23:16=Errata Level (00h for v1.2, 01h for v1.21).
• Bits 31:24=Reserved, must be 0.

A BIOS that wants to explicitly indicate that the TCG BIOS Interface is not supported should ensure that the following return conditions are met:
• EAX is non-zero.
• EBX is not explicitly set to 41504354h.
• CF is set.

Suggested verification metrics:
• Call function with EAX = 1234BB00h, EBX = AABBCCDDh, ECX = FFFF0000h and verify on return registers are as expected.
• Verify ECX [15:0] returns a version >= 0x0102h (according to current TCG Specification version).
• Verify ECX [23:16] returns correct errata version, 0 or 1 if ECX [15:0] == 0x0102h. Verify ECX [23:16] is not FFh.
• Verify ECX [31:24] returns 0h.
• Verify function returns correct EAX value after interface has been shut down.


高兴中 。。。。。。。。。。。。。。
pla_007 2009-06-12
  • 打赏
  • 举报
回复
刚才google了一下,找到一些资料,是做一个“TCG_STATUS”的检测。
+/*
+ * BIOS call "INT 1Ah, (AH)=BBh,(AL)=00h" TCG_StatusCheck
+ * Call with %ah = 0xBB
+ * %al = 0x00
+ *
+ * Return: %eax = TCG_STATUS
+ * %ebx = 'TCPA'
+ *
+ * Ref:
+ * TCG PC Client Specific Implementation Specification for Conventional BIOS v1.2,
+ * Section 12.5 (page 85)
+ */
+tcg_statuscheck:
+ movw $0xbb00, %ax /* TCG_StatusCheck */
+ int $0x1a
+ test %eax, %eax
+ jnz tcg_end /* if eax != 0 */


如还想知道更多的材料,自己要花时间去看一下,具体可以参看以下网站:

http://sourceforge.jp/projects/openpts/wiki/PlatformBiosInt1AhInfo

http://www.trustedcomputinggroup.org/


zhgwbzhd 2009-06-12
  • 打赏
  • 举报
回复
恩第一个问题我基本上明白了。

是因为前面要读取该启动扇区到某个指定的位置。

所以要用到 INT13,并且已经把 DL 的值设定为硬盘了。

所以这里开始也没有改变DL 的值,所以直接就可以用了。

如果是MBR程序,估计就不会这样了。

第2个问题。

关于 INT1A 的 ax=bb00的中断

现在还没有搞明白。
hz_yck 2009-06-10
  • 打赏
  • 举报
回复
dl 可能是中断的返回值吧

int 1a, ax = bb00我也没找到
zhgwbzhd 2009-06-09
  • 打赏
  • 举报
回复
另外啊。
怎么vista用到了一个 INT1A 的 ax=bb00的中断??
这个是干嘛的??

没找到这个中断的作用啊!

谢谢!
内容概要:本文深入研究了电力系统状态估计问题,重点围绕无迹卡尔曼滤波(UKF)、自适应无迹卡尔曼滤波(AUKF)以及扩展无迹卡尔曼滤波(EUKF)三种先进非线性滤波方法展开理论分析与仿真验证。通过Matlab平台实现了完整的算法架构与系统建模,系统地比较了各方法在处理电力系统非线性动态特性及噪声干扰方面的性能差异,旨在提升电压幅值、相角等关键状态变量的估计精度与鲁棒性。研究突出了算法在智能电网实时监控、故障诊断与动态调度中的应用潜力,并提供了可复现的代码支持。; 适合人群:具备电力系统分析基础和Matlab编程能力的研究生、科研人员,以及从事电力自动化、智能电网状态监测与控制相关的工程技术人员。; 使用场景及目标:①掌握UKF、AUKF与EUKF在非线性状态估计中的建模流程与实现细节;②应用于电力系统实时数据融合、动态安全评估与运行优化,提升估计系统的抗噪能力与适应性;③为学术论文撰写、课题申报或工程原型开发提供算法参考与仿真基础。; 阅读建议:建议结合Matlab环境逐模块调试代码,深入理解滤波器在不同噪声水平和系统非线性程度下的响应特性,重点关注协方差自适应机制与数值稳定性处理策略,并可根据具体应用场景调整系统模型与参数配置以优化性能。
【重要提示】本资源设置为0积分下载,若非0积分请勿轻易下载 亲爱的CSDN用户: 首先感谢你点进这个资源页面。我需要提前说明一个重要情况: 本资源原本已设置为“0积分下载”,即作者希望完全免费共享。但CSDN平台有时会根据文件的下载热度、文件大小、用户权限等因素,自动将部分资源的积分调整为非0数值(如1积分、2积分、5积分等)。这是平台系统的自动行为,而非作者本人的设定。 因此,如果你当前看到该资源的下载所需积分不是0(例如显示为1、2、3……),请谨慎决定是否下载。 如果你按照非0积分支付并下载后发现资源内容不符合预期、链接失效,或者实际上该资源本应是免费的,作者无法为此承担积分损失或退还操作。强烈建议:仅在页面显示为0积分时进行下载。 另外,本资源描述中并未直接提供具体的下载地址或外部链接,因为它本身是一个通过CSDN官方上传通道提交的文件/内容包。如果你看到描述中没有外部网盘地址,这是正常的——资源文件应通过CSDN内置的“下载”按钮获取。若因平台积分显示异常导致你支付了积分,请优先联系CSDN客服咨询积分退还政策,作者没有权限修改平台自动设定的积分值。 感谢你的理解与支持。技术分享本应开放,但受限于平台规则,特此提醒如上。祝学习进步!

21,500

社区成员

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

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