文章目录

  • 破解前的运行效果
  • 破解后的运行效果
  • 从越狱手机上取出app包
    • usb ssh登录到手机root账户
    • 获取app包的安装位置
  • 使用hopper破解
  • 计算偏移量
  • 如果要修改成其他指令怎么办?
  • 重新生成.ipa包
  • 如果想要在非越狱手机上安装破解后的app,需要重签名
    • 通过xcode获取证书(推荐,简单)
    • 获取证书id
  • 导出.plist文件
    • 以后每次修改可执行文件的汇编代码只要重复下面操作

破解前的运行效果

先看下破解之前的程序,密码输入错误点击按钮不能进入,只有输入9527才能登录成功

破解后的运行效果

不管输入什么,都显示密码正确,并且弹出新窗口

从越狱手机上取出app包

usb ssh登录到手机root账户

可以通过我写的下面这篇文章查看详细的usb 登录手机教程
越狱iPhone手机使用openSSH wifi和usb连接mac电脑再免密码登录再用shell脚本执行教程
如果你已经看懂了并且已经设置好了2个脚本,直接执行下面2个脚本

sh usb.sh
sh login.sh

获取app包的安装位置

登录root账号以后调用 MJAppTools -l 工具获取app包的位置

MJAppTools -l

如下图,得到路径结果:

如果没有安装MJAppTools工具,可以执行下面指令:
先打开要破解的app,然后输入

ps -A | grep 进程名字
ps -A | grep testCrackPwd

结果如下:

tandeyueyu6s:~ root# ps -A | grep testCrackPwd1921 ??         0:00.53 /var/containers/Bundle/Application/27FE8224-7076-4BD2-8E6A-EAB727EBB0B1/testCrackPwd.app/testCrackPwd1993 ttys000    0:00.00 grep testCrackPwd

用ifunBox打开这个目录 /var/containers/Bundle/Application/27FE8224-7076-4BD2-8E6A-EAB727EBB0B1
然后把testCrackPwd.app 复制到mac电脑上.

在mac上把testCrackPwd.app,右键"显示包内容",如下图
把里面跟app同名的可执行文件,拖拽到hopper中

使用hopper破解

如下图,hopper中找到这个tbz跳转的代码
使用debugserver给app在这3个地址下断点:

计算偏移量

(lldb) image list -o -f |grep testCrackPwd
[  0] 0x0000000004374000 /private/var/containers/Bundle/Application/277D073A-C808-4D4B-9A91-5FB238E744FA/testCrackPwd.app/testCrackPwd(0x0000000104374000)

得到偏移量是:0x0000000004374000
把hopper中这3行汇编都在debugserver里添加断点:

(lldb) br set -a 0x0000000004374000+0x0000000100006430
(lldb) br set -a 0x0000000004374000+0x0000000100006434
(lldb) br set -a 0x0000000004374000+0x00000001000064dc

发现输入错误的密码会跳入到0x00000001000064dc 这个断点,那么说明输入正确就会执行tbz下面的指令0x0000000100006434这条指令
所以为了每次不管输入正确密码或者错误密码都的显示密码正确,直接把tbz删掉,这样指令直接向下执行,就得出正确结果
方法1:用NOP填充,点击上面Modify->nop region,如下图

然后点击右上角的图标Hexadecimal mode 16进制显示模式.被修改的指令会变成红色.赋值这些数字1F 20 03 D5,这个就是 用空nop填充的16进制显示


如果你是付费版本,可以直接选择保存成可执行文件,如下图

但是免费版不能保存,提示demo版本不能保存

这时候用到machoview软件,打开文件找到macho中的代码段,代码段就是text段,找到咱们要修改指令的地址0000000100006430,在macho中的地址没有前面的1加8个0而是0x6430

双击第二行,然后把上面的16进制指令倒着输入进去,因为hopper和macho的16进制显示是相反的.hopper中显示的1F 20 03 D5,在machoview里要输入成 d5 03 20 1f

然后用machoview保存
然后用hopper打开之前的app,会发现,我们要改的6430地址的指令已经变成了nop,说明修改成功

如果要修改成其他指令怎么办?

假设还是上面这个地址,我改成b 0x100006434,效果是一样的,但是不应该这么做,因为这局指令不写也会自动向下执行,因为下一句就是0x100006434,这里是为了告诉大家如何用hopper使用修改汇编指令.
在要修改的指令上面点击modify->Assemble Instruction… 快捷键option A

然后在弹出框输入汇编指令,如下,然后按Assemble and Go Next

然后就会看到这句变成了跳转指令

之后按照上面方法,找到16进制的指令显示01 00 00 14,在到macho中找到对应地址倒着修改成 14 00 00 01就好了

重新生成.ipa包

