IOS安全、逆向、反编译3-Cycript

iOS Hacker 反注入和反反注入 一、反注入有一天,你会发现 cycript 不好使,提示这个 iPhone:~ root# cycript -p app dlopen(/usr/bin/Cycript.lib/libcycript.dylib, 5): Library not loaded: /System/Library/PrivateFrameworks/JavaScriptCore.framework/JavaSc 阅读详情

Cycript是Objective-C++、ES6(JavaScript)、Java等语法的混合物, 可以用来探索、修改、调试正在运行的Mac\iOS APP。我们可以通过官网和文档来学习 。

Cycript使用步骤

  1. 在iPhone上通过Cydia安装Cycript,即可在iPhone上调试运行中的APP

  2. 在Mac终端使用SSH连上iPhone

  3. 开启cycript

  4. 在iPhone的root用户目录下,输入cycript

  5. 调试iOS App

    5.1 获取需要调试的app的进程id(当然首先需要启动这个app)

    在iPhone上安装adv-cmds插件, 然后就可以使用ps -A(或者ps aux) 命令来显示当前iPhone所有的进程信息,从里面找到对应的进程id。

    如果数据太多,可以通过(ps –A | grep 关键词)来根据关键词筛选。

    注 : ps命令是process status的缩写,使用ps命令可以列出系统当前的进程。

    5.2 通过以下命令关联App进程

    cycript -p 进程ID

    或者cycript -p 进程名称

    5.3 通过cycript代码操作App, 例如

    UIApp <-> 打印UIApplication单例对象

    [UIApplication sharedApplication] <-> 打印UIApplication单例对象

    var 变量名 = 变量值 <-> 定义变量

    #内存地址 <-> 用内存地址获取对象

    ObjectiveC.classes <-> 已加载的所有OC类

    *对象 <-> 查看对象的所有成员变量

    view.recursiveDescription().toString() <-> 递归打印view的所有子控件(跟LLDB一样的函数)

    choose(UIViewController) <-> 筛选出某种类型的对象

    choose(UITableViewCell) <-> 筛选出某种类型的对象

注:

取消输入 Ctrl + C

退出 Ctrl + D

清屏 Command + R

Cycript高级使用

我们可以将常用的Cycript代码封装在一个.cy文件中,例如我们可以将获取当前app的主窗口的根视图控制器的代码封装到一个文件中。

//exports参数名固定,用于向外提供接口

(function(exports){

        exports.rootVC = function() {

                  return UIApp.keyWindow.rootViewController;

        };

        keyWin = function() {

              return UIApp.keyWindow

      }

})(exports)

那么这个mycycript.cy文件怎么使用呢?

  1. 我们可以将这个文件放到iPhone的/usr/lib/cycript0.9目录下

  2. 按照上面的Cycript的使用步骤先SSH登录iPhone,然后开启Cycript,关联上app进程

  3. 在命令行导入文件@import mycycript, 其中mycycript是自己定义的文件名。

    如果这个文件有更多的子目录,例如放在了/usr/lib/cycript0.9/com/baidu下面,那么是@import com.baidu.mycycript

  4. 使用定义的函数或者变量

    在命令行输入mycycript.rootVC()打印根视图控制器

    在命令行输入keyWin()打印主窗口对象

    注意:rootVC函数定义时前面加了exports表示这个函数属于文件,所以调用时前面需要加上文件名.函数名(), keyWin函数定义时前面什么也没有写,表示是全局函数,调用时函数名前面就 不 需要加文件名.函数名()。

Cocos2d-x iOS游戏逆向分析实战:从环境搭建到核心逻辑破解 逆向工程是软件安全领域的重要技术,指通过分析程序的二进制代码、资源文件与运行时行为,理解其内部工作原理。其核心原理在于利用静态分析(如反汇编、字符串提取)与动态分析(如函数Hook、内存监控)技术,在不依赖源代码的情况下还原程序逻辑。这项技术的价值在于提升软件安全性评估、漏洞挖掘、兼容性调试与恶意代码分析能力。在移动应用领域,逆向分析常用于安全审计、协议分析、资源提取与逻辑验证等场景。本文聚焦于Cocos2d-x引擎开发的iOS游戏,针对其Lua脚本与资源格式,详细解析如何利用Frida、IDA Pro等工 阅读详情

相关推荐

iOS应用加固实战:从反编译威胁到Ipa Guard混淆配置全解析

