[Mac OS/iOS]反汇编工具Hopper分析Crash Log

原创 2012年12月12日 06:40:45

  

在Mac OS下分析Crash Log有很多种方法,这里不是要说明如何分析的Crash Log, 主要是展示下Hopper的使用。 强大的IDA大家可能已经知道,但它的Mac OS版本又让人回到了DOS时代。幸运的是Mac OS有了一个小巧的替代品:Hopper, 基本上满足了工作上的反汇编的需要,包括伪代码以及控制流图(Control Flow Graph),支持ARM指令集并对Objective-C的做了优化。

 

先给张界面总览(左侧是符号列表,打开程序后,用工具栏最右侧的Read Executable就可以打开可执行程序分析):

下面以分析Crash Log为例,展示下Hopper的使用。

 

在应用程序一个位置使用assert让它崩掉,可以得到如下的Crash Log:

  Crash Log
  Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
  0   libsystem_kernel.dylib             0x981fd9c6 __pthread_kill + 10
  1   libsystem_c.dylib                  0x99692f78 pthread_kill + 106
  2   libsystem_sim_c.dylib              0x01e5a57b abort + 140
  3   libsystem_sim_c.dylib              0x01e3c286 __assert_rtn + 267
  4   BlogCounter                        0x000033c9
  5   BlogCounter                        0x00003362

 

打开Hopper,找到菜单Navigate->Go To Address or Symbol

在对话框输入33c9,Hopper就会跳到程序崩的位置。

 

生成伪码看看

太短了! 和源代码比比:

显然编译器优化过了。因为assert(0)是稳定崩定的,所以下面的代码都没有生成。

 

可以将assert改为

  assert(URLString==nil);

 

再尝试时,崩溃的位置已经变更(Mac OS有一项技术,程序和程序库在加载时的地址是动态决定的)。我们再看下新的代码和控制流图(CFG):

CFG:

 


它用的反汇编引擎:

  http://www.beaengine.org/

 

转载请注明出处: http://blog.csdn.net/horkychen

【孙伟老师UID】iOS原生icon设计制作分析

-
  • 1970年01月01日 08:00

IOS逆向[一].Hopper反汇编形态

0x01.源码包结构
  • didaliping
  • didaliping
  • 2014-11-19 23:19:40
  • 964

MAC下的反编译、反汇编和调试神器Hopper Disassembler

官网:http://www.hopperapp.com/ Hopper是一款运行在Mac、Windows和Linux下的调试(os x only)、反汇编和反编译的交互式工具。可以对32、64位的...
  • jinglijun
  • jinglijun
  • 2015-01-11 12:18:49
  • 8349

MAC软件破解初探—Hopper Disassembler使用

Hopper Disassembler是一款适用于Mac操作系统的软件,Hopper是一款是32位和64位的二进制反汇编器,反编译和调试。你可以使用此工具拆开你想要的任何二进制。...
  • skylin19840101
  • skylin19840101
  • 2017-01-22 17:59:00
  • 4002

iOS- 全方位解析.crash文件崩溃报告

1.前言   想来每个iOS攻城狮,都免不了要接触.crash文件 那么什么是.crash文件? iOS app的所有崩溃记录都会记录在设备上,所以对于和我一样没有集成让用户发送崩溃...
  • sun377129893
  • sun377129893
  • 2015-05-25 16:37:56
  • 483

OSX app (Mac app) crash 文件分析与定位

0. 假设我们的程序名叫 XXXX, 内置了第三方crash报告的工具(或通过apple的 crash report机制),上架后的程序crash了能及时拿到crash report ,且app上架时...
  • gsx123
  • gsx123
  • 2017-09-12 00:02:22
  • 845

iOS Crash文件的解析工具(四)开源库 QuincyKit + KSCrash

我们知道,iOS bug定位是极看重crash log的,目前网上提供了不少crash log收集与管理服务,较有名的有Crashlytics, Flurry, 友盟,可能大部分人也就是使用这个。我这...
  • leikezhu1981
  • leikezhu1981
  • 2015-05-08 00:51:37
  • 3257

iOS - 用Hopper反编译 Nike+ 二进制文件

用Hopper反编译iOS App二进制文件,IPA里的二进制文件经过Hopper反编译后,能可视化文件的结构,存储的敏感信息如果以字符串常量写在程序中则会暴露无疑。 从 iTunes 的A...
  • CHN_liu
  • CHN_liu
  • 2015-05-09 10:48:46
  • 1802

mac osx逆向工程

Please do not make a bruteforce mirror of this page! If you really want it, throttle your efforts a ...
  • fishmai
  • fishmai
  • 2016-05-16 00:10:04
  • 3928

ios逆向教程使用的工具

类似看雪这样将常用工具做下整理我觉得挺好的,方便新手下载,也方便换机器配置新环境时候能节省时间。 自己整理的工具下载链接: http://pan.baidu.com/s/1nt3BKyX126 ...
  • HK_5788
  • HK_5788
  • 2016-02-24 14:50:47
  • 1979
收藏助手
不良信息举报
您举报文章:[Mac OS/iOS]反汇编工具Hopper分析Crash Log
举报原因:
原因补充:

(最多只允许输入30个字)