绝不仅仅是一篇 WWDC 2017 Session 411 学习笔记。除了有关 LLVM 9.0 的新特性之外,还有关于静态分析器和 Clang 5 Objective-C ARC 的一点看法和经验。

我觉得 LLVM 9 的亮点如下:

  1. 支持 Objective-C API 可用性检查
  2. 新增一些对隐患代码的静态分析检查和 warning
  3. 更快的 LTO,使其可以真正使用

Read More

机器学习和计算机视觉在 iOS 上虽然早已有了系统级的支持,但 WWDC 17 发布的 iOS 11 将它们的使用门槛大大降低。苹果提供了设计合理且容易上手的 API,让那些对基础理论知识一窍不通的门外汉也能玩转高大上的前沿科技,这是苹果一贯的风格。

Read More

最近一个月从零开始自学了下有关 iOS 上的机器学习相关知识,亲身实践了从数据采集到训练模型再到移动端预测的流程。理论知识学习路径为:机器学习->深度学习->迁移学习;实践框架学习路径为:TensorFlow->Keras->MPS(iOS 10)。最终完成一个简单的手势图像五分类问题,并预测 iOS 摄像头采集的图片。最终结果,训练集准确率 96.26%,交叉验证集准确率 73.86%。

Read More

Objective-C 中的 Hook 又被称作 Method Swizzling,这是动态语言大都具有的特性。在 Objective-C 中经常会把 Hook 的逻辑写在 + load 方法中,这是利用它调用时机较提前等性质。

有时候需要 Hook 子类和父类的同一个方法,但是它们的 + load 方法调用顺序不同。一个常见的顺序可能是:父类->子类->子类类别->父类类别。所以 Hook 的顺序并不能保证,就不能保证 Hook 后方法调用的顺序是对的。而且使用不同方法 Method Swizzling 也会带来不同的结果。本文将会对这些情况下的 Hook 结果进行分析和总结。

Read More

在逆向工程中往往需要针对想要做的功能 Hook 到相应的方法和属性,小白面对 class-dump 后的大量头文件表示只能靠『猜』。这里我分享下逆向微信实现屏蔽群消息和好友消息的实战经验,适用于非越狱机,项目 GitHub 地址: FishChat。为了能读懂此文,建议先阅读我的上一篇文章:Make WeChat Great Again

Read More

关闭朋友圈有一年多了,突然有一天微信的策略变了,在关闭朋友圈的同时也不让别人查看自己的朋友圈了。有妹子表示看不到我朋友圈很不爽,于是我决定对微信进行一番改造!初步实现效果:

  1. 关闭『发现』页面的『朋友圈』、『购物』和『游戏』入口
  2. 修改微信运动步数
  3. 去除各种小红点提示
  4. 设置夜间模式
  5. 阻止撤回消息
  6. 屏蔽群&好友消息

手机无需越狱,项目 GitHub 地址: FishChat,Make WeChat Great Again!

Read More

本文主要讲了下我在工作时对项目中多媒体编辑模块的架构设计心得,并剖析了一部分原理。目前框架主流程已经验证跑通,所以把一些关键的思想和概念记录下来。涉及到公司机密的已经略去,只说说思想,代码也就不公开了。

Read More