我想学习汇编程序.但是,使用OS X进行汇编程序的资源非常少.
是否有人在Mac上进行程序集编程?你在哪里学习的?
而且,我有什么理由不做集会吗?我是否冒着(显着)使我的计算机崩溃的风险无可挽回?
如果您使用的是PowerPC Mac,请查看gcc内联汇编程序.否则,请查看nasm.我不能给PPC ASM提供任何体面的参考(他们很少和很远),但我建议以下事项来学习x86 asm:
这本书由Eldad Eilam翻译
使用gcc -S编译简单的C源并读取生成的程序集
使用Sandpile
在irc.freenode.net上加入#openrce并使用OpenRCE
此外,如果你不处于内核模式,那么就没有机会搞砸任何东西,真的,即使你处于内核模式,也很难真正破坏任何东西.
编辑:此外,从XCode获取gcc等,而不是Macports或其他.如果你不这样做,你就会陷入畸形的Mach-O文件世界.当你刚刚开始asm hacking时诊断文件格式问题并不好玩.
汇编语言由硬件平台决定,而不是由操作系统决定.鉴于OS X在Intel平台上运行且为64位,您应该查找有关x64(也称为AMD64)汇编程序的信息.查看维基百科文章(http://en.wikipedia.org/wiki/X86-64),获取有关x64文档的大量链接.
此外,OS X工具文档可能包含有关x64汇编程序的大量信息.特别是,Netwide Assembler(NASM - http://developer.apple.com/documentation/DeveloperTools/nasm/nasmdoc0.html)可能有关于如何使用汇编程序构建OS X应用程序的文档.
要开始学习汇编,您可能希望从简单的C程序开始,并要求GCC使用-S选项为其生成汇编代码:
gcc -S hello.c -o hello.asm
然后,您将能够理解如何调用函数,传递参数等.