目录
5.解决错误 Different API version between core & binding (CS_ERR_VERSION)
2.使用最新版本的capstone代码去进行反汇编(官方binding未完全支持绑定)
问题描述:
这篇博客用来更新上一篇文章 https://blog.csdn.net/qq_37549757/article/details/103778394 留下的待更新内容,即使用java语言编写程序去调用capstone完成操作码的反汇编
解决思路:
既然是使用java去调用capstone,那么必然需要有一个capstone提供的java包来作为第三方库供我们使用,首先想到的是去中央仓库(http://www.mvnrepository.com)搜搜看有没有这个包
果然是有这个包的,不然官方文档(http://www.capstone-engine.org/documentation.html )也不会说可以用java去操作的,有了包之后就很好说了,官方文档上面有这么段代码,直接复制粘贴就完事了
编写Java代码:
1.pom.xml文件中添加依赖
<dependency>
<groupId>com.github.transcurity</groupId>
<artifactId>capstone</artifactId>
<version>3.0.5-rc2</version>
</dependency>
2.编写测试代码
package com.holidaylee;
import capstone.Capstone;
/**
* @author : HolidayLee
* @description : Capstone反汇编测试程序
*/
public class CapstoneTest {
private static long addr = 0x00007f6034099625L;
private static byte[] hexCodes = {
0x4c, (byte) 0xd6, (byte) 0xf8, 0x48, (byte) 0xf7, (byte) 0xda, (byte) 0xeb, 0x39, 0x48, (byte) 0x8b, 0x74, (byte) 0xd0, 0x08, 0x48, (byte) 0x89, 0x74,
(byte) 0xd1, 0x08, 0x48, (byte) 0x83, (byte) 0xc2, 0x01, 0x75, (byte) 0xf0, (byte) 0xc3, 0x66, (byte) 0x90, 0x48, (byte) 0x8b, 0x74, (byt