在过去N年里,缓冲区溢出一直是网络攻击中最常被利用的漏洞。 看一下缓冲区是如何创建的,就能知道原因所在。...下面是C语言的一个例子: 第一步,程序员使用 malloc 函数并定义缓冲区内存的数量(例如32位) 第二步,返回指针,指示内存中缓冲区的开始位置 第三步,当程序员需要读取或写入该缓冲区时,程序员都会使用该指针...编译器在程序中使用元数据来分配适当的缓冲区大小,但是这个元数据通常在构建时被丢弃了。 如果在程序内或程序之间传输的数据随后超出原定义的缓冲区大小,则数据信息将覆盖相邻的内存。...ASLR和堆栈金丝雀是基于软件的缓冲区溢出保护机制,这些机制确实使攻击者更难利用缓冲区溢出。...进一步说,同样的原理可以应用于一般的控制流劫持,因为来自内存中不同点的返回值可以在发生之前受到限制。 实际上,这种实时意识也为安全行业创造了一个新的竞争环境。
;或者当我们使用HTTPS协议时,一旦服务器提供的证书不被默认信任则需要客户端人为确认是否信任此服务器证书;或者用HTTPS协议时服务端也需要客户端提供证书进行双向认证时;或者我们是通过代理服务器来请求数据时客户端需要提供代理服务器的用户和密码进行认证...(用户和密码,或者客户端证书,或者信任服务器证书,或者代理),IOS提供了一个NSURLCredential的类来表示挑战凭证。...可以肯定的是包括挑战的方式(401授权,客户端证书,服务端要求信任等,如果是这个则会提供一个SecTrust对象)、服务器的URL地址,端口号,协议等等。...,类中描述服务器中希望的认证方式以及协议,主机端口号等信息。...也就是客户端在处理willSendRequestForAuthenticationChallenge函数的最后必须指定接收挑战的方式。客户端可以调用sender中的协议指定的方法来执行接收挑战的方式。
GData (Google Data APIs Protocol)是一种简单的标准协议,用于网络数据的读写。...它结合了常见的基于xml的数据聚合格式(Atom与RSS)以及基于Atom发布协议的Feed发布体系,并扩展了部分功能用于处理查询功能。...GData让用户可以使用聚合(syndication)的机制来发送请求并接收结果,它使你可以发送数据给Google,更新那些Google已经拥有的数据。 这些技术化的说明听起来似乎有点让人头晕。...不过,简单地理解,GData扩展了原有的RSS和Atom协议,使其从一种单向的聚合变成了双向的互动,这似乎是大家都在探索的feed的未来发展方向,比如微软的SSE。...;Maurice Codik认为GData标准使Google的数据更加开放,各种应用之间可以更方便地利用这一标准来使用数据;甚至有人认为这使得基于Google各种应用的企业门户雏形开始显现。
有3D-touch机型的坑昨天在上线的时候遇到了一个坑,最后导致的结果是找了好几个小时,直接到半夜才能上线。...入正题: 坑是:项目运行在456上没什么问题,但是在6S以上的机型就有点击事件不响应的情况出现,我的是直接登录界面就点击按钮都没有反应,有的时候轻点就有可能有响应,但是响应很慢。...首先自己从点击事件的不响应开始去排查,发现响应事件也开着,也不是触摸范围的问题,再者是怀疑是不是VC的层级结构的问题,开始尝试各种跳转,还是在6S上没有反应,甚至新建了一个类控制器来跳转测试,上面就丢了一个按钮...后来在百度中无意看到一个说法:项目中对UIButton有分类的,有可能会对3D-Touch的机型有影响的,我的天啊,然后检查项目,把关于UIButton的扩展去掉后,项目正常了。...或许是因为我的那个UIButton的分类里加了touch方法才导致这个结果,而没有写touch方法的UIButton的分类应该是没有影响的。
一、背景 前段时间对我们自己的App做了结构上的重构,抛弃了之前简单的MVC开发模式,原因是随着App的业务线越来越多,单个页面的功能越来越复杂,MVC开发模式导致整个Controller-layer的代码越来越多...而且iOS中执行界面跳转的时候,很容易产生模块间的耦合。...iOS执行界面跳转的时候,代码如下: [firstViewController.navigationController pushViewController:destinationViewController...这种方案有极大的灵活性。 而且此种方案最容易跨平台实现的,iOS, Android,PC都可以按照URL来进行路由。...iOS中可以通过URL Scheme进行进程间的通信,同App外面打开App中的某个页面,此方案可以完美兼容URL Router。
---- 上一节我们了解 RPC 的经典模型和设计要点,并用最早期的 ONC RPC 为例子,详述了具体的实现。...ONC RPC 存在的问题 ONC RPC 将客户端要发送的参数,以及服务端要发送的回复,都压缩为一个二进制串,这样固然能够解决双方的协议约定问题,但是存在一定的不方便。 ...传输协议问题 我们先解决第一个,传输协议的问题。 基于 XML 的最著名的通信协议就是SOAP了,全称简单对象访问协议(Simple Object Access Protocol)。...协议约定问题 接下来我们解决第二个问题,就是双方的协议约定是什么样的? ...小结 原来的二进制 RPC 有很多缺点,格式要求严格,修改过于复杂,不面向对象,于是产生了基于文本的调用方式——基于 XML 的 SOAP; SOAP 有三大要素:协议约定用 WSDL、传输协议用 HTTP
Google Code是Google的一个开放源码计划,当中包含源码托管,即提供一个server来保存、共享和管理源码。...假设你登陆了你的GOOGLE账号,而且拥有该项目的改动权限,会提示你: 使用https的方式来check out下来全部的代码,然后便能够參与到项目的协作开发中了,当然,这样连接的时候会向你请求username...code.google.com 下载代码 这里讲如何使用SubEclipse。...协议,而拥有更高权限的是https协议: 这一步不解释了: 对代码文件的每次更新,都是须要加上凝视的,便于记录和别人读懂,当然, 不加也能够。...、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、 以下以下载google closure为例。(点击进入google closure下载主页) 1.
首先,代理协议的命名方式:类名 + Delegatev protocol LXFViewDelegate { func view(_ view: LXFView) } 当我们创建的协议遵守其它协议的情况下...报错 意思是weak只能修饰一个类或者类绑定协议的类型 正如提示一样,我们当前的代理并非是一个类或者类绑定协议的类型 当前我们这个协议不仅可以被类遵守,还可以被结构体和枚举所遵守(这里不演示了)...解决�办法有两个: 办法1 直接在协议的后面写上【: class】或者【: NSObjectProtocol】 protocol LXFPageViewDelegate: class // 或者 protocol...class 这种方式下推荐【: class】,相比之下更为轻量级 办法2 在protocol前面加上【@objc】,表示objc类型的协议 @objc protocol LXFPageViewDelegate...objc 这种方式下的优点是协议中的方法不强制实现
上拍摄的照片 可以尝试自己在这个谷歌Colab。.../ Jupyter笔记本上显示经过处理的视频。...OpenCV视频编写器的输出是Mp4视频,其大小是原始视频的3倍,并且无法以相同的方式显示在Google Colab上,解决方案之一是进行压缩(源) 使用以下方式将Mp4视频压缩为h264ffmpeg...尝试自己的视频 转至谷歌Colab文件GitHub上 https://colab.research.google.com/github/vindruid/yolov3-in-colab/blob/master...在Google Colab上显示视频 https://stackoverflow.com/questions/57377185/how-play-mp4-video-in-google-colab 视频压缩
前言:作为一名IOS开发者,把开发出来的App上传到App Store是必须的。下面就来详细介绍下具体流程。...注:一般一个开发者帐号创建一个发布证书就够了,如果以后需要在其他电脑上上架App,只需要在钥匙串访问中创建p12文件,把p12文件安装到其他电脑上。这相当于给予了其他电脑发布App的权限。...注意:填写完一定要点击右上角的保存。在Xcode中打包工程找到你刚刚下载的发布证书(后缀为.cer)或者p12文件,和PP文件,双击,看起来没反应,但是他们已经加入到你的钥匙串中。...35.在Xcode中选择模拟器为iOS Device,按照下图提示操作36.修改.plist文件,两个.plist文件都要修改37.然后发送到我的App38.发送成功后返回到我对App,刷新页面,在构建版本处就会有个...+ 号,点击 + 号把发送过来的程序添加上去就行了39.然后在定价处设置你的App上架后是免费还是收费。
很多第三方框架中,有这样的一种用法:有一个.h的头文件,它里面只有协议的声明,而且没有对应的.m实现文件。通常这种文件就用来专职声明协议的作用了。 ?...这个协议是声明在TYTextStorageProtocol.h文件里面的。大家查看这个文件可知,它里面主要声明了几个协议,而且没有对应的.m文件。 ?...方法是前面那个协议声明的方法,所以,只有当前面做了判断是否服从该协议之后,才可将暂时还是个id类型的drawStorage对象进行转换,转成一个服从该协议的对象,进而执行协议方法。...对象的转换: (id)drawStorage 3.如何使对象服从指定协议 至于一个对象是否“服从”的标准:就是该对象的类或其父类的@interface后面跟上一个协议...,并实现协议的方法。
Today,记录下前几个月前上架 Google 的那些辛酸事儿。 其实上架 Google 很 easy,按照官方说明,少搞些小动作,本本分分、规规矩矩,easy 的很。 But,人世间岂能事事如愿?...之所以在这里说这么多,是因为我上架 Google 因为这些前期准备不足,而且盲目自大的行为,导致后期上架延期估计有个大半个月。...上架 Google Play 这里为了帮助和我一样首次上架 Google Play 的小伙伴,下面内容将会有贼多的图片,已上架的大佬隔壁撩小姐姐去吧~ 一、注册 Google 账号 首先你要有个账号,...接下来老生常谈的隐私协议,老样子,该同意的点同意(PS:我总感觉这些很鸡肋,咋滴,我不同意你能让我愉快的玩耍吗?): ? 最后一步,自己照照镜子: ?...协议勾选: ? 到这里,基本资料填写完毕。 四、上架应用 提交正式包前检查下 build 配置,看看当前支持的 CPU 架构是哪儿写,有没有包含 64 位。 如果为包含则提示如下: ?
在代码审核的长期实践中,我们总结出了最佳实践,并在此基础上整理出了这些建议。整篇文档各部分的衔接性并不大,在阅读时,你可以选取自己感兴趣的部分,而不必按顺序阅读全文。...代码样式 在Google,我们所有的主要编程语言都要遵循代码样式指南,确保 CL 遵守代码样式指南中的建议。...在Google,我们雇佣都是伟大的工程师,你是其中一员。如果你读不懂代码,很有可能其他工程师也不懂。实际上,这么做也是在帮助以后的工程师,当他读到这段代码时更容易理解代码。所以,让开发者解释清楚。...代码审核的速度 什么应该尽快审核代码 在Google,我们优化了团队开发产品的的速度,而不是优化单个开发人员写代码的速度。单个开发人员的开发速度固然重要,但远没有整个团队的开发速度 重要 。...但是, 不要为了想象中的速度提升,在代码审核标准或质量上妥协 ——实际上,从长期来,这样做并不会节省时间。 紧急情况 当然,也会有紧急情况,要求审核流程尽快完成,此时代码质量也有适当的弹性空间。
现在 Google 的 https 链接通通被 Q 了,之前还能在手机上打开 Google Play 商店痛快的下载应用,现在除非 FQ 或挂 VPN,不然等着你的就是菊花进度一直转啊转啊转…… # 解决办法...利用 APK Downloader 等网站就可以在 PC 端直接下载 Google Play 上的应用的 APK 安装包,完全脱离手机。...不过这方法只限下载免费应用的 APK 安装包,付费的就别想了,乖乖下载 XX 版或付费购买支持作者吧。...http://apps.evozi.com/apk-downloader/ (opens new window) 输入Package name或者应用在google play上的网址,就可以获取apk
此处的文件是指公开的文件,不需要输入密码也不需要登录Google drive即可获取的文件。 1....下载小文件 wget --no-check-certificate ‘https://docs.google.com/uc?...export=download&id=FILEID’ -O FILENAME 替换对应的FILEID即可,FILENAME自己命名。...FILEID是Google drive公开分享的链接中ID后面的,例如: https://drive.google.com/open?...下载大文件 因为Google drive的大文件,无法通过安全查杀 wget --load-cookies /tmp/cookies.txt "https://docs.google.com/uc?
本文笔者在 MDCC 16 (移动开发者大会) 上 iOS 专场中的主题演讲的文字整理。...因为全部内容比较长,所以分成了上下两个部分,本文 (上) 主要介绍了一些理论方面的内容,包括面向对象编程存在的问题,面向协议的基本概念和决策模型等,下半部分主要展示了一些笔者日常使用面向协议思想和 Cocoa...引子 面向协议编程 (Protocol Oriented Programming,以下简称 POP) 是 Apple 在 2015 年 WWDC 上提出的 Swift 的一种编程范式。...所谓协议,就是一组属性和/或方法的定义,而如果某个具体类型想要遵守一个协议,那它需要实现这个协议所定义的所有这些内容。协议实际上做的事情不过是“关于实现的约定”。...上添加 extension。
App上架教程 在上架App之前想要 真机测试的同学 请查看 iOS- 最全的真机测试教程 里面包含怎么让多台电脑同时 上架App和同时真机调试。...如果安装不上,可以直接将证书文件拖拽到钥匙串访问的列表中 重点: 一般一个开发者帐号创建一个发布证书就够了,如果以后需要在其他电脑上上架App,只需要在钥匙串访问中创建p12文件,把p12文件安装到其他电脑上...特别注意: 这里填写的Apple ID 不是你自己手机上创建的Apple ID 一定要是 开发者账号的 账号和密码 (QAQ 我就在这里被坑过) 2、选择模拟器为iOS Device,按照下图提示操作...这里我们插一个知识点 iOS打包-api包的4中方法 图片 ** 打包过程中 会出现的问题 ** 解决方案:iOS- 打包时 UUID出错的解决方案 **application...真机测试的同学 请查看 iOS- 最全的真机测试教程 里面包含怎么让多台电脑同时 上架App和同时真机调试。
准备 开发者账号 完工的项目 上架步骤 一、创建App ID 二、创建证书请求文件 (CSR文件) 三、创建发布证书 (CER) 四、创建Provisioning Profiles配置文件 (PP文件)...如果安装不上,可以直接将证书文件拖拽到钥匙串访问的列表中 重点: 一般一个开发者帐号创建一个发布证书就够了,如果以后需要在其他电脑上上架App,只需要在钥匙串访问中创建p12文件,把p12文件安装到其他电脑上...特别注意: 这里填写的Apple ID 不是你自己手机上创建的Apple ID 一定要是 开发者账号的 账号和密码 (QAQ 我就在这里被坑过) 2、选择模拟器为iOS Device,按照下图提示操作...5、打包之后会生成一个 ipa文件 ,然后返回我的App~~在构建版本处,点击Application Loader 就会将其下载下来,然后通过该软件把ipa文件上传到 appstore上。...打包过程中 会出现的问题 解决方案:iOS- 打包时 UUID出错的解决方案 application Loader 上传出现的错误 发送成功后返回到我的App,刷新页面,在构建版本处就会有个 + 号
在本章第一节将介绍可用的协议以及各自优缺点。 下面一节将解释使用那些协议的典型设置及如何在你的服务器上运行。...对非资深的使用者,或者系统上缺少 SSH 相关程序的使用者,HTTP 协议的可用性是主要的优势。 与 SSH 协议类似,HTTP 协议也非常快和高效。...你也可以在 HTTPS 协议上提供只读版本库的服务,如此你在传输数据的时候就可以加密数据;或者,你甚至可以让客户端使用指定的 SSL 证书。...另一个好处是 HTTP/S 协议被广泛使用,一般的企业防火墙都会允许这些端口的数据通过。 缺点 在一些服务器上,架设 HTTP/S 协议的服务端会比 SSH 协议的棘手一些。...除了这一点,用其他协议提供 Git 服务与 “智能” HTTP 协议相比就几乎没有优势了。 如果你在 HTTP 上使用需授权的推送,管理凭证会比使用 SSH 密钥认证麻烦一些。
区分:类的NSObject与协议的NSObject iOS开发中,苹果提供的一些系统类都属于NSObject的子类,例如UIColor类的定义如下所示。 ?...NSObject协议 事实上,从NSObject类的定义可知,NSObject的类本身就遵循NSObject协议,如下图所示。 ? NSObject 2....协议NSObject的用法 NSObject协议的定义 ?...一个解决办法是利用协议的多继承:将自定义的协议继承自父类中的协议。...拓展 OC里面的类本来是不支持多继承的,但有的面试官还是会问到iOS里面如何实现多继承?除了运行时的办法,还有一种就是通过协议的多继承来实现。