iOS安全攻防(一):Hack必备的命令与工具

iOS安全安全

目录(?)[+]bash

Hack必备的命令与工具网络



你的应用正在被其余对手反向工程、跟踪和操做!你的应用是否依旧裸奔豪不防护?app

郑重声明一下,懂得如何攻击才会懂得如何防护,一切都是为了以后的防护做准备。废话少说,进入正题。ssh

今天总结一下为hack而作的准备工做。
tcp


经常使用的命令和工具


ps           ——显示进程状态,CPU使用率,内存使用状况等工具

sysctl       ——检查设定Kernel配置ui

netstat     ——显示网络链接,路由表,接口状态等spa

route        ——路由修改.net

renice       ——调整程序运行的优先级

ifconfig    ——查看网络配置

tcpdump   ——截获分析网络数据包

lsof           ——列出当前系统打开的文件列表,别忘记一切皆文件,包括网络链接、硬件等

otool      ——查看程序依赖哪些动态库信息,反编代码段……等等等等

nm         ——显示符号表

ldid       ——签名工具

gdb          ——调试工具

patch       ——补丁工具

SSH         ——远程控制

备注:

 otool,可查看可执行程序都连接了那些库:

 otool  -L WQAlbum 

能够获得:


WQAlbum:
/System/Library/Frameworks/StoreKit.framework/StoreKit (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/AdSupport.framework/AdSupport (compatibility version 1.0.0, current version 1.0.0)
/usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.5)
/System/Library/Frameworks//MediaPlayer.framework/MediaPlayer (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/MobileCoreServices.framework/MobileCoreServices (compatibility version 1.0.0, current version 40.0.0)
/System/Library/Frameworks/CoreMedia.framework/CoreMedia (compatibility version 1.0.0, current version 1.0.0)
……


能够反编译WQAlbum的__TEXT__段内容, 截前10行:

otool -tV WQAlbum |head -n 10 

能够获得:


WQAlbum:
(__TEXT,__text) section
start:
00002de0 pushl $0x00
00002de2 movl %esp,%ebp
00002de4 andl $0xf0,%esp
00002de7 subl $0x10,%esp
00002dea movl 0x04(%ebp),%ebx
……


 nm,显示程序符号表,用我本身的应用程序私人相册现身说法一下:

nm -g WQAlbum  ( -g 表明 global) 

能够获得:


001e5eec S _OBJC_IVAR_$_WQPhotoViewController.albumObject
001e5efc S _OBJC_IVAR_$_WQPhotoViewController.int_current
001e5f00 S _OBJC_IVAR_$_WQPhotoViewController.int_total


其中,WQPhotoViewController为类名,albumObject为该类的成员



 ldid,是iPhoneOS.platform提供的签名工具,咱们本身编译的程序须要签上名才能跑在iPhone/iPad上,使用方法

export CODESIGN_ALLOCATE=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate
ldid -S helloworld 



编译Hello world

1.首先找到编译器:




arm-apple-darwin10-llvm-gcc-4.2 就是了。

为了方便起见,能够在.bashrc或者profile 配置下环境变量,方便编译。


2.找到SDK




编译咱们本身的程序的时候须要指定该目录下的SDK。


3.来个经典Hello world :

  1. #include <stdio.h>                                                                                             

  2. int main(){  

  3.        printf("Hello world !!!\n");  

  4.        return 0;  

  5. }  



4.编译




其中 -isysroot用来指定build时的SDK


5.校验




file查看一下类型,没问题。


6.SCP给iPhone、iPad

前提是,设备已经越狱而且安装了SSH,且必须在同一网段。

$scp helloworld root@x.x.x.x:hello world


7.登陆设备签名

$ssh -l root x.x.x.x

#ldid -S helloworld


8.执行程序

#./helloworld

Hello world !!!


运行成功,这就完成了最简单的手动执行本身的应用程序。

相关文章
相关标签/搜索