



下載本文檔
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
【移動(dòng)應(yīng)用開(kāi)發(fā)技術(shù)】iOS安全防護(hù)之重簽名防護(hù)與sysctl反調(diào)試的示例分析
一重簽名防護(hù)1、查看證明組織單位/upload/information/20200623/126/119310.png2、利用簽名信息進(jìn)行重簽名防護(hù)void
checkCodesign(NSString
*id){
//
描述文件路徑
NSString
*embeddedPath
=
[[NSBundle
mainBundle]
pathForResource:@"embedded"
ofType:@"mobileprovision"];
//
讀取application-identifier
注意描述文件的編碼要使用:NSASCIIStringEncoding
NSString
*embeddedProvisioning
=
[NSString
stringWithContentsOfFile:embeddedPath
encoding:NSASCIIStringEncoding
error:nil];
NSArray
*embeddedProvisioningLines
=
[embeddedProvisioning
componentsSeparatedByCharactersInSet:[NSCharacterSet
newlineCharacterSet]];
for
(int
i
=
0;
i
<
embeddedProvisioningLines.count;
i++)
{
if
([embeddedProvisioningLines[i]
rangeOfString:@"application-identifier"].location
!=
NSNotFound)
{
NSInteger
fromPosition
=
[embeddedProvisioningLines[i+1]
rangeOfString:@"<string>"].location+8;
NSInteger
toPosition
=
[embeddedProvisioningLines[i+1]
rangeOfString:@"</string>"].location;
NSRange
range;
range.location
=
fromPosition;
range.length
=
toPosition
-
fromPosition;
NSString
*fullIdentifier
=
[embeddedProvisioningLines[i+1]
substringWithRange:range];
NSArray
*identifierComponents
=
[fullIdentifier
componentsSeparatedByString:@"."];
NSString
*appIdentifier
=
[identifierComponents
firstObject];
//
對(duì)比簽名ID
if
(![appIdentifier
isEqual:id])
{
//exit
asm(
"mov
X0,#0\n"
"mov
w16,#1\n"
"svc
#0x80"
);
}
break;
}
}
}二sysctl檢測(cè)是否被調(diào)試#import
<sys/sysctl.h>
bool
checkDebugger(){
//控制碼
int
name[4];//放字節(jié)碼-查詢(xún)信息
name[0]
=
CTL_KERN;//內(nèi)核查看
name[1]
=
KERN_PROC;//查詢(xún)進(jìn)程
name[2]
=
KERN_PROC_PID;
//通過(guò)進(jìn)程id查進(jìn)程
name[3]
=
getpid();//拿到自己進(jìn)程的id
//查詢(xún)結(jié)果
struct
kinfo_proc
info;//進(jìn)程查詢(xún)信息結(jié)果
size_t
info_size
=
sizeof(info);//結(jié)構(gòu)體大小
int
error
=
sysctl(name,
sizeof(name)/sizeof(*name),
&info,
&info_size,
0,
0);
assert(error
==
0);//0就是沒(méi)有錯(cuò)誤
//結(jié)果解析
p_flag的第12位為1就是有調(diào)試
//p_flag
與
P_TRACED
=0
就是有調(diào)試
return
((info.kp_proc.p_flag
&
P_TRACED)
!=0);
}if
(checkDebugger())
{
asm("mov
X0,#0\n"
"mov
w16,#1\n"
"svc
#0x80"
);
}三針對(duì)二破解sysctl//原始函數(shù)的地址
int
(*sysctl_p)(int
*,
u_int,
void
*,
size_t
*,
void
*,
size_t);
//自定義函數(shù)
int
mySysctl(int
*name,
u_int
namelen,
void
*info,
size_t
*infosize,
void
*newinfo,
size_t
newinfosize){
if
(namelen
==
4
&&
name[0]
==
CTL_KERN
&&
name[1]
==
KERN_PROC
&&
name[2]
==
KERN_PROC_PID
&&
info
&&
(int)*infosize
==
sizeof(struct
kinfo_proc))
{
int
err
=
sysctl_p(name,
namelen,
info,
infosize,
newinfo,
newinfosize);
//拿出info做判斷
struct
kinfo_proc
*
myInfo
=
(struct
kinfo_proc
*)info;
if((myInfo->kp_proc.p_flag
&
P_TRACED)
!=
0){
//使用異或取反
myInfo->kp_proc.p_flag
^=
P_TRACED;
}
return
err;
}
return
sysctl_p(name,
namelen,
info,
infosize,
newinfo,
newinfosize);
}
+(void)load
{
//交換
rebind_symbols((str
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- T-ZLX 088-2024 綠色食品 永嘉早香柚生產(chǎn)技術(shù)規(guī)程
- 二零二五年度新材料研發(fā)股份分紅及市場(chǎng)拓展合同模板
- T-ZGZX 0003-2024 成年智力殘疾人托養(yǎng)服務(wù)指南
- 二零二五年度夫妻共同財(cái)產(chǎn)保全與婚后生活規(guī)劃協(xié)議
- 二零二五年度企業(yè)合同管理制度與品牌建設(shè)合同
- 二零二五年度智慧城市建設(shè)抵押貸款協(xié)議
- 二零二五年度城市建筑工地渣土車(chē)租賃管理協(xié)議
- 二零二五年度農(nóng)村土地承包經(jīng)營(yíng)權(quán)流轉(zhuǎn)與農(nóng)業(yè)病蟲(chóng)害防治服務(wù)合同
- 二零二五年度高科技企業(yè)股權(quán)合作協(xié)議書(shū)
- 2025年度生物制藥產(chǎn)業(yè)合作投資合同
- 2021年河南公務(wù)員行測(cè)考試真題及答案
- 單晶爐車(chē)間安全培訓(xùn)
- 英語(yǔ)演講技巧與實(shí)訓(xùn)學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 機(jī)械制造技術(shù)基礎(chǔ)(課程課件完整版)
- 2024年海南省公務(wù)員錄用考試《行測(cè)》試題及答案解析
- 《預(yù)防未成年人犯罪》課件(圖文)
- 九年級(jí)化學(xué)人教版跨學(xué)科實(shí)踐3水質(zhì)檢測(cè)及自制凈水器教學(xué)設(shè)計(jì)
- 【醫(yī)院藥品管理系統(tǒng)探析與設(shè)計(jì)(論文)10000字】
- 螺旋體病梅毒課件
- 2024年咸寧市引進(jìn)人才44名歷年高頻難、易錯(cuò)點(diǎn)500題模擬試題附帶答案詳解
- (小學(xué)組)全國(guó)版圖知識(shí)競(jìng)賽考試題含答案
評(píng)論
0/150
提交評(píng)論