Могу ли я перехватывать общие системные вызовы, такие как sqlite3_prepare
или sqlite3_open
, а также CC_MD5
из libcommonCrypto
с Theos (заключенная версия ) Твик?
Я бы перехватывал все эти вызовы и выводил на консоль или в лог-файл. Я кое-что читал о 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);
}