• iOS-建设银行破解分享


    https://i.cnblogs.com/Files.aspx

    建设银行破解分享

    page1image3805792page1image3806240

    问题描述一
    • 在越狱手机上控制银行客户端自动获取流水,并发送到服务器。

    page1image3807808page1image3808256

    问题描述二• 怎么控制

    • 通过在越狱手机上部署动态库,来控制银行客户端自动获取流 水,并上传到服务器。

    page1image3847680page1image3848128

    白盒与黑盒

    • 从外界获取;网络截获分析;• 可执行文件与进程分析;
    • 初步问题求解:黑盒失败。

    page1image3809824page1image3810272
    白盒与病毒:病毒需要解决的问题
    

    • 1)如何运行;独立进程、插件库。
    • 2)如何获取想要的信息:(1)本地数据;(2)运行时hook。

    page1image3811840page1image3812288

    原理一:静态机制

    • 面向方面(切面)编程与插点。• 分解与hook。

    page1image3813856page1image3814304

    原理二:动态机制

    • Mach-O文件的数据主体可分为三大部分,分别是头部 (Header)、加载命令(Load commands)、和最终的数据 (Data)。mobileloader会在目标程序启动时,会根据指定的规则 检查指定目录是否存在第三方库,如果有,则会通过修改二进制 的loadCommands,来把自己注入进所有的app当中,然后加载第 三方库。

    page1image3815872page1image3816096page1image3816320page1image3816544
    page1image3818112page1image3818560

    问题求解一

    page1image3818784
    page1image3820352page1image3820800

    问题求解二

    page1image3821024
    page1image3822592page1image3823040

    问题求解三

    page1image3823264
    page1image3824832page1image3825280

    第一步 生成动态库

    必要条件1)生成动态库的开发环境;2)待破解工程的头文件;3)动态库工程生成及开发。4)打包安装。

    page1image3849472page1image3849920

    1、Theos 开发环境

    • TheOS被设计为一个在基于Unix平台开发IOS程序的集成开发环 境,它给我们准备好了一些代码模板、预置一些基本的Makefile脚 本,这样我们开发一个tweak就会变得方便的多,

    • http://www.jianshu.com/p/751444520848 • 相当于xcode。

    page1image5815632
    page1image3851488page1image3851936

    2、Theos与工程生成及问题

    • Project Name (required): hookApp
    • Package Name :动态库的包命
    • [iphone/tweak] MobileSubstrate Bundle filter 目标工程的identifier

    page1image3853504page1image3853952

    • 我查找了一些资料后发现,这个错误是dpkg的锅,随着版本的升 级,打包格式发生了变化

    • dpkg-deb: error: obsolete compression type 'lzma'; use xz instead • 解决方案是按以下路径找到该文件修改其内容
    • /opt/theos/makefiles/package/deb.mk

    • _THEOS_PLATFORM_DPKG_DEB_COMPRESSION ?= gzip

    page1image3855520page1image3855968

    二、hello world!与白盒破解

    必要条件

    1)生成动态库的开发环境;2)待破解工程的头文件;(白盒)3)动态库工程与tweak文件。(处理这一步)4)打包安装。

    page1image3857536page1image3857984

    tweak生成

    • logify.pl ./xx/ViewController.h > ./Tweak.xm • Logify.pl脚本在你安装theos的时候就自带了

    page1image3860000page1image3860448

    Logify

    • 它是theos的一个模块,作用就是根据头文件自动生成tweak,生成 的tweak会在头文件的所有方法中注入NSLog来打印方法的入参和 出参,非常适合追踪方法的调用和数据传递

    page1image3862464page1image3862912

    代码开发与logos

    • Logos语法:
    • http://iphonedevwiki.net/index.php/Logos

    page1image3827296page1image3827744

    Makefile文件与打包

    • THEOS_DEVICE_IP = 192.168.1.100 • ARCHS = armv7 arm64
    • TARGET = iphone:latest:8.0

    • include $(THEOS)/makefiles/common.mk • TWEAK_NAME = Xtest

    • Xtest_FILES = Tweak.xm
    • Xtest_FILES += FTWebViewController.m

    page1image3829984page1image3830432

    部署到手机

    • 1)手机越狱,系统版本;• 2)时间与地区;

    page1image3832224page1image3832672

    openssh
    • OpenSSH 是 SSH (Secure SHell) 协议的免费开源实现。SSH协

    议族可以用来进行远程控制, 或在计算机之间传送文件。• l连接到手机:ssh root@10.10.215.119

    • 需要在手机上安装。• 在同一个局域网内
    • 需要知道手机的地址

    page1image5876992page1image5877200page1image5877408page1image5877616page1image5877824page1image5878032page1image5878240page1image5878448page1image5878656page1image5878864
    page1image3864928page1image3865376

    make package install 部署

    page1image3867392page1image3867840

    三、黑盒破解与砸壳• 问题描述:

    • 要破解第三方app,需要了解里面的功能,首要的是获取app的头 文件;

    • 原理:可执行文件中的符号表。

    page1image3869856page1image3870304

    准备工作 ps命令--进程查看工具

    • ps –e
    • ps aux | grep CCBMobileBank • cycript -p 1682

    page1image3834688page1image3835136

    准备工作 Cycript

    Cycript是由Cydia创始人Saurik推出的一款脚本语言,Cycript 混合 了Objective-C与javascript语法的解释器,这意味着我们能够在一个 命令中用Objective-C或者javascript,甚至两者兼用。

    • 它能够挂钩正在运行的进程,能够在运行时修改应用的很多东西

    page1image3837600page1image3838048

    Cycript初探

    • cy# UIApp.keyWindow.rootViewController
    • #0x16012f060.recursiveDescription().toString()• [#0x15c547780 visibleViewController]

    • http://www.jianshu.com/p/7c41b03c9eb3 • Cycript脚本命令的简单使用

    page1image5881360
    page1image3871872page1image3872320

    砸壳步骤

    • iOS逆向工程(简单利用"dumpdecrypted"给ipa砸壳)• http://blog.csdn.net/app_ios/article/details/52583687
    • 二、总结步骤
    • 1,设备中打开需要砸壳的APP。

    • 2,SSH连接到手机,找到ipa包的位置并记录下来。
    • 3,Cycript附加到进程,找到App的Documents文件夹位置并记录

    下来。
    • 4,拷贝dumpdecrypted.dylib 到App的Documents 的目录。
    • 5,执行砸壳后,并拷贝出砸壳后的文件,然后完成。
    • 以上就是步骤了,其实很简单,下面进行演示砸腾讯视频的壳:

    page1image5826240
    page1image3874336page1image3874784

    • 查看工程文档路径

    • cy# [[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask][0]

    • #"file:///var/mobile/Containers/Data/Application/D41C4343-63AA- 4BFF-904B-2146128611EE/Documents/"

    • //破解文件部署
    • Connection to 10.10.213.176 closed.
    • /var/mobile/Containers/Data/Application/B01FE602-A5DD-4E0F-

    page1image3876800page1image3877248

    • 执行破解操作

    • root# DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib/var/mobile/Containers/Bundle/Application/4317E560-4555-40DB- A2DD-DA7BCFD5A208/CCBMobileBank.app/CCBMobileBank mach-o decryption dumper

    • 移出破解文件

    • scp root@10.10.213.176:/var/mobile/Containers/Data/Application/6E9CE 214-6E6E-4A4A-A5CF- DEAAC3F15D24/Documents/WeChat.decrypted /Users/zzf073/Desktop/

    page1image3840960page1image3841408

    dumpdecrypted

    • https://github.com/stefanesser/dumpdecrypted • makeFile编译

    page1image5883648
    page1image3879488page1image3879936

    Class-dump
    • class-dump -H WeChat.decrypted -o ./h

    • Class-dump 安装和使用方法

    • http://blog.csdn.net/msyqmsyq/article/details/51363659

    • class-dump -H /Users/zzf073/Desktop/FqlMerchantX /Payload/FqlMerchantX.app -o /Users/zzf073/Desktop/FqlMerchantX/heads

    • class-dump -H /Users/zzf073/Desktop/jianshe/jianshebank/Payload/CCBMobileBank. app -o /Users/zzf073/Desktop/jianshe/heads

    page1image5829360page1image5829776page1image5829984
    page1image3881952page1image3882400

    Makefile与复杂文件的组织

    page1image3884416page1image3884864

    四、app动态分析与静态分析• 主要是UI分析

    • 函数调用分析(待研究)
    • 目标:获取当前试图对应的功能模块(类)。

    page1image3886656page1image3887104

    两种解决方案

    • 1)从叶子节点回溯
    • 2)从根viewcontroller往下查找。

    page1image3844320page1image3844768

    五、UI跳转控制与simulatetouch

    • 解决方案
    • UIAutomation
    • simulatetouch
    • iOS模拟屏幕点击事件
    • SimulateKeyEvent 模拟发送物理按键事件的插件 c

    page1image5885728page1image5885936page1image5038416page1image5886560page1image5886768
    page1image3846784page1image3847232

    • 下载完成后,将其中的/usr/lib/libsimulatetouch.dylib拷贝 到$THEOS/lib/libsimulatetouch.dylib下,

    • int r = [SimulateTouch simulateTouch:0 atPoint:touchPoint withType:STTouchDown];

    • r = [SimulateTouch simulateTouch:r atPoint:touchPoint withType:STTouchUp];

    • CCBMobileBank_LDFLAGS = -lsimulatetouch

    page1image3849248page1image3849696

    银行破解工程结构makefile

    • THEOS_DEVICE_IP = 10.10.165.152ARCHS = armv7 arm64TARGET = iphone:latest:8.0include $(THEOS)/makefiles/common.mkTWEAK_NAME = CCBMobileBankCCBMobileBank_FILES = Tweak.xm TWTextView.m CCBKeyboardManager.m CCBTraceRecordEngine.m LocalDataManager.m RecordPageModel.m CEToastView.m CEJson.m BIDObjectToNsDictionary.m

    page1image3851488page1image3851936

    • $(THEOS_MAKE_PATH)/tweak.mkCCBMobileBank_FRAMEWOR KS = Foundation UIKit QuartzCore Foundation CoreFoundation CoreGraphics MobileCoreServices

    • #after-install::# install.exec “killall -9 SpringBoard”
    • CCBMobileBank_LDFLAGS = -lsimulatetouchinclude

    page1image3853952page1image3854400

    问题描述三
    • 如何合理使用手机资源

    • 手机上有多个银行的app,如何让多个app复用手机资源,在不同 的时间段获取流水并上传到服务器。

    page1image3888896page1image4990480page1image3889568

    部署图

    page1image3891584page1image3892032

    进程调起与大数据传输

    • 1)原始方案:后台运行进程;• 2)优化方案:openUrl:

    page1image3856416page1image3856864

    附带工具

    • Macho文件浏览器---MachOView
    • http://blog.csdn.net/zhangjie1989/article/details/54614246 • github上有源代码

    • iOS逆向Reveal查看任意app 的界面
    • http://www.jianshu.com/p/060745d5ecc2

    page1image5891968page1image5892176page1image5892384page1image5892592
    page1image3858880page1image3859328

    • 谢谢!

  • 相关阅读:
    "用脑思考"和"用心感知"
    Oracle 分页查询
    MySQL定时执行存储过程
    java商城小程序收藏
    巴士团小程序
    微信小程序this作用域
    Flink之API的使用(3):Source的使用
    Flink之API的使用(2):Transform算子的使用
    Flink之API的使用(1):Sink的使用
    Flink之基础内容(2):DataStream的创建和使用
  • 原文地址:https://www.cnblogs.com/feng9exe/p/10362786.html
Copyright © 2020-2023  润新知