IOS应用逆向之Flex调试工具【细节篇】

320 教程, IOS

本期教程针对APP:指尖时光、有道翻译官

一、软件介绍

(本节内容纯属凑字数的,看教程的可以直接略过)

指尖时光是一款非常好用的日程日历app,支持在手机上设置自己的日程安排,可以添加备忘录和时间提醒,支持打卡,上班族、学生均可使用。

指尖时光主要特点:

  • 时光日历,让习惯养成简单到不可能失败
  • 你是否曾经立下flag,每天减肥、看书、背单词、戒掉拖延症,但是坚持不了几天?
  • 立一个flag很容易,坚持下来却很难。

有道翻译官支持107种语言翻译,满足学习翻译、工作翻译、出国翻译、旅游翻译、旅行翻译等需求。支持拍照翻译、语音翻译、同传翻译、实景AR翻译、在线翻译、离线翻译。有道翻译官的中英互译采用业界最先进的有道神经网络翻译引擎技术YNMT,相比传统的机器翻译,翻译准确率显著提升,翻译更准确。

指尖时光主要特点:

  • 翻译语种:支持英语、日语、韩语、法语、俄语、西班牙语等107种语言翻译,覆盖186个国家,英语翻译、出国翻译、旅行翻译、旅游购物都不用担心。
  • 离线翻译:支持离线翻译功能的免费词典翻译应用,出国旅游旅行没有网络也能正常翻译英语、日语、韩语、法语、西班牙语、葡萄牙语、越南语等。
  • AR翻译:实景AR翻译,无需拍照,摄像头扫描即可实时翻译。
  • 同传翻译:流式语音识别,随说随译。
  • 网页翻译:轻松浏览外文网页。
  • 拍照翻译:强大的OCR摄像头取词和拍照翻译功能,一拍即译,无需手动输入便可快速翻译英语、日语等多种语言,满足出国翻译、旅行翻译、旅游购物翻译、英语学习翻译等需求。
  • 文本翻译:输入文本即可翻译,支持107种语言翻译。
  • 表情翻译:逗趣的表情翻译,让翻译更有趣。

二、教程开始

1.去除指尖时光启动广告

首先,先打开指尖时光APP,查看APP的广告样式等等,具体效果如下图所示:

直接打开Flex工具,启用指尖时光,直接盘他,具体过程看下方视频

步骤讲解:

  • 打开Flex工具,点击Select,选择启动视图,拖动,确认是否正确选择
  • 点击Views,进入函数加载界面,可以清楚的看到BUGiflmageViews这个函数,但是启动广告并非一定是你指针停留的那个函数,在视频中我们可以清楚的看到BUGiflmageViews上方还有一个BUSplashAdView函数,证明BUGiflmageViews这个函数是被BUSplashAdView所控制的,所以我们直接复制这个BUSplashAdView
  • 打开Flex 3,添加指尖时光,搜索函数,观察函数,通过观察我们可以发现一个-(double) showTime,翻译过来就是显示时间,如果我把显示时间改为0,广告是不是就消失了?尝试下查看下效果…
  • 广告依然存在,证明这个函数并非直接控制启动广告的函数,继续观察,又发现一个-(void) setSplashImageView:(id),翻译过来就是设置启动图片识图,添加这个函数,修改返回值,继续尝试下查看下效果…
  • 广告去除了,但是好像启动界面也卡顿了,并且左下放启动界面依然存在一个广告字样,证明这个函数有效果但是并非可以完美去除的函数
  • 继续观察函数,再次发现一个-(void) setSlot:(id),翻译过来就是设置位置,因为前面选择的是启动广告视图,所以我们不难理解出这个设置位置就是设置广告的位置,那么我让这个函数返回为空会怎么样,测试下…
  • 正如视频所示,启动广告已经完美去除了

2.有道翻译官首页精简

首先,先打开有道翻译官APP,发现APP并无启动广告,只是首页比较繁杂,一些杂七杂八的无用广告,影响使用效果,具体效果如下图所示:

直接打开Flex工具,启用有道翻译官,直接盘他,具体过程看下方视频:

步骤讲解:

  • 打开Flex工具,点击Select,选择启动视图,拖动,确认是否正确选择
  • 点击Views,进入函数加载界面,可以清楚的看到YDTInfoFlowViewController这个函数,直接复制它
  • 打开Flex 3,添加有道翻译官,搜索函数,观察函数,通过观察我们可以发现一个-(void) viewDidLoad,翻译过来就是识图是否加载,如果我把他改为无,是不是这样杂七杂八的就去除了?
  • 点击这个-(void) viewDidLoad发现,这个函数是无法修改返回值的,那直接启用补丁,看下是否有效果
  • 首页界面除了必备的翻译工具外,其他杂七杂八的东西已经完全去除

(这里可能有些小伙伴会疑惑,你去除的时候不担心把翻译必备那些也去除吗,所以这里就要提示小伙伴,move视图的重要性,因为我选择视图的时候,拖动时,上方翻译工具是静止不动的,所以咱们选择的函数YDTInfoFlowViewController是无法控制到上方的)

教程总结

其实,制作补丁的过程,并非直接可以找到关键函数,要多次尝试才可以去除广告,虽然过程很枯燥,但是当你成功后,那种满足感也会十分充足,所以别怕失败,多次尝试,总会成功的,加油,各位小伙伴!!!

本教程仅供学习研究,切勿用于非法用途!