首页
社区
课程
招聘
[求助] [求助]Hook MGCopyAnswer 必然闪退,求解。
发表于: 2017-6-13 16:29 6968

[求助] [求助]Hook MGCopyAnswer 必然闪退,求解。

2017-6-13 16:29
6968

CFPropertyListRef(*orig__MGCopyAnswer)(CFStringRef);

static CFPropertyListRef new__MGCopyAnswer(CFStringRef property)

{

    //NSLog(@"[****]into MGCopyAnswer........");

    

    CFPropertyListRef value = nil;

    

    if (!strcmp(CFStringGetCStringPtr(property, kCFStringEncodingMacRoman), "UniqueDeviceID")) {

        

        NSLog(@"fuck fuck fuck ");

        

        value = @"edee5ca30793b14b71eb4f434f318677d2d1c925"; //正版uuid

    }else{

        

        void *handle = dlopen("/usr/lib/libMobileGestalt.dylib", RTLD_GLOBAL | RTLD_LAZY);

        

        static CFStringRef (*$MGCopyAnswer)(CFStringRef);

        $MGCopyAnswer = reinterpret_cast<CFStringRef (*)(CFStringRef)>(dlsym(handle, "MGCopyAnswer"));

        

        if ($MGCopyAnswer) {

            value = $MGCopyAnswer(property);

        }   dlclose(handle);

    }

    return value;

}


%ctor

{

    void *h = dlopen("/usr/lib/libMobileGestalt.dylib", RTLD_LAZY);

    if (h != NULL) {

        void* p = (void*)dlsym(h, "MGCopyAnswer");

        

        if (p!= NULL)

        {

            MSHookFunction( p, (void*)new__MGCopyAnswer, (void**)&orig__MGCopyAnswer);

        }

        dlclose(h);

    }

    %init;

}



[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 18
活跃值: (1059)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
2
2017-6-13 19:00
0
雪    币: 178
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
这个最终答案是哪个?  能否具体点,  麻烦了 
2017-6-13 20:04
0
雪    币: 18
活跃值: (1059)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
4


static CFPropertyListRef (*orig_MGCopyAnswer_internal)(CFStringRef prop, uint32_t* outTypeCode);
CFPropertyListRef new_MGCopyAnswer_internal(CFStringRef prop, uint32_t* outTypeCode) {
    return orig_MGCopyAnswer_internal(prop, outTypeCode);
}
 
extern "C" MGCopyAnswer(CFStringRef prop);
 
static CFPropertyListRef (*orig_MGCopyAnswer)(CFStringRef prop);
CFPropertyListRef new_MGCopyAnswer(CFStringRef prop) {
    return orig_MGCopyAnswer(prop);
}
 
%ctor {
    uint8_t MGCopyAnswer_arm64_impl[8] = {0x01, 0x00, 0x80, 0xd2, 0x01, 0x00, 0x00, 0x14};
    const uint8_t* MGCopyAnswer_ptr = (const uint8_t*) MGCopyAnswer;
    if (memcmp(MGCopyAnswer_ptr, MGCopyAnswer_arm64_impl, 8) == 0) {
        MSHookFunction(MGCopyAnswer_ptr + 8, (void*)new_MGCopyAnswer_internal, (void**)&orig_MGCopyAnswer_internal);
    else {
        MSHookFunction(MGCopyAnswer_ptr, (void*)new_MGCopyAnswer, (void**)&orig_MGCopyAnswer);
    }
}


2017-6-13 20:39
0
雪    币: 178
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
编译报错,  跪求指导。 
2017-6-13 21:24
0
雪    币: 18
活跃值: (1059)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
6




raien

编译报错, 跪求指导。

基础。

2017-6-13 21:28
0
雪    币: 178
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
什么意思?  MSHookFunction  这个类好像找不到,是不是需要引用什么库? 
2017-6-14 00:09
0
雪    币: 18
活跃值: (1059)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
8
raien 什么意思? MSHookFunction 这个类好像找不到,是不是需要引用什么库?

https://wizardforcel.gitbooks.io/ios-sec-wiki/content/chapter7/issue7-1.html

你都不会搜索一下吗?

2017-6-14 09:43
0
游客
登录 | 注册 方可回帖
返回
//