一、环境介绍

越狱环境:iPhone 5s iOS9.3.1

yueyu:~ root# uname -a

Darwin yueyu 15.4.0 Darwin Kernel Version 15.4.0: Fri Feb 19 13:54:53 PST 2016; root:xnu-3248.41.4~28/RELEASE_ARM64_S5L8960X iPhone6,2 arm64 N53AP Darwin

1、 Drawin体系

  • Darwin是一种类似unix的操作系统,他的核心XNU,XNU是一种混合式内核,结合了mach与BSD两种内核。

    主流的类unix:

    a、Linux 由Linus Torvalds研发的,代表发行版本CenOS,Redhat,Ubuntu,Debian,openWRT等

    b、Mac OS X的Intel部分

    c、freeBSD 由加州大学伯克利分校基于UNIX研发的(UNIX变种,当时如果不是与贝尔实验室打官司,可能就不会有现在的Linux什么事)

    d、Solaris 由Sun(现为Oracel)开发的UNIX商业版本

  • BSD 实现在Mach的上层,这一层提供的API 支持了POSIX标准模型。在XNU中主要实现了一些高级的API与模块

    a、UNIX 进程模型

    == e.g fork,vfork,wait,waitpid,exec等 ==

    b、POSIX 线程模型即pthread,以及相关的同步功能

    == e.g pthread_create,pthread_mutex(线程互斥锁)==

    c、UNIX的用户与组管理

    e.g root用户,mobile用户,chmod等

    d、网络协议栈(BSD Socket API),符合POSIX 模型

    == e.g socket();bind(); listen();accept();connect(); gethostbyname(); gethostbyaddr()等伯克利套接字API==

    e、文件系统/设备系统

    == e.g Filesystem Hierarchy Standard(文件系统层次化标准)==

  • iOS,OSI,ISO的含义

    a、iOS 苹果公司开发的移动操作系统

    b、OSI 是Open System Interconnection的缩写,意为开放式系统互联。OSI模型把网络通信的工作分为7层,分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。

    c、IOS是国际标准化组织。上面的OSI模型由该组织制定。一般类UNIX系统都基本符合POSIX标准和IOS C标准

    d、POSIX表示可移植操作系统接口(Portable Operating System Interface)

    e、IOS C标准,C语言标准库接口

2、 为什么需要越狱

  • 突破iOS沙盒机制的限制(sandbox)

    沙盒是一种安全机制,为运行中的程序提供隔离环境。沙盒在启动的时候可以设置运行的程序是否可以访问网络、文件、目录等

3、 Cydia - 越狱iOS的软件管理平台以及相关命令行

  • 首先需要安装OpenSSH

    在Cydia中搜索OpenSSH并安装,这样iOS上面就可以开启SSH服务。SSH服务默认绑定端口号22。

  • 使用SSH命令连接iOS,默认登录密码”alpine”

  • ssh root@xx.xx.xx.xx //iOS连接wifi,设置中可以看到ip地址,也可以改成静态IP地址,其中xx.xx.xx.xx为手机的ip地址,需要注意的是,此时手机与mac该处于同一网络下。

> 在终端操作的时候,需要root权限,mac中获得root权限的命令:
>
> su root
>
> sudo 所需命令行
  • 使用scp命令可以传输文件

    scp filename root@xx.xx.xx.xx:/tmp //拷贝本地文件到远端

    scp root@xx.xx.xx.xx:/tmp/filename /tmp/ //从远端拷贝文件到本地



    • 修改默认密码

      passwd root 或者 passwd mobile

  • 安装软件包管理工具apt-get

    在Cydia中搜索 APT 0.6 Transitional并安装

    • 命令介绍

      	 apt-get update                    【更新所有的源】
      apt-get upgrade 【更新所有通过apt-get安装的程序】 apt-get install packagename 【安装软件包】 apt-get remove packagename 【删除软件包,不删除依赖包,不删除配置文件】 apt-get remove --purge packagename 【删除该软件包,不删除依赖包,删除配置文件】 apt-get autoremove packagename [删除该软件包,删除依赖包,不删除配置文件] apt-get autoremove --purge packagname 【可以删除所有依赖包+配置文件】 apt-cache search string 【搜索含有该string字段的软件包】 apt-cache show packagename 【详细显示该软件包的信息】 apt-get clean 【清除apt-get安装的软件包备份,可以释放储存空间,不影响软件正常使用】
  • 使用apt-get 安装软件包

    e.g 安装traceroute

        apt-get install traceroute  //发现找不到软件包
    
       //如果不知道软件包名称,也可以用关键字搜索
    apt-cache search traceroute apt-get install network-cmds
  • 安装必要工具

        apt-get install  ping       //发送icmp报文,检查网络状况
    
       apt-get install  ps         //查看进程信息
    
       apt-get install  find       //查找文件
    
       apt-get install tcpdump     //抓包工具
    
       apt-get install top         //查看实施的进程信息
    
       apt-get install vim         //文本编辑工具
    
       apt-get install  network-cmds   //-arp, ifconfig, netstat, route, traceroute
  • 工具的使用

      ping www.baidu.com -c 4 -s 600
    
      ps aux
    ps -e find / -name ping //在根目录开始查找文件名为ping的文件 grep -r 'hello*' /tmp //在/tmp目录中查找包含'hello'字符的文件,-r表示包含子目录 top
    top -l 1 | head -n 10 | grep PhysMem //显示系统内存使用情况 tcpdump -i en0

