未經(jīng)允許,禁止轉載
你的應用正在被其他對手反向工程离福、跟蹤和操作?你的應用是否依舊裸奔毫不防御炼蛤?
鄭重聲明一下妖爷,懂得如何攻擊才會懂得如何防御,一切都是為了之后的防御作準備理朋。廢話少說絮识,進入正題。
今天總結一下為hack而做的準備工作嗽上。
常用的命令和工具
ps ——顯示進程狀態(tài)次舌,CPU使用率,內存使用情況等
sysctl ——檢查設定Kernel配置
netstat ——顯示網(wǎng)絡連接炸裆,路由表垃它,接口狀態(tài)等
route ——路由修改
renice ——調整程序運行的優(yōu)先級
ifconfig ——查看網(wǎng)絡配置
tcpdump ——截獲分析網(wǎng)絡數(shù)據(jù)包
lsof ——列出當前系統(tǒng)打開的文件列表,別忘記一切皆文件,包括網(wǎng)絡連接国拇、硬件等
otool ① ——查看程序依賴哪些動態(tài)庫信息洛史,反編代碼段……等等等等
nm ② ——顯示符號表
ldid ③ ——簽名工具
gdb ——調試工具
patch ——補丁工具
SSH ——遠程控制
備注:
① otool, 可查看可執(zhí)行文件鏈接了哪些庫
可以得到:
可以反編譯AlipayWallet的TEXT段內容, 截前10行:
② nm酱吝,顯示程序符號表也殖,g表示global用支付寶現(xiàn)身說法一下:
③ ldid,是iPhoneOS.platform提供的簽名工具务热,我們自己編譯的程序需要簽上名才能跑在iPhone/iPad上忆嗜,使用方法
查看應用程序簽名:
或者給應用程序重新簽名:
export CODESIGN_ALLOCATE=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate
ldid -S helloworld
arm-apple-darwin10-llvm-gcc-4.2 就是了。為了方便起見崎岂,可以在.bashrc或者profile 配置下環(huán)境變量捆毫,方便編譯。
2.找到SDK
編譯我們自己的程序的時候需要指定該目錄下的SDK冲甘。
3.來個經(jīng)典Hello world :
Objective-C
1
2
3
4
5
include <stdio.h>
int main(){
printf("Hello world !!!\n");
return 0;
}
4.編譯
其中 -isysroot用來指定build時的SDK
5.校驗
file查看一下類型绩卤,沒問題。
6.SCP給iPhone江醇、iPad前提是濒憋,設備已經(jīng)越獄并且安裝了SSH,且必須在同一網(wǎng)段。$scp helloworld root@x.x.x.x:hello world
7.登錄設備簽名$ssh -l root x.x.x.x#ldid -S helloworld
8.執(zhí)行程序#./helloworldHello world !!!
運行成功陶夜,這就完成了最簡單的手動執(zhí)行自己的應用程序凛驮。
注:本文參考了《念茜的博客》