iOS越獄檢查

2021-08-21 18:15:09 字數 1469 閱讀 6579

檢查裝置是否越獄的幾種方法:

沙盒完整性檢查

通過fork()函式檢測,如果沙盒被越獄工具破壞或者是程式在沙盒外執行,那麼fork()函式將會執行成功。如果沙盒仍處於啟用狀態,你的程式就會執行失敗,這就說明沙盒沒有被篡改。

int result = fork();

if(!result)

exit(0);

if (result>=0)

檔案系統檢測

檢查越獄檔案是否存在

#import 

struct stat s;

也可以檢測其他檔案列表:

/var/cache/apt apt倉庫的路徑

/var/lib/apt apt倉庫相關的資料

/var/lib/cydia cydia相關的資料檔案

/var/log/syslog syslog檔案

/var/tmp/cydia.log cydia執行時的臨時日誌記錄

/bin/bash /bin/sh bash總段互動程式

/usr/sbin/sshd ssh終端

/usr/libexec/ssh-keysign ssh的金鑰簽名工具

/etc/ssh/sshd_config sshd的配置檔案

/etc/apt apt配置檔案路徑

檢查/etc/fstab 檔案大小

fstab檔案包含檔案系統掛載點,這個檔案通常被越獄工具替換用於將root分割槽讀寫開啟。我們程式不能讀取該檔案,但是可以使用stat函式檢視檔案大小。通常80b,越獄的只有65b。也有可能隨著系統變化的

#import 

struct stat s;

stat("/etc/fstab", &s);

s.st_size;

符號鏈結檢測
struct stat

s;if (s.st_mode&s_iflnk)

}

分頁執行檢查

記憶體分頁不能標記為可執行屬性,但是越獄可以修改這一限制。通過vm_protect函式檢測核心完整性,當核心未被修改時,該函式會呼叫失敗

#import 

#import

#import

void *mem = malloc(getpagesize()+15);

void *ptr = (void *)(((uintptr_t)mem+15) & ~0x0f);

vm_address_t pageptr = (uintptr_t)ptr/getpagesize()*getpagesize();

int is_jailbroken = vm_protect(mach_task_self(), (vm_address_t)pageptr, getpagesize(), false, vm_prot_read|vm_prot_write|vm_prot_execute) == 0;

ios裝置越獄

越獄的目標 手機更新到最新版本,再越獄 目前最新6.1.3,不能越獄 步驟 手機設定密碼要取消 檢視手機系統版本,並備份手機 ios 6.x 使用evasion 6.1越獄教程 ios 5.x 5.1.1越獄教程 其他系統版本,網路搜尋 檢視是否越獄成功 是否已安裝cydia應用程式 注意事項 越獄...

IOS 越獄開發

2 準備目錄 debian control control檔案就是打包時的配置檔案,它也會作為deb包的配置被打包到包中,檔案例子 cpp view plain copy package com.zz.tianc name tianc version 0.1 1 description tianc,...

ios越獄開發

1 theos logos常用命令 23 hook 用的最多,意思是鉤住乙個類。45 hook springboard 6 end 78 new v 新建方法 v是返回值 代表引數名 9 new v i 10 void alertview uialertview alertview clickedb...