一个数字的魔法——破解Mac上198元的Paw

背景和目的

接来下的这篇文章会介绍如何完成一个“不可能”的任务——通过改一个数字,破解掉Paw这个收费软件。

起初是在某位大神的博客里看到了Mac上一款非常好用的App,叫Paw。Paw可以在Mac上模拟各种HTTP请求,可视化的管理HTTP Header、Parameters、Cookies等,还有一点非常出乎意料的功能是通过下载插件可以自动生成Swfit、OC、JS等多种语言的代码。

然而Paw巨贵(198软妹币),而且破解版不好搜。于是寻思着自己动手解决需求,于是倒霉的Paw成了实验对象。先从这里下载原版app

由于在此之前我毫无逆向工程方面的经验,在看别人的介绍时各种不懂,深受折磨,所以我尽量用简单、详细的语言描述本次从零开始破解app之旅。作为参考,我用了大约七个小时的时间完成了此次破解(大量的时间浪费在找工具以及学习使用工具上,后面可以看到破解这个事情本身并不难)。在文章的最后会给出破解版的下载地址。

由于水平有限,只是介绍了基本的逆向工程知识,算是自己的学习笔记,也希望向更多的和我一样还只是菜鸟的程序员科普一些逆向工程的基本知识,同时督促自己平时在Coding过程中的注意代码规范和安全。

知识储备

想要破解app,首先自己得开发过app,至少了解一些基本的命令行操作,源代码、汇编代码和二进制码的基本定义。如果这些基本要求有某一点不满足,那么整个过程会是非常痛苦的。

工具准备

破解Paw用到的工具主要有以下几个。

  • homebrew —— 不知道这个的估计都不好意思说自己是用Mac的程序员。
  • Hopper Disassembler —— 反编译工具,根据可执行文件反编译出汇编码。
  • Class-dump —— 逆向工程的入门级工具,导出一个App的某些信息。
  • otx —— 国外某位大神的介绍的一个工具,我也说不出明确的用处。通过brew install --HEAD homebrew/head-only/otx命令安装。
  • Hex friend —— 二进制文件编辑器,要用这个修改二进制文件。
  • gdb —— 著名的调试器,用lldb也行。通过brew install gdb命令安装。

Begin cracking

找到破解点

要破解App当然要明白自己为什么要破解它,它哪一点限制了我们,首先运行原版的Paw。可以看到如下界面:

Welcome页面

这个Welcome界面非常讨厌,由于它的存在,我们不能点击程序主界面。而想要关掉这个Welcome界面,只有两个方法,选择Try Paw按钮获得30天试用期或点击Register License按钮输入自己的License。

因此我们的目的以及非常明确了——关闭这个Welcome页面

初探Paw

既然要破解这个App,免不了要去了解这个App的结构。现在我们手上只有在Applications文件夹下的Paw.app这一个文件。突破口在于Paw.app/Contents/MacOs/Paw这个可执行的二进制文件。我们以后的操作,绝大多数时候是与它打交道。在“应用程序”文件夹下,右键Paw,选择“显示包内容”就可以看到这个二进制文件了

这时候,第一个工具——class-dump出场了。由于篇幅所限,我就不介绍这个工具的具体配置方法了。可以参考这篇文章

使用class-dump导出其他应用头文件

我们先用class-dump导出Paw的头文件看看,在终端中执行命令:

class-dump -H /Applications/PawReal.app/Contents/MacOS/Paw -o /Users/你的用户名/Desktop/classdump,

换上你的用户名,等运行结束之后,在桌面上可以看到一个叫

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值