zoukankan      html  css  js  c++  java
  • 【转载】无须越狱、自动集成、只需要一个砸壳的应用---MonkeyDev

    原文:http://www.alonemonkey.com/2017/07/12/monkeydev-without-jailbreak/

    无须越狱、自动集成、只需要一个砸壳的应用---MonkeyDev

    前言

    之前基于iOSOpenDev重新弄了一个MonkeyDev,最初的版本支持Xcode 9和最新theos创建CaptainHook Tweak和Logos Tweak,后面又增加了一个Command-line Tool工具的支持。

    然后想到如果是非越狱机器或者使用Xcode调试第三方应用的时候很多集成步骤,注入dylib,集成Reveal、Cycript等等,这些步骤其实都是重复性的工作,所以现带给大家MonkeyDev支持,一步到位!

    那么需要怎么做呢?

    安装MonkeyDev

    这个看第一篇文章,或者看github文档 就可以了。

    很多人就是因为没有仔细看文档,然后出错了不知道怎么解决,所以先仔细看一遍文档把。

    使用:一步到位

    CaptainHook Tweak、Logos Tweak and Command-line Tool的使用这里就不讲了,如果有不会的我到时再单独写一篇文章。

    这里主要介绍的功能是MonkeyDev一步集成非越狱调试。

    准备好砸壳的ipa或者app

    第一步是准备好砸壳的ipa或者app,可以从第三方应用市场或者http://www.iphonecake.com去下一个。

    创建MonkeyApp项目

    点击File - New - Project...创建iOS项目,选择MonkeyApp

    image

    创建完成之后,你会得到一个这样的工程:

    image

    解析一下,这里我创建的项目名字就是MonkeyApp,所以下面对应的都是MonkeyApp,你自己创建的由你的项目名字而定!

    MonkeyAppDylib这个是将被注入目标App的动态库,你自己要hook的代码可以在MonkeyAppDylib.m文件里面写,我在里面写了一些Demo代码,支持OC runtime的HOOK,C函数的fishhook。

    AntiAntiDebug这个里面是反反调试的代码。

    fishhook这个是自动集成的fishhook模块。

    下面Framewroks已经自动集成了Reveal.frameworkCycript.framework

    拖入编译

    我准备了一个砸壳了的ipa文件,然后我右键项目里面的TargetApp文件夹Show in Finder,把ipa文件拖入下面的位置(当然app文件夹也可以的):
    image
    put ipa or app here这个文件不要删除。

    好了,还要做什么吗? 不, 不用了。编译运行到非越狱手机。

    打开电脑的Reveal,就可以看到界面了:

    image

    Cycript查看界面也没有问题:

    image

    这里Cycript默认端口是6666

    更多功能

    动态库调试

    MonkeyAppDylib.m文件中写了自己的代码之后就可以直接下断点调试,效果如下:

    image

    Demo App

    MonkeyApp不拖入App或者ipa的情况下,会有一个默认的App,以供读者自己测试,样子大概是这个样子····

    image

    你可以自己修改MonkeyAppDylib.m里面的代码,这个是笔者针对Demo写的例子啦。。。。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    CHDeclareClass(CustomViewController)
     
    CHOptimizedMethod(0, self, NSString*, CustomViewController,getMyName){
    //get origin value
    NSString* originName = CHSuper(0, CustomViewController, getMyName);
     
    NSLog(@"origin name is:%@",originName);
     
    //get property
    NSString* password = CHIvar(self,_password,__strong NSString*);
     
    NSLog(@"password is %@",password);
     
    //change the value
    return @"AloneMonkey";
     
    }
     
    CHConstructor{
    CHLoadLateClass(CustomViewController);
    CHClassHook(0, CustomViewController, getMyName);
    }

    默认集成的库

    本工具会默认集成Reveal.frameworkCycript.framework,em…..

    集成的Reveal.framework是最新版本的,所以你可能需要最新的Reveal,否则使用自己的Reveal.framework替换掉/opt/MonkeyDev/frameworks下面的Reveal.framework

    Cycript.framework/opt/MonkeyDev/library目录下面。

    可以在如下位置删除掉默认集成的库:

    image

    增加自己的库

    emmm。。。。。

    动态库的话,把你的*.framework文件拷贝到/opt/MonkeyDev/frameworks目录下面,然后在下图的位置add进去,emmm。。。。就可以了。

    image

    静态库的话,直接增加到上面,指定search path就可以了,和正常开发没啥区别。。。

    增加自己的资源

    如果想要加入storyboard或者bundle资源的话,将其拷贝到如下目录即可!

    image

    AloneMonkey wechat
    欢迎您扫一扫上面的微信公众号,订阅我的博客!
     
  • 相关阅读:
    oracle数据段详解
    监听静态注册与动态注册
    Oracle网络相关概念与常用配置文件
    pycharm社区版安装及遇到的问题
    强化学习-K摇臂赌博机
    概率图模型
    半监督学习
    卷积神经网络
    递归神经网络
    玻尔兹曼机及其相关模型
  • 原文地址:https://www.cnblogs.com/huangzizhu/p/7700316.html
Copyright © 2011-2022 走看看