自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

TSLee的博客

iOS Dev Boy

  • 博客(16)
  • 收藏
  • 关注

原创 网络协议06 - 传输层

传输层详解

2022-10-23 23:20:47 1088 2

原创 网络协议05 -网络层

网络层协议首部分析

2022-08-09 22:35:35 1736

原创 网络协议04 - 物理层和数据链路层

网络分层模型为了更好地促进互联网络的研究和发展,国际标准化组织 ISO 在 1985 年制定了网络互连模型,OSI 参考模型(Open System Interconnect Reference Model),具有 7 层结构然而上面的模型仅仅是理论模型,真正应用过程中用得最多的其实是TCP/IP 协议模型打.........

2022-07-28 12:11:13 1047

原创 Alamofire源码分析 - POST请求

Alamofire源码分析

2022-06-24 18:34:12 1191

原创 网络协议03 - 路由和NAT

路由如前面所知,在不同网段之间转发数据,需要有路由器的支持。然而默认情况下,路由器只知道跟它直连的网段,因此非直连的网段需要通过静态路由、动态路由告诉它。静态路由:管理员手动添加路由信息,适用于小规模网络动态路由:路由器通过路由选择协议(比如RIP、OSPF)自动获取路由信息,适用于大规模网络首先讲一下静态路由如何手动添加路由信息,如下图所示,如何配置可以让四台主机互相通信?上图中,计算机0、1可以相互通信,路由器0知道彼此的网段,同理计算机2、3也是一样,但是计算机0想要和计算机3通信,

2022-05-04 16:58:52 1924

原创 网络协议02 - Mac地址和IP地址

MAC地址介绍每一个网卡都要一个6字节的MAC地址(Media Access Control Address),该地址全球唯一,固化在网卡的ROM中,由IEEE802标准规定前3个字节:组织唯一标识符,由IEEE的注册管理结构分配给厂商后3个字节:网络接口标识符,由厂商自行分配表示格式不同系统下的MAC地址表示方式如下Windows:40-55-82-0A-8C-6DLinux、Android、Mac、iOS:40:55:82:0A:8C:6DPacket Tracer:4055

2022-04-20 23:58:05 4787

原创 网络协议01 - 基础概念

服务器代码主要有以Java为主客户端 - 服务端的基本概念(1)Java跨平台的原理其实Java跨平台和解释性语言是很像的,例如JavaScript、Python等,像JavaScript从浅的角度是游览器解析,本质上就是游览器引擎(如Chrome的V8)C/C++跨平台原理服务器环境服务器环境的搭建结构大致如下所示:服务器:本质就是计算机,可以设置多个端口号(端口相当于服务器给客户端提供服务的窗口)JVM:Java虚拟机,全程Java Virtual Machine服务器软件T

2022-04-17 16:04:22 2516

原创 05-Theos

在前面的例子中,利用Cycript可以对某个App进行调试,但是其效果只是临时的,因为一旦杀掉App进程,就会重新恢复成原样。那么如何在修改完APP后,能永久性的保持效果呢?接下来就需要利用到Theos,Theos是一系列工具的合集,可以通过Theos创建tweak项目,Hook目标App的一些方法,然后对tweak项目进行编译、打包,生成deb插件(其实就是一个动态库文件),安装到iPhone上,其原理接下来会说到安装签名工具ldidldid是一个命令行签名工具,可以用于导出的签名文件、对文件进行重

2021-01-16 15:25:17 1496

原创 01-iOS逆向环境准备和SSH登录

对手机越狱进行越狱使用“爱思助手”进行越狱,我当前使用环境为13.2.2,iPhoneX,非完美越狱(手机重启后需再次越狱)。越狱成功后,手机上会出现名为Cydia的应用,该应用相当于AppStore,支持安装各种第三方的软件逆向必备的插件Apple File Conduit2作用是可以访问整个iOS设备的文件系统,软件源为 apt.saurik.com 和 apt.25pp.comAppSync Unified可以绕过系统验证,运行破解的ipa系统包,软件源为 apt.25pp.com

