美文网首页
追书神器破解过程

追书神器破解过程

作者: 愤怒的小白菜 | 来源:发表于2016-11-12 20:01 被阅读0次

    刚入门ios逆向, 正好朋友叫我帮忙破一款app, 在这里记录下自己的破解思路与过程

    app名称 : 追书神器

    app版本号 :  2.26.6.3

    用到工具 : paros(抓包), Hopper Disassembler(反汇编), Flex 2

    目的 : 免费观看收费的章节

    为了效率, 我直接在PP助手下载的越狱版, 这样就不用砸壳了

    思路1 :

    如果只是在APP端进行了判断收费/免费章节, 那么我只需要找到判断的地方,改掉就行

    验证过程 : 

    随便添加一本收费的小说(庶女有毒), 用抓包工具分析 收费/免费章节有什么区别

    这本小说从65章开始就是收费章节了, 那我们就看下64章与65章在服务器返回的数据中有什么区别

    打开paros开始抓包

    点开64章

    抓到包

    http://chapter2.zhuishushenqi.com/chapter/http%3A%2F%2Fvip.zhuishushenqi.com%2Fchapter%2F573d94ce880329c92aa63e58%3Fcv%3D1472718941196?k=60ce854a1615d080&t=1478953225

    返回以下数据

    再点开收费章节65章

    抓到包

    http://chapter2.zhuishushenqi.com/chapter/http%3A%2F%2Fvip.zhuishushenqi.com%2Fchapter%2F573d94ce880329c92aa63e59%3Fcv%3D1478240721878?k=8f2f4c749fb37bdd&t=1478953387

    返回数据

    可以看到, 收费章节的包里有个属性isVip等于true, 而且内容已加密, 那么这种改本地判断的思路行不通, 或者说难度比较大

    思路2

    刚刚抓包时发现个有意思的地方, 有的书是可以换源的, 除了追书神器自己的源, 换其他源看书都是不收费的, 那我们可不可以让所有的书都能换源呢

    验证过程:

    抓包看这些源的列表是怎么来的

    找一本能换源的书(极品家丁后传), 点击阅读

    抓到包

    http://api.zhuishushenqi.com/atoc?view=summary&book=5667c9a44aa8cc2b1d721f5a

    返回数据


    再找一本不能换源的小说,还是用之前那本(庶女有毒)

    抓到包

    http://api.zhuishushenqi.com/btoc?view=summary&book=510f6d8b59762e945300002f

    返回数据

    对比发现, 2本书请求的地址是不同的, 能换源的请求的是http://api.zhuishushenqi.com/atoc....

                                                         不能换源的书请求的是http://api.zhuishushenqi.com/btoc....

    一个是atoc  一个是btoc

    返回的内容也不同, 不能换源的书返回的只有 zhuishuvip 的源

    那如果把不能换源的请求改成 atoc会是什么情况呢, 测试一下

    直接浏览器打开http://api.zhuishushenqi.com/atoc?view=summary&book=510f6d8b59762e945300002f

    返回数据

    ok 到这里, 可以说这条思路完全能行得通的

    下面就是如何能让所有的书都访问的是atoc而不是btoc了

    逆向

    把app丢到hopper disassembler里分析

    直接搜索字符串: atoc

    在右边的看到引用它的地址

    双击

    继续看右边引用它的地址

    双击来到 可以清楚的看到, 这个地方有好几个判断用来区分应该访问atoc还是btoc

    0000000100270170     cbz     w22,0x100270194

    这个地方有个跳转

    这句话的意思就是说:当w22等于false的时候, 跳转到0x100270194

    也就是跳到了btoc, 这个应该就是我们要找的关键点了

    看到这里,第一个念头就是就是,既然如此不让x22等于false就行啦

    0000000100270164   mov   x22,x0

    看上面的代码w22来自x0, x0是allowPirateWithBookId方法的返回值, 那么用Flex修改这个方法的返回值为true,再次打开app看看是否破解成功

    再次打开app

    发现还是不能换源, 但是抓包发现现在已经是在访问atoc了, 那说明这个地方只是判断请求的地址, 是否能换源是在其他地方判断的, 那我们跟进去allowPirateWithBookId方法看看里面是怎么实现的

    在allowPirateWithBookId方法里面, 发现了2个可疑的方法

    @selector(bookAllowPirateResource:)

    @selector(bookAllowPirateReading:)


    通过动态调试对比能换源的与不能换源的小说访问这个2个方法的返回值, 发现能换源的时候

    bookAllowPirateResource 返回的是true

    bookAllowPirateReading 返回的是false

    把这2个方法添加进Flex里面验证下


    设置bookAllowPirateResource 返回 true

    bookAllowPirateReading返回 false

    再次打开app

    ok 破解成功

    到了这里, 追书神器所有的书都已经能换源

    直接用Flex就能完成破解工作

    或者制作插件hook住bookAllowPirateResource, bookAllowPirateReading的返回值即可

    相关文章

      网友评论

          本文标题:追书神器破解过程

          本文链接:https://www.haomeiwen.com/subject/dyynyttx.html