前言阅读笔者的其他文章,我们了解了编译过程中的预处理、词法分析、语法分析、编译、链接等步骤。经常和编译型语言打交道的开发者对于可执行文件的编译过程肯定不陌生。我们用 Xcode 构建一个程序的过程中,会把源文件 (.m 和 .h) 文件转换为一个可执行文件。这个可执行文件中包含的...
前言本篇文章虽然是介绍iOS开发中ipa包的签名原理。但因为签名涉及到密码学中的概念。在了解签名之前,我们需要明确一些概念。密码学中,根据加解密密钥的不同,通常把加密方式分为对称密码(对称加密)和公钥密码(非对称加密)。常见加密算法有:DES、3DES、DESX、AES、RSA、...
ARM处理器我们知道,目前为止Apple的所有iOS设备都采用的是ARM处理器。ARM处理器的特点是体积小、低功耗、低成本、高性能,所以很多手机处理器都基于ARM,ARM在嵌入式系统中也具有广泛的应用。 ARM处理器的指令集对应的就是ARM指令集。armv6|armv7|armv...
什么是脱壳iOS端App在上线之前会有苹果商店进行FairPlayDRM数字版权加密保护,我们称之为“加壳”。要对App Store分发的iOS App进行分析,我们需要先对App进行解密,我们称之为“脱壳”,有些人也称为“砸壳”。脱壳之后的二进制文件就是原始的、未加密的二进制文...
前言上篇文章介绍了iOS逆向中常用的一些软件,其中就介绍了OpenSSH可以帮助我们在Mac或windows上以SSH的方式安全登录iPhone设备。OpenSSH介绍说到OpenSSH需要先介绍SSH。SSH(Secure Shell)是建立在应用层基础基础上的安全协议。用于计...
前言通常,在iOS设备越狱后,需要安装一些必要的插件来增强越狱设备的可操作性。过去iOS设备越狱后大家首先会在cydia上添加pp源(http://apt.25pp.com)。但因为pp助手已停止服务,所以这个源已经不可用,对于一些cydia官方源没有提供的插件,我们需要自己寻找...
前言因为工作需要,笔者最近在研究越狱,网上看了很多文章,这篇文章记录了给iOS 13设备越狱的方式和过程,希望对你有帮助。越狱设备:iPhone 6s 16G越狱系统:iOS 13.5越狱方式:unc0ver 本文采用Xcode + iOS App Signer的方式对iOS 1...
前言作为一名iOS开发者,长期以来和MacOS、iOS系统打交道,对iOS和MacOS系统并不陌生。在开发中,我们也经常访问甚至修改MacOS的某些目录,每个系统目录都有其特殊的功能定位。而iOS系统源自MacOS,在很多方面iOS都和MacOS很相似,笔者借助最近逆向的机会,系...
前言对iOS开发者而言,runloop是一个老生常谈的话题,但凡是iOS开发者,在工作中必然直接或间接的接触过runloop。而对于面试者而言,runloop又几乎是必考点。在几年前,笔者写过一篇文章NSRunLoop,对runloop原理以及应用场景做了基本介绍。但是当时也是道...
数据库表的操作主要包括修改表名、查看表结构、添加字段、删除字段、修改字段类型、修改字段名、给表设置主键、设置自增长字段、删除表、清空表。下面会一一举例。创建表#最简单的方式: mysql> create table stu( -> id int not null prim...
简介MYSQL完整性约束条件主要包括:auto_incrementnot null 和 defaultuniqueprimary keyforeign keyunique、 primary key、not null、default相对简单,本篇文章不做记录。auto_increm...
查看所有数据库show databases;复制切换数据库# 切换到student数据库 use student;复制查看当前数据库select database(); 或 通过show tables查看 mysql> show tables; +---------------...
数据库简介什么是数据库(DataBase,简称DB)数据库,又称为数据管理系统,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据运行新增、截取、更新、删除等操作[1]。 --《维基百科》数据库即存放数据的仓库,只不过这个仓库是在计算机存储设备上,而且数据...
我们知道,RN可以调用Native侧的方法。并且RN框架也给我们提供了这一能力,只要我们按照某些约定在native侧实现一个方法,那么就可以在JS侧顺利调用。如下实现了一个简单的native模块:#import <Foundation/Foundation.h> #import ...
前言移动端FPS优化已经是一个老生常谈的话题了,但在相当长一段时间内却一直是一个不过期的话题,除非硬件强大到可以帮我们抹平屏幕成像和渲染上的性能损耗。身为一个移动互联网从业者,对FPS的认识和优化依旧是很有限的,深感不安和羞愧,本文整理了之前的一些工作笔记,结合一些大牛们的优秀文...
前言PureComponent继承自Component。PureComponent几乎和Component完全相同。唯一不同之处在于Component的shouldComponentUpdate的默认实现是返回true。而PureComponent通过props和state的浅比...
前言简单的数据我们可以直接从一个表中获取,但在真实的项目中查询符合条件的数据通常需要牵扯到多张表,这就不得不使用多表查询。多表查询分为多表连接查询、符合条件链接查询、子查询。多表连接查询包括内连接、外连接、全连接。符合条件连接查询本质上是多表连接查询+过滤条件。子查询是将一个查询...