基本上我使用IDA Pro从SPEC2006中反汇编一些二进制文件,并进行一些修改工作,使其在Windows 7 32bit上可以重新编程。
我在IDA Pro生成的反汇编asm代码中发现了一个问题:
;this is .text section
.....
LeadUpVec:
dd offset LeadUp1
dd offset LeadUp2
dd offset LeadUp3
LeadUp1:
;this is .text section
显然,IDA Pro将此跳转表放在代码中。
我使用nasm来汇编这段代码并生成它:
error: comma expected after operand 1
在四行中的每一行
我这样修改:
;this is .text section
.....
section .data <--- I add it here
LeadUpVec:
dd offset LeadUp1
dd offset LeadUp2
dd offset LeadUp3
section .text <--- I add it here
LeadUp1:
;this is .text section
但它仍然会在四条线中产生相同的错误......
error: comma expected after operand 1
有人可以给我一些帮助吗?谢谢你!
答案 0 :(得分:1)
好的,请将其视为“答案”。
Nasm不使用offset关键字。只是dd LeadUp1等应该这样做。如果你有很多'em',你可以%定义偏移量(没有任何东西)让Nasm忽略它。在section .text中有一个跳转表应该不是问题。内存将是只读的,但你可能不希望你的跳转表可写...