加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

调试 – DOS调试类似于32位x86程序集的程序

发布时间:2020-12-14 02:22:43 所属栏目:Windows 来源:网络整理
导读:你们许多人可能还记得旧的DOS程序 – 调试.虽然在许多方面已经过时,但其中一个好处是可以轻松找到给定指令的字节序列,而无需完成编写程序,编译,反汇编,检查文件内容的步骤. ..输入指令,然后转储指令地址.令人遗憾的是’debug’不会执行32位指令. 有没有人知
你们许多人可能还记得旧的DOS程序 – 调试.虽然在许多方面已经过时,但其中一个好处是可以轻松找到给定指令的字节序列,而无需完成编写程序,编译,反汇编,检查文件内容的步骤. ..输入指令,然后转储指令地址.令人遗憾的是’debug’不会执行32位指令.

有没有人知道一个类似于32位x86指令的工具?我不想经历整个编译过程;我只需要能够输入几条指令并让它显示指令的长度及其字节序列.

解决方法

DOS调试是一个交互式汇编程序以及一个调试器,输入汇编代码导致该行被立即转换为机器代码 – 这就是你抛出的东西.

因此,您只需使用脚本或批处理文件自动化您喜欢的汇编程序.

这是我使用流行的nasm汇编程序在一两分钟内提出的bash函数:

opcode() {
  echo $* > tmp.S && nasm tmp.S -o tmp.o && od -x tmp.o
  rm -f tmp.o tmp.S
}

不到一秒钟.调用如下所示:

$opcode mov eax,[ebx]
0000000 6667 038b
0000004
$opcode fadd st0,st1
0000000 c1d8
0000002

不是很棒,但你可以调整od命令行以获得更好的输出.只要您告诉它使用简单的二进制输出格式,这个想法应该适用于任何命令行汇编程序.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读