Macos 在哪里可以找到学习OSX上汇编程序的工具?
我想学汇编语言。然而,使用OSX进行汇编的资源很少 有没有人在Mac上进行过汇编编程?你在哪里学的Macos 在哪里可以找到学习OSX上汇编程序的工具?,macos,assembly,Macos,Assembly,我想学汇编语言。然而,使用OSX进行汇编的资源很少 有没有人在Mac上进行过汇编编程?你在哪里学的 还有,有什么理由我不应该做装配吗?我是否有可能(显著地)使我的计算机无法修复地崩溃?你没有理由不这样做;在汇编语言中,没有什么是在更高级的语言(如C)中做不到的 就工具而言,您可能希望安装并获得GNU汇编程序。这可能是最简单的方法,也可能不是,但它是免费的,您可能可以在网上的某个地方找到用GNU汇编程序编写Unix程序的教程文档。XCode(即GCC)非常支持编写汇编程序。这是一件很有趣的事情(尽
还有,有什么理由我不应该做装配吗?我是否有可能(显著地)使我的计算机无法修复地崩溃?你没有理由不这样做;在汇编语言中,没有什么是在更高级的语言(如C)中做不到的 就工具而言,您可能希望安装并获得GNU汇编程序。这可能是最简单的方法,也可能不是,但它是免费的,您可能可以在网上的某个地方找到用GNU汇编程序编写Unix程序的教程文档。XCode(即GCC)非常支持编写汇编程序。这是一件很有趣的事情(尽管你不太需要它),最糟糕的情况是你正在编写的程序崩溃,就像在C语言中一样。只要在谷歌上搜索“gcc内联asm x86教程”,你就会找到很多起点。不要担心有些可能是特定于Linux的,它们在XCode中也能正常工作
(编辑)…当然,假设你有一台英特尔Mac电脑;如果没有,则将“x86”替换为“ppc”。如果您使用的是PowerPC Mac,请查看gcc内联汇编程序。否则,请查看nasm。我不能给出任何关于PPC ASM的适当参考(它们很少,而且相差很远),但我建议学习x86 ASM的以下内容:
- 书
- 使用gcc-S编译简单C源代码并读取生成的程序集
- 使用
- 在irc.freenode.net上加入#openrce并使用
编辑:另外,从XCode而不是Macports之类的地方获取gcc之类的东西。如果你不这样做的话,你将面临一个格式错误的Mach-O文件的世界。当你刚刚开始asm黑客攻击时,诊断文件格式问题并不有趣。Nasm/yasm是你最好的选择;gcc内联语法非常糟糕,有时使用起来会非常痛苦,另外还有一些事情它确实做不到。Nasm的宏语法也有用得多,它是一种类似汇编的语言,没有内置模板功能。汇编语言由硬件平台而不是操作系统决定。鉴于OSX在英特尔平台上运行,并且是64位的,您应该查找有关x64(也称为AMD64)汇编程序的信息。查看Wikipedia文章()中有关x64文档的大量链接 另外,OSX工具文档可能包含大量关于x64汇编程序的信息。特别是,Netwide Assembler(NASM-)可能有关于如何使用Assembler构建OS X应用程序的文档。 我在Mac电脑上编程组装。这是摩托罗拉680x0汇编使用MPW。在CodeWarrior和ProjectBuilder中,我曾多次接触PowerPC汇编程序。现在ProjectBuilder被称为XCode,还有Intel。汇编程序是XCode中众多工具之一 我最初是在Apple II上学习汇编程序的:内置于ROM中的6502机器语言监视器、Sweet16迷你汇编程序以及其他。后来,我用英特尔80186汇编程序来加速C代码的慢段,并在一所大学学习了一天的英特尔80186汇编程序课程。后来,我不得不为Mac维护一些680x0组件。那是很久以前的事了 我认为没有任何理由不做装配。学习是伟大的。尽你所能学习。进入足够低级别的调试器,查看反汇编代码 我的建议是: 别害怕
要开始学习汇编,您可能需要从简单的C程序开始,并要求GCC使用-S选项为其生成汇编代码:
gcc -S hello.c -o hello.asm
然后,您将能够理解如何调用函数、传递参数等。在带有操作系统的系统上编写汇编语言需要了解两件事(与“裸机”汇编相反,裸机汇编本身就是一个世界):
一个很好的起点是。如果您已经安装了开发工具,只需打开终端并键入(-Binutils的一部分)。对于PPC,请尝试Lightsoft在学习x86 ASM之前学习x86-64 ASM就像在学习第一个单词之前写一首史诗。里面有太多的东西会绊倒新人。绝对不推荐。编写64位OSX应用程序需要付出努力;默认为32位。当然,我不是Mac开发者。然而,OSX是64位的,并且声称Xcode 3.0支持构建64位应用程序,所以这不只是开发人员的选择吗?当然知道自己在做什么,但这同样适用于构建32位应用程序。使用NASM存在一些问题,即使是在32位模式下使用Apple docs。NASM的-f macho选项和gcc的-arch i386(用于链接)使一些错误消失。对于链接来说,似乎很有希望。该网站不再提供PPC软件。