我正在尝试生成以下汇编代码的十六进制表示。我正在做一个缓冲区溢出实验室,我需要将命令放入堆栈。当我尝试使用命令编译以下代码时:
gcc -m32 -c assemblylevel2.s
我收到错误:
assemblylevel2.s:2:错误:表达式之后的垃圾“oc”
我尝试了使用mov,movl,push,pushl的不同排列的代码。这一切都会产生相同的错误。我怎样才能编译它?
assemblylevel2.s:
movl $0xfaa6ef53, 0x804d108
pushl $0x8048d0c
ret
答案 0 :(得分:3)
鉴于它在第2行抱怨oc
,我首先要检查你的代码是否 :
movl $0xfaa6ef53, 0x804d108
pushl $0x8048doc ;; oh-see rather than zero-see
ret
这肯定会使它成为无效的十六进制数,因此会导致错误,例如您所看到的内容。