求助:初学者疑问, iOS 10系统下如何打印日志和查看系统日志?

系统是10.3.3 iphone5c
使用theos进行了一个最简单的hook, 但是没法确认是否成功了, 因为nslog也不输出, alert也不弹…
代码看起来也没错啊, 日志也找不到在哪 在Mac上用console也看不到日志
也安装了 ondeviceconsole…我都怀疑是否执行了, 但是也没法跟踪到.
有没有人可以提供下思路如何来确定这个事呢?
代码如下:

%hook SpringBoard

-(void)applicationDidFinishLaunching:(id)application
{

    %orig;
    UIAlertView *alert1 = [[UIAlertView alloc] initWithTitle:@"Test"
                                                     message:@"Testy test"
                                                    delegate:@"self"
                                           cancelButtonTitle:@"Cancel"
                                           otherButtonTitles:nil];
    [alert1 show];
    [alert1 release];

    UIAlertController *alert2 = [UIAlertController alertControllerWithTitle:@"test" message:@"wangyu!!!!" preferredStyle:UIAlertControllerStyleAlert];
    [alert2 addAction:[UIAlertAction actionWithTitle:@"sss" style:UIAlertActionStyleCancel handler:nil]];
    [[[UIApplication sharedApplication] keyWindow].rootViewController presentViewController:alert2 animated:YES completion:nil];

    %log();
    NSLog(@"wangyudebug");
    printf("wangyudebug");
}
%end
1 个赞

补充一下, 就算在applicationDidFinishLaunching中 我把%orig;去掉, 程序依然会正常执行, 我怀疑是我这个程序不执行了, 但是找不到问题出在哪呢…

/var/log/下面不是一堆么,如果是syslog你cat然后grep一下看看就行了,如果是ASL的话用syslog命令查看

感谢, 不过找了一圈 并没有发现日志信息…应该是tweak并没有执行, 也不知道是什么原因了

你看看加载了你的dylib不…

等我明天再排查一下原因,还得麻烦下问问如何排查是否加载了我的dylib

void test()
{
    printf("www.dllhook.com\nDyld image count is: %d.\n", _dyld_image_count());
    for (int i = 0; i < _dyld_image_count(); i++) {
        char *image_name = (char *)_dyld_get_image_name(i);
        const struct mach_header *mh = _dyld_get_image_header(i);
        intptr_t vmaddr_slide = _dyld_get_image_vmaddr_slide(i);
        
        printf("Image name %s at address 0x%llx and ASLR slide 0x%lx.\n",
               image_name, (mach_vm_address_t)mh, vmaddr_slide);
    }
}
1 个赞

我随便建了个APP执行了这段代码, 没有发现我自己的dylib
类似也只有

/Library/MobileSubstrate/MobileSubstrate.dylib
/Library/Frameworks/CydiaSubstrate.framework/Libraries/SubstrateLoader.dylib

完全不知道该怎么办了…

我重新建了个项目…然后解决了!TMD