00:00
同学们,欢迎大家来到逻辑教育的I,我是公开课,我是汉课,那么今天呢,给大家讲的这个课题呢,叫做后可原理啊,首先呢,昨天来听过课的给老师敲个一,没有来的给老师敲个二。啊,昨天有有没有来听过课的,有的给老师敲个一啊。有吗?因为昨天呢,咱们这个cody老师呢,给大家分享了一下runtime运行时,那么呢,其实今天的这个讲hopeook的原理呢,里面其中有一部分的知识点呢,和这个运行时呢有一点关系啊,和和运行时有一点关系,所以大家如果了解过运行时听这个课呢,就比较的舒服,首先我们来看一下啊,那个觉得声音小的,我把它声音调大一点,好吧,把自己的耳机声音调大一点好不好?好那么首先我们来看一下这里做了一个PPT啊好,那么首先我们今天的内容呢,有三大块的内容,一个呢就是这个后壳的概述,还有一个呢,就是个非后壳的简介。呃,这个废弃口的这个框架的话呢,今天是我们的重点啊,然后呢,最后面呢,我们这个探究了一下飞析户口的原理,以及呢,我们在后面还会讲一个小小的案例,好吧,好,那么呢,首先我们来看一下。
01:03
什么是后啊后呢,它就意为挂钩或者钩子对吧?在咱们iOS立项中呢,是指改变程序运行流程的一种技术,好吧,那么呢,通过后的话呢,我们可以让别人的程序呢,运行我们自己所写的代码,在立项中呢,经常使用这种技术,所以说呢,在学习的过程中,我们重点了解的是什么,了解的是它的原理,这样的话呢,我们就能够对恶意代码的话呢,进行有效的一个防护,那接下来呢,了解了后果的概述了之后呢,我们来看一下,其实呢,就这样一个示意图,比如说我这里呢,这个示意图呢,是指这个,比如说微信啊咱们老朋友对吧?啊微信抢红包,那么呢,咱们试想一下,微信的抢红包他怎么怎么做的呢?首先我们是微信呢,它会收到红包的消息啊,收到红包的消息之候呢,这个时候呢,它会有一个方法,那么等待了用户去点开咱们的红包,然后呢,等待用户点击抢那个按钮,当你点击抢的时候呢,这个时候发请求就会调用抢红包的真实代码啊,是这样一个流程,那么我们通过后了之后呢,我们就可以做到什么呢?当你收到了抢红包的消息,我们就。
02:03
就hook这个这个方法,当我们户口到了之后呢,我们就可以调用自己定义的一些代码,然后呢,就导致不需要用户去点击,我们自动去执行这样的抢了,对吧?那么如何做到这样的一个呢?其实在咱们的这个iOS领域当中啊,我们使用这个技术呢,有几种方式,首先昨天讲过的关于last s啊,这个是什么呢。我们第一种方式的话呢,就是利用OC的语法特性,这属于知道吧啊,那么OC的特性呢,它可以动态的去改变select和I,这个大家知道吧,Select IP啊,他们的一个对应关系,达到OC方法的一个交换,这个时候呢,它就有一个流程的改变的啊,这是第一种,还有一种呢,就是Facebook,今天我们重点要介绍它是什么,它是Facebook提供的一个框架,好然后呢,第三个呢,这里面呢,有一个非常著名的框架,这个叫什么呢?S subtract,那么这一个工这一个框架,它之前原名叫做mobilestru,那么呢,它是什么呢?针对于OC以及C函数都是可以进行操作的,当然这个框架之所以注明,是因为它不仅仅是针对iOS设计的,安卓也是一样,知道吧。
03:11
我们下面有官方的网址啊,那么接下来呢,我们先介绍第一个简单过一下,好吧,今天重点呢在于非后,我们先简单过一下method vision它是怎么做的呢?这里呢,有一个概念需要大家理解的,首先大家知道select SE和I这两个东西吗?知道的同学敲个一,不了解的敲个二啊,Select和IP是implementation方法实现的缩写,Select select它是属于方法编,这两个东西相当于什么呢?就好像一本书的目录,注意。Select的方法编号,就好像这个书的标题一样,那么IP呢?注意它是什么?它是指针。它是方法实现的一个真实的地址,它就是个指针,它就像页码一样,当你翻开这本书的时候,是不是目录啊?左边是标题啊,右边是页码,真正的这个内容在哪里?
04:02
同学们,真正的内容是不是在这个页码所指向的那个地址啊,对不对?这样理解明白了没有?明白了,敲一好吧,这就是OC当中的S塔MP,这两个东西大家一定要知道好,那么我们所谓的提供的交换两个select MP对应关系的函数是什么呢?就是这个函数叫做method exchange implement,注意它是改变方法实现,那么其实并不是改变,它是什么呢?它叫做交换。它将两个比方说S,那A本来是对应着IPA的,当你调用A方法的时候,它会找到A的实线,调用B方法找到B的实线,但是这个时候呢,我们可以通过master微去改变他们两个的关系,这样子当我调用A方法去找到谁去找到了B的实现,知道吗?那么这一个呢,他在逆向开发中会比较有用,就是后,那么其实master s Switch我相信很多同学都用过,为什么?因为它的正向开发里面,它也有很大的作用,用于买点,或者说防止程序的一个崩溃等等。我接下来呢,给大家写一个DEMO,这里呢,快速的来做一下,好吧,快速来做一下。
05:04
OK,准备好了的给我敲个一,好吧,准备好了的给我敲个一啊,我来写一个DEMO,然后呢,在这个里面呢,我们今天的这个嗯,备课啊,来到今天的公开课,然后呢一八年的十月,然后呢,今天是这个后原理好吧,代码。今天的第一份代码,这个代码呢非常简单,我们先看一下,首先呢,我通过一个实践的场景来跟大家讲啊,我选择6S,因为这个模拟器已经跑起来了,好来到这里我们来看一下我用模拟器来做的好吧,好,那我们首先看一下,咱们经常会有这样一个需求,什么需求来看下,很多地方都会用到啊,比方说UIUI,那么这个时候比如说诶,我打开我们的这个课堂链接好吗?啊,咱们的课堂链接里面是不是有一个这个腾讯课堂,对吧?啊,腾讯课堂里面呢,找到咱们的这个。逻辑教育对吧,好,那么呢,这个时候呢。这右边的是不是URL啊,对吧?啊,这右边的是咱们的URL吧,对不对,好,那比方说就是用这个URL,那逻辑教啊,当这个URL我们打开的时候来看一下,来到浏览器里面可以找到吗?啊是吧。
06:05
看一下啊啊是可以找到的,对不对啊是可以找到的,好,那么比如说啊,咱们这个UI去创建的时候,那么接下来我问你,咱们这样子去,哎呦中文的是吧,咱们这样子去创建的时候,咱们这个NSURL能创建出来吗?能敲个一不能敲个二好吧,能敲个一不能敲个二好吧。那。好,那么注意看啊。为啥k vou使用?交换MP不直接使用exchanges好。为啥使用KVO里面的东西啊?我没有讲过这个好,那看着中文不行对吧,这里有同学就说了,为什么注意看我们现在直接打印这个URL是什么样的,比方说百分的直接打印这个URL,它是个什么值。啊,它是不是个空子,这个大家理解吧,这个没有问题吧,没有问题,敲个一。这个URL一旦有中文,是不是要进行什么。进行什么东西进行转码,对不对,这个OK吧,啊这个OK吧,这个UR应该是个空子,来看着看它打印。
07:05
是不是一个浪对吧?OK,好,那么接下来要进行转码,这个时候转码的代码呢,我就稍微写一下啊,转码的时候怎么转码的啊,是不是有个使均二喷ing呢。对吧,啊,一个是君白A灰是君在这个地方,我们在这个有,呃,在这个字符串的后面啊,是君白喷点。加中中国加错位置了,加在这个地方,把这个字符串呢给包装一下对吧,这个字符串呢,我们对它进行一个转码,那么这个地方我主要讲的不是这个转码的方法啊,是均白喷的。然后呢,我们直接现在是用的这个新方法啊,注意看我们以前的话呢,有一个老的方法是吧,我们有一个unicode的方啊。这个有一个UN库的方法,当然现在已经过期了,对不对,这个时候呢,我们直接给一个UTF80,当然这个时候呢,我们可以看一下这个时候NUTF8对吧,他现在说他已经过期了啊,这样子转码了之后呢。
08:01
这样子转码了之后呢,咱们的这个中文就转码成功,这样子你就能发送请求,对吧,你就能发送请求,好吧,这里就转码成功了,对吧?好,那现在的话呢,他现在过期了之后呢,推荐你去使用的这个方法在这里,对吧,我们come shift加o come加V快速进去,就是这样一个方码,好吧,那么这里面呢,我就不多讲了,好吧,我们用这个方法呢,也能够进行一个转码啊,这里面转码come加C,然后呢过来。我把这个演示一下,整个的这个过程,本来的话呢,这里面如果大家都清楚,我就不跟大家演示了,对吧?好,那么这个方法的话,里面传的参数我们来看一下啊,里面传的参数是一个这个这个类型对吧,那么直接哎呦嘿,我的鼠标直接把它消出来,然后呢。通过他。然后有一个URL。这样子的话呢,就是查询,这里面是一个查询,然后呢,允许的一个字符集,对吧?这样同样的两种方式转码,好,那么这两种方式都可以进行转码没问题,那么接下来注意听,如果说我们在整个工程当中很多的地方都用到了什么URL为执实训,而此时此刻我把它,我把它换过来,好吧,我把它换过来,也就是说如果整个工程当中,整个项目当中很多地方啊,都用到了这个URL维执讯,而不是每一个地方都进行了转码,那么这个时候我们是不是每个地方都要进行一个修改啊,是不是是的,请给老师敲个一好吗?
09:23
是的,请给我敲个一,是不是每个地方我们都要每个用到这里的地方我都要进行修改,这样是不是很麻烦,那么这个时候我们就可以用一个简单的方式,对吧?哎,我们可以写个分类来看着快速来做啊。来到这个地方,我们快速的给NURL来个分类,叫什么叫做汉URL,比方说OK进来,那么在这个分类里面我们怎么做,我们给系统的这个,因为系统的这个URL伪子俊这个方法里面,它并没有对它进行转码操作,也就是说如果有中文根本我不认是不是这样的,那么接下来我要给这个系统的方法多加一个功能怎么做。我怎么给系统的这个方法加一个功能,同学们怎么做?
10:00
啊,以前我们怎么做的,以前有很多的方式,第一个啊,我们可以给它扩展一个方法,对不对啊,我们新建一个方法,比方说叫做什么呢?叫做汉克UI1维字圈啊先我们先写啊,先这样写,比方说来一个类方法啊,Instance返回的是一个instance type啊那么这个时候它不它没有这个提示是吧,没有提示我就直接跳到它里面去。我跳到它里面去,把这个方法直接copy。直接copy c,然后呢,来到这里啊聊到这。卡加V,比方说这个方法啊,这个方法呢,我直接在前面加上一个HK下划线,这样子是不是可以,那有同学问一下,我先问一下大家,我直接重写它的方法可不可以。可不可以?可以敲个一,不可以敲个二。我直接重写它的方法可不可以?可以敲个一,不可以敲个二。有同学说可以啊。可以吗?重写它的方法,是的,你改变了它对吧,你改变了它,但是我问你通过字符串变成URL这个方法,这个这个怎么实现呢。
11:03
啊。通过字符串变成通过字符串变成URL,这个类怎么实现呢?你怎么你怎么写,这里面怎么写啊,请问怎么写。对,你不知道,它封装好了,你不知道知道吧,这个时候你如果说直接重写它,是的可以替换掉,你可以替换掉,但是你并不知道知道吧,所以这个时候呢,最好不要这么干啊,最好不要,当然我们还有一个对象方法是可以的啊,这里面呢,我就你可以试一下有一个对象,就n suil直接绕出来来一个对象,然后呢,可以通过字符创创建知道吧,那个是可以的,但是你还是改变不了它的功能,是不是啊,你还是改变不了它的,好那么接下来我们在这个里面进行修改,这个里面怎么进行修改,首先注意看啊,你给我传进来的这个,我还是调用这个类方法NUR对不对,我调用谁呢?调用系统的URL为直军,那么这个时候卡加b build了一下。这哥们没提示知道吗?他们家BB都一样。在这个里面return。R1这是不是写错了?
12:00
是不是写错了卡加BB啊?好,那么呢,在这个地方啊,来一个NSNSURL没提示是吧,没提示NSURL好吧,好NUL,我们直接写ul with,什么with t,魏讯,然后呢,把谁把你给我传进来的这个u I s stringing,把这个东西给敲一遍,这个时候返回的是一个UR,对吧啊。那么这个UI要注意看。很这里这个UI摇啊,这个UI1,我们传进来之后,接下来什么意思呢?接下来我要做的意思就是我在外面去调用的时候,我不用去修改它,今后你调用,注意你调用的这个URL尾执训这个方法会来到我这个方法里面怎么做。这个时候怎么做,同学们啊,就是外面不管你,直接你调用系统的方法,哥们会跑到我这里来怎么做,你会想到什么啊,同学们,你会想到什么,这哥们很提示,非常惨啊。LVD漏的他都出不来知道吗?啊。你问交换imp非常好,同学们给他一朵鲜花好吧,小零前同学好不好?给小林前同学一朵鲜花,这时候我们可以做到交换方法是不是好?那么呢,交换方法注意我觉得这个地方这个仓库都挂了,知道吧?啊,这个们挂了啊然后呢,O考验我的时候到了,知道吗?Obc来个round.h是吧?谁知道错不错是吧?了一下哈,没错,没写错啊,那首先第一个class下键函数你都不提示get class是吧,对不对?Get class的这里面传两个参数,第一个self,第二个at select。
13:32
我天呐,好亮了,好第一个是URL啊,With是注意with冒号不要搞错对吧?好,这个时候我们能拿到一个什么method,这个系统的method,注意看啊,当你调用系统的method的时候,这是一个系统的method,当你调用系统的method的时候,这是UR位str,我就写简写了,危险接掉。简写了位置TH啊。好,那么这个时候注意关我不要我好那么注意看啊,是到第一个对吧,这是这是谁的,这是系统的对不对,接下来拿第二个,第二个是谁呢?第二个哥们我自己的,也就是说当你外面调用URL讯的时候,来到我这个汉NK可不可以完全可以注意看到啊,这个地方改成汉NK,嗯,我先build露一下,让他报错,报个错了之后应该给给个提示吧,兄弟你都报错了。
14:24
你说报错了,是不是好了一下,好,那么接下来进行交换啊,交换OK,好。Nice,这哥们有点长,OK,这个地方导一下文件啊import,哎,对你非常乖啊,那个文件的问题是吧?啊OC你也不点H吧,好那么呢,接下来来到这里有一个的陷阱啊是吧?这东西有点长知道吧?好,来到这里啊,是吧。好交换一下,交换谁是不是UI1和哥们我的对不对啊和我的OK。和我的。
15:03
Come on c come v,不要激动,好交换成功,交换成功之后,这里下一个断点。是不是会来这里对吧,是不会来这里好,来这里的话呢,应该会来这里面没问题吧,这个地方没问题吧,这个地方如果有问题的话呢,啊,再单独找我好吧,这边没问题的,敲个一给我,有没问题没毛病吧,是吧,这里一旦交换会不会来啊,现在会来打个一,有可能我忽悠你的呢。难道没有没有同学觉得不会来了吗?有没有同学觉得不会来,有的话敲个二。不会来敲。啊,非常棒啊,都会来,不上当你知道吗?好,肯定会来嘛,啊,之前我在讲这个课的时候,有同学说不会来,为什么你没倒这个头,需要倒这个头吗?需要导这个头吗?啊,不需要啊,这个地方跟大家强调一下,不需要啊,这个地方大家都知道,就不讲了,好吧,在我们的比如pass里面,这哥们原文件会参与编译啊,对吧?啊,在咱们这个原文件会参与编译,只要他们参与编译,它就会加载,他只要一加载就会掉漏的,只要一掉漏的哥们就叫交换成功卡加运行,嗯。
16:03
啊,这个地方非常简单,对不对,好,但是简单归简单啊。来这里啊,断点过来,过来之后,接下来我问你,当我过掉之后,接下来会不会打印。来看到外面啊,会不会打印。会敲个一,不会敲个二。会不会打印?会求个一不不会敲高,现在我断到了这个分类里面,断到了这个分类里面是吧,来到了我想要他来的这个方法。接下来会不会?过完之后一个六,然后呢,接下来打印会不会打印会敲个一,不会敲个二。来嘛,大胆的回答,为什么?为什么突然就不回答了呢?是不是回答一下嘛,会敲个一,不会敲个二。会不会打印?好看到吗?有同学就,诶这个时候出现了分歧,对不对,打一下老师,到底会不会呢?哎,这个时候我告诉大家不会。啊,不会啊,非常好啊,有同学打了二,也有同学打一,打一也非常棒,打一的同学也非常棒,为什么?因为你接下来记住了,知道吗?这哥们不会来,为什么呢?看这一句。
17:03
注意看这一句24行这一句,这一句什么意思?这一句是你在调用系统的URL为日军,对不对?那么接下来这是个什么?这是系统的什么东西?这是系统的I select。能理解我意思吗?能理解的消音,这个时候你调用的系统的UI伪训,是的,没毛病,本来没毛病,但是前面你已经做了一个欠接。也就是说前面你做了交换,一旦交换你调用系统的会怎么办,会跑到这里来。是不是的。看一下嘛,过掉。过得掉吗?过不掉了,这哥们儿无线打印。死循环啊,明白了没有?明白了敲个一给我。死循环的知道吗?啊使循环道,嗯。好,那么这个地方严谨一点讲,这哥们叫做递归了,但不叫循环。这不叫死循环,这叫做递归,诶,有同学有老师,看看老师,这个死循环和递归有什么区别吗?没区别啊,诶。
18:04
我现在问你一个面试题,哥们,我面试你,我问你同学石循环和递归是一回事吗?死循环。和死的地归。是一回事吗?啊。哎,非常棒啊,是一回事吗?觉得不是的,打个打个一,觉得不是一回事的,打个一。觉得不是一回事儿,打个一啊,很明显名字不一样是吧?但是他们两个本质上有什么区别吗?本质上有什么区别吗?有一个同学已经回答了,死循环和史蒂归他们在本质上有什么区别吗?这个同学已经回答了,同学们把鲜花给这位QQ同学好不好?老果也说了,有,有区别,有个最大的区别,什么区别?这个哥们说的非常好,叫栈一出,叫做栈一出,其实叫做堆栈一出stay overflow了知道吗?堆栈一出,为什么堆栈一出呢?啊这个地方呢,我就哎一扯又扯远了,想听一下吗?啊想听一下来的话,好吧啊开玩笑啊,我觉得大家要关注好吧,关注啊跟着老师的思路走,这个地方呢,我跟大家补充一下啊,如果是刚刚正好这在这个地方,我想呢,给大家讲一下,如果是递归。
19:11
它和循环是完全两码事,为什么呢?因为对,因为每次函数的调用,这个方法的调用和函数调用一样的啊,方法调用,其实它内部调用的函数嘛,对不对,好那么呢,因为我们OC是在C的基础上的包装好,所以说这里哥们一个函数,函数一调用,它会开辟占空间,就是不断的压站。不断的开辟占空间,这个时候你的内存会不够用,但是循环不一样,循环有可能你不会开辟空间,对不对。这就是这两个的区别,知道吗?这里我稍微提一下关于这个刺儿。好吧,刚刚有同学提到,我就提了一下,好,那么紧接着接下来咱们知道了啊,咱们知道这里哥们会造成死循环,所以说这里有个小小的细节,汉口下划线必须得加,知道吗?把这个把这个断点给我干掉,好吧,这个下划线必须得加啊,这个下划线得加好,然后呢,接下来紧接着我们来到这里。那么这个时候我们怎么办,这个时候简单了吗?如果说对吧?啊,如果说这个URL等等于了六说明什么?有可能有可能是字符串的问题,有可能是字符串转码的问题,所以说这个时候进行一个转码好不好啊,UI1使均是吧。
20:14
这是考验我的,这不可能的,知道吧,没提示下还是吧,你忽悠我是吧啊所以说这个时候呢,把这个代码还是写完,有始有终好吧,我不不是为了图减啊,是菌白喷嚏,然后呢,这个呃A这个in扣。呃,不用它吧,我我不用它好吧,我用它也行。回我看一下群BY,嗯。然后呢,在这里面的话呢,NS。然后诶这里加个中号,然后是我们的这个URLQ。OK,好,把它给复制过去,这就是一个转码的过程。这就是个转码的过程,好吧?Come加X。
21:03
我们叫X把它放这里,所以这样子的话呢,今后啊是吧。今后咱们所有的这个是吧,URL的转换问题是不是就在这里可以结束了,对不对啊,这就是一个它的什么应用场景,仅此而已啊,在正向开发的一个应用场景啊,逆向开发,我上次是不是跟大家讲了对吧?啊,立项开发跟大家讲啊,所以说这个地方呢,把这个字符端转一下对吧,转一下好,那么这个地方注意你现在已经是空了。你现在已经这个地方这个UI是空的,但是我们没有改变它对不对,所以说直接改变它的啊,改变它的好,那么接下来我们直接可以return谁了啊,Return后面这个URL,我们再重新来把这个URL给改变一下NSUR,然后呢。钓谁注意汉口啊,下划线U为这个时候其实调汉口下划线尾持是郡,其实就是钓的谁钓的自己对不对,吊的自己啊,就这么一个过程好吧。把这个URL返回一下,好就搞定了,这个代码呢,大家自己回去慢慢琢磨,然后呢,少了个中口号在哪里,在这里啊,把这个哥们直接干掉。
22:05
我不需要转码了对吧,此时此刻我就不需要转码了,对吧。起来,OK,搞定卡加运行。房价运行。哪里还少了一个分号?好,然后呢,这个时候你看这个文件只要放进去,我外面不管哪一个地方用到了这个,我管你有没有中文,它都会进行一个交互,进行一个什么转码的过程,对吧,它都会进行一个转码,好那这就把这个DEMO就讲完了,那么这个的话呢,就是它的一个正向开发的应用场景,好吧,简单的来讲一下,这个没问题吧,啊没问题,敲个一给我好不好,我们就过了。好吧,我们就过了啊,接下来讲下一个知识点了,好吧,没问题,OK,好,那么呢,这是我们的methodw,叫做方法的欺骗对吧?好,那么方法欺骗完了之后呢,接下来我们来看下一个就是c subtra,那么这个C框架呢,大家了解一下啊,我跟大家简单介绍一下这个呢。有三,由三个部分组成,整个这个框架有三个部分组成三大块,第一大块呢,叫做mobile hook,那么这一个呢,顾名思义啊,这哥们就是用来hook的,专门用来做hook操作的,那么呢,它定义了一系列的宏以及函数啊,它比较偏底层的,那么底层呢,其实它就运用了两个,一个是obc,我们OC语言的round运行时,还有一个呢,就是利用的,所以说今天我们要了解对不对啊的,我相信大家都会了,接下来我们今天呢要学的就是这个Facebook,那么呢,它就是通过和Facebook来进行替换,知道吧来进行替换,那么其中呢,它有两个函数提供给外面的,一个叫做hook message,一个叫做hook function hook message呢,主要就是用来hook OC方法的,注意看这个函数里面的参数,你看里面的参数是不是就是利用long相当于利用round,首先第一个参数哪个类对吧,第二个哪个方法编号,第三个新的方法实现,第四个老的方法实现。
23:56
说白了,你把这两个给我,我不就是帮你交换这两个方法的实现吗?对不对啊,我帮你交换的就是这两个方法的实现吗?啊对吧,它其实用的就是round,好,那么呢,接下来用于C和C加加函数的呢,就是用的这个MS方形这个函数知道吗?那么呢,如果说有同学玩过立项之前啊,用过log语法的话呢,At hook其实就是对这个函数做了一层封装啊,你用的at hook其实就是它好那么注意。
24:24
我们的C还有另外两个模块分别是啊这个呢,它主要是用于加载三方的动态库啊,在运行应用程序的时候呢,启动我们的这个啊mobile标load,那他会了,根据规则把指定的是吧,第三方库我们列好了的一些第三方库加载进序,那么第三方库的动态库呢,也就是我们写的一些破解程序,它是注,它注入的是这个动态注入,知道吧,它注入的是动态注入啊,历层利用的这个底层的一些函数啊好,然后呢,还有一个就是。Model这一个的话呢,本质它主要是干嘛的,它主要是做保护的,知道吧,它主要是做保护的,破解程序呢,基本上就是我们的一些动态库,知道吧,我们写的破解程序,它是寄生我们写的那些插件呢也好,我们的破解的代码也好,它是寄生在别的程序APP里面的,对不对?那么一旦这个程序崩了或者出错了,那么呢,就会进入到一个安全模式下。
25:17
这个安全模式呢,其实就是基于我们这个C的一些三方的动态库呢,都会被禁用掉,也就让你的按照你们以前写的方式进行一个运行啊,便于我们去查查知道吧,便于我们去查错,就这么一个过程,所以说整个C它非常的成熟,因为它并不仅仅只是用于iOS的,那么接下来如果我们要了解其原理,我们要学谁呢?诶,非常好,就是今天晚上我们要了解到非后OOK,好吧,那么这就是关于后的一个简单的概述,这里听懂了的给老师来朵鲜花,好吧,我把这个视频保存一下,这是我们今天的第一个视频。
我来说两句