| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 移动开发 -> iOS逆向(越狱) -> 正文阅读 |
|
[移动开发]iOS逆向(越狱) |
一、关于越狱(Jailbreak)的介绍越狱目前已经被苹果官方认可,不涉及违法功能,越狱主要是我们可以分析其他app的功能介绍,参考其功能的实现,也可以改变苹果自带的功能,打造个性化设计 1.越狱的优缺点优点: 1)打造个性化、与众不同的iphone 2)自由安装各种实用的插件、主题、APP 3)修改系统APP的一些默认的行为 4)自由安装非AppStore来源的App,付费变免费 5)灵活管理文件系统,让iPhone可以像U盘一样灵活 缺点: 1)不予保修 2)费电,越狱后的ios系统会常驻一些进程,耗电速度约提升10%-20% 3)在新的ios固件版本出来的时候,不能及时的进行更新 4)不再受ios系统默认的安全保护,容易被恶意软件攻击,个人隐私有被窃取的风险 2.完美越狱和不完美越狱完美越狱: 越狱后的iphone可以正常关机和重启 不完美越狱: iphone一旦关机后再开机,屏幕会一直停留在启动画面,也就是“白苹果”状态 或者能正常开机,但已经装的破解软件都无法正常使用,需要将设备与PC连接后,使用软件进行引导才能使用 一般来说,在苹果发布新的ios固件之后,针对该固件的不完美越狱会先发布,随后完美越狱才可能发布 3.怎么判断有没有越狱成功桌面有Cydia软件就代表越狱成功 4.Cydia介绍可以看成是越狱后的"App Store" 可以在Cydia中安装各种第三方的软件(插件、补丁、APP) 作者是:Jay Freeman 5.Cydia安装软件的步骤1)添加软件源(不同的软件添加源可能不同) 2)进入软件源找到对应的软件,进行安装 6.SpringBoard有时候通过Cydia安装完插件之后,可能会出现重启SpringBoard的提示 SpringBoard就是ios的桌面 7.手机必备软件安装1)Apple File Conduit "2" 可以访问整个ios设备的文件系统,类似的补丁还有afc2、afc2add,在mac上访问 软件源:http://apt.saurik.com ? ? ? ? ? ? ? ?http://apt.25pp.com 2)AppSync Unified 可以绕过系统验证、随意安装、运行破解的ipa安装包 软件源:http://apt.25pp.com 3)iFile 可以在iphone上自由访问ios文件系统,类似的软件Filza FileManager、 File Browser 软件源:http://apt.thebigboss.org/repofiles/cydia 4)PP助手 可以利用pp助手自由安装海量软件 软件源:http://apt.25pp.com/ 8.Mac必备iFunBox 管理文件系统 PP助手 自由安装海量APP ,卸载APP 9.安装包通常Cydia安装的安装包是deb格式的,通过pp助手安装的安装包是ipa格式的 如果通过Cydia源安装deb失败,可以先从网上下载deb格式的安装包,然后将deb安装包放到/var/root/Media/Cydia/AutoInstall(这个是iFunBox目录),重启手机,Cydia就会自动安装deb 可以通过此链接进行安装,有侵权可以提示删除,必须安装这两个软件,否则后面及时我们能够通过ssh来连接mac和手机,也无法对手机进行操作 iOS 13越狱:越狱后如何安装AppSync和afc2越狱补丁_bigcat201的博客-CSDN博客_appsync越狱补丁 二、越狱1.通过代码来判断是否越狱成功2.如何越狱手机安装uncOver就可以,可以通过爱思助手来安装,也可以直接下载安装包 三、SSH和OpenSSH1.Mac远程登录到iphone做逆向工程时经常用命令行来操作iphone,跟电脑用终端来操控电脑一样 为了能够让Mac终端中的命令行能作用在iPhone上,我们得让Mac和iPhone建立连接,通过Mac远程登录iPhone手机的方式建立连接 2.SSHSSH(Secure Shell)的缩写,意为“安全外壳协议",是一种可以为远程登录提供安全保障的协议 使用SSH,可以把所有传输的数据进行加密,“中间人”攻击方式就不可能实现,能防止DNS欺骗和IP欺骗 OpenSSH是SSH协议的免费开源实现,可以通过OpenSSH的方式让Mac远程登录到iPhone 现在电脑是客户端,手机是服务器 3.使用OpenSSH远程登录在Cydia直接搜索安装OpenSSH就可以。 SSH是通过TCP协议通信,所以要确保Mac和iPhone在同一局域网下,比如连接同一个WiFi 在Mac的终端输入ssh账户名@服务器主机地址 ???????? 服务器主机地址,可以通过手机->设置->无线局域网,,然后点开自己连接的无线网,查看ip地址就可以。默认的密码是alpine,输入此密码就进入到了手机,远程登录了手机 4.root、mobileios有2个常用的账户:root、mobile root:最高账户权限,$HOME是/var/root,用户文件夹,可以通过下列命令查看路径 moblie:普通权限账户,只能操作一些普通文件,不能操作系统级别的文件,$HOME是/var/mobile 登录mobile用户: ssh?mobile@服务器主机地址 #是最高权限用户,$是普通用户 最好修改一下root和mobile用户的登录密码(登录root账户之后,分别通过passwd、passwd mobile )完成 5.SSL、OpenSSL?SSL(Secure Sockets Layer)的缩写,是为网络通信提供安全及数据完整性的一种安全协议,在传输层对网络进行加密 OpenSSL 是SSL的实现 绝大多数HTTPS请求等价于:HTTP+OpenSSL OpenSSH的加密就是通过OpenSSL完成的 OpenSSH依赖于OpenSSL 6.SSH的版本SSH协议一共有两个版本,SSH-1,SSH-2,现在用的最多的是SSH-2(很久以前的,可以通过ssh -V来查看最新的版本),客户端和服务端版本要保持一致才能通信 查看SSH版本(查看配置文件的Protocal字段) 原来的可以通过下面的命令来查看 ?7.SSH的通信过程SSH的通信过程可以分为3个大主要阶段 1)建立安全连接 2)客户端认证 3)数据传输 建立安全连接:在建立安全连接的过程中,服务器会提供自己的身份证明(公钥和私钥是一对存在的) 第一次登录此服务器的时候需要存储一些东西,我们需要点yes,就是跟公钥相关的一些东西会发送到客户端,我们将他们存储起来,然后第二次登录的时候我们就不需要进行验证了。 我们可以在客户端查看此公钥 ?8.服务器身份信息变更在建立连接过程中,可能会遇到下列的错误:提醒服务器的身份信息发生了变更,我们跟服务器建立连接。服务器每次都会发一次公钥,如果是第一次连接服务器,我们就会将服务器的公钥存储在known_hosts文件中,以后每次连接都会进行一个验证,如果本次发送的公钥和存储的公钥一样,就会建立连接,进行数据传输,如果发送的不一样,就会报以下错误,提示遭受到了中间人攻击,但是如果我们还想连接,就需要将存储在known_hosts文件给删除掉 ???????? 因为我们公钥存储在客户端,所以此时目录需要在电脑上,然后使用vim将此公钥进行删除就可以(进入到文件里面)dd命令是将这一段文字删除,按esc,然后点冒号wq命令是将文件进行保存。 此时再连接此服务器,会重新连接并进行存储 也可以使用ssh-keygen -R 服务器名称命令进行删除,此时再进行查看known_hosts下面没有文件 再次进行连接,用重新提示进行存储 ?需要注意的是 我们查看known_hosts文件或者是vim编辑内容时,一定要进行目录切换,cd ~/.ssh 在此文件夹下进行操作,不然会报如下问题 SSH的客户端认证方式: SSH-2提供了2种常用的客户端认证方式 1)基于密码的客户端认证(使用账户和密码即可认证) 2)基于密钥的客户端认证(免密码认证,最安全的一种认证方式) SSH-2默认会优先尝试"密钥认证",如果认证失败,才会尝试密码认证 9.SSH-基于密钥的客户端认证我们登录服务器,服务器需要对我们进行认证,看是否可以登录服务器,一种是密码,一种是密钥,密钥可以免密码 客户端需要生成公钥和私钥,然后把公钥追加到授权文件的尾部,这样服务器就存储了我们的信息,下次登录认为是安全的登录,就不用输入密码了 1)在客户端生成密钥(命令:ssh-keygen)一直点回车就可以? 2)切换到ssh目录下,查看一下生成的公钥和私钥 将生成的公钥追加到授权文件的尾部(使用命令:ssh-copy-id root@服务器地址) 追加之后需要输入密码,以后再次登录就不需要了 可以登录服务器查看一下授权文件 ?10.公钥>>授权文件可以使用ssh-copy-id将客户端的公钥内容自动追加到服务器的授权文件尾部,也可以手动操作 复制客户端的公钥到服务器某路径 scp ~/.ssh/id_rsa.pub root@服务器地址 scp是secure copy的缩写,是基于SSH登录进行安全的远程文件拷贝命令,把一个文件copy到远程另外一台主机上 ? 不直接将公钥进行追加,而是将公钥复制到服务器上面,然后在进行追加 如果进行了公钥的配置,仍然需要输入密码进行登录,就需要输入下面3个命令进行权限的认证 读(r=4),写(w=2),执行(x=1)。综合起来还有可读可执行(rx=5=4+1)、可读可写(rw=6=4+2)、可读可写可执行(rwx=7=4+2+1)。 所以,chmod 755?设置用户的权限为: 1.文件所有者可读可写可执行? 2.与文件所有者同属一个用户组的其他用户可读可执行? 3.其它用户组可读可执行 注意 :~的含义代表家目录,在mac上~代表的是/Users/用户名目录 ? ? ? ? ? ? 在手机上代表的是/var/root目录
所以想要操作mac桌面的话不仅可以/Users/用户名/Desktop来进行操作,还可以~/Desktop 11.22端口端口就是设备对外提供服务的窗口,每个端口都有一个端口号(范围是0~65535) 有些端口是保留的,已经规定了用途,比如: 21端口是提供FTP服务的,80端口是提供HTTP服务的,22端口提供SSH服务,(可以查看/etc/ssh/sshd_config的Port字段) 直接输入地址,就可以查看到端口号 12.通过USB进行SSH登录?默认情况下,由于SSH走的是TCP协议,Mac是通过网络连接的方式登录到iPhone,要求iPhone连接到wifi,为了加快传输速度,也可以通过USB连接的方式进行SSH登录,Mac上有一个服务程序usbmuxd(它会开机自动启动),可以将Mac的数据通过USB传输到iphone 切换路径进行查看 工作原理:通过SSH将数据传入到mac的端口,然后通过USB进行传输 ?13.usbmuxd的使用https://cgit.sukimashita.com/usbmuxd.git/ ?从此连接进去下载1.0.8版本,一定要下载1.0.8,不然其他的版本可能会没有python脚本 将iPhone的22端口映射到Mac本地的10010端口 执行此命令的时候会报zsh:command not found:python 所以我们需要安装python环境 安装的过程中可能会报安装错误,没有sqlite,我们在重新安装sqlite 安装好了执行命令,还是会报如下错误 会报两个语法错误,在python3中,print输出需要加()给所有print语句加(),SocketServer需要小写,把所有S变成s,socketserver 四、Cycript1.Cycript的介绍1)Cycript是Object-C、C++、JavaScript、Java等语法的混合物 2)可以用来探索、修改、调试正在运行的App 3)官网:http://www.cycript.org/ 4)通过Cydia安装Cycript,即可在iPhone上调试运行中的App 2.使用ps命令,安装adv-cmdsps命令是process status的缩写,使用ps命令可以列出系统当前的进程 列出所有进程ps -A 搜索关键词 ps -A|grep 关键词(可以筛选出自己想要的程序) 3.使用Cycript?登录到服务器输入cycript命令,就可以直接输入,如果想要退出的话直接输入control+D 1)使用cycript - p 应用名称(或者是进程号就可以调试程序) 使用ObjectiveC.classes可以查看应用用到的所有类 五、ios签名机制和加密方式1.ios的加密方式?2.常见英文1.encrypt:加密 2.decrypt:解密 3.plaintext:明文 4.ciphertext:密文 3.学前须知1.为了便于学习,设计了4个虚拟人物 1)Alice、Bob:互相通信 2)Eve:窃听者 3)Mallory:主动攻击者 ?4.如何防止被窃听??5.如何加密?6.使用密钥的方式,有两种? 对称加密:加密和解密用的密钥是一样的 非对称加密:加密和解密用的密钥是不一样的 7.对称加密(Symmetric Crytography)?1)DES(Data Encryption Standard) DES是一种将64bit明文加密成64比特(位,bit)密文的对称加密加密算法,密钥长度是54bit 规格上来说,密钥长度是64bit,但每隔7bit会设置1个用于错误检查的bit,因此密钥长度实际是56bit 由于DES每次只能加密64bit的数据,遇到比较大的数据,需要对DES加密进行迭代(反复) 目前已经可以在短时间内被破解,所以不建议使用 ?2)3DES 3DES,将DES重复3次所得到的一种密码算法,也叫做3重DES 目前还被一些银行等机构使用,但处理速度不高,安全性逐渐暴露出问题 3个密钥都是不同的 如果所有密码都是用同一个,则结果与普通的DES一样 3)AES(Advanced Encryption Standard) 取代DES成为新标准的一种对称加密算法 在2000年的时候选择Rijindaei算法作为AES的实现 目前AES,已经逐步取代DES、3DES成为首选的对称密码算法 一般来说,我们也不应该使用任何自制的密码算法,而是应该使用AES,它经过了全世界密码学专家所进行的高品质验证工作 8.密钥配送问题?在使用对称密钥时,一定会遇到密钥配送问题 假设Alice将使用对称加密过的消息发送给了Bob,只有将密钥发送给了Bob,Bob才能完成解密,在发送密钥的过程中,可能会被Eve窃取密钥,最后Eve也能完成解密 9.如何解决密钥配送问题有以下几种解决密钥配送的方法 1)事先共享密钥 2)密钥分配中心 3)Diffie-Hellman密钥交换 4)公钥密码 10.公钥密码(Public-key Cryptography)(也是非对称加密)1)公钥密码中,密钥分为加密密钥、解密密钥两种,它们并不是同一个密钥 2)公钥密码也被称为非对称加密 3)在公钥密码中,加密密钥一般都是公开的,因此该密钥称为公钥(public-key) 4)解密密钥,由消息接受者自己保管,不能公开,因此也称为私钥(private key) 比如:Alice想要给Bob发消息,要拿到他的公钥,然后Bob用私钥解他的消息 5)公钥和私钥是一一对应的,是不能单独生成的,一对公钥和密钥统称为密码对 11.解决密钥配送问题1)由消息的接收者,生成一对公钥、私钥 2)将公钥发给消息的发送者 3)消息的发送者使用公钥加密消息 ? 12.RSA目前使用最广泛的是非对称加密是RSA 13、混合编码系统(Hybrid Cryptosystem)?1)对称密码的缺点:不能很好地解决密钥配送问题 2)公钥密码的缺点:加密解密速度比较慢 3)混合密码系统,是将对称密码和密钥密码的优势相结合的方法:解决了公钥密码速度慢的问题,并通过公钥解决了对称密码的密钥配送问题 4)网络上的密码通信所用的SSL/TLS都运用了混合密码系统 14.混合密码-加密1)会话密码 a.为本次通信随机生成的临时密钥 b.作为对称密钥的密钥,用于加密消息,提高速度 2)加密步骤(发送消息) a.首先,消息发送者要拥有消息接收者的公钥 b.生成会话密钥,作为对称密码的密钥,加密消息 c.用消息接收者的公钥,加密会话密钥 d.将前两步生成的加密结果,一并发给消息接收者 3)发送出去的内容包括: a.用会话密钥加密的消息(加密算法:对称密码) b.用公钥加密的会话密钥(加密算法:公钥密码) ? 15.混合密码--解密
? |
|
移动开发 最新文章 |
Vue3装载axios和element-ui |
android adb cmd |
【xcode】Xcode常用快捷键与技巧 |
Android开发中的线程池使用 |
Java 和 Android 的 Base64 |
Android 测试文字编码格式 |
微信小程序支付 |
安卓权限记录 |
知乎之自动养号 |
【Android Jetpack】DataStore |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 3:38:36- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |