这篇文章中深入探讨过对象的本质、类的本质、消息查找的原理,先简单回顾一下这些知识。一、知识回顾1.1对象的本质一旦一个对象的结构确定,它在内存中的结构也就被确定,在访问对象属性/成员时,会根据每个成员的大小,经过内存偏移来获取到该成员。1.2类的本质和方法查找类是元类的实例,就像对象是类的实例一样,实例方法存储在类中,而类方法存储在元类中。当调用一个实例方法如[objdoSomethind],会根据obj->isa获取到类,然后从类的结构中查找到-doSomething方法后执行。二、一个有趣的案例新建一个Objective-C工程(笔者将根控制器修改成了RootViewController)
找工作经历总结&菜鸟OC1.题外话(自我总结)2.菜鸟OC1.题外话(自我总结)回顾去年的整个秋招过程,是心累且痛苦的。首先,在去年上半年,经历了许多事情让我压力倍增:小论文没改好,三年恋爱以失败告终,实习到处碰壁。那段时间,我每天晚上都无法轻易入睡,焦虑,压抑。加上那时候,我母亲身体不好,感觉自己真的没用,一事无成。这时候我才体会到了“失败总是贯穿人生始终,或许这就是人生吧”。但是,并没有真的放弃自己,一蹶不振。我将上面三件事称之为三座大山,每天提醒自己:继续努力,一旦放弃就没有任何机会了!实习也面试了几家大厂,有一面的,有二面的,有笔试没过的。依旧没有放弃,每次失败都当作是一次经历或者教训
找工作经历总结&菜鸟OC1.题外话(自我总结)2.菜鸟OC1.题外话(自我总结)回顾去年的整个秋招过程,是心累且痛苦的。首先,在去年上半年,经历了许多事情让我压力倍增:小论文没改好,三年恋爱以失败告终,实习到处碰壁。那段时间,我每天晚上都无法轻易入睡,焦虑,压抑。加上那时候,我母亲身体不好,感觉自己真的没用,一事无成。这时候我才体会到了“失败总是贯穿人生始终,或许这就是人生吧”。但是,并没有真的放弃自己,一蹶不振。我将上面三件事称之为三座大山,每天提醒自己:继续努力,一旦放弃就没有任何机会了!实习也面试了几家大厂,有一面的,有二面的,有笔试没过的。依旧没有放弃,每次失败都当作是一次经历或者教训
首先手机要越狱,这个就不说了,博主就是咸鱼搞了个160的苹果6,自己刷到苹果6支持最新的12.5.7版本后越狱;谁让他低版本,不支持CrackerXI砸壳呢,当时你要是使用frida-ios-dump也是可以的;https://github.com/AloneMonkey/frida-ios-dumpCrackerXI是手机端的一个app,相当于xposed的那些脱壳Xposed插件吧;且支持11-13系统吧,太低的支持不了;若要安装ios最近版本,直接添加frida源,搜下载即可;在cydia中添加frida源https://build.frida.reios安装frida指定版本从git下
首先手机要越狱,这个就不说了,博主就是咸鱼搞了个160的苹果6,自己刷到苹果6支持最新的12.5.7版本后越狱;谁让他低版本,不支持CrackerXI砸壳呢,当时你要是使用frida-ios-dump也是可以的;https://github.com/AloneMonkey/frida-ios-dumpCrackerXI是手机端的一个app,相当于xposed的那些脱壳Xposed插件吧;且支持11-13系统吧,太低的支持不了;若要安装ios最近版本,直接添加frida源,搜下载即可;在cydia中添加frida源https://build.frida.reios安装frida指定版本从git下
转载:https://blog.csdn.net/tslx1020/article/details/1282507771、spawn-冷启动frida-trace-U-fcom.apple.ExampleCode-m“+[NSURLURLWithString:]"2、attach-热启动frida-trace-UF-m“+[NSURLURLWithString:]"3、Hook类方法frida-trace-UF-m“+[NSURLURLWithString:]"4、Hook实例方法frida-trace-UF-m“-[NSURLhost]"5、Hook类的所有方法frida-trace-UF-
转载:https://blog.csdn.net/tslx1020/article/details/1282507771、spawn-冷启动frida-trace-U-fcom.apple.ExampleCode-m“+[NSURLURLWithString:]"2、attach-热启动frida-trace-UF-m“+[NSURLURLWithString:]"3、Hook类方法frida-trace-UF-m“+[NSURLURLWithString:]"4、Hook实例方法frida-trace-UF-m“-[NSURLhost]"5、Hook类的所有方法frida-trace-UF-
1.类的底层实现先写一个 Person 类:@interfacePerson:NSObject@property(nonatomic,copy)NSString*p_name;@property(nonatomic,assign)intp_age;-(void)p_instanceMethod1;@end@implementationPerson-(void)p_instanceMethod1{NSLog(@"%s",__func__);}@end 使用 clang 编译器, clang-rewrite-objcPerson.m-oPerson.cpp 将 Person.m 编译成 Perso
1.类的底层实现先写一个 Person 类:@interfacePerson:NSObject@property(nonatomic,copy)NSString*p_name;@property(nonatomic,assign)intp_age;-(void)p_instanceMethod1;@end@implementationPerson-(void)p_instanceMethod1{NSLog(@"%s",__func__);}@end 使用 clang 编译器, clang-rewrite-objcPerson.m-oPerson.cpp 将 Person.m 编译成 Perso
FridaHook可变参数0x00前言:可变参数Hook原理可以参考下我的这篇文章:C++逆向可变参数Hook我在网上搜了好久,都没找到有人写过FridaHook可变参数.........0x01FridaHook可变参数argsOK回归正题,Frida如何Hook可变参数。首先可变参数意味着,他的参数个数不确定,参数类型不确定。在frida中,函数的参数都在args上。我看了官网资料,他说args是一个NativeObject的Array。可是当我用JS去遍历这个Array的时候,总是会报错。。。。(如果有大神知道,请告诉我如何去遍历。谢谢!)而且我就这样直接输出args,他也会报一个arr