我通过WinHex工具把dos(其实跟windows的一样)的MBR复制了出来,下面是个链接,有谁知道如何把他们反汇编成汇编语言的?
是要对照intel的手册把机器码一个一个对应过去吗?还是有没有比较好的方法,求指教
[img=http://xiangce.baidu.com/picture/album/list/8eb703a80ecd6a23da9914de7f0f2f075e13504f][/img]
------最佳解决方案--------------------------------------------------------
同意楼上。用bochs单步,然后记下这些指令,不就结啦。
------其他解决方案--------------------------------------------------------
http://bbs.pediy.com/showthread.php?t=50714
------其他解决方案--------------------------------------------------------
用IDA
------其他解决方案--------------------------------------------------------
搜索一下disasm
其实网上也有不少MBR的代码
------其他解决方案--------------------------------------------------------
用nasm自帶的ndisasm.exe去反匯編
------其他解决方案--------------------------------------------------------
bochs 同学
------其他解决方案--------------------------------------------------------
MBR的话就是用debug就可以了,是EBR的话需要使用debug32.直接使用debug加载,反汇编就可以了。如果想模拟内存加载的地址的话,使用m命令将程序移动到0x7C00,你也可以一步一步使用t或者p命令跟踪程序(当然在windows98以上版本读磁盘是非法的),如果你喜欢命令行的形式,同时你熟悉debug或者是debug32的话,建议使用它们,如果不熟悉,那就是IDA了。
------其他解决方案--------------------------------------------------------
用W32DASM来反汇编,千万不要用DEBUG,DEBUG只能识别8086指令,80386的指令都不能识别。要想调试的话,用BOCHS虚拟机,可以单步调试的。
------其他解决方案--------------------------------------------------------
debug32玩过么??????????
------其他解决方案--------------------------------------------------------
楼上,请看清你的回复,你说EBR要用DEBUG32. 告诉你,MBR用DEBUG,不用DEBUG32的话,你也调试不下去. 就算你能调试下去. 请问你在系统下,调试MBR能明白什么东西? 能得到你要的结果???
------其他解决方案--------------------------------------------------------
用peter-bochs調試器吧
------其他解决方案--------------------------------------------------------
你确定使用debug不能反汇编MBR的代? 那么可以确定,你真的没有分析过MBR。就不要说EBR了!
------其他解决方案--------------------------------------------------------
MBR也有不少版本的,有些MBR都用32位的寄存器
------其他解决方案--------------------------------------------------------
我最近刚分析了XP与WIN7的MBR. WIN7 MBR中先不说别的,只说压栈立即数,DEBUG就不支持吧,不要跟我说用DEBUG32. 就算你能反汇编,你能调试吗? MBR要调用BIOS读取硬盘扇区,在系统下恐怕调试不了.