<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[TSLee的博客]]></title><description><![CDATA[iOS Dev Boy]]></description><link>https://blog.youkuaiyun.com/ldszw</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ldszw]]></copyright><item><title><![CDATA[网络协议06 - 传输层]]></title><link>https://blog.youkuaiyun.com/ldszw/article/details/126394450</link><guid>https://blog.youkuaiyun.com/ldszw/article/details/126394450</guid><author>ldszw</author><pubDate>Sun, 23 Oct 2022 23:20:47 +0800</pubDate><description><![CDATA[传输层详解]]></description><category></category></item><item><title><![CDATA[网络协议05 -网络层]]></title><link>https://blog.youkuaiyun.com/ldszw/article/details/126243375</link><guid>https://blog.youkuaiyun.com/ldszw/article/details/126243375</guid><author>ldszw</author><pubDate>Tue, 09 Aug 2022 22:35:35 +0800</pubDate><description><![CDATA[网络层协议首部分析]]></description><category></category></item><item><title><![CDATA[网络协议04 - 物理层和数据链路层]]></title><link>https://blog.youkuaiyun.com/ldszw/article/details/124575473</link><guid>https://blog.youkuaiyun.com/ldszw/article/details/124575473</guid><author>ldszw</author><pubDate>Thu, 28 Jul 2022 12:11:13 +0800</pubDate><description><![CDATA[网络分层模型

为了更好地促进互联网络的研究和发展，国际标准化组织 ISO 在 1985 年制定了网络互连模型，OSI 参考模型（Open System Interconnect Reference Model），具有 7 层结构

然而上面的模型仅仅是理论模型，真正应用过程中用得最多的其实是TCP/IP 协议模型

打

.........]]></description><category></category></item><item><title><![CDATA[Alamofire源码分析 - POST请求]]></title><link>https://blog.youkuaiyun.com/ldszw/article/details/125169800</link><guid>https://blog.youkuaiyun.com/ldszw/article/details/125169800</guid><author>ldszw</author><pubDate>Fri, 24 Jun 2022 18:34:12 +0800</pubDate><description><![CDATA[Alamofire源码分析]]></description><category></category></item><item><title><![CDATA[网络协议03 - 路由和NAT]]></title><link>https://blog.youkuaiyun.com/ldszw/article/details/124558511</link><guid>https://blog.youkuaiyun.com/ldszw/article/details/124558511</guid><author>ldszw</author><pubDate>Wed, 04 May 2022 16:58:52 +0800</pubDate><description><![CDATA[路由

如前面所知，在不同网段之间转发数据，需要有路由器的支持。然而默认情况下，路由器只知道跟它直连的网段，因此非直连的网段需要通过静态路由、动态路由告诉它。

静态路由：管理员手动添加路由信息，适用于小规模网络
动态路由：路由器通过路由选择协议(比如RIP、OSPF)自动获取路由信息，适用于大规模网络

首先讲一下静态路由如何手动添加路由信息，如下图所示，如何配置可以让四台主机互相通信？

上图中，计算机0、1可以相互通信，路由器0知道彼此的网段，同理计算机2、3也是一样，但是计算机0想要和计算机3通信，]]></description><category></category></item><item><title><![CDATA[网络协议02 - Mac地址和IP地址]]></title><link>https://blog.youkuaiyun.com/ldszw/article/details/124231543</link><guid>https://blog.youkuaiyun.com/ldszw/article/details/124231543</guid><author>ldszw</author><pubDate>Wed, 20 Apr 2022 23:58:05 +0800</pubDate><description><![CDATA[MAC地址

介绍
每一个网卡都要一个6字节的MAC地址（Media Access Control Address），该地址全球唯一，固化在网卡的ROM中，由IEEE802标准规定


前3个字节：组织唯一标识符，由IEEE的注册管理结构分配给厂商
后3个字节：网络接口标识符，由厂商自行分配

表示格式
不同系统下的MAC地址表示方式如下

