Disassemble into x86_64 on OSX10.6 (But with _Intel_ Syntax)

血红的双手。 提交于 2019-12-04 10:38:33

问题


I know of otool -tv, but I would much rather use the Intel syntax rather than AT&Ts, mainly to easily follow along in a book and not have to look over thousands of %'s and $'s.

I'd also appreciate any tips to where I might find gdb's config file.

EDIT: I forgot: I'm running a 64bit processor, but was wondering if it would be possible to also disassemble into 32 bit assembly? Not only that, but does OSX's gdb's list command work differently than the standard GNU version?

Thanks so much!

(Also, if you have any idea where I might find a little disassembler from C -> MIPS, that'd be very fun to play with. But not necessary!)


回答1:


To answer your second question, if the code has been compiled into a fat binary with both 64-bit and 32-bit, you can use otool -arch i386 -tv to disassemble the 32-bit slice of the binary; otool -arch x86_64 -tv will give you the 64-bit portion (on SnowLeopard, this is also the default behavior if no -arch flag is passed).

Also note that while otool doesn't support the Intel syntax, gdb (set disassembly-flavor intel) and XCode (Preferences -> Debugging -> Disassembly Style) do.




回答2:


(I know this is an old question, but I want to provide an updated answer for people who come here through search engines).

On recent versions of macOS (I'm running 10.14.5), an objdump command is available, which is based on LLVM and is not the one from the GNU project. It offers a (hidden) option to disassemble using Intel syntax. For example, /bin/echo can be disassembled as follows:

objdump -disassemble -x86-asm-syntax=intel /bin/echo



回答3:


With Objdump you can disassemble with -d -M intel, and apparently -m can be used to specify the architecture.




回答4:


For GDB, in your .gdbinit file, add:

set disassembly-flavor intel

then it will be the default syntax for gdb.




回答5:


You can use A2I to translate from AT&T to Intel syntax: http://membres.lycos.fr/placr/a2i.html



来源:https://stackoverflow.com/questions/1727958/disassemble-into-x86-64-on-osx10-6-but-with-intel-syntax

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!