首页
学习
活动
专区
工具
TVP
发布

Scott_Mr 个人专栏

专栏作者
43
文章
59134
阅读量
28
订阅数
二、应用脱壳
iOS端App在上线之前会由苹果商店进行FairPlayDRM数字版权加密保护(简称“加壳”)。要对应用进行分析,就必须先解密(成为“脱壳”),从而得到原始未加密的二进制文件。本节将讨论各种各样的脱壳技术。
Scott_Mr
2022-05-13
1.2K0
一、越狱环境搭建
通过爱思助手查看哪些系统支持越狱,最好选择可刷机可越狱版本,选择支持ARM64架构的设备(iPhone5s及以上),选择iOS9.0及以上版本,因为很多App不能在iOS9之前的版本运行,优先考虑“完美越狱”的设备,因为它们重启后不需要重新越狱。 随着BootROM(checkm8)漏洞的公开,基于该漏洞的“永久越狱”工具checkra1n悄然发布,支持iPhone5~iPhoneX之间的任何设备。因为BootROM漏洞无法修复,所以该工具也能支持iOS12、iOS13以及未来所有版本设备的越狱。在官网可以下载越狱工具,喜欢高版本系统的读者可以考虑。
Scott_Mr
2022-05-12
1.1K0
Mach-O相关概念
Mach-O是Mach Object的缩写,是Mac/iOS上用于存储程序、库的标准格式
Scott_Mr
2022-05-11
8760
程序员进阶之算法练习(一)
前言 可能很多移动端编程的同学听到算法就感到恐惧,认为我不会算法也能开发呀。确实,不会算法,也能应对一般的工作。但是和大牛之间的差距就是,可能别人3行代码实现的东西,你却要写10多行,并且性能比别人差。那么,让我们来学习一些算法吧。 算法学习 算法的学习最简单的方式就是多练习,找一个提供算法练习的网站,思考,编码,验证,最后再看看别人的思路。 本系列的题目来自LeetCode。IDE采用的Xcode,笔者使用的是swift。 (ps:以下练习中代码实现部分并不是唯一解答方法,仅供参考) Two Sum 题
Scott_Mr
2018-07-05
5800
利用Runtime实现简单的字典转模型
前言 我们都知道,开发中会有这么一个过程,就是将服务器返回的数据转换成我们自己定义的模型对象。当然服务器返回的数据结构有xml类型的,也有json类型的。本文只讨论json格式的。 大家在项目中一般是怎么样将服务器返回的json转化成自己定义的模型类呢? 我在项目中一般都是使用的MJExtension。 本文讲解的也基本就是解读MJExtension中的部分源码。 好了,废话不多说,直接上代码,let's go 简单字典转模型 首先,从最简单的字典开始,例如我们需要将如下的字典转化成自定义的模型。
Scott_Mr
2018-07-05
1.2K0
两个App之间调起通信
前言 经常使用一些app的分享功能,比如点击QQ分享,就从app打开(跳转到)QQ,然后分享完之后又回到我们的app,那么这是怎样实现的呢? 假设有这么一个需求,由app1跳转到app2,当app2完成任务之后,要把app2中的某些信息传到app1中(假设我们自己的程序是app1) 过程 我们创建两个新的工程,一个叫Test1,一个叫Test2。 本篇文章将使用Test1作为第一个app的URL Schemes,Test2作为第二个app的URL Schemes。 Test1工程配置 由于iOS9.0之后跳
Scott_Mr
2018-07-05
4960
两个imageView实现图片轮播
前言 在不少的项目中,都会用到图片轮播这个功能,现在网上关于图片轮播的轮子也层出不穷,千奇百怪,笔者根据自己的思路,用两个imageView也实现了图片轮播,这里给大家介绍笔者的主要思路以及大概步骤。
Scott_Mr
2018-07-05
1.1K0
如何正确使用const(常量),define(宏)
前言 在开发中,也许我们会经常使用到宏定义,或者用const修饰一些数据类型,经常有开发者不知道怎么正确使用,导致项目中乱用宏定义与const修饰符。本篇主要介绍在开发中怎么正确使用const与define(宏定义) 当我们想定义全局共用的一些数据时,比如通知名字,动画时长等等,我们可以用宏、常量、变量: 宏: // 注意后面不需要带符号 #define ScottDidLoginSuccess @"登陆成功" 变量: // 注意后面一定要带符号 NSString *sc
Scott_Mr
2018-07-05
8570
自定义转场详解(一)
前言 本文是我学习了onevcat的这篇转场入门做的一点笔记。 今天我们来实现一个简单的自定义转场,我们先来看看这篇文章将要实现的一个效果图吧: 过程详解 热身准备 我们先创建一个工程,首先
Scott_Mr
2018-07-05
8930
Git从入门到速成
什么是Git Git是Linux发明者Linus开发的一款新时代的版本控制系统,那什么是版本控制系统呢?怎么理解?网上一大堆详细的介绍,但是大多枯燥乏味,对于新手也很难理解,这里我只举几个例子。 熟悉编程的都知道,我们在软件开发中源代码其实是最重要的,那么对源代码的管理变得异常重要: 为了防止代码的丢失,肯定本地机器与远程服务器都要存放一份,而且还需要有一套机制让本地可以跟远程同步; 我们开发的时候免不了有bug,有时候刚发布的功能就出现了严重的bug,这个时候需要对代码进行还原; 随着我们版本迭代的功能越
Scott_Mr
2018-07-05
4160
ReactiveCocoa(二)
前言 通过ReactiveCocoa(一)的学习,相信大家对ReactiveCocoa有了一些基本认识吧。下面就让我们来学习ReactiveCocoa的一些基本使用吧! ReactiveCocoa基本使用 代替代理 在ReactiveCocoa(一)中讲到可以通过RACSubject代替代理,我们也可以通过rac_signalForSelector同样代替代理。 代码演练 // 需求:自定义redView,监听红色view中按钮点击 // 之前都是需要通过代理监听,给红色View添加一个代理属性,点击按钮的
Scott_Mr
2018-07-05
5700
ReactiveCocoa(一)
前言 之前总听别人说什么Reactive Cocoa + MVVM,但是没有找到讲解Reactive Cocoa相关的资料。结果进入新公司,项目里面有部分代码使用到了Reactive Cocoa,所以笔者在这记录自己学习Reactive Cocoa的笔记,同时也希望大家通过阅读这篇文章能学到点什么。 Reactive Cocoa简介 Reactive Cocoa(简称RAC,PS:不是ARC(自动引用计数)),是由Github开源的一个应用于iOS和OS开发的新框架,cocoa是苹果整套框架的简称,因此很多
Scott_Mr
2018-07-05
4150
程序员进阶之算法练习(一)
前言 可能很多移动端编程的同学听到算法就感到恐惧,认为我不会算法也能开发呀。确实,不会算法,也能应对一般的工作。但是和大牛之间的差距就是,可能别人3行代码实现的东西,你却要写10多行,并且性能比别人差。那么,让我们来学习一些算法吧。 算法学习 算法的学习最简单的方式就是多练习,找一个提供算法练习的网站,思考,编码,验证,最后再看看别人的思路。 本系列的题目来自LeetCode。IDE采用的Xcode,笔者使用的是swift。 (ps:以下练习中代码实现部分并不是唯一解答方法,仅供参考) Two Sum 题
Scott_Mr
2018-05-16
6360
初识 Runtime
前言 之前在看一些第三方源码的时候,时不时的能碰到一些关于运行时相关的代码。于是乎,就阅读了一些关于运行时的文章,感觉写的都不错,写此篇文章为了记录一下,同时也重新学习一遍。 Runtime简介 Runtime简称运行时,OC就是运行时机制。 C语言中函数的调用在编译的时候就会决定调用哪个函数。 对于OC来说,属于动态调用过程,在编译的时候并不能决定调用哪个函数,只有真正运行的时候才会根据函数的名称找到对应的函数来调用。 事实证明: 在编译阶段,OC可以调用任何函数,即使这个函数并未实现,只要申明就不会报
Scott_Mr
2018-05-16
6520
利用Runtime实现简单的字典转模型
前言 我们都知道,开发中会有这么一个过程,就是将服务器返回的数据转换成我们自己定义的模型对象。当然服务器返回的数据结构有xml类型的,也有json类型的。本文只讨论json格式的。 大家在项目中一般是怎么样将服务器返回的json转化成自己定义的模型类呢? 我在项目中一般都是使用的MJExtension。 本文讲解的也基本就是解读MJExtension中的部分源码。 好了,废话不多说,直接上代码,let's go 简单字典转模型 首先,从最简单的字典开始,例如我们需要将如下的字典转化成自定义的模型。
Scott_Mr
2018-05-16
1.8K0
两个App之间调起通信
前言 经常使用一些app的分享功能,比如点击QQ分享,就从app打开(跳转到)QQ,然后分享完之后又回到我们的app,那么这是怎样实现的呢? 假设有这么一个需求,由app1跳转到app2,当app2完成任务之后,要把app2中的某些信息传到app1中(假设我们自己的程序是app1) 过程 我们创建两个新的工程,一个叫Test1,一个叫Test2。 本篇文章将使用Test1作为第一个app的URL Schemes,Test2作为第二个app的URL Schemes。 Test1工程配置 由于iOS9.0之后跳
Scott_Mr
2018-05-16
7590
两个imageView实现图片轮播
前言 在不少的项目中,都会用到图片轮播这个功能,现在网上关于图片轮播的轮子也层出不穷,千奇百怪,笔者根据自己的思路,用两个imageView也实现了图片轮播,这里给大家介绍笔者的主要思路以及大概步骤。
Scott_Mr
2018-05-16
1.1K0
如何正确使用const(常量),define(宏)
前言 在开发中,也许我们会经常使用到宏定义,或者用const修饰一些数据类型,经常有开发者不知道怎么正确使用,导致项目中乱用宏定义与const修饰符。本篇主要介绍在开发中怎么正确使用const与define(宏定义) 当我们想定义全局共用的一些数据时,比如通知名字,动画时长等等,我们可以用宏、常量、变量: 宏: // 注意后面不需要带符号 #define ScottDidLoginSuccess @"登陆成功" 变量: // 注意后面一定要带符号 NSString *sc
Scott_Mr
2018-05-16
2.2K0
自定义转场详解(一)
前言 本文是我学习了onevcat的这篇转场入门做的一点笔记。 今天我们来实现一个简单的自定义转场,我们先来看看这篇文章将要实现的一个效果图吧: 过程详解 热身准备 我们先创建一个工程,首先
Scott_Mr
2018-05-16
8460
Git从入门到速成
什么是Git Git是Linux发明者Linus开发的一款新时代的版本控制系统,那什么是版本控制系统呢?怎么理解?网上一大堆详细的介绍,但是大多枯燥乏味,对于新手也很难理解,这里我只举几个例子。 熟悉编程的都知道,我们在软件开发中源代码其实是最重要的,那么对源代码的管理变得异常重要: 为了防止代码的丢失,肯定本地机器与远程服务器都要存放一份,而且还需要有一套机制让本地可以跟远程同步; 我们开发的时候免不了有bug,有时候刚发布的功能就出现了严重的bug,这个时候需要对代码进行还原; 随着我们版本迭代的功能越
Scott_Mr
2018-05-16
7080
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档