加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 业界 > 正文

黑客技术第一步,微信自动抢红包,原来是这样实现的

发布时间:2018-11-09 12:12:18 所属栏目:业界 来源:G猿员
导读:媒介 进修和相识逆向工程,可以辅佐我们说明竞品和本身喜好的APP的开拓架构和某些成果的概略实现思绪,也可以本技艺动对其余APP大刀阔斧举办二次加工,满意本身的需求。 进修iOS逆向一段时刻了,这里简朴做个总结,揭开iOS逆向的隐秘面纱。 Mac长途登录iPh
副问题[/!--empirenews.page--]

媒介

进修和相识逆向工程,可以辅佐我们说明竞品和本身喜好的APP的开拓架构和某些成果的概略实现思绪,也可以本技艺动对其余APP大刀阔斧举办二次加工,满意本身的需求。 进修iOS逆向一段时刻了,这里简朴做个总结,揭开iOS逆向的隐秘面纱。

黑客

Mac长途登录iPhone

iOS和Mac OS X都是基于Darwin(苹果的一个基于Unix的开源体系内核),以是iOS中同样支持终端的呼吁行操纵。

在逆向工程中,我们常常会通过呼吁行来哄骗iPhone。为了可以或许让Mac终端中的呼吁行能浸染在iPhone上,我们得让Mac和iPhone成立毗连。毗连有两种方法:wifi毗连和usb毗连。

  • 先在越狱软件上安装ssh插件OpenSSH ,呼吁行下和应用交互的插件Cycript,让越狱手机和mac电脑在统一个局域网下(为了可以或许通过ssh处事从mac电脑会见手机),在mac的呼吁行终端 通过ssh处事登录手机 输入ssh root@手机ip。默认环境下的root暗码是alpine。root暗码可以本身修改。
  • 然后在手机上运行措施,在mac终端上操作ps -A 查察手机当前运行的历程,找到历程id后便可以操作cycript举办一些列操纵。譬喻:进入当前运行着的微信历程的cycript状态cycript -p WeChat

回收wifi毗连偶然辰会呈现卡顿耽误的征象,以是我凡是回收usb毗连。

Mac上有个处事措施usbmuxd(它会开机自动启动),可以将Mac的数据通过USB传输到iPhone

我行使了两个剧本举办登录:

  • python ~/iOS/tcprelay.py -t 22:10010举办端口的映射
  • ssh -p 10010 root@localhost usb的登录

Cycript的行使

Cycript是Objective-C++、ES6(JavaScript)、Java等语法的殽杂物,可以用来试探、修改、调试正在运行的MaciOS APP。官网:

http://www.cycript.org

好比一些简朴的行使:

  1. // 微信历程 
  2. cycript -p WeChat 
  3. // 得到沙盒路径 
  4. NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES)[0] 
  5. // 打印当前页面view的层级 
  6. UIApp.keyWindow.recursiveDescription().toString() 

首要搭配Reveal行使,从Reveal中得到某个界面可能view所属的类或节制器,然后拿到该类或节制器操作cycript举办调试。好比,知道了一个view对应的类为testView,想把该view从当前界面移除,到达不表现的结果:

  1. [testView removeFromSuperview]; 

代码Hook说明

假如要逆向App的某个成果少不了代码的说明。

(1) 通过上面的说明,找到某个view对应的类后,就必要导出该类对应的头文件举办详细的说明白。

(2) 起首找到App的二进制文件(Mach-O范例),(行使iFunBox把该文件导出到Mac上)然后行使class-dump器材导出个中的全部头文件,这些头文件中可以看到个中的属性和要领。class-dump -H Mach-O文件路径 -o 头文件存放目次

(3) 假如要查察Mach-O文件完备信息,提议用MachOView。otool -l打印全部的 Load Commands,提议搭配grep举办正则过滤。otool -L 可以查察行使的库文件。

(4) 头文件说明完毕后,就可以操作theos举办越越代码的开拓了,编译天生Tweak插件(deb名目)。

  • 操作nic.pl指令,选择iphone/tweak,建设一个tweak工程。
  • 在这个tweak工程中编辑Tweak.xm文件,编写本身的越狱代码。
  • 开拓完成后操作make package打包和make install安装得手机。重启应用,你会发明对应的成果已经按照hook的代码改变了。
  • 道理:iOS在越狱后,会默认安装一个名叫mobilesubstrate的动态库,它的浸染是提供一个体系级的入侵管道,全部的tweak都可以依靠它来举办开拓。在方针措施启动时按照法则把指定目次的第三方的动态库加载进去,第三方的动态库也就是我们写的破解措施,从而到达修改内存中代码逻辑的目标。

(5) 偶然辰想看某个类中的某个要领的实现以及挪用逻辑,就必要用到Hopper Disassembler器材。

theos的常用语法

  • %hook ,%end : hook一个类的开始和竣事
  • %log:打印要领挪用详情
  • HBDebugLog:跟NSLog相同
  • %new:添加一个新的要领的时辰行使
  • %orig:函数原本的代码逻辑
  • %ctor:在加载动态库时挪用
  • logify.pl:可以将一个头文件快速转换成已经包括打印信息的xm文件
  • 假若有特另外资源文件(好比图片),放到项目标layout文件夹中,对应着手机的根路径/

砸壳(脱壳)

假如行使越狱手机直接从pp助部下载下来的部门应用免除了我们本身脱壳的进程。可是假如是从App Store下载下来的应用,App Store已经为该应用举办了加密,再行使class-dump是无法导出面文件的,这是时辰就必要对APP举办脱壳操纵了。

脱壳器材有两种,Clutch 和 dumpdecrypted

Clutch :

  • 在Mac终端登岸到iPhone后,操作Clutch脱壳
  • Clutch -i 罗列手机中已安装的应用中加密的应用。
  • Clutch -d 应用bundleid 对加密的应用脱壳,脱壳乐成后会出产新的Match-O文件。对这个新的文件举办class-dump操纵即可。

偶然辰行使Clutch脱壳,会呈现失败的环境,好比脱壳微信的时辰就会呈现错误。这个时辰就必要行使dumpdecrypted:

  • 终端进入dumpdecrypted.dylib地址的目次 var/root
  • 行使情形变量 DYLD_INSERT_LIBRARIES 将 dylib 注入到必要脱壳的可执行文件(可执行文件路径可以通过ps -A查察获取)
  • 执行呼吁 DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib 可执行文件路径 即可完成脱壳操纵。

结语

相识以上逆向的流程后,你可以实现一些风趣的成果,好比:视频客户端去告白,修改微信行为步数,防备微信动静测回,微信自动抢红包等成果。同时,也会在本身客户端的开拓进程中更注重信息的安详掩护。研究逆向,必然要擅长操作各类器材,而且做好不绝失败的筹备,愈挫愈勇,终会乐成。

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读