首先建立一个文件件,起名Payload,注意P要大写,一个字母也不能错.然后把上面的testCrackPwd这个包,拖拽到Payload文件夹中
因为testCrackPwd包中的testCrackPwd文件已经被我们用machoview修改了内容.所以这个包也是修改后的.
然后把Payload文件夹,右键压缩成zip文件,变成Payload.zip. 然后把.zip重命名为.ipa.操作如下图所示:

下面如果要安装到越狱手机,就不需要重签名,可以直接使用爱思助手安装到越狱手机上,我的设备->应用游戏->导入安装,然后选择刚才的Payload.ipa,如下图所示

之后我们看下在越狱手机上的运行结果.已经是我们破解以后的样子了,不管输入什么密码,都会显示密码正确,然后弹出新的窗口,如最上面显示的破解后的gif图片

如果想要在非越狱手机上安装破解后的app,需要重签名

详细的原理可以查看我写的这篇文章
ios重签名在非越狱手机上安装自己破解的app
已经看完以后,下面直接写出简单方法:

通过xcode获取证书(推荐,简单)

先把要安装app的iphone连接上mac,如果之前连接过,那就不用连接,打开xcode,点击项目 -> target->Signing Capabilities->选择team如下图

然后编译有点Products->show in finder,在打开的文件夹地方,右键显示包内容,如下图

包里面也有一个embedded.mobileprovision 文件可以看到这个证书是适配所有app ID的,手机适配你账号上所有的手机,如下图

然后用你自己的证书文件embedded.mobileprovision覆盖上面从越狱手机复制到mac里的app包里的

获取证书id

查看可用证书id,终端输入指令

security find-identity -v -p codesigning

显示下面8个证书

1) 9E8E4B96828A64874256E93A9D5941357C921E15 "Apple Development: diwen tan (3H2A7XYSN6)" (CSSMERR_TP_CERT_REVOKED)2) 3202F166ABE7013D59292FE228882350AD07FA2E "Apple Development: diwen tan (Q7WR85FJ79)"3) 34540641D0312D2AEE0CAF6B091EE70B9D6181FB "iPhone Distribution: Unicom System Integration  Corporation Heilongjiang Branch (BSQ7TUAJAK)"4) 34540641D0312D2AEE0CAF6B091EE70B9D6181FB "iPhone Distribution: Unicom System Integration  Corporation Heilongjiang Branch (BSQ7TUAJAK)"5) 07CA4B77ED192A9294DB84EBD74BC5159793DF69 "Apple Development: guangyu shi (6NRAA7665L)"6) 39AFD07C57ECD1F1BE4C347AACD3B587822D4E86 "iPhone Developer: D Zhao (RYR87CRR93)"7) 34540641D0312D2AEE0CAF6B091EE70B9D6181FB "iPhone Distribution: Unicom System Integration  Corporation Heilongjiang Branch (BSQ7TUAJAK)"8) 34540641D0312D2AEE0CAF6B091EE70B9D6181FB "iPhone Distribution: Unicom System Integration  Corporation Heilongjiang Branch (BSQ7TUAJAK)"8 valid identities found

第5个 Apple Development ,这个是我的app store个人证书
复制前面的证书idid
07CA4B77ED192A9294DB84EBD74BC5159793DF69

导出.plist文件

进入embedded.mobileprovision文件所在目录,执行命令

security cms -D -i embedded.mobileprovision > temp.plist

得到temp.plist文件
在执行命令

/usr/libexec/PlistBuddy -x -c 'Print :Entitlements' temp.plist > entitlements.plist

得到entitlements.plist文件,然后删掉临时文件 temp.plist
entitlements.plist文件打开如下:

然后把 entitlements.plist文件拖拽进要破解的app包所在目录下,如下图:

然后执行命令替换签名

codesign -fs 证书id --entitlements entitlements.plist 包名.app

例如上面的例子:

codesign -fs 07CA4B77ED192A9294DB84EBD74BC5159793DF69 --entitlements entitlements.plist testCrackPwd.app

执行成功显示正在替换签名如下:

testCrackPwd.app: replacing existing signature

然后新建文件夹起名叫Payload,再把app包放进去,然后压缩成zip文件.然后再把Payload.zip改名成 Payload.ipa
然后就可以使用爱思助手安装到非越狱手机上了.

以后每次修改可执行文件的汇编代码只要重复下面操作

  1. 先用hopper修改汇编代码并且保存.
  2. 把entitlements.plist 文件复制进Payload文件夹,给app包重新签名,如下例子
codesign -fs 07CA4B77ED192A9294DB84EBD74BC5159793DF69 --entitlements entitlements.plist testCrackPwd.app
  1. 删除掉Payload文件夹下的entitlements.plist文件删除,然后把Payload压缩成Payload.zip,然后重命名成Payload.ipa
  2. 用爱思助手安装Payload.ipa文件

