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

怎样买网站建设做网络推广有哪些平台

怎样买网站建设,做网络推广有哪些平台,泰州专业制作网站,谷歌字体插件WordPress版权归作者所有,如有转发,请注明文章出处:https://cyrus-studio.github.io/blog/ AndroidNativeEmu AndroidNativeEmu 专为 Android 原生代码调试和模拟设计,特别关注 JNI 调用和 Android 环境。相比之下,Unicorn 是通…

版权归作者所有,如有转发,请注明文章出处:https://cyrus-studio.github.io/blog/

AndroidNativeEmu

AndroidNativeEmu 专为 Android 原生代码调试和模拟设计,特别关注 JNI 调用和 Android 环境。相比之下,Unicorn 是通用的多平台 CPU 模拟器,适用于更广泛的原生代码分析。

项目地址:https://github.com/AeonLucid/AndroidNativeEmu

支持的功能:

  • elf 文件解析及 so 加载

  • 栈支持

  • 内存管理

  • 文件系统

  • JNI 支持

  • 常见 syacall 模拟支持

但是,暂时不支持 arm64。

系统调用

AndroidNativeEmu 系统调用的模拟实现都在 cpu/intertupt_handler.py,根据不同的 intno 调用具体的 handler

word/media/image1.png

目前已经实现的系统调用可以在 syscall_hooks.py 看到

word/media/image2.png

JNIEnv

对应 JNI 接口的模拟实现在 src/androidemu/java/jni_env.py,通过 write_function_table 方法模拟实现 JNI 函数表

word/media/image3.png

jni 函数代码是通过 keystone 来生成的,具体代码在:src/androidemu/hooker.py

word/media/image4.png

so 加载过程中,对 so 中导入符号的 Hook,具体代码在:src/androidemu/native/hooks.py

AndroidNativeEmu 默认已经实现的外部函数

word/media/image5.png

native_method 装饰器

native_method 装饰器用于在 AndroidNativeEmu 中将 Python 函数标记为模拟的 JNI 原生方法,允许函数在模拟器中执行并与 Android 的原生方法交互。

假设我们有一个 C++ 函数 strlen,我们想在模拟器中模拟它:

from androidemu.emulator import Emulator
from androidemu.java.helpers.native_method import native_method# 初始化模拟器
emulator = Emulator()# 使用 native_method 装饰器标记 Python 函数为模拟的本地方法
@native_method
def strlen(mu, address):content = memory_helpers.read_utf8(mu, address)length = len(content)return length# 在 strlen 符号上安装钩子,执行自定义逻辑
emulator.modules.add_symbol_hook('strlen',emulator.hooker.write_function(strlen) + 1)

当使用 native_method 装饰器标记 Python 方法时,框架会自动处理方法参数和返回值的类型转换。

androidemu 维护了一个类型映射表,将常见的 JNI 类型与 Python 数据类型进行对应。具体实现在 native_translate_arg 方法中。

word/media/image6.png

在方法调用返回时,会自动判断返回值是否 JNI 类型并进行查表和类型转换返回真实的值,否则直接返回寄存器中的值。

word/media/image7.png

examples

通过以下命令将项目安装到当前 python 环境中:

pip install /path/to/AndroidNativeEmu

在 examples 目录下是 AndroidNativeEmu 的示例代码

word/media/image8.png

example.py

import logging
import sysfrom unicorn import UC_HOOK_CODE
from unicorn.arm_const import *from androidemu.emulator import Emulator# 配置日志记录
logging.basicConfig(stream=sys.stdout,  # 输出到标准输出level=logging.DEBUG,  # 日志级别为调试(DEBUG)format="%(asctime)s %(levelname)7s %(name)34s | %(message)s"  # 日志格式
)# 创建日志记录器
logger = logging.getLogger(__name__)# 初始化模拟器,启用浮点指令集
emulator = Emulator(vfp_inst_set=True)# 加载 libc.so,禁用初始化(do_init=False)
emulator.load_library("example_binaries/32/libc.so", do_init=False)# 加载 libnative-lib.so
lib_module = emulator.load_library("example_binaries/32/libnative-lib.so", do_init=False)# 显示加载的模块信息
logger.info("Loaded modules:")
# 遍历所有已加载的模块并打印其基地址和文件名
for module in emulator.modules:logger.info("[0x%x] %s" % (module.base, module.filename))# 定义调试钩子函数,跟踪代码执行
def hook_code(uc, address, size, user_data):# 读取当前地址的指令instruction = uc.mem_read(address, size)# 将指令转换为十六进制格式的字符串instruction_str = ''.join('{:02x} '.format(x) for x in instruction)# 打印出当前的指令地址、大小和指令内容print('# Tracing instruction at 0x%x, instruction size = 0x%x, instruction = %s' % (address, size, instruction_str))# 将调试钩子添加到模拟器
emulator.uc.hook_add(UC_HOOK_CODE, hook_code)# 调用 "libnative-lib.so" 中的 "_Z4testv" 方法
emulator.call_symbol(lib_module, '_Z4testv')# 或者通过地址调用
emulator.call_native(lib_module.base+0x000007C4+1) # 输出返回的字符串长度("strlen" 返回值存在于 R0 寄存器中)
print("String length is: %i" % emulator.uc.reg_read(UC_ARM_REG_R0))
http://www.dtcms.com/wzjs/227052.html

相关文章:

  • 响应式网站 做搜索推广缺点重庆好的seo平台
  • 浙江疫情又严重了win10系统优化软件
  • 宇讯网站建设长沙官网seo分析
  • 瀑布流响应式网站模板简述网站建设的流程
  • 北京展示型网站推广普通话奋进新征程手抄报
  • 网站如果实现微信支付吗东莞网站seo推广
  • 星月教你做网站松原头条新闻今日新闻最新
  • 什么做网站的公司好报个电脑培训班要多少钱
  • 公共图书馆门户网站建设总结注册公司网站
  • 如何申请自己的个人网站百度推广计划
  • wordpress做阿里巴巴国际站上海百度公司总部
  • 刚成立公司如何做网站dw网站制作
  • 做啊网站关键词小说
  • 秦皇岛网站建设sem推广
  • 易语言做网站登陆绍兴seo排名收费
  • 一个网站需要几个人做百度广告联盟网站
  • 深圳比较出名的外贸公司东营seo
  • 做网站公司佛山黑帽seo是什么
  • 深圳电商网站开发公司制作网站费用
  • 东坑镇仿做网站域名注册 万网
  • wordpress建立栏目seo营销推广全程实例
  • 做暧暧视频免费视频网站2022智慧树互联网与营销创新
  • 定制商城网站建设网搜网
  • 网站策划书编写泰州百度公司代理商
  • 做简历的网站 知乎搜什么关键词你都懂的
  • 网站开发 模版绑定顶级域名网站优化建设
  • asp网站用ftp怎么替换图片seo推广主要做什么的
  • 广安哪里做网站手机制作网页
  • 网站和软件的区别南宁网站seo大概多少钱
  • 工信部公布网站备案拍照背景全网引擎搜索