首页
社区
课程
招聘
[原创] IDA Pro 9.0 ARM64 调试 WZR 寄存器崩溃问题
发表于: 2024-12-26 12:00 2284

[原创] IDA Pro 9.0 ARM64 调试 WZR 寄存器崩溃问题

2024-12-26 12:00
2284

问题描述

IDA Pro 9.0 (截止至2024年12月26日最新版本,SP1)在调试 ARM64 程序时,鼠标点击或者悬浮在 WZR 寄存器上,如图所示弹框。点击 OK 或 关闭 均导致 IDA Pro 卡死。
图片描述

问题分析

Mac 上 IDA 的 arm.dylib inline 有点严重不太好看,这里以 Windows 的为例报错的地方代码如下,确实是没有针对 WZR 寄存器 160 的处理逻辑,导致会弹出这个框。

图片描述

调试发现点击这个框的 OK,如果再次进入这个弹框的逻辑,就会导致IDA卡死;反之如果OK后没有再次走到这个弹框的逻辑,就没事。所以,应该是UI框架的问题?直接把这个框的显示调用全都NOP 掉就好了。

附上 SP1 版本 ARM IDA Pro 的 Patch 脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
import re
 
 
def main():
    with open('/Users/xxxx/Documents/CTF/arm.dylib', 'rb') as fp:
        content = fp.read()
        pattern = re.compile(b'\x00\xD4\x3C\x91....')
        content = pattern.sub(b'\x00\xD4\x3C\x91\x1F\x20\x03\xD5', content)
    with open('/Users/xxxx/Documents/CTF/arm_patched.dylib', 'wb') as fp:
        fp.write(content)
 
if __name__ == '__main__':
    main()

[注意]看雪招聘,专注安全领域的专业人才平台!

最后于 2024-12-26 12:01 被SinkDev编辑 ,原因:
收藏
免费 5
支持
分享
最新回复 (4)
雪    币: 2704
活跃值: (3871)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
2
捕捉到一只野生Sink爷爆改IDA
2024-12-26 13:58
0
雪    币: 2787
活跃值: (2888)
能力值: ( LV11,RANK:190 )
在线值:
发帖
回帖
粉丝
3
捕捉到一只野生Sink爷爆改IDA
2024-12-26 16:38
0
雪    币: 1370
活跃值: (2174)
能力值: ( LV4,RANK:49 )
在线值:
发帖
回帖
粉丝
4
捕捉到一只野生Sink爷爆改IDA
2024-12-31 17:24
0
雪    币: 2141
活跃值: (4948)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
5

Windows的可以干掉这个跳转

2025-1-2 09:55
0
游客
登录 | 注册 方可回帖
返回