为啥要在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. Python全栈开发:模块

    模块,用一砣代码实现了某个功能的代码集合. 参考资源:http://www.cnblogs.com/alex3714/articles/5161349.html 类似于函数式编程和面向过程编程,函数式 ...

  2. DOS命令大全【转】

    见到网络上,觉得值得学习,特此收藏到这里,因为我几乎天天来这个网站 net use \\ip\ipc$ " " /user:" " 建立IPC空链接 net u ...

  3. 如何在屏幕上查看命令的输出以及在Linux中写入文件

    在Linux中输出命令可以做很多事情(http://www.nanke0834.com) 您可以将命令的输出分配给变量,将其发送到另一个命令/程序以通过管道进行处理或将其重定向到文件以进行进一步分析. ...

  4. Python基础笔记_变量类型

     下面是W3C学习笔记 , , ) :] ]) :]) :]) :-]) :-]) ]) :]) :]) ) , , ]) :]) :]) ) , , , ]) :]) :]) ) ] = , ])) ...

  5. 群晖引导是uefi还是传统模式的识别

     看左下角光标闪不闪,不闪的是uefi,在闪的就是传统

  6. IntelliJ IDEA community 安装教程

    jetbrains官网下载 IntelliJ IDEA安装包 https://www.jetbrains.com/idea/download/#section=windows 此处选择社区版的zip文 ...

  7. leetcode 996. Number of Squareful Arrays

    给定一个长度小于 12 的数组 要求排列方式的种数 使得相邻和为完全平方 不考虑数学结构 将问题转化为 一笔画问题 和为完全平方代表 之间存在通路 回溯法 N^N 记忆化搜索 NN 2^N 判断是否是 ...

  8. java笔试之字符串反转

    写出一个程序,接受一个字符串,然后输出该字符串反转后的字符串. package test; import java.util.Scanner; public class exam04 { public ...

  9. 解决使用mybatis模糊查询为空的问题

    解决方法: 在数据库配置的url后添加?useUnicode=true&characterEncoding=utf-8 参考: https://blog.csdn.net/IT_private ...

  10. Pickle(1)

    1,pickle用于字符显示与存储之间的转换 2,要注意几个点 (1) 使用dump和load: (2) 版本号的要求: 3,官方文档的两个例子 4,pickle之后,数据是什么样的呢? https: ...