您的位置:首页 > 移动开发

别人的 App 不好用?自己改了便是。嘿嘿嘿 篇

2017-07-01 22:45 190 查看


前言

我们团队里会互相分享买来的电子书,毕竟一本三四百,一人一本实在是太过于昂贵。PDF 私下看就好,Kindle 可以通过破解 DRM 的方式,然而 iBooks 上的书籍,一直没有什么好的方式。

最近我发现了一个软件叫做 iBooks Copy,他的未注册版本,只会 copy 出原书的 1/3 内容。完整版本请付费 $20+。 我试了一下 Swift 官方指南,没问题。再试了一下 《Core Image For Swift》,结果失败了。我就开始想是不是没付费的问题呢?

但又不想花一百多做一个不知道结果的尝试,于是能不能 Hack 一下呢?


lldb 挂载

先看一下这个软件的主界面:



点击 Convert 的时候,会弹出来购买对话框。于是我们的下手点,应该就是 Convert 的响应函数。然而 经过 Class-Dump,我懵逼了。



他貌似把重要的函数做了 MD5,那么我只能运行的时候找我想要的 Selector 了。

lldb 挂载 mac 应用比 iOS 简单太多,直接:
lldb /Applications/iBookCopy.app/Contents/MacOS/iBookCopy
process launch


需要暂停的时候就:
Control + C


为了验证是否工作正确,以及他会不会傻逼到把注册信息丢到 NSUSerDefault,我们随手 po 了一下。
po [[NSUserDefaults standardUserDefaults] dictionaryRepresentation]




发现,就算有我们也看懂不懂,它加密了。

我们通过 Window 找到 ContentView,对他执行
_subtreeDescription
,这个相当于 iOS 的
printHierarchy
方法。轻松找到了 Button 实例.



结果对其运行 Action 的时候,却死也打不出来 Selector:



有知道怎么解决的朋友,希望和我说一下。

好吧,换方向。


反编译 nib

我们知道,xib 是可读取的 xml,而 nib 是对应编译好的结果。我只要反编译 nib 了,就能知道那个 Button 的对应点击 Outlet。

经过搜了一下,发现有前辈做好了解决方案:https://www.dropbox.com/s/eyjt1337wpkrp9n/Compiled%20Nib%20Opener.nib.zip?dl=0

我们只需要右键选择显示包内容,把其中的
keyedobjects.nib
替换成它包中在语言文件夹下的
MMMainController.nib
,返回到外面双击打开即可。



我们看到了,
startAndStopButtonOnClicked:
 

回到 class-dump 出来的头文件,发现,妈蛋被那堆 md5 晃瞎了眼,看漏了。。。


ida 分析

直接用 ida 打开对应方法,因为是 x64 架构,我们的 f5 大法没法用了。那就用传统方案吧。在 IDA-View 视图。



可以看到这个方法分了好几部分:

最上面是点击事件,和初始化方法。

左侧那一大块处理的是有关在转换中又点击了 Convert 的事件

最下面是方法结束的处理

右侧是开始转换的真正事件响应。

仔细看右边的三个框:





解读一下:
if ([a55dc69742234b29a344bcc29159a07f a409400facd64585b641b8e3eaffd69a]) {
   [self a0c19915aa804b03bc1d2d7fea69a4ad];
} else {
   [self a565787783594a8c89ddd096b22dae7b];
}


分别看一下两个方法:





第一张图上可以看到 checkItunesRunning 说明已经是 iBooksCopy 业务代码了,而第二张图上可以看到 MMRegHintController,说明是要弹出来这个对话框的。

那么,我可以猜测,我只要让这个方法永远返回 True 即可。


Dylib Hook

其实,可以通过 ida 直接改返回值为 1,但对 ida 不是很熟悉,怕玩脱了,就用了更加熟悉的方案。

首先,我们需要创建一个 mac library 项目,用于生成 dylib。

然后写上对应代码:



我们给它添加了一个叫做 FuckYou 的方法,并作了 IMP 交换。为了保证工作正常,加了两行 Log。

然后,把编译生成的 libWTF.dylib 丢入
/Applications/iBookCopy.app/Contents/MacOS/
,执行
yolo iBookCopy libWTF.dylib


最后,双击打开,发现破解成功。


后记

写这篇文章的目的,并不是教大家如何破解软件。而是想告诉大家第三方途径或者说盗版 Mac 应用有多么可怕。这么简单几步,就能在神不知鬼不觉的情况下 Hook Dylib。

于是,我就可以监听全部键盘事件了;

于是我可以监听全部网络请求了;

于是我可以偷着打开摄像头了

想想看,这是个多么可怕的事情?

希望大家支持正版。


BTW

还是无法正常生成 CoreImage for Swift 这本书,但是可以生成完整的 Swift 官方文档。说明这个软件也就这么回事吧,罢了罢了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