在移动应用开发领域,代码安全与防护是保障产品商业价值和技术资产的核心环节。其基本原理在于通过混淆、加密等技术手段,增加逆向工程的分析难度,从而保护核心逻辑与数据。从技术价值看,有效的应用加固能防止核心算法被提取、内购机制被绕过,以及应用被二次打包分发,直接关系到收入安全与品牌声誉。在实际应用场景中,金融、游戏及高价值商业应用尤为需要此类防护。本文聚焦于iOS平台,深入探讨如何利用Ipa Guard等工具对.ipa文件进行混淆与加固,涵盖符号混淆、控制流平坦化、字符串加密等关键技术,并详细解析配置策略与避坑指

weixin_34292402的博客 415

iOS 逆向编程(十五)Cycript 语法进阶(封装 .cy 脚本文件)

一、简介 每次进入 Cycript 调试之后,需要敲很多的调试指令,其实这些指令也是可以封装成 .cy 的 脚本文件,然后引用进行使用。 只要安装了 Cycript 在越狱的手机上就会有这个 cycript 文件夹,我们可以通过 iFunBox 查看,或者通过终端连接手机进行查看: iFunBox 查看 cycript 文件夹 终端连接手机查看 cycript 文件夹 iPhone:~ root# cd /usr/lib/cycript0.9 iPhone:/usr/lib/cycript

卡尔特斯 1629

[车联网安全自学篇] Android安全之移动安全测试指南「移动应用程序篡改和逆向工程」

[车联网安全自学篇] Android安全之移动安全测试指南「移动应用程序篡改和逆向工程」;逆向和篡改技术长期以来一直属于爱好破解人员、修改软件者、恶意软件分析师等领域的爱好者最喜欢的技术。对于“传统”安全的渗透测试工程师和安全研究员来说,逆向工程更多地是一种互补技能。但趋势正在开始转变:移动APP应用程序的黑盒渗透测试越来越需要专门从事移动安全的工程师掌握反编译已编译的APK应用程序的能力、应用程序打补丁以及篡改二进制代码甚至实时进程的各类综合能力技术。可是实际上大多数移动应用程序都会做对应的安全加固

橙留香Park的博客 849

Cycript文件的使用

基本用法 在使用cycript时,我们可以通过类似 UIApp.keyWindow.rootViewController 这样的方式,获取到对象进行调试。 但是每次都写这样复杂的相同的命令,未免有些太麻烦了。对此,我们可以创建.cy文件。.cy文件可以将常用的cycript指令封装在一个文件中,在将其@import依附在进程后,可以直接在cycript环境下调用已经封装了的指令,方便使用。其存...

weixin_34221773的博客 401

Android AudioFlinger(一)——初识AndroidAudio Flinger

AudioFlinger 是 Android 系统中的音频中间层(audio HAL, Audio Hardware Abstraction Layer)的一部分,负责管理音频的混音、播放和音量控制等功能。它充当 Android 应用程序和音频硬件之间的桥梁。

hirezy 1670

【雷达成像实战】RD、CS、RMA算法对比与Matlab实现:从信号处理到高清成像

本文深入对比了雷达成像中三种核心算法:经典的距离多普勒算法(RD)、基于稀疏重建的压缩感知算法(CS)以及高精度的快速多通道获取算法(RMA)。通过详细的Matlab实战代码,从原理拆解到实现步骤,分析了各自在计算效率、成像精度、数据需求和适用场景上的优劣,为工程选型与算法实践提供了清晰指南。

weixin_29095587的博客 450

02-Cycript的使用

Cycript介绍 Cycript是Objective-C++、ES6(JavaScript)、Java等语法的混合物,可以用来探索、修改、调试正在运行的Mac\iOS APP,需要通过Cydia安装Cycript,即可在iPhone上来调试运行中的App,可以点击官网来查看,可以点击Cycript文档来查看Cycript的使用方式 注意:App在运行时才能进行调试 Cycript开启和关闭 在进行此步骤前,需要先将Mac和iPhone用USB进行连接(在第一节中有介绍) Cycrip的指令有:

TSLee的博客 1724

Node.js内存溢出?一招搞定JavaScript heap out of memory错误(附永久配置方案)

本文深入解析Node.js内存溢出问题,提供从临时调整到永久配置的完整解决方案。重点介绍通过设置`max-old-space-size`参数和`NODE_OPTIONS`环境变量来扩展JavaScript堆内存限制,适用于Webpack、Vite等构建工具的大型项目场景,并涵盖Windows、Linux/macOS多平台配置方法。

cake8的博客 1057

五分钟学会ios反编译

