iOS逆向环境以及常用命令行(逆向一)
一、环境介绍
越狱环境: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逆向环境以及常用命令行(逆向一)的更多相关文章
- NET Core 环境搭建和命令行CLI入门
NET Core 环境搭建和命令行CLI入门 2016年6月27日.NET Core & ASP.NET Core 1.0在Redhat峰会上正式发布,社区里涌现了很多文章,我也计划写个系列文 ...
- (转)Mysql常用命令行
原文:http://www.cnblogs.com/TsengYuen/archive/2012/01/11/2319034.html Mysql常用命令行 Mysql经常使用号令行大全 熬头招.my ...
- NET Core 环境搭建和命令行CLI入门[转]
NET Core 环境搭建和命令行CLI入门 时间:2016-07-06 01:48:19 阅读:258 评论:0 收藏:0 [点我收藏+] 标签: N ...
- php开发面试题---Mysql常用命令行大全
php开发面试题---Mysql常用命令行大全 一.总结 一句话总结: 常见关键词:create,use,drop,insert,update,select,where ,from.inner joi ...
- Linux 常用命令行
Linux常用命令行 第一部分: cd命令 第二部分:文件操作 第三部分:压缩包操作
- vi 常用命令行
vi 常用命令行 1.vi 模式 a) 一般模式: vi 处理文件时,一进入该文件,就是一般模式了. b) 编辑模式:在一般模式下可以进行删除,复制,粘贴等操作,却无法进行编辑操作.等按下‘i,I ...
- GCC常用命令行一览表
GCC常用命令行一览表 这些常用的 gcc/g++ 命令行参数,你都知道么?1. gcc -E source_file.c-E,只执行到预编译.直接输出预编译结果. 2. gcc -S source_ ...
- Linux - 常用命令行(一)
今天和大家分享一些最基本常用命令行:也是作为新手最应该了解掌握的 ls 命令:用来显示指定工作目录下内容 dir命令:与ls命令一致 cd 命令:变化工作目录 pwd命令:显示用户当前的工作路径,显 ...
- HBase表的基本结构和常用命令行操作
一.HBase表的基本结构 1.概述: 平时常见的MySQL.Oracle数据库都是传统型关系数据库,它们都是按行查询.按行存储:而HBase为非关系型数据库,它是按列存储的的. 在HBase插入数据 ...
随机推荐
- .NET Core多平台开发体验[1]: Windows
微软在千禧年推出 .NET战略,并在两年后推出第一个版本的.NET Framework和IDE(Visual Studio.NET 2002,后来改名为Visual Studio),如果你是一个资深的 ...
- 基于linux vim环境python代码自动补全
(一)简述 在使用vim编写python文件的过程中,默认的vim不会实现代码补全功能,在写程序或者是改程序的时候不是很方面,很容易出错,但是vim提供了各种插件,其中包括这个python文件的自动补 ...
- python pip升级失败
接上篇,使用命令:python -m pip install --upgrade pip 发现pip升级时报错,无法升级 解决方法: 1.使用如下命令,查看具体失败原因: pip install -- ...
- 哪有Python视频百度云链接?
说到Python视频哪个好,小编在这里不好下结论.毕竟孰好孰坏,只有合适的才是最好的.就像买鞋子,一双鞋子好不好,只有合脚才是真的好.不过,这里有些个人认为通俗易懂的Python视频可以分享给大家. ...
- jenkins 配置qq邮箱
- C++类静态成员与类静态成员函数
当将类的某个数据成员声明为static时,该静态数据成员只能被定义一次,而且要被同类的所有对象共享.各个对象都拥有类中每一个普通数据成员的副本,但静态数据成员只有一个实例存在,与定义了多少类对象 ...
- 近期学习的原生JS知识以及jQuery框架
[正则表达式]1.正则表达式包括两部分: ① 定义正则表达式的规则 ② 定义正则表达式的模式(i/g/m)2.声明正则表达式: ① 字面声明 : var reg = /表达式规则/表达式模式 ② 使用 ...
- java对象 深度克隆(不实现Cloneable接口)和浅度克隆
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt128 为什么需要克隆: 在实际编程过程中,我们常常要遇到这种情况:有一个对象 ...
- 闭锁——CountDownLatch
一.概念 闭锁是一个同步工具类,主要用于等待其他线程活动结束后,再执行后续的操作.例如:在王者荣耀游戏中,需要10名玩家都准备就绪后,游戏才能开始. CountDownLatch是concurrent ...
- java基础学习——集合
-------|List: 有存储顺序, 可重复-----------|ArrayList: 数组实现, 查找快, 增删慢,由于是数组实现, 在增和删的时候会牵扯到数组增容, 以及拷贝元素. 所以慢. ...