为啥要在ios上运行gdb? 这个问题见仁见智喽。对于搞开发的同学们来所, 有了gdb更方便跟踪分析别人的程序,取长补短:)这里不是教大家crack:)

运行环境:

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=

接着做以下几步

[plain] view
plain
copy

  1. cd /tmp
  2. cp /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/libexec/gdb/gdb-arm-apple-darwin .
  3. lipo -thin armv7 gdb-arm-apple-darwin -output gdb
[plain] view
plain
copy

  1. 新建并保存文件 entitlements.xml
  2. <!DOCTYPE plist PUBLIC “-//Apple//DTD PLIST 1.0//EN” “http://www.apple.com/DTDs/PropertyList-1.0.dtd”>
  3. <plist version=”1.0″>
  4. <dict>
  5. <key>com.apple.springboard.debugapplications</key>
  6. <true/>
  7. <key>get-task-allow</key>
  8. <true/>
  9. <key>task_for_pid-allow</key>
  10. <true/>
  11. </dict>
  12. </plist>
[plain] view
plain
copy

  1. 使用下载的ldid
  2. ldid -Sentitlements.xml gdb
  3. 使用scp把gdb拷贝到ios设备上
  4. 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的更多相关文章

  1. 如何在yarn上运行Hello World(二)

      在之前的一篇文章我们介绍了如何编写在yarn集群提交运行应用的AM的yarnClient端,现在我们来继续介绍如何编写在yarn集群控制应用app运行的核心模块 ApplicationMaster ...

  2. C#语言支持的特性,.NET却不支持,那么C#不被.NET支持的部分又是如何在.NET上运行的呢?

    阅读<C#高级编程>系列丛书中,介绍C#与.NET的关系,提到C#是语言,.NET是平台(C#不是.NET的一部分),说".NET支持的一些特性,C#并不支持",这个可 ...

  3. 如何在yarn上运行Hello World(一)

    1.YARN是什么 YARN  (Yet Another Resource Negotiator,另一种资源协调者) 是hadoop上的一种资源调度器,它是一个通用资源管理系统,可以为上层应用提供统一 ...

  4. vs2012+ winform+.net4.0发布如何在xp上运行

    今天在英文版vs2013打包发布4.0(非4.0 client)的winform时,遇到了在xp上无法运行的情况,.net framework 4.0在xp上已安装.在打包前,winform工程,即菜 ...

  5. FineReport做成之后如何在Tomcat上运行

    问题描述: 自己用FineReport做成的报表画面,要在Tomcat上运行启动 第一步:下载Tomcat 网址: http://tomcat.apache.org/download-80.cgi 下 ...

  6. 如何在mac上运行vue项目

    使用终端安装Vue运行环境 1.安装 Homebrew Homebrew 是osx下面最优秀的包管理工具,没有之一.先在终端查看是否已安装brew brew -v 如果返回 Homebrew 的版本号 ...

  7. 如何在ARM上运行k3s? 窥探k3s启动过程!,内附容器多平台包构建

    开始之前 最近在对华为云鲲鹏服务器(一种ARM服务器arm64)运行容器可行性做验证,顺便了解了很多ARM和容器相关的知识.一提到arm运行容器首先想到的是k3s,下面是用k3s快速搭建一个kuber ...

  8. 如何在submit上运行php文件

    一..把php加入到环境变量 二.在sublmie中新建编译系统 三.添加一下代码,修改成php当前的目录地址,保存在默认的路径下,命名为php.sublime-build { "cmd&q ...

  9. 如何在MAC上运行exe程序

    1. 首先下载并运行CrossOver 运行CrossOver需要收费,试用期为14天,运行CrossOver 2. 选择exe应用程序,新建容器,安装exe程序 3.安装成功后,运行exe应用程序启 ...

随机推荐

  1. react之可控组件与不可控组件

    一.不可控组件 <input type="text" defaultvalue="Hello React" /> 如上:defaultvalue的值 ...

  2. [记录]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 ...

  3. 新安装一个eclipse,导入一个web项目,右键点击项目选择Properties,找不到project facets和Server选项。

    解决方式: 1.点击:eclipse导航栏中点击Help->Install New Software 2.点击Add添加 3在弹出框中填写以下信息 name:keep(名字随便取) locati ...

  4. BZOJ 3090: Coci2009 [podjela] (树形背包)

    3090: Coci2009 [podjela] Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 45  Solved: 31[Submit][Statu ...

  5. 我喜欢Mouding

    我Smily喜欢Mouding

  6. Bean容器的初始化

    Bean容器的初始化

  7. SpringBoot学习笔记(六):SpringBoot实现Shiro登录控制和权限控制

    登录模块:在登录时必须调用 授权模块:不是一登录就调动,而是当角色权限控制时才会调用 登录控制 环境搭建在上一篇. 数据库表 表名:role 字段:id rolename 表名:user 字段:id ...

  8. Docker系列(十):Kubernetes集群入门

    kubenetes安装 官网:https://github.com/kubernetes/kubernetes/blob/release-1.0/docs/getting-started- guide ...

  9. 移动端开发框架Zepto.js

    一.概述 Zepto.js是一个轻量的js库,它与jQuery有类似的API. zepto的设计目的是不到10K的通用库,快速下载,有一个熟悉的api-->精力专注在开发上. 流行起来的原因:轻 ...

  10. RedHat服务器搭建Jenkins