Windows：40-55-82-0A-8C-6D
Linux、Android、Mac、iOS：40:55:82:0A:8C:6D
Packet Tracer：4055]]></description><category></category></item><item><title><![CDATA[网络协议01 - 基础概念]]></title><link>https://blog.youkuaiyun.com/ldszw/article/details/123078594</link><guid>https://blog.youkuaiyun.com/ldszw/article/details/123078594</guid><author>ldszw</author><pubDate>Sun, 17 Apr 2022 16:04:22 +0800</pubDate><description><![CDATA[服务器代码主要有以Java为主
客户端 - 服务端的基本概念（1）

Java跨平台的原理

其实Java跨平台和解释性语言是很像的，例如JavaScript、Python等，像JavaScript从浅的角度是游览器解析，本质上就是游览器引擎（如Chrome的V8）
C/C++跨平台原理

服务器环境
服务器环境的搭建结构大致如下所示：


服务器：本质就是计算机，可以设置多个端口号（端口相当于服务器给客户端提供服务的窗口）
JVM：Java虚拟机，全程Java Virtual Machine
服务器软件T]]></description><category></category></item><item><title><![CDATA[05-Theos]]></title><link>https://blog.youkuaiyun.com/ldszw/article/details/112679708</link><guid>https://blog.youkuaiyun.com/ldszw/article/details/112679708</guid><author>ldszw</author><pubDate>Sat, 16 Jan 2021 15:25:17 +0800</pubDate><description><![CDATA[在前面的例子中，利用Cycript可以对某个App进行调试，但是其效果只是临时的，因为一旦杀掉App进程，就会重新恢复成原样。那么如何在修改完APP后，能永久性的保持效果呢？
接下来就需要利用到Theos，Theos是一系列工具的合集，可以通过Theos创建tweak项目，Hook目标App的一些方法，然后对tweak项目进行编译、打包，生成deb插件（其实就是一个动态库文件），安装到iPhone上，其原理接下来会说到
安装签名工具ldid
ldid是一个命令行签名工具，可以用于导出的签名文件、对文件进行重]]></description><category></category></item><item><title><![CDATA[01-iOS逆向环境准备和SSH登录]]></title><link>https://blog.youkuaiyun.com/ldszw/article/details/108742319</link><guid>https://blog.youkuaiyun.com/ldszw/article/details/108742319</guid><author>ldszw</author><pubDate>Fri, 15 Jan 2021 15:28:13 +0800</pubDate><description><![CDATA[对手机越狱进行越狱

使用“爱思助手”进行越狱，我当前使用环境为13.2.2，iPhoneX，非完美越狱（手机重启后需再次越狱）。
越狱成功后，手机上会出现名为Cydia的应用，该应用相当于AppStore，支持安装各种第三方的软件
逆向必备的插件

Apple File Conduit2
作用是可以访问整个iOS设备的文件系统，软件源为 apt.saurik.com 和 apt.25pp.com
AppSync Unified
可以绕过系统验证，运行破解的ipa系统包，软件源为 apt.25pp.com
]]></description><category></category></item><item><title><![CDATA[04-加壳和脱壳]]></title><link>https://blog.youkuaiyun.com/ldszw/article/details/111187619</link><guid>https://blog.youkuaiyun.com/ldszw/article/details/111187619</guid><author>ldszw</author><pubDate>Tue, 15 Dec 2020 22:45:45 +0800</pubDate><description><![CDATA[何为加壳？

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

加壳前，App可执行文件中的代码会被装载到内存中
加壳后，App可执行文件进行加密，其]]></description><category></category></item><item><title><![CDATA[03-什么是Mach-O文件？]]></title><link>https://blog.youkuaiyun.com/ldszw/article/details/111137442</link><guid>https://blog.youkuaiyun.com/ldszw/article/details/111137442</guid><author>ldszw</author><pubDate>Sun, 13 Dec 2020 22:03:04 +0800</pubDate><description><![CDATA[App从开发到安装到手机上的过程

想要了解Mach-O文件，首先要了解从编写代码，开发App到App打包并安装到手机上的整个过程
首先代码经过编译、链接、签名获得一个“xxx.app”包，app包里面就装着nib文件、资源文件以及可执行文件（Mach-O文件），我们编写的代码其实就放在这个Mach-O文件里面
大

然后经过zip压缩，将app包转成ipa包，而ipa包就可通过以下几个途径可以装到手机里

上传至App Store，自行下载
通过Xcode、爱思助手、iFunBox等工具安装

