iOS安全攻防(二十一):废除应用程序的ASLR特性

ios获取模块基址和ASLR偏移地址 ios获取模块基址和ASLR偏移地址 intptr_t slide_addr = _dyld_get_image_vmaddr_slide(0); struct mach_header *mh_addr = _dyld_get_image_header(0); printf("slide addr: 0x%x\n", slide_addr); printf("mh addr: 0x%x\n", m... 阅读详情

原文地址:http://blog.youkuaiyun.com/yiyaaixuexi/article/details/20391001


ASLR (Address Space Layout Randomization),即地址空间随机布局。大部分主流的操作系统都已实现了ASLR,以防范对已知地址进行恶意攻击。iOS从4.3开始支持ASLR,Android从4.0也支持了ASLR机制。

ASLR的存在,给iOS系统越狱造成了很大的困难,某些不完美越狱方案就是因为攻破不了或者绕不开ASLR,所以每次重新启动后地址再度随机偏移,需要重新进行越狱操作。与此同时,ASLR也给应用层攻击带来了一些困难,不同进程会造成不同的地址空间偏移,而且在运行时才可确定其偏移量,不易锁定攻击地址。


Mach-O文件的文件头会记录二进制的属性标识,有个flag叫做PIE (Position Independent Enable)。开启了PIE的二进制文件,在执行时会产生ASLR。


我们可以使用otool工具,来查看任意应用程序二进制文件的属性,以支付宝为例:

  1. otool -hv Portal  


有PIE标识,表示该程序在启动时会产生随机地址布局。


removePIE 是个去掉PIE flag的工具。

坏消息是,年久失修,它不支持iOS7。
好消息是,我们还有2个变通方法可以走。

  • 利用Theos编译removePIE
  • 改编一个Mac版的MyRemovePIE 

非越狱开发者可能不熟悉Theos,低学习成本的做法是第二种,那么让我们来改编一个Mac版的MyRemovePIE吧。
(懒得动手的可以直接到 这里下载demo)


创建一个Command Line Tool工程,






然后复制  removePIE.c 代码到main.c中,并且修改第43行:
  
if ( currentHeader . magic == MH_MAGIC ){ //little endian

添加iOS7的判断条件:
  
if ( currentHeader . magic == MH_MAGIC || currentHeader.magic == 0xbebafeca ){ //little endian



编译后生成可执行文件MyRemovePIE.

利用我们编译生成的MyRemovePIE来处理应用程序:
  1. ./MyRemovePIE Portal  




这样以后支付宝Portal再被启动执行就不会具有ASLR特性了





如何验证一下结果呢?

把处理过的Portal二进制拷贝回iPhone,启动支付宝钱包应用,然后gdb该进程,利用info sh命令查看偏移:




偏移量为0,嗯,这下就好了。一些手动处理的过程可以升级为自动了~
TMS320F280049C 学习笔记11 控制率加速器 CLA 例程 总结了TI官方在C2000Ware_3_01_00_00版本中提供的7个与CLA相关的例程。 阅读详情

相关推荐

一文了解ECU软件刷写的2种方法:Bootloader刷写和调试器刷写

分为刷写前、刷写中和刷写后三个阶段,如下示意:下面我们来详细了解一下Bootloader收到外部请求后开始刷写的三个阶段1)刷写前进行刷写的准备,一是确保刷写阶段总线通信的稳定性,二是避免刷写阶段出现非预期的故障,三是读取车辆数据供刷写前的一些检查等,如下所示:首先进行会话控制,通过功能寻址方式进入扩展会话模式,为后面的信息访问及其他指令做准备;然后检查刷写的前提条件,通过物理寻址方式发送历程控制请求。比如车确实处于静止状态,供电电压稳定等条件下才允许刷写;

menghuyouyou的博客 5777

IOS安全测试(资源学习笔记)

客户端程序安全 位置无关代码 检测客户端是有启用Position Independent Executable(PIE)编译选项,采用PIE选项编译的引用程序允许使用地址空间随机分布功能(ASLR, Address Space Layout Ramdomization),提高内存漏洞被利用的难度。 测试方法: 如图,使用otool在iOS设备上进行操作,查看是否设置PIE标志。 威胁等级: 若客户端未启用PIE,此时为低风险;若无异常则无风险。 栈保护 检测客户端是否起启用Stack Smashing P

天在等我,菜鸟想飞 2956

告别以太网瓶颈:手把手教你为AI训练集群搭建InfiniBand网络(以NVIDIA DGX A100/H100为例)

本文详细指导如何为AI训练集群搭建InfiniBand网络,解决以太网瓶颈问题,特别针对NVIDIA DGX A100/H100系统。通过硬件选型、网络架构设计和性能调优,显著提升多机多卡训练效率,适用于大规模模型训练场景。

weixin_30336061的博客 309

IOS逆向-ASLR

ASLR 在逆向中我们无法使用breakpoint set -n "-[xxxxx xxxx:]"的方式(通过类名和方法名)来打断点,这种方式适合在Xcode工具中使用, 在逆向中我们一般使用breakpoint set -a 地址来打断点 ,通过函数的内存地址来打断点 可以使用MachOView _TEXT :代码段 通过Load commands 来描述 数据段、代码段 的信息的 编写的函数代码实际上是存在Data 段 (代码段) ...

yong_19930826的博客 815

西门子CPU与汇川伺服通信与控制

第三方驱动器的配置内容和西门子的配置内容基本一致,基本上会一种即可知道其他品牌的配置默认报文,需要激活硬限位才能收到限位信号默认报文,原点信号不能实时输出到PLC;自定义报文,需要伺服端设置DIN点位。

大小曲奇的博客 1万+

四、zabbix7.0推送告警至钉钉webhook机器人

2、钉钉的webhook是有安全要求的,我采用的是ip的方式,我的zabbix服务器在内网,我的网络出口有多个固定公网ip,所以这样做省事,其他方式也可以你自己考虑。下图是webhook机器人的配置。这一步,参数里面默认的跟我下图里不一样的,按我下图修改。Key是你的webhook机器人地址里的access_token=后面的内容。整个逻辑就是告警动作匹配告警媒介与用户,然后进行告警的发送。1、zabbix服务器能够访问钉钉的服务器,具体说是能访问。二、zabbix7配置报警媒介以及消息模板配置。

m0_74823715的博客 1293

Mach-O Inside: 命令行工具集 otool objdump od 与 dwarfdump

1 otool otool 命令行工具用来查看 Mach-O 文件的结构。 1.1 查看文件头 otool -h -v 文件路径 -h选项表明查看 Mach-O 文件头。 -v 选项表明将展示的内容进行"符号化"处理。 上面命令行输出的一个例子如下: magic cputype cpusubtype caps filetype ncmds sizeofcmds flags M...

chaoguo1234的专栏 1213

Python+pytest+requests 自动化测试框架

环境准备 本次选用的是Python+Pytest+requests来搭建自动化框架,需要有 Python 环境(3.x 版本),安装pytest和requests,不会安装的自行去网上搜教程。 关于 Pytest 的基本使用,这里不作讲解,不清楚的可以看我之前的文章。 简单 Demo 我们先创建一个项目,取名api-test,然后在下面创建一个test_api.py的文件 # test_api.py import pytest import requests def test_01():

weixin_42686892的博客 1万+

iOS逆向 | 如何通过LLDB规避ASLR

参考来源 https://ke.qq.com/course/314070 什么是ASLR? Address Space Layout Randomization<地址空间布局随机化> ASLR技术是一种针对缓冲区溢出的安全保护技术,通过对堆、栈、共享库映射等线性区布局的随机化,通过增加攻击者预测目的地址的难度,防止攻击者直接定位攻击代码位置,达到阻止溢出攻击的目的的一种技术,从iOS4.3开始引入。 ASLR的作用 简单的说,就是让可执行文件在内存中每次运行的初始地址不一样,提高逆向的难度。 规

qq_35734499的博客 465

手把手教你完成基于YOLOv8的水果/商品/食堂/蔬菜/饮料/书籍识别与计价系统,前台+后台管理系统

手把手教你完成基于YOLOv8的商店的水果/商品/食堂/蔬菜/饮料/书籍识别与计价系统,前台+后台管理员系统,可进行目标检测的操作和展示,实现对图片、视频和摄像头的实时目标检测

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 2456

华为OD机试真题 新系统2026-04-15 C++ 实现【失灵的键盘】

有一个键盘有2个按键失灵了,按下这些键时会连续输出其他键对应的字符两次。具体如下: 1. 按下j键一次,屏幕上显示uu(两个连续的u);  按下b键一次,屏幕上显示t(两个连续的t) 2. u键和t键是好的,按下u键一次时,屏幕只会显示一次u(正常按键);按下t键一次时,屏幕只会显示一次t(正常按键) 3. 假定屏幕上连续显示两个t一定是按了一次b键,而不是两次t键;假定按键t之后不会紧接着按键b,即tttt转义为两个b,而不可能是tb

MISAYAONE的博客 210

Android 地址空间随机化(ALSR)缓解技术

出发点常规的缓冲区溢出利用技术以及其衍生的Ret2libs和ROP利用技术在利用栈缓冲区溢出漏洞进行攻击时,需要事先熟悉被攻击进程的虚拟地址空间布局以便采用硬编码方式布局栈内存。由于操作系统每次加载进程和动态链接库时,基地址都加载到固定虚拟内存地址处,使缓冲区溢出漏洞易于劫持程序流程跳转到布局在栈内存的shellcode,即使开启XN缓解技术,采用ROP也很容易定位到系统库中的gadget,并劫持程

杏林小轩 4615

5、数据库基础概念与数据建模全解析

本文深入解析了数据库的基础概念,包括函数依赖、决定因素和多值依赖等关键依赖关系,同时探讨了数据建模的重要方法论,如IDEF1X、信息工程和陈方法。此外,还介绍了SQL Server管理工作室的图表功能,帮助用户进行数据库的可视化设计。通过本文,读者将掌握数据库设计的核心知识,为构建高效、可扩展的数据库系统奠定基础。

80

iOS安全攻防

再网上看到一系列帖子觉得不错,但是看起来bu tai f

yangfu132的专栏 808

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

IOS安全[转载]

IOS安全 转载自 http://blog.youkuaiyun.com/column/details/hackingios.html iOS安全攻防(十八):数据保护API   数据保护API 拿越狱检测来说,起初大家只需判断有无安装Cydia就好了,hackers们说好,那我就不安装Cydia也可以动手脚。开发者们又说,那你一定得用的上MobileSubstrate,bash,ssh吧,

bcbobo21cn的专栏 978

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

iOS安全攻防系列汇总

iOS应用逆向工程 知乎专栏: iOS安全开发者眼中的越狱iPhone安全性 iOS安全开发防护摘要 Reveal查看任意app的高级技巧 书籍推荐: 《iOS应用逆向工程:分析与实战》 iOS越狱程序开发 工具篇 构建和部署 Your First Tweak 总结 使用Theos做一个简单的Mobile Substrate Tweak iOS...

自娱《测试开发》专栏 436

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

【资源分享】iOS安全系列汇总

iOS应用逆向工程 知乎专栏: iOS安全开发者眼中的越狱iPhone安全性iOS安全开发防护摘要Reveal查看任意app的高级技巧 书籍推荐: 《iOS应用逆向工程:分析与实战》 iOS越狱程序开发 工具篇 构建和部署 Your First Tweak 总结 使用Theos做一个简单的Mobile Substrate Tweak

u011025344的专栏 806

iOS学习00

Mac 快捷键 对应关系: ctrl=>Control win=>Command alt=>Option 快捷键 含义 Command+Option+esc 强行退出死机程序 Command+Shift+3 截图当前屏幕 Command+Shift+4 截图自由 Command+delete 移到废纸篓 Command+tab 切换当前工作任务 Command+W 当前窗口关闭 Command+Option+M 所有窗口最小化 Comman

m0_45020051的博客 993

3.1-3.31推荐文章汇总

3.1-3.31推荐文章汇总

优快云 官方博客 2万+

ALSR

一 ALSR介绍: 1.1定义 aslr是一种针对缓冲区溢出的安全保护技术,通过对堆、栈、共享库映射等线性区布局的随机化,通过增加攻击者预测目的地址的难度,防止攻击者直接定位攻击代码位置,达到阻止溢出攻击的目的的一种技术。如今Linux、FreeBSD、Windows等主流操作系统都已采用了该技术。 Linux Linux已在内核版本2.6.12中添加ASLR。...

samson 5904

iOS App启动 ASLR Page Fault

pre-main,main()函数之前,系统加载可执⾏⽂件,加载动态链接库dyld,dyld递归加载所有依赖的动态库,然后dyld调起main()函数。pre-main分为四个阶段:i. dylib loading:加载动态库。可以通过减少动态库的数量来优化这⼀部分所消耗的时间。苹果的建议是⼀个项⽬⾥⾯⾃⼰制作的动态库的数量不超过6个。ii. ObjC setup:注册Objc类,进⾏selector唯⼀性检测等。可以通过减少Objc类的数量,减少selector的数量来进⾏优化。

xsdzx1的专栏 295

iOS的App启动详细过程(底层知识)

1.虚拟内存 & ASLR1.虚拟内存 & ASLR在早期计算机中,这就造成了下面两个问题1.内存不够用2.数据安全问题。

田风有的博客 1982

对抗栈帧地址随机化/ASLR的两种思路和一些技巧

栈帧地址随机化是地址空间布局随机化(Address space layout randomization,ASLR)的一种,它实现了栈帧起始地址一定程度上的随机化,令攻击者难以猜测需要攻击位置的地址。 第一次遇到这个问题是在做cs:app3e/深入理解操作系统attacklab实验的时候,后来在做学校的一个实验的时候也碰到了这个问题,最近在看一篇“上古黑客”写的文章的时候又碰到了这个...

a_18067的博客 1078

macOS软件安全分析实战

本课程展示了基于macOS平台的软件分析的原理、步骤以及详细过程。从macOS系统的目录结构的介绍开始,再到具体应用软件结构的介绍,直到简单软件代码的编写,向学员展示了macOS平台软件的基础知识,逻辑和概念,为学员进一步掌握基于苹果平台软件开发和软件安全分析奠定良好的基础。

iOS app 的 ASLR

这两天逆向一个程序,发现每次image list -o -f 之后,它的基地址都是0x00000,也就是偏移地址是0。 想到这个应该是载入内存时有没有启用偏移有关,于是找了下答案:aslr 百度百科对ASLR的定义: aslr是一种针对缓冲区溢出的安全保护技术,通过对堆、栈、共享库映射等线性区布局的随机化,通过增加攻击者预测目的地址的难度,防止攻击者...

weixin_30731305的博客 433
上一篇: iOS安全攻防(二十):越狱检测的攻与防
下一篇: iOS安全攻防(二十二):static和被裁的符号表
直隶码农
博客等级 码龄19年 95粉丝 103原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值