android so库支持虚拟机,抖音数据采集教程,跨平台模拟执行AndroidNativeEmu手册

安装

AndroidNativeEmu有什么用?

AndroidNativeEmu是基于Unicron实现的一个指令解析器, 让您能够跨平台模拟Android Native库函数,例如JNI_OnLoad,Java_XXX_XX等函数

特性模拟 JNI Invocation API so JNI_OnLoad can be called properly.

模拟 memory、malloc、memcpy

支持拦截系统调用(SVC #0)

通过符号Hook

所有 JavaVM, JNIEnv 和 hooked functions 都可以用python来处理

支持 VFP

支持文件系统(也就是说你可以模拟maps、status等文件)

安装过程

环境要求: python 3.7 (注意必须是3.7版本, 我使用3.6装keystone的时候踩了坑)

自测系统环境: win7

1.Clone 该项目git clone https://github.com/AeonLucid/AndroidNativeEmu.git

2.安装需要的支持模块pip install -r requirements.txt安装keystone-engine可能会失败(反正我是没装上)

解决方案:打开keystone\bindings文件夹安装: python setup.py install

把dll复制到python的keystone目录下: [python_path]\Lib\site-packages\keystone\

3.把androidemu文件夹复制至sample文件夹下,并删除example.py文件下的关于"samples/"的目录访问路径如

"samples/example_binaries/libc.so"

改为

"example_binaries/libc.so"

4.运行例子python example.py

5.不出意外的话就可以看到结果了

087795a082f698f1b7c86f047e457984.png

例子文件阅读example_binaries/ : 里面是需要加载的so

vfs/ : 里面是虚拟的文件系统, 有需要可以自己添加文件

androidemu/ : android虚拟机import logging

import sys

from unicorn import UC_HOOK_CODE

from unicorn.arm_const import *

from androidemu.emulator import Emulator

# 配置日志相关设置

logging.basicConfig(

stream=sys.stdout, #标准输出流

level=logging.DEBUG, #输出等级

format="%(asctime)s %(levelname)7s %(name)34s | %(message)s" #输出格式

)

logger = logging.getLogger(__name__) #实例化对象

# 实例化虚拟机

emulator = Emulator()

#加载Libc库

emulator.load_library("example_binaries/libc.so", do_init=False)

#加载要模拟器的库

lib_module = emulator.load_library("example_binaries/libnative-lib.so")

#打印已经加载的模块

logger.info("Loaded modules:")

for module in emulator.modules:

logger.info("[0x%x] %s" % (module.base, module.filename

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值