逆向App]]></description><category></category></item><item><title><![CDATA[02-Cycript的使用]]></title><link>https://blog.youkuaiyun.com/ldszw/article/details/109039249</link><guid>https://blog.youkuaiyun.com/ldszw/article/details/109039249</guid><author>ldszw</author><pubDate>Thu, 15 Oct 2020 22:45:38 +0800</pubDate><description><![CDATA[Cycript介绍

Cycript是Objective-C++、ES6（JavaScript）、Java等语法的混合物，可以用来探索、修改、调试正在运行的Mac\iOS APP，需要通过Cydia安装Cycript，即可在iPhone上来调试运行中的App，可以点击官网来查看，可以点击Cycript文档来查看Cycript的使用方式

注意：App在运行时才能进行调试


Cycript开启和关闭

在进行此步骤前，需要先将Mac和iPhone用USB进行连接（在第一节中有介绍）
Cycrip的指令有：
]]></description><category></category></item><item><title><![CDATA[iOS内存管理]]></title><link>https://blog.youkuaiyun.com/ldszw/article/details/52420311</link><guid>https://blog.youkuaiyun.com/ldszw/article/details/52420311</guid><author>ldszw</author><pubDate>Fri, 02 Sep 2016 23:46:29 +0800</pubDate><description><![CDATA[内存管理原则
自己生成的对象，自己持有
非自己生成的对象，自己也能持有
不在需要自己持有的对象时释放
非自己持有的对象无法释放
自己生成的对象，自己持有使用 alloc/new/copy/mutableCopy 名称开头的方法名意味着自己生成的对象只能自己持有！// 自己生成并持有对象
id obj = [[NSObject alloc] init];id obj1 = [NSObject new]]]></description><category></category></item><item><title><![CDATA[事件传递和响应者链条]]></title><link>https://blog.youkuaiyun.com/ldszw/article/details/52051994</link><guid>https://blog.youkuaiyun.com/ldszw/article/details/52051994</guid><author>ldszw</author><pubDate>Thu, 28 Jul 2016 09:31:58 +0800</pubDate><description><![CDATA[iOS中的事件首先iOS中的事件分为三种：
触摸事件 加速计事件 远程控制事件 那么这篇文章主要讲解就是触摸事件！事件的产生和传递传递过程如下：
发生触摸事件后，系统会将该时间加入到一个由UIApplication管理的事件队列中
UIApplication会从事件队列中取出最前面的事件，然后将事件分发下去以便处理，通常，先发送事件给应用程序的主窗口（keywindow）
主窗口会在视图层次结构中找]]></description><category></category></item><item><title><![CDATA[GCD的定时器]]></title><link>https://blog.youkuaiyun.com/ldszw/article/details/51321831</link><guid>https://blog.youkuaiyun.com/ldszw/article/details/51321831</guid><author>ldszw</author><pubDate>Thu, 05 May 2016 12:23:31 +0800</pubDate><description><![CDATA[首先需要说明一点：GCD的定时器和NSTimer是不一样的，NSTimer受RunLoop影响，但是GCD的定时器不受影响，因为RunLoop也是基于GCD的（源代码可知）。接下来看CGD定时器的具体实现（分为以下几步）：
创建定时器
// 获得队列
    dispatch_queue_t queue = dispatch_get_global_queue(0, 0);// 创建定时器
    s]]></description><category></category></item><item><title><![CDATA[瀑布流（自定义布局实现）]]></title><link>https://blog.youkuaiyun.com/ldszw/article/details/50757664</link><guid>https://blog.youkuaiyun.com/ldszw/article/details/50757664</guid><author>ldszw</author><pubDate>Sun, 28 Feb 2016 00:03:30 +0800</pubDate><description><![CDATA[这篇文章主要分享如何用自定义布局来实现瀑布流，关于瀑布流的其他实现方式可以参考我的另一篇文章 瀑布流（UIScrollView实现），利用UICollectionView实现瀑布流有个非常大的好处就是我们不用关心重用机制，只把注重点放在如何自定义布局来排布每一个cell的位置新建一个布局DSWaterFlowLayout，继承自UICollectionViewLayout一、提供可用接口（列数，行间]]></description><category></category></item></channel></rss>