用于检查iOS编译的ARM反汇编程序/交叉编译器

|| 谁能推荐: 在Windows或MacOS上运行的ARM反汇编程序,可以理想地理解iOS使用的可执行格式 在MacOS中,这是一种直接从命令行调用XCode安装的交叉编译GCC的方式(这样我就可以在一个小的测试文件上运行它,并请求程序集输出)。 基本上,我很想了解XCode / gcc如何为ARM / iOS编译某些内容以帮助我进行优化。如您所见,尽管我同时具有Windows和Linux的背景知识,但从根本上讲我不是Mac专家,所以我不太熟悉例如XCode将其所有gubbinry或iOS使用的任何二进制格式的内容进行整合。 我并不特别在意在Mac OS还是Windows下执行“反汇编”,但是我试图避免的是安装全新的GCC副本,该副本配置为交叉编译为ARM,大概是XCode已经在某处安装了一个非常好的装置...任何帮助表示赞赏。     
已邀请:
  在Windows或MacOS上运行的ARM反汇编程序,可以理想地理解iOS使用的可执行格式 我可以建议您使用LLVM。如果使用默认选项构建,则<0>将反汇编ARM。 另外,看起来像http://developer.apple.com/technologies/tools/whats-new.html Apple在iOS SDK中使用LLVM工具链。     
您可以随时使用otool反汇编程序。这是相当基本的,但是可以完成工作。 IDA Pro可以反汇编iOS中使用的ARM Mach-O文件。 (以我的偏见),使用该功能比查看已失效的列表要好得多。您可以检查它在演示版本中如何工作。 免责声明:我为Hex-Rays工作。     
Xcode中已经内置了ARM交叉编译工具链。您可以使用Xcode中已内置的gdb调试器支持在源代码和ASM级别上调试iOS应用程序。例如,打开您的iOS应用,然后选择“设备和调试”。然后在源代码行上设置一个断点并运行程序,直到命中断点。现在,从菜单中选择\“ Run-> Debugger \”。显示调试器时,选择\“运行->调试器显示->源和反汇编\”,您将在右侧看到一个窗口,其中显示了从源代码生成的ARM asm代码。您可以使用按钮一次浏览源代码行。如果要一次执行一个ARM asm指令,请打开gdb控制台并使用\“ stepi \”指令(键入一次,然后按Enter即可重复)。     
看一下料斗。与IDA相比,它确实便宜(尽管功能不那么强大),并且最新版本可以处理ARM。     
  在MacOS中,这是一种直接从命令行调用XCode安装的交叉编译GCC的方式(这样我就可以在一个小的测试文件上运行它,并请求程序集输出)。 将此脚本用于可为iphone编译的gcc:
#!/bin/bash

# Note: The \"/Applications/Xcode.app/Contents\" prefix is only required on 10.7.2 and 
# later (where Xcode is installed through app store rather than as a package).
# If running 10.6 or earlier, cut out that prefix.
PLATFORM=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform
# Change this to the iOS version you want to compile for (you must have the platform
# SDK installed in Xcode)
VER=6.1

$PLATFORM/Developer/usr/bin/gcc -arch armv7 -framework IOKit -framework CoreFoundation -F $PLATFORM/Developer/SDKs/ iPhoneOS$VER.sdk/System/Library/Frameworks -I $PLATFORM/DeviceSupport/Latest/Symbols/usr/include -L $PLATFORM/Developer/SDKs/iPhoneOS$VER.sdk/usr/lib -L $PLATFORM/Developer/SDKs/iPhoneOS$VER.sdk/usr/lib/system $*
资料来源:newosxbook.com     
看一下Radare2,它是一个开源工具,正在不断完善其功能集,并且已经支持ARM拆卸。     

要回复问题请先登录注册