desgard.com

AutoLayout 中的线性规划 - Simplex 算法

前一段时间由于跳槽,博客停更了大概有 150 天左右的样子。在所有事情都安置好后,决定推掉之前写过的半截文章,开始更这么一个专题。再这之前,自己没有阅读 paper 的习惯,这也是一次对自己的挑战。 本文与 iOS 关系不大,多半偏向 paper 的学习和算法介绍,请读者根据兴趣自行阅读。 温习线性规划 当我们在 Storyboard 上建立完一堆约束后,发现其实所有的约束都可以用多个约束间的不等式关系来描述。于是乎将 UI...

验证试验 - 探求 fishhook 原理(二)

示例 Demo Code 继续使用上一篇文中的代码示例: #include <stdio.h> #include "fishhook.h" static int (*original_strlen)(const char *_s); int new_strlen(const...

直到双眼适应黑暗 - 2017 年小结

作者注:原本题目为《探寻属于自己的森林》,但是一想到可能有点绿(╯‵□′)╯︵┻━┻,就改成了《挪威的森林》中另外一句印象深刻的话。也许“适应黑暗”有些悲观,但是也能引申为从学生到职场员工的一种身份的转变吧。 忙忙碌碌地度过了 2017,这年一直在探求自己未来的职业方向,和探索需要学习的一些新的技术,汇总一下今年的一些成绩,也算是给自己一个交代(找点存在感)。 书与音乐 年初的时候给自己定下了这么一个目标:持续阅读,畅销书适量阅读,技术书精细挖掘。用豆瓣记录了一年的小说、传记、杂文及设计书阅读量,共20本,其用来处理平时在交通工具上的琐碎时间: 技术书上,决定以深度为主,因为想在移动领域更上一层,要做到每一页都事件,每一段代码都理清思路。以下为技术书单以及学习情况(按照推荐度排序): 《iOS 应用逆向工程》:用来入门逆向看的书。这本书也是收获颇多的一本,从使用 class-dump 、Theos、Cydia 等逆向工具,到 Tweak 的编写实战直至使用 IDA 、LLDB...

巧用符号表 - 探求 fishhook 原理(一)

这是 探求 fishhook 原理 系列的第一篇。主要讲述了 Facebook 开源库 fishhook 的源码实现细节。需要具备 Mach-O 相关知识。可以先阅读 Mach-O 文件格式探索 一文。 关于符号表的基本知识...

Shadowsocks Probe II - TCP 代理过程

(续 Shadowsocks Probe I - Socks5 与 EventLoop 事件分发) TCPRelay 及 Socket 监听事件 前文我们了解了 Shadowsocks...

Mach-O 文件格式探索

最近开始研究 iOS 逆向的相关知识,并且使用 MonkeyDev 对 WeChat 进行了实战。这里我放出后期会持续更新的个人项目 WeCheat。在逆向专题真正开始之前,需要系统的学习一些软件内幕知识。这篇文章将从二进制格式开始讲起,并探秘 Mach-O 文件格式内容。 进程与二进制格式 进程在众多操作系统中都有提及,它是作为一个正在执行的程序的实例,这是 UNIX 的一个基本概念。而进程的出现是特殊文件在内存中加载得到的结果,这种文件必须使用操作系统可以认知的格式,这样才对该文件引入依赖库,初始化运行环境以及顺利地执行创造条件。 Mach-O(Mach...