将用以下几个方面来阐述我的观点: iOS app可以“有条件”地被反编译 脱掉App Store给“二级制文件”穿上的外衣 如何利用工具去反编译 iOS app可以“有条件”地被反编译 首先,告诉大家一个不幸的消息,上架至App Store的app,被apple加密了。所以标题才是“有条件”才能进行反编译,令人欣喜的是,在debug下产生的ipa或者是release下的ipa包或者是渠道包...

qq_37792992的博客 1万+

Microchip Studio 7.0 从下载到项目调试:AVR开发者的完整入门指南(附常见问题解决)

本文为AVR开发者提供了Microchip Studio 7.0从下载安装到项目调试的完整入门指南。详细介绍了如何获取安装包、创建第一个AVR工程项目,并配置编译与调试环境。同时,文章重点解决了开发过程中常见的编译错误和仿真问题,帮助开发者快速上手并高效使用这一官方集成开发环境。

joy55的博客 335

Python+Vue计算机毕业设计风电场监控系统的设计与实现7bd6i(程序+LW+源码+部署)

Python3.7.7+Django+Mysql5.7+pip list+HBuilderX(Vscode也行)+Vue+Pychram社区版。2. 前端:vue+css+javascript+jQuery+easyUI+highcharts。2.IDE环境:Python和Python 社区版都可以。Django + Vue +Python+Mysql 等等组成,B/S模式等等。该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。1. 后端:Python、Vue、Django、Mysql。

华信计算机毕设源码程序 342

反编译 逆向工具集合

Java & Jar (Android) jd-guijar包浏览工具,对应的IDE插件,JD-Eclipse/JD-IntelliJ LuytenAn Open Source Java Decompiler Gui for Procyon jadx-gui直接反编译apk Apktoolapk的反编译,编译工具(smali格式) dex2jardex转为jar工具 AXMLPrinterXML浏览工具 androg...

stone_tomcate的博客 6437

置换矩阵、转置矩阵以及向量空间、子空间

置换矩阵、转置矩阵以及向量空间、子空间导读置换矩阵 导读 MIT矩阵分析课程之后的的二篇笔记。

qq_44677482的博客 1673

iOS应用远程动态调试实战:非越狱环境下使用Cycript进行运行时分析与Hook

动态调试与运行时分析是深入理解软件内部机制、进行安全评估和性能优化的核心技术。其原理在于通过注入技术,在目标程序运行时动态地观察、修改其内存状态和执行流程,从而实现对应用行为的深度洞察与控制。这项技术的核心价值在于,它绕过了对源代码和调试符号的依赖,使得分析闭源应用、进行黑盒测试以及学习优秀架构设计成为可能。在移动安全、逆向工程、质量保障等应用场景中,动态调试是分析数据流、测试健壮性、探索功能实现的关键手段。本文聚焦于iOS平台,详细阐述了如何利用Cycript这一强大的交互式脚本环境,结合debugser

weixin_34379433的博客 461

【GlobalMapper精品教程】038:模拟水位上升(洪水淹没分析)案例教程

基于数字高程模型 ( DEM )格网模型,实现给定水深情况下洪水淹没区的计算模型,讨论洪水淹没演进过程可视化实现的关键技术,以三维可视化方式,动态而形象地模拟在指定洪水水位下的洪水淹没演进过程。

智慧空间实验室 2884

EPLAN中2D安装板的绘制方法示例

EPLAN中2D安装板的绘制方法示例

Robot_PLC_HMI_Automation 3221

java反编译工具_逆向工具集合

