例如:
void (*old_aes_encrypt)(std::string* outStr,
unsigned int* aes,
std::string* inStr,
unsigned int model
);
void aes_encrypt(std::string* outStr,
unsigned int* aes,
std::string* inStr,
unsigned int model
){
old_aes_encrypt(outStr,aes,inStr,model);
NSLog(@"aes_encrypt: inStr:%s \n model:%d \n return:%s",inStr->c_str(),model,outStr->c_str());
}
%ctor{
@autoreleasepool
{
unsigned long _aes_encrypt_slide =(_dyld_get_image_vmaddr_slide(0) + 0x13D478) | 0x1;
MSHookFunction((void *)_aes_encrypt_slide, (void *)&aes_encrypt, (void **)&old_aes_encrypt);
}
}
有时候参数判断错误的话,运行APP就假死,然后所有APP都没办法启动,重启打不开机器就白苹果了。。