当前位置: 首页 > news >正文

【Android安全】Keystone和Capstone

简介

Keystone是一个汇编器
https://www.keystone-engine.org/

Capstone是一个反汇编器
https://www.capstone-engine.org/

用法

pip install capstone
pip install keystone-engine

import keystone
import capstonedef ins2bcode(arm_ins):ks = keystone.Ks(keystone.KS_ARCH_ARM, keystone.KS_MODE_ARM)arm_bytecode=ks.asm(arm_ins,as_bytes=True)bytecode =int.from_bytes(arm_bytecode[0],"little") # 将汇编后的字节码转换为整数,使用小端序bytecode_bin =format(bytecode, "032b") # 将整数转换为32位的二进制字符串print("arm ins: \t",arm_ins)print("bytecode hex: \t", hex(bytecode))print("bytecode bin: \t", bytecode_bin)return arm_bytecode[0]def bcode2ins(arm_bytecode):cs=capstone.Cs(capstone.CS_ARCH_ARM, capstone.CS_MODE_ARM)for ins in cs.disasm(arm_bytecode, 0):print("ins.address: \t",ins.address) # 指令的地址print("ins.mnemonic: \t",ins.mnemonic) # 指令的助记符(指令名称)print("ins.op_str: \t",ins.op_str) # 指令的操作数arm_ins ="B #0x40"bytecode = ins2bcode(arm_ins)bcode2ins(bytecode)

输出:

arm ins:         B #0x40
bytecode hex:    0xea00000e
bytecode bin:    11101010000000000000000000001110
ins.address:     0
ins.mnemonic:    b
ins.op_str:      #0x40

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Flink CEP(复杂事件处理)高级进阶
  • 【C++题解】1406. 石头剪刀布?
  • vue国际化vue-i18n搭配i18n-ally实现多语言国际化
  • linux gcc 静态库的简单介绍
  • 438 找到字符串中所有字母异位词
  • 以太网传输出现不分包
  • Facebook主页,广告账户,BM被封分别怎么解决?
  • HTTP请求工具类
  • 在 Java 中使用 bean 有什么好处
  • 【人工智能】OpenAI发布GPT-o1模型:推理能力的革命性突破,这将再次刷新编程领域的格局!
  • 使用 Docker 进入容器并运行命令的详细指南
  • c++ 编辑器 和 编译器 的详细解释
  • centos 7 升级Docker 与Docker-Compose 到最新版本
  • Android以及IoT设备传感器软件开发总结
  • Docker 安装配置和基本命令详解以及案例示范
  • [原]深入对比数据科学工具箱:Python和R 非结构化数据的结构化
  • 【每日笔记】【Go学习笔记】2019-01-10 codis proxy处理流程
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • CentOS7简单部署NFS
  • co模块的前端实现
  • Docker 笔记(2):Dockerfile
  • ES6简单总结(搭配简单的讲解和小案例)
  • JSONP原理
  • js面向对象
  • 电商搜索引擎的架构设计和性能优化
  • 如何打造100亿SDK累计覆盖量的大数据系统
  • 使用SAX解析XML
  • 算法系列——算法入门之递归分而治之思想的实现
  • ​flutter 代码混淆
  • ​Redis 实现计数器和限速器的
  • ​软考-高级-系统架构设计师教程(清华第2版)【第12章 信息系统架构设计理论与实践(P420~465)-思维导图】​
  • #HarmonyOS:软件安装window和mac预览Hello World
  • #我与Java虚拟机的故事#连载08:书读百遍其义自见
  • (1)Jupyter Notebook 下载及安装
  • (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令...
  • (Java实习生)每日10道面试题打卡——JavaWeb篇
  • (MonoGame从入门到放弃-1) MonoGame环境搭建
  • (NO.00004)iOS实现打砖块游戏(九):游戏中小球与反弹棒的碰撞
  • (附源码)php投票系统 毕业设计 121500
  • (附源码)计算机毕业设计SSM在线影视购票系统
  • (十)Flink Table API 和 SQL 基本概念
  • (四)TensorRT | 基于 GPU 端的 Python 推理
  • (四)鸿鹄云架构一服务注册中心
  • (一)认识微服务
  • (原創) 如何使用ISO C++讀寫BMP圖檔? (C/C++) (Image Processing)
  • (转)linux自定义开机启动服务和chkconfig使用方法
  • (转)清华学霸演讲稿:永远不要说你已经尽力了
  • (转)用.Net的File控件上传文件的解决方案
  • .NET 4.0网络开发入门之旅-- 我在“网” 中央(下)
  • .NET Core 2.1路线图
  • .net core IResultFilter 的 OnResultExecuted和OnResultExecuting的区别
  • .net mvc部分视图
  • .NET Remoting Basic(10)-创建不同宿主的客户端与服务器端
  • .NET开发不可不知、不可不用的辅助类(一)
  • [Algorithm][综合训练][体育课测验(二)][合唱队形][宵暗的妖怪]详细讲解