常用的命令和工具
ps ——显示进程状态,CPU使用率,内存使用情况等
sysctl ——检查设定Kernel配置
netstat ——显示网络连接,路由表,接口状态等
route ——路由修改
renice ——调整程序运行的优先级
ifconfig ——查看网络配置
tcpdump ——截获分析网络数据包
lsof ——列出当前系统打开的文件列表,别忘记一切皆文件,包括网络连接、硬件等
otool ① ——查看程序依赖哪些动态库信息,反编代码段……等等等等
nm ② ——显示符号表
ldid ③ ——签名工具
gdb ——调试工具
patch ——补丁工具
SSH ——远程控制
OpenSSH --登录,传文件等
Cycript --运行js脚本
lldb --动态调试
class_dump --导头文件
keychain dumper --导keychain
Snoop_it,introspy --动态追踪分析
Hopper,IDA --静态分析工具
theos --开发tweak,动态hook
备注:
① otool,可查看可执行程序都链接了那些库:
1
|
otool
-
L
WQAlbum
|
可以得到:
1
2
3
4
5
6
7
8
|
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行:
1
|
otool
-
tV
WQAlbum
|
head
-
n
10
|
可以得到:
1
2
3
4
5
6
7
8
9
|
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,显示程序符号表,用我自己的应用程序私人相册现身说法一下:
1
|
nm
-
g
WQAlbum
(
-
g
代表
global)
|
可以得到:
1
2
3
|
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上,使用方法
1
2
|
export
CODESIGN_ALLOCATE
=
/
Applications
/
Xcode
.
app
/
Contents
/
Developer
/
Platforms
/
iPhoneOS
.
platform
/
Developer
/
usr
/
bin
/
codesign_allocate
ldid
-
S
helloworld
|
参考:
《ios应用逆向工程》