2012-12-19 13:05
2387人閱讀收藏
舉報目錄(?)
[+]
ps ——
顯示程序狀態,cpu使用率,記憶體使用情況等
sysctl
——檢查設定kernel配置
netstat
——顯示網路連線,路由表,介面狀態等
route
——路由修改
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 (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:
00002de0pushl$0x00
00002de2movl %esp,%ebp
00002de4andl $0xf0,%esp
00002de7subl $0x10,%esp
00002deamovl 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上,使用方法
ldid -s helloworld
為了方便起見,可以在.bashrc或者profile 配置下環境變數,方便編譯。
編譯我們自己的程式的時候需要指定該目錄下的sdk。
其中 -isysroot用來指定build時的sdk
file檢視一下型別,沒問題。
前提是,裝置已經越獄並且安裝了ssh,且必須在同一網段。
$scp helloworld [email protected]:hello world
$ssh -l root x.x.x.x
#ldid -s helloworld
#./helloworld
hello world !!!
執行成功,這就完成了最簡單的手動執行自己的應用程式。
1.首先開啟xcode建立乙個plist屬性檔案,如下圖所示:
其中要注意一下通訊服務名,我定為55。用編輯器開啟,即為:
[plain]view plain
copy
<?xml version="1.0" encoding="utf-8"?>
program
/usr/bin/ncdemo
standarderrorpath
/dev/null
sessioncreate
programarguments
/usr/bin/ncdemo
inetdcompatibility
wait
sockets
listeners
sockservicename55
最後,將plist檔案 scp 至 [email protected]:/system/library/launchdaemons/ 下 .
讀取itunesstored2.sqlitedb資訊,並輸出到stdout中,便於我們讀取。
[cpp]view plain
copy
#include
#include
#include
intmain()
close(fd);
return
0;
}
1.編譯方法上篇文章已經介紹清楚,這裡不再重複,直接¥%¥#%¥……%# 生成執行在arm的 ncdemo
2.將ncdemo scp 到裝置中,並登入
$ scp ncdemo [email protected]:ncdemo
$ ssh [email protected]
3.簽名
#ldid -s ncdemo
#mv ncdemo /usr/bin
這時,我們只需要利用netcat,指定之前定義的服務名稱,輕鬆在本地抓取裝置 itunesstore 資訊.
$ nc 192.168.1.114 55 > itunesstored2.sqlitedb
好吧,這裡就介紹個最簡單的應用,利用string命令檢視:
linux 開機執行程式的方法
開機執行程式的方法 1.在 etc rc.d rc.local檔案中加入程式路徑及程式名 或2.在 etc rc.d init.d 中新增可執行程式,然後在 etc rc.d rcn.d 中新增符號鏈結 n表示執行級別 先檢視 etc inittab檔案中當前系統設定的預設級別,再將符號連線新增到對...
使樹莓派開機執行程式
樹莓派的 home pi track目錄下,有乙個名叫main的程式,現在,我已經可以在ssh或終端中,手工輸入命令 sudo main 執行成功。注意,你在看本教程的時候,一定要百分百的確定,你的程式是可以手工在ssh中執行成功的 在程式main 的同級目錄即 home pi track下,使用如...
Linux 離線執行程式
這裡用到的 screen 程式,需要 conda 安裝 conda install screen 相關操作命令 screen s w1 新建乙個w1工作視窗 screen ls 檢視當前所有的執行視窗 screen d w1 將w1視窗離線 screen r w1 接入視窗w1 ctrl a d 退...