Cycript(二)非越狱调试、修改App中UI的数据

引言

上一篇介绍了,cycript安装、配置环境,那么安装完成过以后,说能够调试App,怎么调试、修改App的内存呐?
此文只是用于学习,有哪些不便的、或者侵犯权益的问题,请告知删除!

准备工具、资料

  • 砸壳后的ipa包
  • MonkeyDev
  • Cycript环境
  • 真机(俺是iPhoneX)

安装MonkeyDev集成非越狱调试

MonkeyDev是基于iOSOpenDev,最初的版本支持Xcode 9和最新theos创建CaptainHook Tweak和Logos Tweak,后面又增加了一个Command-line Tool工具的支持;
具体相关的内容可以进入到AloneMonkey的博客查看,感谢AloneMonkey贡献这么好用的工具。

下载MonkeyDev

github地址:MonkeyDev
下载安装
使用请阅读Wiki文档: Wiki
安装成功Xcode是酱紫滴 !
Command + N

MonkeyDev

注意
有的哥么喜欢装多个Xcode,所以安装的时候一定要看清是不是当前你需要安装的xcode。

xcode-select -p  //查看默认xocde
sudo xcode-select -s /Applications/xxx(需要安装的Xcode名称).app

创建 MonkeyDev项目酱紫的:


  • 项目名称是 ZacharyDev,所以下面所有的内容对应的ZacharyDev,项目名称可以根据自己进行自定义。
  • ZacharyDevBylib这个是将被注入目标App的动态库,你自己要hook的代码可以在ZacharyDevBylib.m文件里面写,里面写了一些Demo代码,支持OC runtime的HOOK,C函数的fishhook。
  • antiAntiDebug这个里面是反反调试的代码。
  • fishhook这个是自动积尘的fishhook模块。
  • Frameworks已经自动集成了Reveal.frameworkCycript.framework

拖入编译

  1. 准备好砸过壳的ipa包,这里我准备的是某信的砸壳版(越狱版),没有的下载pp助手下载一个ok?
  2. 将1中ipa包拖入自建项目目录ZacharyDev/ZacharyDev/TargetApp
  3. Run到真机上面

来付出行动,come on!
相信哥么们已经安装好某信了,当然哥么你得分清那个是你自己的,还是你现在要调试的,不要弄混了!
打开Reveal,就可以看到熟悉的界面了。
Reveal是啥? ->Reveal
当然回归正题,咱们主要是Cycript调试。

Cycript修改(只是内存的简单修改)、调试App

  • 首先将上述的AppRun到真机,也就是你的测试机上面
  • 打开终端输入cycript进入Cycript环境,链接你的手机服务,这样才能调试App
    • 链接成功将直接进入到cycript环境
cy# 
  • 注意:链接不上的问题
    • 请重启调试的App
*** _syscall(connect(socket_, info->ai_addr, info->ai_addrlen)):../Console.cpp(306):CYSocketRemote [errno=61]
问题
  • 链接后面的端口必须是6666吗?
    • 答:不是,在xxxx(你的项目名)Dylib.m有这句话,你可以设置成任何数哥么
CHConstructor{
    NSLog(INSERT_SUCCESS_WELCOME);
    
    [[NSNotificationCenter defaultCenter] addObserverForName:UIApplicationDidFinishLaunchingNotification object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification * _Nonnull note) {
        
#ifndef __OPTIMIZE__
        CYListenServer(6666);
#endif
        
    }];
}

调试、修改程序(一)

下面重点来了

cy# [UIApplication sharedApplication].statusBarHidden = YES

你会神奇的发现某信的状态条消失了。


  • 再来一个
cy# choose(UILabel)
[#">",#">",#">",#">",#"

一个亿小目标完成@王总

调试、修改程序(二)

从上面一堆乱码一样的东西中定位到你想要定位的内容会很恶心,那么有没有好点的方法?

  • 有,来吧,跟着哥么走就是有肉吃,我吃肉少不了汤喝,啊啊哈哈哈哈哈哈
  1. 首先用Xcode Run当前调试程序,如下:


直接拿到了这个UILabel的地址,那么是不是快多了?有没有觉的有很多好玩的地方可以去挖掘,可以在尝试一下,
步步高点改器,哪里想改,点哪里 so easy
注意一点,仅供技术交流

你可能感兴趣的:(Cycript(二)非越狱调试、修改App中UI的数据)