aarch64指令集_实例讲解支持多种架构指令集编解码的 pwntools 工具

本文介绍了如何利用pwntools工具进行aarch64指令集以及其他架构的编解码。pwntools不仅支持aarch64,还支持多种处理器架构,提供便捷的API进行二进制代码分析。通过实例展示了在Ubuntu 16.04上安装和使用pwntools,并解释了如何通过该工具解码和编码指令,尤其在不使用gcc的情况下。文章还强调了pwntools在学习处理器ISA和指令集编码中的应用价值。
摘要由CSDN通过智能技术生成

c8f4127212c88a173d5c6a1aa6b0643f.gif

作者简介:吴章金,十年 Linux 研发经验,Linux Committer,前魅族内核团队技术总监。热门开源书《C 语言编程透视》作者。

版权声明:本文最先发表于 “泰晓科技” 微信公众号,欢迎转载,转载时请在文章的开头保留本声明。

背景简介

之前在群里发起了一个讨论:

不用 gcc 如何实现代码的编解码,类似 MIPS Linux 内核中用到的 UASM。

大家的回复总结如下:

  • GDB compile command, "Debugging with GDB: Compiling and Injecting Code": https://sourceware.org/gdb/onlinedocs/gdb/Compiling-and-Injecting-Code.html

  • MIPS uasm,arch/mips/include/asm/uasm.h

  • X86 Encoder/Decoder, "X86 Encoder Decoder: X86 Encoder Decoder User Guid…": https://intelxed.github.io/ref-manual/#LEGAL

  • luajit backend, "Hello, JIT World: The Joy of Simple JITs": http://blog.reverberate.org/2012/12/hello-jit-world-joy-of-simple-jits.html

  • ebpf, "GitHub - iovisor/bcc: BCC - Tools for BPF-based Li…": https://github.com/iovisor/bcc , "eBPF - IO Visor Project": https://www.iovisor.org/technology/ebpf

  • unicorn, "Unicorn – The ultimate CPU emulator": http://www.unicorn-engine.org/

而来自龙芯的张老师提到了一个 Python 的库,这个库是:

  • utds3lab/multiverse: https://github.com/utds3lab/multiverse

安装的过程中,发现它依赖 pwntools。

如果直接用 pip3 安装 multiverse,在新版 python3 中运行得很不友好,很多语法不兼容了。

然后看了一下,multiverse 的 asm 部分实际是用的 pwntools,而且 pwntools 支持的架构更多,所以转而直接用 pwntools 就好了:

  • pwntools, https://github.com/Gallopsled/pwntools.git

初试 pwntools

安装

这个工具的稳定版本仅支持到 python 2.7,可以参考以

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值