IOS反汇编工具Hopper分析Crash Log
2019独角兽企业重金招聘Python工程师标准>>>
在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:
官网: www.hopperapp.com
它用的反汇编引擎:
http://www.beaengine.org/
转载请注明出处: http://blog.csdn.net/horkychen
转载于:https://my.oschina.net/u/2361492/blog/792435
IOS反汇编工具Hopper分析Crash Log相关推荐
- iOS 几种常用的 crash log 崩溃信息调试方法. (转载)
前言:crash log 对 定位崩溃问题 ,并且不容易复现,尤其是及时对appstore 上正在运营的 app 的迭代改进来说 非常重要. 1 crash两种情况 1.1 测试环境下 追踪bug 1 ...
- iOS通过dSYM文件分析crash
http://blog.csdn.net/hjy_x/article/details/20929095 重点是dwarfdump --uuid命令 我们在ios开发中会碰到的很多crash问题,如果D ...
- iOS 几种常用的 crash log 崩溃信息调试方法
前言:crash log 对 定位崩溃问题 ,并且不容易复现,尤其是及时对appstore 上正在运营的 app 的迭代改进来说 非常重要. 1 crash两种情况 1.1 测试环境下 追踪bug 1 ...
- 反汇编和二进制分析工具清单
本附录列出了许多反汇编和二进制分析工具,包括逆向工程.反汇编API以及执行跟踪的调试器. C.1 反汇编工具 C.1.1 IDA Pro(Windows.Linux.macOS) IDA是行业标准的递 ...
- 别用symbolicatecrash来解析crash Log了
今天突然发现了一个解析iOS crash log的好方法,忍不住来分享一下. 相信每个做iOS开发的TX都应该不会对symbolicatecrash陌生,我们第一次遇到真机上产生的崩溃日志时,在网上搜 ...
- ios设备的Crash Log提取及分析方法
转载地址:http://blog.csdn.net/langresser/article/details/7403729 提取crash log的方法: 方法1:用工具直接获取 iPhone 设备上 ...
- 深入理解iOS Crash Log
Crash Log Crash Log的主要来源有两种: Apple提供的,可以从用户设备中直接拷贝,或者从iTunes Connect(XCode)下载 三方或者自研Framework统计,三方服务 ...
- iOS线上APP崩溃(Crash)分析
这两周一直在研究如何追踪线上的bug,如何快速分析出程序到底崩溃在什么地方,从底层了解Crash是如何产生的.如何传递的.以及是如何分析出来的.虽然项目组并没有对这些要求很严格,但是作为一个高级开发人 ...
- iOS开发工具——网络封包分析工具Charles
iOS开发工具--网络封包分析工具Charles 简介 Charles是在Mac下常用的截取网络封包的工具,在做iOS开发时,我们为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析.Char ...
最新文章
- 北斗导航 | C语言实现PPP(精密单点定位)
- JWT生成Token做登录校验讲解
- Js数据类型之——Date
- 在Linux上将视频转换成动态gif图片 (附:ffmpeg和ImageMagick安装方法)
- 四个球队,单循环比赛,平局每队各得一分,胜利得3分,输不得分,最后各队得分是连续的四个自然数,求第二名的得分...
- 国立台湾大学里的自动化书库(立体库)
- 微信开发者工具公众号网页调试跨域问题的解决
- 2021年氯化工艺考试题库及氯化工艺考试试卷
- 01 - Kali笔记_Linux_Kali环境熟悉
- MySQL版本号后面包含“-log”代表什么意思?
- pat甲级考试报名费_2019吉林省公务员考试笔面心得
- win7离线安装tensorflow-gpu1.13.1
- Apache Tomcat优化
- 提示格式化怎么办,提示格式化找到方案
- c语言中pair的头文件,C++中使用pair是否一定要包含头文件utility
- 字节跳动任命凯文·梅耶尔为首席运营官
- 三维显示中可视化分析——视域分析、视点分析
- 牛客银行面试问题总结
- 6、react 模块和组件
- Macbook Pro A1708更换磁盘