ios那些事之如何在ios5上运行gdb
运行环境:
Mac OS 10.7.4
Xcode 4.3.2
IOS 5.0.1 jailbreak ipod 4
首先找到Xcode中自带的gdb
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/libexec/gdb
下载ldid,http://code.google.com/p/networkpx/downloads/detail?name=ldid&can=2&q=
接着做以下几步
- cd /tmp
- cp /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/libexec/gdb/gdb-arm-apple-darwin .
- lipo -thin armv7 gdb-arm-apple-darwin -output gdb
- 新建并保存文件 entitlements.xml
- <!DOCTYPE plist PUBLIC “-//Apple//DTD PLIST 1.0//EN” “http://www.apple.com/DTDs/PropertyList-1.0.dtd”>
- <plist version=”1.0″>
- <dict>
- <key>com.apple.springboard.debugapplications</key>
- <true/>
- <key>get-task-allow</key>
- <true/>
- <key>task_for_pid-allow</key>
- <true/>
- </dict>
- </plist>
- 使用下载的ldid
- ldid -Sentitlements.xml gdb
- 使用scp把gdb拷贝到ios设备上
- scp gdb root@<iOS Device IP Address>:/usr/bin/
参照SCS3_2011_Bachmann.pdf中的描述可以知道如何使用(需要翻墙才能下载到该pdf)
另外,
在进行disassemble的时候,需要使用clutch之类的工具先把从app store上下载下来的app进行decryption,然后再使用相关的nm、ida、class-dump-z来进行相应的汇编代码查询,找到需要关注的函数入口点的地址。
最后才在target的deivce上进行gdb attach --pid,把断点设置在之前找到的地址上,就可以进行你想要的crack行为了:)
参考资料:
http://www.ijailbreak.com/cydia/how-to-install-gnu-debugger-gdb-on-ios-5/
http://hackulo.us/forums/index.php?/topic/90872-clutch-released/
ios那些事之如何在ios5上运行gdb的更多相关文章
- 如何在yarn上运行Hello World(二)
在之前的一篇文章我们介绍了如何编写在yarn集群提交运行应用的AM的yarnClient端,现在我们来继续介绍如何编写在yarn集群控制应用app运行的核心模块 ApplicationMaster ...
- C#语言支持的特性,.NET却不支持,那么C#不被.NET支持的部分又是如何在.NET上运行的呢?
阅读<C#高级编程>系列丛书中,介绍C#与.NET的关系,提到C#是语言,.NET是平台(C#不是.NET的一部分),说".NET支持的一些特性,C#并不支持",这个可 ...
- 如何在yarn上运行Hello World(一)
1.YARN是什么 YARN (Yet Another Resource Negotiator,另一种资源协调者) 是hadoop上的一种资源调度器,它是一个通用资源管理系统,可以为上层应用提供统一 ...
- vs2012+ winform+.net4.0发布如何在xp上运行
今天在英文版vs2013打包发布4.0(非4.0 client)的winform时,遇到了在xp上无法运行的情况,.net framework 4.0在xp上已安装.在打包前,winform工程,即菜 ...
- FineReport做成之后如何在Tomcat上运行
问题描述: 自己用FineReport做成的报表画面,要在Tomcat上运行启动 第一步:下载Tomcat 网址: http://tomcat.apache.org/download-80.cgi 下 ...
- 如何在mac上运行vue项目
使用终端安装Vue运行环境 1.安装 Homebrew Homebrew 是osx下面最优秀的包管理工具,没有之一.先在终端查看是否已安装brew brew -v 如果返回 Homebrew 的版本号 ...
- 如何在ARM上运行k3s? 窥探k3s启动过程!,内附容器多平台包构建
开始之前 最近在对华为云鲲鹏服务器(一种ARM服务器arm64)运行容器可行性做验证,顺便了解了很多ARM和容器相关的知识.一提到arm运行容器首先想到的是k3s,下面是用k3s快速搭建一个kuber ...
- 如何在submit上运行php文件
一..把php加入到环境变量 二.在sublmie中新建编译系统 三.添加一下代码,修改成php当前的目录地址,保存在默认的路径下,命名为php.sublime-build { "cmd&q ...
- 如何在MAC上运行exe程序
1. 首先下载并运行CrossOver 运行CrossOver需要收费,试用期为14天,运行CrossOver 2. 选择exe应用程序,新建容器,安装exe程序 3.安装成功后,运行exe应用程序启 ...
随机推荐
- react之可控组件与不可控组件
一.不可控组件 <input type="text" defaultvalue="Hello React" /> 如上:defaultvalue的值 ...
- [记录]Wdinwos scikit-learn 安装
安装的软件有: Python: 3.6.0 numpy-1.11.3+mkl-cp36-cp36m-win_amd64.whl(全名) scipy-0.19.0-cp36-cp36m-win_amd6 ...
- 新安装一个eclipse,导入一个web项目,右键点击项目选择Properties,找不到project facets和Server选项。
解决方式: 1.点击:eclipse导航栏中点击Help->Install New Software 2.点击Add添加 3在弹出框中填写以下信息 name:keep(名字随便取) locati ...
- BZOJ 3090: Coci2009 [podjela] (树形背包)
3090: Coci2009 [podjela] Time Limit: 3 Sec Memory Limit: 128 MBSubmit: 45 Solved: 31[Submit][Statu ...
- 我喜欢Mouding
我Smily喜欢Mouding
- Bean容器的初始化
Bean容器的初始化
- SpringBoot学习笔记(六):SpringBoot实现Shiro登录控制和权限控制
登录模块:在登录时必须调用 授权模块:不是一登录就调动,而是当角色权限控制时才会调用 登录控制 环境搭建在上一篇. 数据库表 表名:role 字段:id rolename 表名:user 字段:id ...
- Docker系列(十):Kubernetes集群入门
kubenetes安装 官网:https://github.com/kubernetes/kubernetes/blob/release-1.0/docs/getting-started- guide ...
- 移动端开发框架Zepto.js
一.概述 Zepto.js是一个轻量的js库,它与jQuery有类似的API. zepto的设计目的是不到10K的通用库,快速下载,有一个熟悉的api-->精力专注在开发上. 流行起来的原因:轻 ...
- RedHat服务器搭建Jenkins