iOS逆向环境以及常用命令行(逆向一)的更多相关文章

  1. NET Core 环境搭建和命令行CLI入门

    NET Core 环境搭建和命令行CLI入门 2016年6月27日.NET Core & ASP.NET Core 1.0在Redhat峰会上正式发布,社区里涌现了很多文章,我也计划写个系列文 ...

  2. (转)Mysql常用命令行

    原文:http://www.cnblogs.com/TsengYuen/archive/2012/01/11/2319034.html Mysql常用命令行 Mysql经常使用号令行大全 熬头招.my ...

  3. NET Core 环境搭建和命令行CLI入门[转]

      NET Core 环境搭建和命令行CLI入门 时间:2016-07-06 01:48:19      阅读:258      评论:0      收藏:0      [点我收藏+]   标签: N ...

  4. php开发面试题---Mysql常用命令行大全

    php开发面试题---Mysql常用命令行大全 一.总结 一句话总结: 常见关键词:create,use,drop,insert,update,select,where ,from.inner joi ...

  5. Linux 常用命令行

    Linux常用命令行 第一部分: cd命令 第二部分:文件操作 第三部分:压缩包操作

  6. vi 常用命令行

    vi 常用命令行 1.vi 模式  a) 一般模式: vi 处理文件时,一进入该文件,就是一般模式了.  b) 编辑模式:在一般模式下可以进行删除,复制,粘贴等操作,却无法进行编辑操作.等按下‘i,I ...

  7. GCC常用命令行一览表

    GCC常用命令行一览表 这些常用的 gcc/g++ 命令行参数,你都知道么?1. gcc -E source_file.c-E,只执行到预编译.直接输出预编译结果. 2. gcc -S source_ ...

  8. Linux - 常用命令行(一)

    今天和大家分享一些最基本常用命令行:也是作为新手最应该了解掌握的 ls 命令:用来显示指定工作目录下内容 dir命令:与ls命令一致 cd  命令:变化工作目录 pwd命令:显示用户当前的工作路径,显 ...

  9. HBase表的基本结构和常用命令行操作

    一.HBase表的基本结构 1.概述: 平时常见的MySQL.Oracle数据库都是传统型关系数据库,它们都是按行查询.按行存储:而HBase为非关系型数据库,它是按列存储的的. 在HBase插入数据 ...

随机推荐

  1. Linux程序写入oralce数据库中文显示为问号??? 代码实现设置环境变量!

    Linux程序写入oralce数据库中文显示为问号??? 1.问题介绍 根本原因是字符集的问题,是数据库的字符集和写入程序的linux系统的字符集不一致导致: 但是用export NLS_LANG=& ...

  2. Spring MVC请求执行流程

    学习Spring MVC时间有点长了,但是最近打算找工作,需要重新了解下,所以又去温故知新了.Spring MVC就是用来写web的框架,简化你写web的一些不必要的流程,让程序员能专注于业务逻辑也就 ...

  3. 现在开始学习WPF了,mongodb在整理一下

    回忆一下自己学习mongodb的过程 1安装 2增删改查 3数据类型转换 4GridFS 5权限管理--开启权限之前先建立一个超级用户(admin库中),开启权限,用该用户登陆,进入admin数据库( ...

  4. [2013-02-22]info入门FAQ

    linux相关的东西,入门最快捷,最通用的方式无非查阅帮助文档. man命令很好理解,就不讲了,这里就提几个info相关的FAQ(也就3点啦) 基本操作,如何入门info 首先,输入info命令 ,进 ...

  5. 【算法设计与分析基础】25、单起点最短路径的dijkstra算法

    首先看看这换个数据图 邻接矩阵 dijkstra算法的寻找最短路径的核心就是对于这个节点的数据结构的设计 1.节点中保存有已经加入最短路径的集合中到当前节点的最短路径的节点 2.从起点经过或者不经过 ...

  6. private ,friendly,public protected四种修饰符访问权限(从idea代码提示中看出)

    文件一,本类中可以访问全部: package xsf; /** * Created by liwenj on 2017/7/25. */ public class A { private int x= ...

  7. Linux的netstat查看端口是否开放见解(0.0.0.0与127.0.0.1的区别)

    linux运维都需要对端口开放查看  netstat 就是对端口信息的查看 # netstat -nltp p 查看端口挂的程序 [root@iz2ze5is23zeo1ipvn65aiz ~]# n ...

  8. IEnumerable和IQueryable接口

    之间的区别 IQueryable继承于IEnumerable IEnumerable:IEnumerable<T> 泛型类在调用自己的SKip 和 Take 等一些扩展方法之前数据就已经加 ...

  9. [2017BUAA软工助教]博客格式的详细说明

    一.为什么要强调博客格式 可以对比粗读一下这几篇博客然后自己感受一下博客格式对博客阅读体验的影响: MarkDown流:    [schaepher]2017春季 JMU 1414软工助教 链接汇总 ...

  10. 201521123012 《Java程序设计》第九周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2. 书面作业 1.本次PTA作业题集异常 常用异常 题目5-1 1.1 截图你的提交结果(出现学号) 1.2 自己 ...