运行时的IOS修补程序指令是什么?

  • 回答 (3)
  • 关注 (0)
  • 查看 (38)

如何在应用程序运行时修改单个程序集指令?

我有一个移动基板的调整,我正在为一个现有的应用程序编写。的构造函数中(MSInitialize),我需要能够在应用程序的代码中重写单独的指令。我的意思是,在应用程序的地址空间中可能有多个位置,我希望修改这些位置,但是在每种情况下,只需要修改一个指令。我已经为应用程序禁用了aslr,并且知道要修补的指令的确切内存地址,并且我有十六进制字节(作为char[]),但这是不重要的,如果有必要,可以更改新指令。我只需要弄清楚怎么做改变。

我知道IOS使用数据执行预防(DEP)来指定可执行内存页也不能写,反之亦然,但我知道在越狱设备上可以绕过这一点。我还知道iDevice使用的ARM处理器有一个指令缓存,需要更新以反映变化。然而,我甚至不知道从哪里开始这样做。

婷留婷留提问于
晴空在腾讯云多数时候是在看回答于

从处理器寄存器写入指令内存,正如其他人所说,有点棘手。尤其是iPhone,因为苹果试图对处理器细节保密。

内存访问权限是第一个问题。可执行内存通常是不可写的。但是,如果克服了这一问题,那么就有一小部分需要完成,从处理器寄存器中获取数据并进入指令管道。通常,有同步指令,强制在访问之前和之后对内存进行特定的顺序,以及缓存命令,这些命令强制向内存输出脏的写入数据,并清除干净的和可能陈旧的读取数据。这两者都高度依赖于处理器的详细实现。

ARM在网络上有很好的手册,可以为特定处理器详细解释这些内容。

这里有一个地方可以开始理解一个处理器的ARM内存同步模型:http://infotenter.arm.com/Help/index.jsp?Topic=/com.arm.doc.ddi0092b/ch04s03s04.html然后告诉我们如何通过写控制寄存器来刷新指令缓存。

回答过的其他问题

如何看待家用智能机器人的飞速发展?

晴空在腾讯云多数时候是在看
智能机器人需要的技术太多了,但它能像现在一样飞速发展也离不开这些技术的突破。 先不说硬件方面各种传感器,红外线定位等等,因为硬件领域我不太了解,单说软件方面,它就需要: 1.人工智能技术 人工智能的发展,为智能机器人向更高智能领域的发展提供了保障。人工智能需要对语言识别和处理、图...... 展开详请

在物联网中如何通过http的方式接入设备,并实现数据上报和下发,是否有协议的具体说明?

晴空在腾讯云多数时候是在看

您好,经核实物联接入这里使用的是HTTPS协议, 和控制台api不一样。 同时https协议现在不支持数据下发, 只能用于数据上报。 如果要用到数据下发的能力,最好选择mqtt协议。

如何计算损坏的csv的每一行中的字段数

晴空在腾讯云多数时候是在看

这几乎肯定是你的分隔符的问题。您需要选择一个不会干扰您的csv内容的分隔符。您可以在pandas to_csv和read_csv函数中使用“sep”命令指定此信息。

awk(或sed或grep)来切割参数,等号和值

晴空在腾讯云多数时候是在看
既然你要求awk: ps -ef|grep -v awk|awk '{for(i=1;i<=NF;i++){if($i ~ /tmpdir/){print $i}}}' | awk -F'.' '{print $NF}' ps -ef:显示所有进程。 grep -v awk...... 展开详请

python:读取json和循环字典

晴空在腾讯云多数时候是在看
已采纳
无需先读取文件,然后使用加载。您可以直接使用负载。 output_json = json.load(open('/tmp/output.json')) 使用i和k对此不正确。它们通常只应用于整数循环计数器。在这种情况下,它们是关键,所以更合适的东西会更好。也许重命名i为con...... 展开详请

为什么ConcurrentSkipListSet升序迭代器比降序迭代器更快?

晴空在腾讯云多数时候是在看
我写了一个简单的基准: @BenchmarkMode(Mode.AverageTime) @OutputTimeUnit(TimeUnit.MILLISECONDS) @Warmup(iterations = 5, time = 5, timeUnit = TimeUnit.S...... 展开详请

关于作者

晴空

在腾讯云多数时候是在看

所属标签

扫码关注云+社区