【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 capstone

def 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
Keystone是一个开源的身份认证服务,它是OpenStack项目中的一个重要组件,用于管理和认证OpenStack中的各个服务。下面是安装Keystone的步骤: 1. 安装依赖软件包 在安装Keystone之前,需要安装一些依赖软件包,包括Python和数据库(MySQL或者MariaDB)等。可以使用以下命令安装: ``` sudo apt-get update sudo apt-get install -y python-dev python-pip python-openstackclient mysql-server python-mysqldb ``` 2. 创建Keystone数据库 使用以下命令在MySQL中创建Keystone数据库: ``` sudo mysql -u root -p mysql> CREATE DATABASE keystone; mysql> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'KEYSTONE_DBPASS'; mysql> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'KEYSTONE_DBPASS'; mysql> exit ``` 其中,KEYSTONE_DBPASS是Keystone数据库的密码,可以根据需要自行配置。 3. 安装Keystone 使用以下命令安装Keystone: ``` sudo apt-get install -y keystone ``` 安装完成后,编辑/etc/keystone/keystone.conf文件,配置Keystone的参数。例如,修改[database]和[keystone_authtoken]参数如下: ``` [database] connection = mysql+pymysql://keystone:KEYSTONE_DBPASS@controller/keystone [keystone_authtoken] memcached_servers = controller:11211 auth_uri = http://controller:5000 auth_url = http://controller:5000 auth_plugin = password project_domain_name = default user_domain_name = default project_name = service username = nova password = NOVA_PASS ``` 其中,controller是Keystone服务所在的主机名或IP地址,KEYSTONE_DBPASS是Keystone数据库的密码,NOVA_PASS是Nova服务的密码,可以根据需要自行配置。 4. 初始化Keystone数据库 使用以下命令初始化Keystone数据库: ``` sudo su -s /bin/sh -c "keystone-manage db_sync" keystone ``` 5. 创建Keystone用户 使用以下命令创建Keystone用户: ``` export OS_USERNAME=admin export OS_PASSWORD=ADMIN_PASS export OS_PROJECT_NAME=admin export OS_USER_DOMAIN_NAME=Default export OS_PROJECT_DOMAIN_NAME=Default export OS_AUTH_URL=http://controller:5000/v3 export OS_IDENTITY_API_VERSION=3 openstack user create --domain default --password-prompt keystone openstack role add --project service --user keystone admin openstack service create --name keystone --description "OpenStack Identity" identity openstack endpoint create --region RegionOne identity public http://controller:5000/v3 openstack endpoint create --region RegionOne identity internal http://controller:5000/v3 openstack endpoint create --region RegionOne identity admin http://controller:35357/v3 ``` 其中,ADMIN_PASS是管理员密码,可以根据需要自行配置。 6. 启动Keystone服务 使用以下命令启动Keystone服务: ``` sudo service apache2 restart ``` 至此,Keystone安装完成,可以使用OpenStack命令行工具或者Horizon等管理界面进行Keystone用户和认证服务的管理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值