iOS安全攻防(一):常用的命令和工具

简介: iOS安全攻防(一):常用的命令和工具

你的应用正在被其他对手反向工程、跟踪和操作?你的应用是否依旧裸奔毫不防御?

郑重声明一下,懂得如何攻击才会懂得如何防御,一切都是为了之后的防御作准备。废话少说,进入正题。

今天总结一下为hack而做的准备工作。

常用的命令和工具

ps

——显示进程状态,CPU使用率,内存使用情况等

sysctl

——检查设定Kernel配置

netstat

——显示网络连接,路由表,接口状态等

route

——路由修改

renice

——调整程序运行的优先级

ifconfig

——查看网络配置

tcpdump

——截获分析网络数据包

lsof

——列出当前系统打开的文件列表,别忘记一切皆文件,包括网络连接、硬件等

otool ①——查看程序依赖哪些动态库信息,反编代码段……等等等等

nm ②——显示符号表

ldid ③——签名工具

gdb ——调试工具

patch

——补丁工具

SSH ——远程控制

备注:

①otool,可查看可执行程序都链接了那些库:

Shell

otool -L

WQAlbum

1

otool -L

WQAlbum

可以得到:

WQAlbum:

/System/Library/Frameworks/StoreKit.framework/StoreKit (compatibility version

1.0.0, current version 1.0.0)

/System/Library/Frameworks/AdSupport.framework/AdSupport (compatibility version

1.0.0, current version 1.0.0) /usr/lib/libz.1.dylib (compatibility version

1.0.0, current version 1.2.5)

/System/Library/Frameworks//MediaPlayer.framework/MediaPlayer (compatibility

version 1.0.0, current version 1.0.0)

/System/Library/Frameworks/MobileCoreServices.framework/MobileCoreServices

(compatibility version 1.0.0, current version 40.0.0)

/System/Library/Frameworks/CoreMedia.framework/CoreMedia (compatibility version

1.0.0, current version 1.0.0) ……

1

2

3

4

5

6

7

8WQAlbum:

/System/Library/Frameworks/StoreKit.framework/StoreKit

(compatibility version 1.0.0, current version 1.0.0)

/System/Library/Frameworks/AdSupport.framework/AdSupport

(compatibility version 1.0.0, current version 1.0.0)

/usr/lib/libz.1.dylib

(compatibility version 1.0.0, current version 1.2.5)

/System/Library/Frameworks//MediaPlayer.framework/MediaPlayer

(compatibility version 1.0.0, current version 1.0.0)

/System/Library/Frameworks/MobileCoreServices.framework/MobileCoreServices

(compatibility version 1.0.0, current version 40.0.0)

/System/Library/Frameworks/CoreMedia.framework/CoreMedia

(compatibility version 1.0.0, current version 1.0.0)

……

可以反编译WQAlbum的__TEXT__段内容,

截前10行:

Shell

otool -tV

WQAlbum |head -n 10

1

otool

-tV WQAlbum |head -n 10

可以得到:

WQAlbum:

(__TEXT,__text) section start: 00002de0 pushl $0x00 00002de2 movl %esp,%ebp

00002de4 andl $0xf0,%esp 00002de7 subl $0x10,%esp 00002dea movl 0x04(%ebp),%ebx

……

1

2

3

4

5

6

7

8

9WQAlbum:

(__TEXT,__text)

section

start:

00002de0

pushl $0x00

00002de2

movl %esp,%ebp

00002de4

andl $0xf0,%esp

00002de7

subl $0x10,%esp

00002dea

movl 0x04(%ebp),%ebx

……

②nm,显示程序符号表,用我自己的应用程序私人相册现身说法一下:

Shell

nm -g

WQAlbum ( -g 代表 global)

1

nm -g

WQAlbum ( -g 代表 global)

可以得到:

001e5eec S

_OBJC_IVAR_$_WQPhotoViewController.albumObject 001e5efc S

_OBJC_IVAR_$_WQPhotoViewController.int_current 001e5f00 S

_OBJC_IVAR_$_WQPhotoViewController.int_total

1

2

3001e5eec

S _OBJC_IVAR_$_WQPhotoViewController.albumObject

001e5efc

S _OBJC_IVAR_$_WQPhotoViewController.int_current

001e5f00

S _OBJC_IVAR_$_WQPhotoViewController.int_total

