iOS黑客工具
1 Hack 必备的命令与工具
常用的命令和工具
ps ——显示进程状态,CPU 使用率,内存使用情况等
sysctl ——检查设定 Kernel 配置
netstat ——显示网络连接,路由表,接口状态等
route ——路由修改
renice ——调整程序运行的优先级
ifconfig ——查看网络配置
tcpdump ——截获分析网络数据包
lsof ——列出当前系统打开的文件列表,别忘记一切皆文件,包括网络连接、硬件等
otool ① ——查看程序依赖哪些动态库信息,反编代码段……等等等等
nm ② ——显示符号表
ldid ③ ——签名工具
gdb ——调试工具
patch ——补丁工具
SSH ——远程控制
备注:
① otool,可查看可执行程序都链接了那些库:
otool -L WQAlbum
可以得到:
1 2 3 4 5 6 7 8 |
|
可以反编译 WQAlbum 的 __TEXT__
段内容, 截前 10 行:
otool -tV WQAlbum |head -n 10
可以得到:
1 2 3 4 5 6 7 8 9 |
|
② nm,显示程序符号表,用我自己的应用程序私人相册现身说法一下:
nm -g WQAlbum ( -g 代表 global )
可以得到:
1 2 3 |
|
其中,WQPhotoViewController 为类名,albumObject 为该类的成员
③ ldid,是 iPhoneOS.platform 提供的签名工具,我们自己编译的程序需要签上名才能跑在 iPhone/iPad 上,使用方法
1 2 |
|
编译 Hello World
首先找到编译器:
arm-apple-darwin10-llvm-gcc-4.2
就是了。
为了方便起见,可以在 .bashrc
或者 profile
配置下环境变量,方便编译。
找到 SDK
编译我们自己的程序的时候需要指定该目录下的 SDK 。
来个经典 Hello World :
1 2 3 4 5 |
|
编译
其中 -isysroot 用来指定 build 时的 SDK
校验
file 查看一下类型,没问题。
SCP 给 iPhone、iPad
前提是,设备已经越狱并且安装了 SSH ,且必须在同一网段。
$scp helloworld root@x.x.x.x:hello world
登录设备签名
$ssh -l root x.x.x.x
#ldid -S helloworld
执行程序
#./helloworld Hello world !!!
运行成功,这就完成了最简单的手动执行自己的应用程序。