iOS工程加固

2021-10-20 17:48:57 字數 2294 閱讀 4951

風險描述

攻擊者可以利用gdb、ida、ptrace等偵錯程式跟蹤執行的目標程式,檢視、修改記憶體中的**和資料,甚至分析/篡改程式的業務邏輯,對客戶關鍵資料或者伺服器進行惡意攻擊,例如修改客戶端業務操作的資料,比如轉賬賬號、金額等,導致使用者的損失。

修復建議
【開發者修復】整合native層的反除錯保護功能,避免應用被xcode、ida等工具除錯,進而保護業務安全。

修復操作

[反除錯]

#import #import typedef int (*ptrace_ptr_t)(int _request, pid_t _pid, caddr_t _addr ,int _data);

#if !defined(pt_dent_attach)

#define pt_dent_attach 31

#endif

void disable_gdb()

int main(int argc, char * ar**)

}風險描述

應用程式執行時會在記憶體中產生一些敏感資料,比如金鑰key、本地解密資料、通訊解密資料,攻擊者可以利用frida等工具,對程式關鍵函式注入**,通過破壞業務邏輯可以獲取明文資料或直接對伺服器發起攻擊。

修復建議
【開發者修復】整合防注入/防hook保護功能,避免應用被注入/hook。

修復操作

[fishhook]

#import "fishhook.h"

#pragma mark ---- 防護**------

//函式指標變數

void(*exchangep)(method _nonnull m1, method _nonnull m2);

//static nsmutablearray *methods;

void myexchange(method _nonnull m1, method _nonnull m2)

// sel orimethodname = method_getname(m1);

sel orimethodname2 = method_getname(m2);

// imp mymethodimp = method_getimplementation(m1);

// imp mymethodimp2 =method_getimplementation(m2);

// 先從專案中找到目前全部的 method_exchangeimplementations 方法

// 專案中沒有的就是不安全的,直接exit。

nsstring *newmethod = nsstringfromselector(orimethodname2);

// [methods addobject:newmethod];

// htlog(@"%@",methods);

nsarray *wzarr = @[

@"af_resume", @"af_suspend",@"sd_settext:",@"sd_layoutsubviews",

@"sd_button_layoutsubviews",@"sd_reloaddata",@"sd_reloadrowsatindexpaths:withrowanimation:",

@"sd_deleterowsatindexpaths:withrowanimation:",

@"mj_reloaddata",

@"mj_reloaddata",

@"fd_reloaddata",

@"fd_insertsections:withrowanimation:",

@"fd_deletesections:withrowanimation:",

@"fd_reloadsections:withrowanimation:",

@"fd_movesection:tosection:",

@"fd_insertrowsatindexpaths:withrowanimation:",

@"fd_deleterowsatindexpaths:withrowanimation:",

@"fd_reloadrowsatindexpaths:withrowanimation:",

@"fd_moverowatindexpath:toindexpath:"];

if (![wzarr containsobject:newmethod])

}+(void)load;

rebind_symbols(rebs, 1);}

Nginx加固 Tomcat加固

二 tomcat加固 nginx禁止顯示版本有兩種方法 vim usr local nginx conf nginx.conf server tokens off src core nginx.h define nginx version 1.9.15 define nginx ver nginx ...

iOS工程新增Unity工程

我的需求是 在現有的ios工程中,新增unity工程,還是以原來的ios工程為主,在裡面的某個地方,在需要的時候再呼叫unity工程,並且盡可能少的影響到現有工程。本來,是按這位仁兄的帖子做 結果發現編譯通過不了,試了很多方式都不行。然後,又按照另一位仁兄都方法 還是有問題,這個時候我就停下來想,到...

iOS工程改名

很多小專案,內容基本一致,細微差距,又能封裝,修改工程比較麻煩 正常的操作 修改ios工程名 import os def deal file content file path,old name,new name 處理替換的檔案 try if file path.endswith ds store ...