某视频客户端逆向实践

最近看完了《iOS应用逆向工程分析与实战》,当你手里拿着锤子的时候,整个世界都成了钉子,所以迫不及待的想练练手。正好最近在某视频客户端上跟美剧,有时候想缓存下来离线看,但是由于版权原因,很多视频都不能缓存,所以今天逆向实践的主要目标就是能够缓存有版权的视频。

有人可能会问:你怎么就知道一定能够实现这个目标,万一带版权的视频压根儿就没有提供下载地址你怎么缓存啊?问得好,其实在拿到逆向这把锤子之前,我靠着纯体力已经能够下载到追的美剧了。使用Charles抓包工具获取到剧集的信息(关于Charles的使用可以看这里),即使有版权的视频也会有download_url字段,然后将每个下载地址复制到迅雷里面下载。还好有了这段痛苦的经历,让我知道今天逆向的目标是可实现的。

查看更多

Logos

Logos作为Theos开发组件的一部分,通过一组特殊的预处理指令,可以让编写函数钩子(hook)代码变得非常简单和清晰。

Logos提供的语法大大的简化了MobileSubstrate拓展程序(tweaks,能够hook系统中其他方法)的开发,这里所说的“Method hooking”是指通过替换或修改的方式改变其他应用中某些类的某些方法。

Logos是随着Theos发布的,你能够在用Theos创建的项目中直接使用Logos的语法。更多关于Theos的信息,请查看这里

查看更多

Method Swizzling

本文翻译自NSHipster的文章Method Swizzling

在上周associated objects一文中,我们开始探索Objective-C运行时的一些黑魔法。本周我们继续前行,来讨论可能是最受争议的运行时技术:method swizzling。


Method swizzling指的是改变一个已存在的选择器对应的实现的过程,它依赖于Objectvie-C中方法的调用能够在运行时进改变——通过改变类的调度表(dispatch table)中选择器到最终函数间的映射关系。

查看更多

Associated Objects

本文翻译自NSHipster的文章Associated Objects

1
#import <objc/runtime.h>

Objective-C开发者在遇到上面这条“咒语”相关的一些东西时,会不自觉的变的非常谨慎。一个主要原因是:弄乱Objective-C运行时可能会改变整个实现结构,因为所有的代码都是运行在它之上的。

一方面:<objc/runtime.h>中的函数可以给应用或者框架增加强大的新特性,这是通过其他方式不可能做到的。但另一方面:它会改变代码的正常运行逻辑和所有与之交互的东西(通常伴随着可怕的副作用)。

因而,这是我们认为进行这种魔鬼交易最大的恐惧点,下面来看一个NSHipster读者问得最多的一个主题:associated objects。

查看更多

Roles of Apple Developer

Apple Developer Program Team Roles and Privileges

Team roles

Role Description
Team agent A team agent is legally responsible for the team and acts as the primary contact with Apple. The team agent can invite team members and change the access level of any other team member. There’s only one team agent.
Team admin A team admin can set the privilege levels of other team members, except the team agent. Team admins manage all assets used to sign your apps, either during development or when your team is ready to distribute an app. Team admins are the only people on a team who can sign apps for distribution on nondevelopment devices. Team admins also approve signing certificate requests made by team members.
Team member A team member can gain access to prerelease content delivered by Apple in Member Center. A team member can also sign apps during development, but only after he or she makes a request for a development signing certificate and has that request approved by a team admin.

查看更多