0

Image Description

荆文征

Zhidu Inc.


你好,再见

在ios上,因为客户端运行在各种形形色色的人手中,我们就要对自己交付出去的软件,进行一些列的守护。今天我这里就来看看,怎么进行一些守护。

既然谈到,防御,就得明白这些人的进攻方式,才可以进行守护。

以下我会从两个方面来看看如何攻击和如何防御

  1. 越狱hook
  2. 网络抓包 篡改

在开发的时候遇到一个问题,我们的测试找到我,跟我说,我的邮箱输入的明明是对的,为什么告诉我不符合规则呢?我开始了问题排除。

func emailVerfication(disposeBag: DisposeBag) -> Observable<String?> {

    let vCodeBehaviorSubject = BehaviorSubject<String?>(value: nil)

    let pattern = "^[\\w._%+-|][email protected][\\w0-9.-]+\\.[A-Za-z]{2,}$"

    let textObservable = rx.text.distinctUntilChanged().filterNil()

    textObservable.filter { text in text.count <= 0 }.map { _ in "邮箱不可为空" }.bind(to: vCodeBehaviorSubject).disposed(by: disposeBag)
    textObservable.filter { text in text.count > 0 }.map { Validator.regex(pattern).apply($0) ? nil : "邮箱格式不正确" }.bind(to: vCodeBehaviorSubject).disposed(by: disposeBag)

    return vCodeBehaviorSubject
}

是我的代码出了问题吗?

2018年就这样要结束了,忙碌了一年…

2018年上半年几乎没有任何产出,都是在学习区块链相关。倒是学习了很多,受益匪浅。前段时间,比特币崩盘,也印证了我的猜想。

本身比特币就是一次实验,被人可以的搞成了一次“投资”?还真有人信。当然,我TM要是早点知道,这个玩意,我也信,韭菜真香……………………

一直到了,9月底,才迎来了一个项目。接下来的几天,我会整理一下,在开发这个款软件遇到的问题,以及解决方式,也算是为我的2018,来个收尾。

这个问题和Maven的自己的本地源一样,就是想向 Cocoapods Spac 一样的工作。那么接下来我们就来结合一个我现实中遇到的实例来实现这个问题

最近公司需要引入百度的人脸识别,以及身份证等文字识别两个sdk,但是百度这种大公司,根本不会让你很舒服的引入,只能手动引入,但是我不是很喜欢,所以我就使用本地 Cocoapods 来完成这个事情。

在使用的时候,遇到了一些问题,特此记录一下

锁,在多个线程中一起访问同一个属性,如果不加锁的话,会导致数据出现错误。

举一个最简单的例子,又一个 int 类型的公共变量 值为 0,2个线程同时访问他,都做10次累加。那么极有可能会出现,这个值不等于20的情况。
这种时候就需要锁这种东西,我觉的锁,其实和信号量还是挺像的,感觉像信号量的进阶?

在共享内存多处理器体系结构中,可以使用线程来实现并行性。从历史上看,硬件供应商已经实现了自己的专有版本的线程,使得可移植性成为软件开发人员的关注点。对于UNIX系统,标准化的C语言线程编程接口已由IEEE POSIX 1003.1c标准规定。坚持这个标准的实现被称为POSIX线程或Pthreads。

本教程首先介绍使用Pthread的概念,动机和设计注意事项。然后介绍Pthreads API中三大类例程中的每一个:线程管理,互斥变量和条件变量。示例代码用于演示如何使用新Pthreads程序员所需的大部分Pthreads例程。本教程最后讨论了LLNL细节以及如何将MPI与pthreads混合。实验室练习还包括许多示例代码(C语言)。

级别/先决条件:本教程非常适合那些刚接触pthread的并行编程人员。在C中的并行编程的基本理解是必需的。对于那些不太熟悉并行编程的人来说,EC3500:并行计算入门所涉及的 内容将会很有帮助。

我也已经学习了挺久了,那么接下来我会进行一些总结性的记录。

线程,就是进程中的一个动作,比如者活着是进程,那么吃饭就算是线程,当然跑步也算线程。
线程有几个属性,
CancelState 规定了,这个线程是否可以取消,比如跳楼,这个进程就不能返回。再比如说,坐公交车是可以随时不做的。但是这就牵涉到了怎么取消了
CancelType,一种是 deffered延期的,啥意思呢? 前面不是说了 坐公交车可以取消。那么这个 type的意思就是,你会在下一站下车,而不是想反回就返回的。另一种是 async 这种就比较暴躁了… 说要取消,立马取消!“老子才不管到没到站!给老子停车!!!! 行! 不听是吧!我跳!车!”
specific,线程中的私有公共变量,在同一个线程中可以获取到的值,需要使用 pthread_key_t 来存储。大概的意思就是,比如跑步的时候 终点在哪儿,无论在跑步这个线程任何时间都是知道的,但是做饭这个线程就不需要知道这个 终点。
schedparam,

为了学习IOS中的多线程,开始研究线程。但是感觉一开始就学习IOS的线程的话,很难理解,所以学习了Pthreads。

POSIX Threads Programming

Author: Blaise Barney,Lawrence Livemore National Laboratory

Abstract

在共享内存多处理机架构中,线程可以用来实现并行。从历史来说,硬件供应商实现了他们各自的线程版本,使移植成为了软件开发人员关系的问题。在UNXI系统中,一个标准化C语言的线程API已经有了 IEEE POSIX 1003.1c ,坚持这个标准实现成为POSIX线程,或者 Pthreads.
本教程首先介绍 Pthread的概念,动机和设计注意事项。然后介绍 Pthreads API中三个主要类的历程:线程管理,互斥变量和条件变量。示例代码是为了让新的使用Pthreads的程序员知道如何使用Pythreads。本教程最后讨论了 LLNL 细节以及如何将MPI与Pthreads混合
学习这篇教程的先决条件:本教程非常适合那些刚接触Pthread的并行编程人员。在C中的并行编程基本理解是必需的。对于那些不太熟悉并行变成的人来说,EC3500:并行计算入门所设计的内容将很有帮助。