其中,WQPhotoViewController为类名,albumObject为该类的成员

③ldid,是iPhoneOS.platform提供的签名工具,我们自己编译的程序需要签上名才能跑在iPhone/iPad上,使用方法

export

CODESIGN_ALLOCATE=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate

ldid -S helloworld

1

2export

CODESIGN_ALLOCATE=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate

ldid -S

helloworld

编译Hello world

1.首先找到编译器:

arm-apple-darwin10-llvm-gcc-4.2

就是了。

为了方便起见,可以在.bashrc或者profile

配置下环境变量,方便编译。

2.找到SDK

编译我们自己的程序的时候需要指定该目录下的SDK。

3.来个经典Hello

world :

C

#include

int main(){ printf("Hello world !!!\n"); return 0; }

1

2

3

4

5#include

int

main(){

printf("Hello world !!!\n");

return 0;

}

4.编译

其中

-isysroot用来指定build时的SDK

5.校验

file查看一下类型,没问题。

6.SCP给iPhone、iPad

前提是,设备已经越狱并且安装了SSH,且必须在同一网段。

$scp

helloworld root@x.x.x.x:hello world

7.登录设备签名

$ssh -l

root x.x.x.x

#ldid -S

helloworld

8.执行程序

#./helloworld

Hello

world !!!

运行成功,这就完成了最简单的手动执行自己的应用程序。


相关文章
|
移动开发 安全 数据安全/隐私保护
iOS 全局自动化代码混淆工具!支持 cocoapod 组件代码一并混淆
iOS 全局自动化代码混淆工具!支持 cocoapod 组件代码一并混淆
|
Dart 数据安全/隐私保护 Swift
iOS代码混淆工具推荐:IPA Guard详细介绍
iOS代码混淆工具推荐:IPA Guard详细介绍
974 0
|
JavaScript 前端开发 Android开发
【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
711 13
【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
|
安全 数据安全/隐私保护 Android开发
【05】2025年1月首发完整版-篇幅较长-苹果app如何上架到app store完整流程·不借助第三方上架工具的情况下无需花钱但需仔细学习-优雅草央千澈详解关于APP签名以及分发-们最关心的一篇来了-IOS上架app
【05】2025年1月首发完整版-篇幅较长-苹果app如何上架到app store完整流程·不借助第三方上架工具的情况下无需花钱但需仔细学习-优雅草央千澈详解关于APP签名以及分发-们最关心的一篇来了-IOS上架app
4205 75
|
JavaScript 搜索推荐 Android开发
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
750 8
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
|
数据采集 JavaScript Android开发
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
812 7
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
|
监控 开发工具 Android开发
探索安卓与iOS开发的差异:平台特性、工具和市场趋势
在移动应用开发的广阔舞台上,安卓与iOS两大操作系统扮演着主角。它们各自拥有独特的平台特性、开发工具和市场定位,这些差异深刻影响着开发者的决策和产品的最终形态。本文将深入分析这两大平台的关键技术差异,探讨各自的开发环境和工具集,以及它们在市场上的表现和未来的趋势,为开发者提供一个全面的视角,帮助他们在这两个平台上做出更明智的开发选择。
355 28
|
iOS开发 Python
6-8|如何使用Python语言开发IOS混淆工具
6-8|如何使用Python语言开发IOS混淆工具
|
Java Android开发 iOS开发
探索安卓与iOS开发的差异性:平台、工具和用户体验的对比分析
【7月更文挑战第30天】在移动应用开发的广阔天地中,安卓和iOS两大平台各自占据着不可忽视的地位。本文将深入探讨这两大平台在开发环境、工具选择以及最终用户体验上的根本差异,并分析这些差异如何影响开发者的策略和用户的偏好。通过比较安卓的开放性与iOS的封闭性,我们将揭示不同平台下的开发哲学及其对生态系统的影响。
371 4
|
开发工具 Android开发 数据安全/隐私保护
探索iOS与安卓应用开发的异同:技术、工具和市场趋势
在移动操作系统的广阔舞台上,iOS和安卓两大主角各自演绎着怎样的精彩?本文将深入剖析这两大平台在应用开发过程中的技术差异、开发工具的选择以及面对的市场环境。通过数据支撑和案例分析,我们将一窥这两个系统如何影响开发者的决策,并探讨它们未来的发展方向。