2017-02-21 16 views
0

sqlite3_prepare 또는 sqlite3_openCC_MD5libcommonCrypto 인 일반 시스템 호출을 가로 채기 할 수 있습니까 (The Theos (jailed versione) Tweak?Theos Tweak를 통해 시스템 호출을 차단할 수 있습니까? jailed Version

이러한 모든 호출을 가로 채고 콘솔이나 로그 파일에 인쇄합니다. MSHookFunction에 대해 읽은 적이 있지만 잘 모르겠습니다.

편집 : 나는 최근에 쓴 몇 가지 코드를 추가합니다. 이것은 내 Tweak.xm, 어디로 CC_MD5 전화를 가로 채고, 간단한 메시지 로그 후, 나는 정상적인 흐름으로 돌아갈 것이다. 비틀기는 삽입되지만 어떤 메시지도 볼 수 없습니다.

#include <substrate.h> 
#include <CommonCrypto/CommonDigest.h> 

static unsigned char * (*original_CC_MD5)(const void *data, CC_LONG len, unsigned char *md); 

static unsigned char * replaced_CC_MD5(const void *data, CC_LONG len, unsigned char *md) { 

     NSLog(@"Calling MD5"); 
     return original_CC_MD5(data, len, md); 
} 

MSInitialize { 
     MSHookFunction(CC_MD5, replaced_CC_MD5, &original_CC_MD5); 
} 

답변

0

문제점을 발견했습니다. 내가 사용하고있는 Theos version은 감옥에있는 장치입니다. 이 버전에서는 MSHookFunction이 fishhook으로 대체되었습니다.

사용하여 낚시는 모두 괜찮아요 : 분명히 코드는

#include <substrate.h> 
#include <CommonCrypto/CommonDigest.h> 
#import <fishhook.h> 

static unsigned char * (*original_CC_MD5)(const void *data, CC_LONG len, unsigned char *md); 

static unsigned char * replaced_CC_MD5(const void *data, CC_LONG len, unsigned char *md) { 

     NSLog(@"Calling MD5"); 
     return original_CC_MD5(data, len, md); 
} 

%ctor { 

rebind_symbols((struct rebinding[1]){{"CC_MD5", replaced_CC_MD5, (void *)&original_CC_MD5}},1); 

} 
변경