2021-01-15 15:28:13 844 3

原创 04-加壳和脱壳

何为加壳?如前面所介绍的,拿到一个App的ipa包可以通过class-dump、 Hopper Disassembler等工具进行分析,然而当我们利用这些分析手机里从App Store下载的App安装包时,会发现都是一些经过加密的文件,无法进行分析这是因为App Store对我们上传的App进行了加壳操作,那么何为加壳呢?其实是利用特殊的算法,对可执行文件的编码进行改变(比如压缩、加密),以达到保护程序代码的目的加壳前,App可执行文件中的代码会被装载到内存中加壳后,App可执行文件进行加密,其

2020-12-15 22:45:45 1416 1

原创 03-什么是Mach-O文件?

App从开发到安装到手机上的过程想要了解Mach-O文件,首先要了解从编写代码,开发App到App打包并安装到手机上的整个过程首先代码经过编译、链接、签名获得一个“xxx.app”包,app包里面就装着nib文件、资源文件以及可执行文件(Mach-O文件),我们编写的代码其实就放在这个Mach-O文件里面大然后经过zip压缩,将app包转成ipa包,而ipa包就可通过以下几个途径可以装到手机里上传至App Store,自行下载通过Xcode、爱思助手、iFunBox等工具安装逆向App

2020-12-13 22:03:04 1367

原创 02-Cycript的使用

Cycript介绍Cycript是Objective-C++、ES6(JavaScript)、Java等语法的混合物,可以用来探索、修改、调试正在运行的Mac\iOS APP,需要通过Cydia安装Cycript,即可在iPhone上来调试运行中的App,可以点击官网来查看,可以点击Cycript文档来查看Cycript的使用方式注意:App在运行时才能进行调试Cycript开启和关闭在进行此步骤前,需要先将Mac和iPhone用USB进行连接(在第一节中有介绍)Cycrip的指令有:

2020-10-15 22:45:38 1455

原创 iOS内存管理

内存管理原则自己生成的对象,自己持有非自己生成的对象,自己也能持有不在需要自己持有的对象时释放非自己持有的对象无法释放自己生成的对象,自己持有使用 alloc/new/copy/mutableCopy 名称开头的方法名意味着自己生成的对象只能自己持有!// 自己生成并持有对象id obj = [[NSObject alloc] init];id obj1 = [NSObject new]

2016-09-02 23:46:29 787

原创 事件传递和响应者链条

iOS中的事件首先iOS中的事件分为三种:触摸事件 加速计事件 远程控制事件 那么这篇文章主要讲解就是触摸事件!事件的产生和传递传递过程如下:发生触摸事件后,系统会将该时间加入到一个由UIApplication管理的事件队列中UIApplication会从事件队列中取出最前面的事件,然后将事件分发下去以便处理,通常,先发送事件给应用程序的主窗口(keywindow)主窗口会在视图层次结构中找

2016-07-28 09:31:58 474

原创 GCD的定时器

首先需要说明一点:GCD的定时器和NSTimer是不一样的,NSTimer受RunLoop影响,但是GCD的定时器不受影响,因为RunLoop也是基于GCD的(源代码可知)。接下来看CGD定时器的具体实现(分为以下几步):创建定时器// 获得队列 dispatch_queue_t queue = dispatch_get_global_queue(0, 0);// 创建定时器 s

2016-05-05 12:23:31 1767

原创 瀑布流(自定义布局实现)

这篇文章主要分享如何用自定义布局来实现瀑布流,关于瀑布流的其他实现方式可以参考我的另一篇文章 瀑布流(UIScrollView实现),利用UICollectionView实现瀑布流有个非常大的好处就是我们不用关心重用机制,只把注重点放在如何自定义布局来排布每一个cell的位置新建一个布局DSWaterFlowLayout,继承自UICollectionViewLayout一、提供可用接口(列数,行间

2016-02-28 00:03:30 720

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除