美文网首页iOS开发iOS猛码计划iOS备忘录
iOS 善意破解简书APP(非越狱篇)实现一键点赞

iOS 善意破解简书APP(非越狱篇)实现一键点赞

作者: 叫我余温好了 | 来源:发表于2016-05-03 18:00 被阅读8959次
    真机运行简书APP效果

    说明: 本文没有任何搞破坏实质,网上逆向文章极少,希望借助简书APP来向初学者打开逆向开发的神秘面纱! 如果觉得还可以, 请留赞!

    我想有一部分人想要知道或者说不知道达到上图最终效果我们需要会什么知识和需要有什么工具, 在这里我只说工具名和需要掌握的知识, 至于每个工具的用途和使用谷歌一定比我阐述的好! (我的上篇文章也会对你有所帮助)

    准备工作:


    只需要完成以上6项准备工作你就可以很6了, 一步一步达到目的!
    

    开始干活:


    • class-dump

    "拿过来"已经砸好的简书ipa解包, 没有的去我的github下载, "掏出"class-dump导出app的所有头文件, 命令和效果如下:

    class-dump -H Hugo.app -o Hugo-Header
    

    这样我们就会看到当前目录下会多一个Hugo-Header文件夹,里面是app所有的头文件.(小技巧, 把文件夹放到Xcode中查找方法更方便)

    app头文件
    • Theos

    在终端运行命令创建Tweak工程

    /opt/theos/bin/nic.pl
    
    工程创建详细步骤

    我们会看到目录中新增的文件夹就是此工程, 对于各个文件是干什么的, 相信你谷歌了Theos, tweak后就知道答案了! 我们只需要对Makefile和Tweak.xm编码


    工程文件夹
    • Tweak编码

    我们找到 HGNoteViewController.h 中的 - (void)likeNote;方法, 这个就是点赞(简书叫做喜欢)调用的方法了, .xm核心代码如下:

    static HGNoteViewController *vc = nil;
    static  NSMutableSet *mSet = [NSMutableSet setWithCapacity:1];
    - (void)buttonClicked:(UIButton *)btn
    {
    
    NSArray *arr = [mSet allObjects];
    for (int i = 0; i < arr.count; i++) {
    
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)((i+1) * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
    HGNote *no = arr[i];
    vc.currentNote._id = no._id;
    
    self.label.text = [NSString stringWithFormat:@"点赞中...\n为作者: %@\n文章名: %@...\n ***点赞成功!***", no.user.nickname, [no.title substringToIndex:7]];
    
    [vc likeNote];  // 点赞!!!
    
    });
    
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)((arr.count+1) * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
    
    self.label.text = [NSString stringWithFormat:@"点赞完成!!!\n  共计: %ld 个 \n ***点赞完成!***", arr.count];
    
    });
    
    
    %hook HGAvatarTagNoteCell
    
    - (void)setupWithModel:(id)arg1
    {
    %orig;
    
    HGNote *note = arg1;
    [mSet addObject:note];
    
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:[NSString stringWithFormat:@"%@", arg1]
    
    message:@"VM"
    
    delegate:nil
    
    cancelButtonTitle:@"Thanks"
    
    otherButtonTitles:nil];
    
    //[alert show];
    
    [alert release];
    
    }
    
    %end
    

    Makefile配置:

    Makefile配置
    • 至此, 我们已经完成了一大半, 接下来就是安装到手机了, 越狱的小伙伴可以通过SSH安装到手机上, 也就是Makefile文件中加入 THEOS_DEVICE_IP = 172.18.1.123(换成你手机的IP), 通过make package install 安装到手机

    • 本文针对于未越狱安装, 未越狱的小伙伴请往下看!

    执行命令:

    make package
    

    打包后会在当前工程debug文件夹下生成一个.dylib文件, 这个就是我们想要的最终产物了, 我们接下来要做的就是更换它依赖的环境(因为tweak会默认依赖越狱环境), 然后向app可执行文件注入此动态库, 签名, 打包, 真机运行!

    • 更改环境

    格式为

    install_name_tool -change old.dylib   @executable_path/new.dylib  应用程序
    
    • 注入动态库 需要安装yololib

    安装后运行命令格式为

    yololib 可执行文件 要被注入的.dylib
    
    • 证书签名

    我们需要把生成的dylib和embedded.mobileprovision文件copy到Hugo.app中,然后用codesign开始签名
    格式为

    codesign -f -s 自己证书名称 要签名的文件
    
    • 真机运行

    安装到真机的方式有很多种, iTools, iTunes 等.

    • 见证劳动成果

    下图为gif动态图, 刷新页面重新查看效果

    刷新页面查看gif动态图

    **Ps :如果get此技能后, 同理 ,相信微信朋友圈一键点赞也不在话下了吧!学习技术可以加我的微信love0415-1314 **

    遇到问题的小伙伴可以在评论留下困惑, 供大家一起探讨解决!如果觉得哪个地方不够详细可以说明, 将补充上去
    互相学习, 互相进步!
    由于源代码未经整理, 暂未放至我的github, 如果需要demo的人多, 我可以整理一份传上去

    相关文章

      网友评论

      • fighter0501:你好 请问可以给下这个demo源码学习下不
      • 03a93431a566:简书点赞业务加qq632182034.
      • 5c88a8b4a811:楼主 请教下 我在make package 出现的问题
        ==> Preprocessing Tweak.xm…
        ==> Compiling Tweak.xm (armv7)…
        Tweak.xm:1:8: error: unknown type name 'HGNoteViewController'; did you mean
        'UIPageViewController'?
        static HGNoteViewController *vc = nil;
        ^~~~~~~~~~~~~~~~~~~~
        UIPageViewController
        /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIPageViewController.h:46:40: note:

        该怎么解决这个问题呢。。:disappointed_relieved:
      • 51bitquant:执行make package 在项目想没有dylib文件呢。获取的dylib文件在哪个目录?
      • 小巷深深:楼主这个方法能在9.0的机器上安装吗
      • 卡普顿:重签名后用itunes安装不了,我用你github上的ipa直接安装也不行,请问这是啥问题呢
        卡普顿:@uph 用ios-app-signer,打包后安装不了,提示校验有问题
        5c88a8b4a811:大兄弟 你是怎么重新签名的?
      • 卡普顿:楼主,请问embedded.mobileprovision这个文件从哪里拿的,我在你的ipa包里面没看到有
      • 程序员进阶:如果有详细一点的代码就好了,tweak.xm写的不详细,小白不太适合看啊
      • 程序员进阶:没有 - (void)likeNote;这个方法啊
        04a4d52f456f:我也没找到, 你这个解决了吗
      • Vxer_Lee:少了两个}},楼主把tweek 上传下,谢谢了 编译好的tweek 好人一生平安
        Vxer_Lee:@uph 没拿到,早放弃了,智障一样的作者 看其他文章吧
        5c88a8b4a811:同求啊 兄弟 你拿到作者的Tweak了吗
      • fe7fec099a3c:想请教楼主,在tweak中能获取系统权限吗?比如访问照片库、定位等权限:stuck_out_tongue_winking_eye:
      • xlDon:请问下yololib怎么安装,在github下载的工程运行不了
        77d260533980:赞赞。。。:smile:
        田心今心九日:@uph 编译成一个可执行文件就行了,可能是你下载的工程不对
      • 韩大熊宝要姓张:不错 加油
      • 售前界的不死小强:大神,我现在还没看懂tweak.xm文件,我解析出来的跟你的不一样的。还有另外一点就是likeNote的方法已经被放在HGNoteViewController (ToolbarFunctions)里面了。
      • 郑大爷:全哥威武
      • 715a3c7e1ec3:您好 “打包后会在当前工程debug文件夹下生成一个.dylib文件”,我打包后没有生产debug文件夹,也没有.dylib文件,这是什么原因啊?
        楠Y:@iwakeer .theos里面的obj
      • 知傲:好厉害
      • 634cb041efde:我make package 成功后没有找到dylib 请问你是在哪个文件夹下面
        楠Y:@leopick .theos里面的obj
      • 715a3c7e1ec3:$ make package
        您好,我碰到下面的错 :
        ==> Error: The vendor/include and/or vendor/lib directories are missing. Please run `git submodule update --init --recursive` in your Theos directory. More information: https://github.com/theos/theos/wiki/Installation.
        make: *** [before-all] Error 1

        这是为什么啊?
        风之传说:我也是,怎么解决的?
      • 风与鸾:有没有已经编译好的yololib?
        5c88a8b4a811:yololib 这个环境怎么配呀?
      • 3b29f2d6d868:你好,电脑必须要Mac系统吗
      • feng_dev:大师,最简单的点赞逻辑怎么写啊求助啊
      • 29855c5c71df:这头像又调皮了!
      • 黄花菜先生:请教一下,当我make package install时,报这个错。我换了好几个路径,一直不好使,还请麻烦指导一下
        Makefile:12: /makefiles/tweak.mk: No such file or directory
        make: *** No rule to make target `/makefiles/tweak.mk'. Stop.
      • Mr_疯不觉:想问下,不越狱可以砸壳么?
        楠Y:@夏末微凉丶n 必须用越狱手机才可以砸壳
      • MarkJY:请教下,同样的方法运用在微信上有被微信检测出来的可能吗?想逆向做一下一键转发朋友圈的功能,但是不了解风险
      • 人贩子:写的不错,赞个 :smiley:
      • 兹味正念饮食:大神,请问如果我是工号,有什么办法读到我的粉丝步数,这算是黑科技吗:stuck_out_tongue_closed_eyes:
      • 悟空在线:能不能麻烦作者吧Tweak.xm这个文件的具体内容给公开下 现在在make的时候总是报错 ,貌似是Tweak.xm的问题 谢谢
        5c88a8b4a811:大兄弟 你拿到作者的Tweak.xm文件了吗
        5c88a8b4a811:@楠Y 作者的GitHub上没有给出demo的Tweak呀,我想看作者的Tweak内容 怎么办呢。。
        楠Y:@HelloWord悟空IT 终端里自己看啊
      • 嘿晴天:怎么我在hgnoteviewcontroller 的头文件没有看到likenote的方法
        04a4d52f456f:请问你最后怎么解决的,我也没找到这个方法
      • bde04638cca8:为什么我每次make后都是生成的deb文件,他的obj文件路径下只有一个debug,然后是空的。这是为什么,我想要dylib怎么会没了呢
        634cb041efde:@MomoPush 解压什么 我每次make后也都是空 请问你是怎么解决的
        bde04638cca8:@一天清晨 dylib 解压就好了
        一天清晨:@MomoPush 解决了吗?我也有同样的问题
      • 3430e4a6e215:install_name_tool这步看的不是太懂,还有请问注入的可执行文件必须是解密后的吗
      • 603010f3888b:class-dump 怎么安装
      • 达若漠沙:六六六~
      • 603010f3888b:-bash: class-dump: command not found 为什么没有找到 :wink:
        pingerbufan:请问你的UIAlertView的Delegate都是nil 你怎么知道你点赞成功了呢? 或者说你怎么触发alertView的点击事件呢?
        tztTzt:楼主 请教下 我在make packge出现的问题

        BBBBB:hookjianshu mac$ make package
        > Making all for tweak hookjianshu…
        ==> Preprocessing Tweak.xm…
        Tweak.xm:26: error: %hook does not make sense inside a block
        make[3]: *** [/Users/mac/hookjianshu/.theos/obj/debug/armv7/Tweak.xm.0c333762.o] Error 22
        make[2]: *** [/Users/mac/hookjianshu/.theos/obj/debug/armv7/hookjianshu.dylib] Error 2
        make[1]: *** [internal-library-all_] Error 2
        make: *** [hookjianshu.all.tweak.variables] Error 2

        第26行 都是粘贴你的代码 %hook HGAvatarTagNoteCell 这个错误怎么解决
        叫我余温好了:@LimingZou 命令敲错或者class-dump没有安装上
      • 8d63eef9a1ce:楼主,我在'make package'这步的时候,终端提示:MacBook-Pro-2:hookjianshu lichao$ make package
        Makefile:4: /makefiles/common.mk: No such file or directory
        Makefile:10: /tweak.mk: No such file or directory
        make: *** No rule to make target `/tweak.mk'. Stop.
        应该是路径问题,下面是我Makefile配置:
        ARCHS = armv7 arm64
        TARGET = iPhone:latest:7.0

        include $(THEOS)/makefiles/common.mk

        TWEAK_NAME = hookjianshu
        hookjianshu_FILES = Tweak.xm
        hookjianshu_FRAMEWORKS = UIKit

        include $(THEOS_MAKE_PATH)/tweak.mk

        after-install::
        install.exec "killall -9 SpringBoard"

        我在终端含有Makefile文件目录下输入make package的
        槑头脑:@billowlcity 请问怎么改的
        8d63eef9a1ce:@Arvinma 好的,非常感谢,我把那个路径改了就没事了 :grin:
        bdfc1b5342a5:@billowlcity 刚刚我也遇到这个问题了

        我用这个重下一次就好了 git clone --recursive https://github.com/theos/theos.git
      • bdfc1b5342a5:楼主,我敲到 ‘make package’ 这步的时候,会报一个下面的错是怎么回事
        /Applications/Xcode.app/Contents/Developer/usr/bin/make package requires dpkg-deb.
        make: *** [internal-package-check] Error 1
        8d63eef9a1ce:你能发下Tweak那个文件代码吗,我这里报错,已经修改了一部分,现在问题是缺少引入文件,新手,所以需要改下那个才行
        bdfc1b5342a5:@糯米粉 十分感谢楼主的教程,已在越狱手机上成功
        叫我余温好了:@Arvinma 有装dpkg吗
      • 孔凡伍:["拿过来"已经砸好的简书ipa解包,] ipa 没找到。
        所以自己决定砸壳,搞了好几个小时了。到目前砸壳还没砸开呢。遇到的问题是 执行命令 ssh root@yourIP 连接不上iphone(未越狱)。看博客他们都是越狱了,iphone 才有ssh.
        想知道你怎么砸地。给点帮助。谢谢! QQ 498330501
        叫我余温好了:@孔凡伍 ssh需要越狱手机, **简书ipa我已经帮你砸好**, 具体参见我的github: https://github.com/gaojunquan/HookJianshu
      • AnAn_AnAn:楼主,请教下 编辑 xm 文件 如何能像 编辑。m文件一样 有 高亮 有提示呢?
        AnAn_AnAn:@糯米粉 OpenDev这个插件 是不是 可以在xcdoe 编写 hook 了 高亮 等等的
        AnAn_AnAn:@糯米粉 能加个好友吗 ,向你学习下
        叫我余温好了:@JasonAn 这个没有, 你想啊, 它既然不存在于Xcode中, 怎么会有代码提示和高亮呢
      • MarkJY:正在学,求多分享逆向文章 :pray:
      • _____柠檬:照着做。。。第一步都执行不了😂
        叫我余温好了:@柠檬沟酸奶 哪个地方遇到问题了可以一起讨论
      • 6605eae1686f:也就是说,可以看到简书这个APP的源代码了???
      • Yaanco:好高大上,,
      • 我系哆啦:666666,这个非常好
      • BlusSunShine:先进来瞅瞅
      • 被丢掉的咸鱼:楼主 是研究逆向的吗
        叫我余温好了:@WOSHILUANMA 兴趣爱好
      • ForestSen:点赞 点赞
      • 析臣:相对于网上已有资料来说,浅显易懂多了

      本文标题:iOS 善意破解简书APP(非越狱篇)实现一键点赞

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