美文网首页开发小TipsiOS逆向工程iOS - 安全/逆向
无须越狱、自动集成、只需要一个砸壳的应用---MonkeyDev

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

作者: AloneMonkey | 来源:发表于2017-07-22 12:38 被阅读4782次

《iOS应用逆向与安全》 上线啦!!!

购买地址:

天猫: iOS应用逆向与安全

京东: iOS应用逆向与安全

一切以Wiki为准!!!!!!

前言

之前基于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写的例子啦。。。。

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

相关文章

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

    《iOS应用逆向与安全》 上线啦!!! 购买地址: 天猫: iOS应用逆向与安全 京东: iOS应用逆向与安全 ...

  • ios应用的砸壳

    目的 紧接上一篇文章,手机越狱后我们就需要开始给应用砸壳了,主要是使用MonkeyDev大神的插件,进行操作 ht...

  • 越狱-应用砸壳

    砸壳 提交给Appstore发布的App,都经过官方保护而加密,这样可以保证机器上跑的应用是苹果审核过的,也可以管...

  • cycript 命令常用操作合集

    一:非越狱下可以1.安装MonkeyDev2.砸壳后的ipa使用cycript 二:常用操作命令1.打印打前视图层...

  • iOS 越狱应用砸壳

    应用砸壳:一般在客户端的应用为了防止别人反编译会对可执行文件进行加密保护(加壳),我们的砸壳就是解密的过程 静态砸...

  • 应用砸壳-dumpdecrypted(越狱)

    准备工作下载dumpdecrypted下载后,使用终端进入解压后的文件夹,执行 会生成dumpdecrypted....

  • 应用砸壳-Clutch(越狱)

    准备工作 设备越狱 mac上,使用checkra1n工具进行越狱,工具下载地址为https://checkra.i...

  • iOS-对App进行砸壳

    文章砸壳使用到了ssh连接手机,Cycript注入进程查看应用的一些路劲,以及越狱的手机,所以在开始对应用进行砸壳...

  • 四:App重签名

    目的:把越狱的软件安装到非越狱的手机上(没有砸壳的APP 不行) 原理:先创建一个新的应用,新应用(新的AppID...

  • APP-手动重签名探探-学习

    重签名的一般步骤:1:下载应用IPA包;(越狱包)(非越狱包需要先砸壳)2:查看越狱情况3:查看APP的签名情况 ...

网友评论

  • 起名真的好难:大神,我装了之后,之前的工程跑真机的时候报错:The executable contains an invalid signature ,这个什么原因啊
  • abigfishBegonia:pp助手下载的砸壳应用都是以前的旧版本,有大神自己砸壳最新应用的吗,能给个微信或者美团的砸过壳的ipa吗,我没有越狱手机,感谢。
  • abigfishBegonia:非越狱手机,砸壳app成功运行到手机,但是Reveal(版本:Revea16)显示:The operation couldn’t be completed. The app is linked against an older version of the Reveal library. You may need to update the Reveal library in your app.
  • 乱世先生:能否重新打包IPA
  • 跳跳虾:为什么你的可以打断点,我的不行啊,需要设置什么吗?
    跳跳虾:@小廖味道长 没有解决,哈哈😄,
    小廖味道长:你的打不上断点解决了吗?我还是打不上断点,在tweak 里面死活打不上
  • f5d67d17c43f:MacBook-Pro:~ zhulaifei$ cd /opt/cycript_0.9.594
    MacBook-Pro:cycript_0.9.594 xxx$ ./cycript -r 192.168.100.35:6666
    *** _syscall(connect(socket_, info->ai_addr, info->ai_addrlen)):../Console.cpp(306):CYSocketRemote [errno=60] ???????怎么回事,
  • 郑大爷:个人觉得示例对新手不够友好
  • 21f9a5054d35:大神安装的时候报了个错
    xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance
    Failed to get iphoneos SDK property PlatformPath
  • leftwater:MonkeyDev能把动态库和重签名后的ipa 安装到越狱的设备上吗?
  • leftwater:经测试MonkeyDev确实可以在非越狱的机器上Run
  • 62737ae69891:我用monkeydev新建的logos tweak项目,然后在使用usb在真机上打断点调试,但是无论如何都报错误无法安装到真机上。

    Showing All Errors Only
    Permission denied (publickey,keyboard-interactive).
    ssh -p22 root@localhost mkdir -p "/var/root/MonkeyDevPackages"
    Command /bin/sh failed with exit code 255
    起名真的好难:解决了吗,我报Command /bin/sh failed with exit code 6
    小廖味道长:tewak 可以打上断点吗?怎么打的啊,我的死活打不上断点
    62737ae69891:手机的ssh我设置成了免密码
  • 东城夕阳:不拖入ipa可以正常在手机编译,拖入ipa后
    packing...
    Print: Entry, "CFBundleDisplayName", Does Not Exist
    Print: Entry, "CFBundleURLTypes", Does Not Exist
    has arm7 arch? true
    has arm64 arch? true
    is fat file? true
    decrypted arch num? 0
    can't find decrypted arch!!!
    Command /bin/sh failed with exit code 1
    东城夕阳:@AloneMonkey ok 明白了,我用PP助手下ipa
    AloneMonkey:没有砸壳
  • 小vv:更新了最新版MonkeyDev 真机运行crash

    报这个错误

    dyld: Library not loaded: @rpath/RevealServer.framework/RevealServer
    Referenced from: /var/containers/Bundle/Application/BCB0FF13-214A-413A-864D-BC43FC5E052E/MonkeyApp.app/Frameworks/libMonkeyAppDylib.dylib
    Reason: image not found

    博主有碰到过吗
    AloneMonkey:@rpath/RevealServer.framework/RevealServer 这个没有拷贝进去?
  • 水寒不知:Signing for "MOnkeyAppDylib" requires a development team. Select a development team in the project editor. 添加了team真机也运行不了。我的是xcode 9
    水寒不知:@AloneMonkey 请问下哪里有自动签名的选择
    AloneMonkey:直接选择自动签名
    小vv:你最后解决了吗?
  • 西博尔:庆总还有简书啊
    AloneMonkey:就为了发这个广告。
  • 小vv:2017-09-26 15:08:22.351 xcodebuild[6706:282021] [MT] PluginLoading: Required plug-in compatibility UUID DF11C142-1584-4A99-87AC-1925D5F5652A for plug-in at path '~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/Alcatraz.xcplugin' not present in DVTPlugInCompatibilityUUIDs
    Signing /Users/zhouxiaowei/Library/Developer/Xcode/DerivedData/xiaoweikq-bfzzxkyociaxfpazkkvbeuucznnl/Build/Products/Debug-iphoneos/libxiaoweikqDylib.dylib with codesign... iPhone Developer: ambiguous (matches "iPhone Developer: 515366748@qq.com (RU9Q7FKY6R)" and "iPhone Developer: Liu Yi (CX7S52WKSY)" in /Users/zhouxiaowei/Library/Keychains/login.keychain-db)
    Failed.
    Command /bin/sh failed with exit code 1


    我是Xcode9 真机运行报错
    AloneMonkey:@小vv 什么时候装的? 更新下MonkeyDev
  • nenhall:报错啊!但可以编译成功,无法安装到设备上。
    ```
    cp: /Users/neghao/Library/Developer/Xcode/DerivedData/yimyueba-ahviewbxevuraqbmevdnwxkidmsd/Build/Products/Debug-iphoneos/libyimyuebaDylib.dylib: No such file or directory
    Set: Entry, ":CFBundleDisplayName", Does Not Exist
    File Doesn't Exist, Will Create: /Users/neghao/Library/Developer/Xcode/DerivedData/yimyueba-ahviewbxevuraqbmevdnwxkidmsd/Build/Products/Debug-iphoneos/yimyueba.app/Info.plist
    Set: Entry, ":CFBundleIdentifier", Does Not Exist
    /Users/neghao/Library/Developer/Xcode/DerivedData/yimyueba-ahviewbxevuraqbmevdnwxkidmsd/Build/Products/Debug-iphoneos/yimyueba.app/Frameworks//RevealServer.framework: bundle format unrecognized, invalid, or unsuitable
    Command /bin/sh emitted errors but did not return a nonzero exit code to indicate failure
    ```
    AloneMonkey:@neghao 看下项目Wiki , 也可以加主页的微信群。https://github.com/AloneMonkey/MonkeyDev

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

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