IOS
文章平均质量分 81
拿铁先生
不想当蛋糕大师傅的程序员不是好股民
展开
-
iOS攻防-实战(2)-反重签与反注入
前言:上一篇我们讲了如何通过重签名目标ipa文件以及修改Math-O来实现动态注入。知道如何攻击,是为了找出攻击细节来实现防御。这一篇我们来讨论下如何防御动态注入。相信了解了动态注入过程的同学都会有这样的体会:动态注入的核心步骤有2点:重签名 添加自己的framework反重签之前在讲重签名时,我留了一个伏笔:重签名时,打包的证书不是原始ipa开发团队的,证书变了,bun...原创 2019-12-05 11:47:21 · 1112 阅读 · 1 评论 -
iOS攻防-实战(1)-动态注入
前言:之前几篇讲了一些背景知识,这一篇进入正题,来讲一下动态注入的基本理论和流程。我们这里通过动态添加运行库的方式来实现动态注入。ipa包结构还记得我们之前介绍Math-O文件时,提到了Load commands嘛?其中有一部分是加载第三方库的:注意其中的:LC_LOAD_DYLIB(AFNetworking)。那么,能否通过修改Math-O文件来加载我们需要动态注入的库呢?答...原创 2019-12-03 19:25:26 · 1078 阅读 · 0 评论 -
iOS攻防-序章(2)-签名机制
前言:对于一个iOS开发入门来说,一定会被一堆诸如:csr文件、私钥、Provisioning Profile、p12等名词搞的一头雾水。当年我也如此,但相信我,iOS的签名机制其实并不复杂,而了解这套机制对于iOS攻防的研究有很大帮助何为签名假设A和B进行通讯,A向B发送了一个讯息,B收到后,会有一个问题?如何证明这个信息来自于A?了解过非对称加密算法的同学应该不难想出解决方法,...原创 2019-11-27 00:13:15 · 256 阅读 · 0 评论 -
iOS攻防-序章(1)-Mach-O文件结构解析
前言:最近因为工作需要,一直在研究iOS的逆向工程。说起来,这个方面涉及到的的知识面实在太广,所以想开一个系列,从基础知识到实战攻防,系统的总结一下最近的所思所学。第一篇,先从一个基础知识开始:Mach-O文件。说起Mach-O文件,很多开发人员应该不陌生。即使你没有听过Mach-O,但你也肯定知道exe文件是什么。每个操作系统都有自己的可执行文件,比如Linux下的ELF,Windo...原创 2019-11-22 11:15:38 · 518 阅读 · 0 评论 -
iOS 和 Android:UITableView与RecycleView的重用机制比较
引言:iOS和Android各有自己的列表组件。众所周知,列表组件一直都是移动端各个端中,组件重用、内存优化的重点。今天就来分析下iOS和Android各自的重用机制。Android:RecyclerView的缓存机制先来熟悉下ViewHolder的几个状态isInvalid:表示当前ViewHolder是否已经失效。通常来说,在3种情况下会出现这种情况:1.调用了Adapter...原创 2019-11-10 21:25:52 · 519 阅读 · 0 评论 -
移动端开发规范
移动端开发规范引言:最近得空,整理一些平时工作中要求的开发规范,浅薄之处还请大家多指教。目录移动端开发规范代码规范基本原则代码清晰一致性通用规范类命名方法命名变量命名常量命名枚举类型命名图片命名通用规范通用设计规范开屏页版本号版本检查开屏页广告推送通用测试用例及处理规范规范用例数据埋点规范...原创 2019-08-16 10:13:23 · 2749 阅读 · 0 评论 -
Core Image研究
Core Image研究demo git地址 说起Core Image,恐怕不少人会觉得陌生,毕竟和Core Data、Core Animation、Core Graphics比起来,Core Image使用频率还是比较低的。不过,如果你的工作涉及到图像处理,除了一些第三方的框架(GPUImage之类)Core Image还是相当不错的选择。基本概念CoreImage是一个图原创 2016-12-15 11:35:03 · 361 阅读 · 0 评论 -
Swift3.0 gcd学习(3)
Swift3.0 gcd学习笔记(3)Deadlock 死锁之前提到过gcd死锁:两个线程因为互相等待对方完成而都被卡住。第一个不能完成是因为它在等待第二个的完成。但第二个也不能完成,因为它在等待第一个的完成。怎么理解呢?先看个例子,一言不合上代码://block1{ print("1"); let m = DispatchQueue.main; //b原创 2016-11-26 20:02:45 · 327 阅读 · 0 评论 -
Swift3.0 gcd学习(1)
Swift3.0 gcd学习(1)最近机缘巧合花了点时间研究了下IOS的多线程,这里做个总结,算是学习笔记,不足之处,还请大家多指正。废话不多,这就开始! demo git地址多线程概述IOS多线程的方案,基本有四条路: gcd NSOperation NSThread Pthreads 说起IOS多线程解决方案,gcd基本是第一选择。不过让oc程序员比较纠结的事情是原创 2016-11-21 14:44:02 · 298 阅读 · 0 评论 -
Swift3.0 gcd学习(2)
Swift3.0 gcd学习(2)上一篇简单梳理了下gcd的基础概念和一些基本的使用方法。这一篇希望再深入研究下gcd的一些玩法,有错误希望大家指正。barrier有时会在一个并发的队列里读写一个数据对象。如果只是读操作还好,但如果有写入操作,那数据就可能会有意料之外的问题。之前使用dispatch_barrier_async来解决这个问题,在swift3.0,被搬到了Dispatch原创 2016-11-23 11:04:58 · 420 阅读 · 0 评论 -
CoreAnimation研究(2)
CoreAnimation研究(2)demo git地址 在第一篇提到了CoreAnimation水很深,之所以着么说,是因为它除了普通的动画效果外,还有很多很高级的玩法。CAShapeLayer如果你厌倦了动画只是简单的对uiview的各种属性操作,想自己画点图形怎么办?CAShapeLayer是一个不错的选择!一言不合上代码://画圆 let bPath = UIBezierP原创 2016-12-05 13:39:01 · 280 阅读 · 0 评论 -
CoreAnimation研究(1)
CoreAnimation研究(1)demo git地址 关于ios动画,之前只是简单地用过UIView,对于CoreAnimation,大名虽然早就有耳闻,但一直没机会研究。最近因为项目原因,深入接触了下CoreAnimation,真是一入豪门深似海啊!相比于UIView,CoreAnimation的功能实在强大太多(貌似UIView的动画 就是基于CoreAnimation封装的)基本概念C原创 2016-12-05 11:03:23 · 264 阅读 · 0 评论 -
IOS数组排序整理
IOS数组排序整理demo git地址 说起ios的排序,方法有很多种,最近正好有时间,做了一次整理,顺便测试了一下各种排序方法的效率,有不对的地方,望大家指正测试的排序方法主要有以下几种:插入排序(自己实现)快速排序(自己实现)swift array.sorted(by: {(Any, Any) -> Bool})oc nsarray sortedArray(comparator:原创 2016-12-12 11:56:44 · 1231 阅读 · 0 评论