mac m1使用免费的hopper demo版本和machoView破解修改iphone上的app相关推荐

  1. mac m1 搭建数据库mysql 5.7版本问题和解决方式

    1.mac 电脑执行:docker pull mysql:5.7 出现错误 gitxuzan:~ $ docker pull mysql:5.7 5.7: Pulling from library/m ...

  2. 20230307 Mac M1 install open-source pymol-安装开源版本pymol

    文章目录 正常情况下 : brew install pymol 实际会遇到的问题:下载错误 解决:修改hosts文件,追加DNS 启动 其他参考方式 brew安装开源和dmg安装程序,然后替换dmg安 ...

  3. Mac——技巧:如何在iPhone 上获取 iOS 15 的实时文本功能

    尽管目前的iOS 15只是一个测试版本,但是它已经足够让我们惊喜了,无论是FaceTime的屏幕共享功能还是最新的聚焦模式,实际上都能在很大程度上改变我们手机体验的方式,而且从目前的效果来看,这种方式 ...

  4. mac m1 nvm 安装node版本失败

    记录一下mac m1 nvm 安装node版本失败 1.1 报错信息 make: *** [node] Error 2 nvm: install v10.24.1 failed! 1.2 解决方案 # ...

  5. Mac (M1) 软件及环境搭建

    Mac (M1) 软件及环境搭建 1.JDK 2.maven 3.idea2022 4.git 5.mysql5.7 6.redis 7.rabbitmq 8.smartGit 写在前面 说明:电脑版 ...

  6. java程序员首次使用mac M1

    背景 都说mac电脑更适合程序员,刚好笔记本电脑到了更新换代的时候.M1芯片出来一年多的时候,觉得软件适配差不多了,于是入手! 从哪里下载软件 从appsotre上下载的软件几乎没有M1标志,下载的软 ...

  7. 我用 Mac M1 玩转 Spring Cloud

    我的开源 Spring Cloud 项目 PassJava 一直可以在 Windows 上正常运行,最近不是换 Mac M1 了么,想把这个项目在 M1 上跑起来,毕竟我的那台 Windows 用起来 ...

  8. MyWin/Mac/Mac M1 Config配置记录---kalrry

    MyWin/Mac/Mac M1 Config配置记录---kalrry 前言 一.MyWin常用软件列表: 一.✅ Git与Git-gui安装 二.✅ Node.js安装 三.✅ Npm/Yarn安 ...

  9. mac M1 安装AndroidStudio打开真机调试

    我的安装全记录,有坑踩了已记录,不一定完全适用,可以看看. 文章目录 前言 一.安装Java环境 1.查看java环境 2.安装jdk 二.安装AndroidStudio 三.运行第一个HelloWo ...

  10. mac怎么配置php开发环境变量,Mac M1安装mnmp(Mac+Nginx+MySQL+PHP)开发环境

    之前刚装好了 HomeBrew ,接下来就要安装 环境了. 注意:如果 brew install 出以下错误, 则安装时使用arch -arm64 brew install软件包名 进行安装 安装 N ...

最新文章

  1. 盖茨的背后:坚持到最后一分钟
  2. python3 gzip 压缩/解压
  3. javascript:void(0);用法及常见问题解析
  4. 装好了ubuntu,w2k却无法启动了,:(
  5. 数据结构线性表博客作业总结
  6. 如何停止Internet Explorer 11的建议站点?
  7. efi引导文件_你们心心念念的oc通用EFI来了!
  8. 在MongoDB的MapReduce上踩过的坑
  9. python自动发帖源码_Python3实现的 自动发帖小工具 -电脑资料
  10. 苹果和亚马逊因疑似侵犯云端同步功能专利而被提起美国337调查
  11. cad统计面积长度插件vlx_cad计算总长度插件下载|
  12. Django数据库的增删改查学习笔记
  13. 派对屋效果器调试_派对屋DAK-780使用说明书
  14. 找回微信人工服务器,微信找回密码人工服务
  15. 马化腾教你做产品:改掉这七点,让产品自己说话
  16. ESP32基于arduino开发的心跳体温检测系统(二)传感器的使用
  17. 彻底搞懂阻抗控制、导纳控制、力位混合控制
  18. 分享一道面试题:10ml试管10ml的水,一个7ml,一个3ml,将10ml分成两个5ml的
  19. html中的li标签不换行,css li 不换行(布局,内容)
  20. 最近点对问题(蛮力法和分治法)

热门文章

  1. 二叉树非递归程序c语言,二叉树非递归遍历C语言实现
  2. 在禁用UAC时无法激活此应用
  3. 注册表删除方式解决Navicat到期问题
  4. 4个开源对象存储的解决方案
  5. 云服务综合解决方案——云桌面
  6. 算法:计算股票的最大收益(动态规划经典案例)
  7. 软件开发,网站建设,性价比高的PLC仿真软件。
  8. python实现ncm转mp3_滚动歌词制作 之 ncm格式转mp3
  9. 22岁阻止席卷网络的病毒,却因开发恶意软件被捕,这是传奇黑客马库斯的故事...
  10. 破解Bandicam