ReverseTool逆向工具集合Awesome-HackingJava & Jar (Android)jd-guijar包浏览工具,对应的IDE插件,JD-Eclipse/JD-IntelliJLuytenAn Open Source Java Decompiler Gui for Procyonjadx-gui直接反编译apkApktoolapk的反编译,编译工具(s...

weixin_39890327的博客 744

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

iOS逆向工程终极指南:Hopper与Cycript动态调试深度解析

iOS逆向工程是移动安全研究、漏洞挖掘和应用程序分析的重要技能。对于iOS开发者来说,理解逆向工程不仅有助于提高代码安全性,还能深入理解系统底层机制。本文将为您详细介绍iOS逆向工程的核心工具Hopper与Cycript,提供完整的动态调试指南,帮助您快速掌握iOS应用安全分析技术。 ## 为什么学习iOS逆向工程?🔍 在当今移动应用安全日益重要的时代,逆向工程技能变得尤为关键。无论是进行安

gitblog_01145的博客 550

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

iOS逆向之一-工具的安装和使用

iOS逆向之一-工具的安装和使用 最近在学习iOS安全方面的技术,有些东西就记录下来了,所有有了这篇文章。顺便也上传了DEMO,可以再这里找到这些DEMO的源码:dhar/iOSReProject 越狱手机安装软件 ssh 远程连接到越狱手机需要的软件 在Cydia中搜索、安装OpenSSH软件。 ssh 连接到手机:ssh root@192.168.1.112[手机IP] apt-get 包管

Aron1992的专栏 2616

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

iOS App Security真的坚不可破么?

前言:一直以来Android以开放著称 ,随之而来的不仅是Rom碎片化,还有各应用商城充斥着稂莠不齐的App,甚至因为他的开放让黑客更容易入侵Androi...

寻找改变未来的算法 245

iOS开发代码加密实战:从Keychain到防逆向的完整指南

在移动应用开发中,数据安全与代码保护是保障应用质量和用户信任的基石。其核心原理在于通过加密算法对敏感信息进行转换,确保即使数据被截获也无法被轻易解读。从技术价值看,这不仅保护了用户隐私和知识产权,更是满足App Store合规要求的必要条件。常见的应用场景包括本地敏感数据存储、安全的网络通信以及防止代码被逆向分析。针对iOS平台,开发者可以利用系统提供的Security框架实现Keychain安全存储,通过ATS强制HTTPS保障传输安全,并借助代码混淆与字符串加密等技术增加逆向工程难度。本文聚焦于iOS开

weixin_33767813的博客 705

iOS逆向实战:3种方法获取微信IPA文件并完成砸壳

开源项目 iWeChat 以"从0开始解剖App"为目标,以微信为例拆解逆向工程。本文是它的逆向第一课:把 App Store 的加密微信包,变成一份能被 class-dump、Hopper 正常分析的"裸"IPA,覆盖获取安装包、沙盒解读、砸壳与验证,仅供安全研究与授权环境测试。 ## 为什么逆向工具读不懂商店版微信 第一次接触微信逆向的人,多半会经历同样的困惑:装好 class-dump,

gitblog_00283的博客 307

iOS逆向工程优秀博客汇集

iOS逆向工程优秀博客汇集

骑着蜗牛找马儿 821

iOS逆向实战:从UI事件到网络协议,拆解社交App礼物发送功能

在移动应用开发与安全研究领域,理解应用内部功能的具体实现链路是一项核心技能。其原理通常涉及对客户端代码逻辑、用户交互事件流以及网络通信协议的深入分析。掌握这项技术的价值在于,不仅能帮助开发者优化自身应用的架构与安全,也能让安全研究人员评估业务逻辑的健壮性。典型的应用场景包括分析虚拟商品交易、支付流程以及用户行为触发机制。本文以社交或直播类App中常见的“送礼物”功能为具体案例,通过静态分析与动态调试相结合的方法,详细演示了如何从界面点击事件入手,逐步追踪至网络请求的完整过程,并重点探讨了参数签名、加密等安全

weixin_34006468的博客 427

iOS逆向入门:基于Frida脚本库的实战环境搭建与Hook技术解析

动态代码插桩技术允许开发者在程序运行时监控和修改其行为,是软件安全分析、漏洞挖掘和逆向工程的核心手段。其原理是通过注入代码或拦截函数调用,实现对目标进程的深度观测与控制。在移动安全领域,这项技术对于分析应用逻辑、检测安全漏洞和进行合规性测试具有重要价值。Frida作为一个跨平台的动态插桩框架,通过JavaScript API提供了强大的运行时操作能力,广泛应用于iOS和Android应用的动态分析。对于iOS逆向工程初学者而言,直接编写Frida脚本涉及Objective-C运行时、JavaScript和F

weixin_30567225的博客 351

如何使用Needle进行iOS应用渗透测试?5个核心模块快速上手

Needle是一款功能强大的iOS安全测试框架,专为iOS应用渗透测试设计,帮助安全测试人员高效评估应用安全性。本文将介绍Needle框架的5个核心模块及其使用方法,让你快速掌握iOS应用渗透测试的关键技能。 ## 1. 设备管理模块:轻松掌控测试环境 设备管理模块位于`needle/modules/device/`目录下,提供了设备连接、依赖安装和应用管理等基础功能。通过该模块,你可以轻松配

gitblog_00980的博客 950
上一篇: iOS-真机调试包(不断的更新中...)
下一篇: IOS安全、逆向、反编译4-Reveal(iOS开发者应该会用的工具)
xinxu-dev
博客等级 码龄12年 16粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值