android native 源代码,AndroidNativeEmu 源码浅析

本文分析了 AndroidNativeEmu 的源码,指出了其仅能模拟未加壳SO和部分函数未实现的局限,并讨论了其在函数补全和JNI支持方面的实现。通过实例演示了如何利用Emulator进行模拟调用,同时提出了通过hook方法解决依赖库问题的思路。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近健身、工作、学习啥的有点忙,感觉老久没更新文章了,今天来水一片

其实我并不推荐使用 AndroidNativeEmu, 他并不是一个好的选择

弊端AndroidNativeEmu 只能模拟未加壳的 So

很多 jni 函数并没有实现,容易被针对

很多 java 函数也没有实现

貌似作者停止维护项目了结论如果不是只会用 python 的话,不建议使用

特色elf 文件解析及 so 加载

栈支持

内存管理

文件系统

JNI 支持

常见 syscall 模拟支持

核心目录

底层系统调用模拟实现

e33ae80278ce5cfc94134605837d520f.png

JNIenv 模拟实现调用

5eb64a7d77b2165d5ac68f638a895612.png

对抗:因为本身 Emu 有许多系统函数和 env 并没有实现,可以利用这一点对 Emu 模拟调用进行对抗。

反观,我们也可以自己进行函数补全来避免被对抗。

JNI 实现源码分析

源码例子中

7212513b13f6b5fcfe8d9c87b8d364e8.png

实例话 Emulator

首先实例化了 Emulator

c56b69e295bfa39eb2a15e945ef78b3a.png

f1478ab4248018f6a633ab0ffd366dc6.png

2 个参数虚拟文件系统目录

目录位置

3074402fdf901552c8e2d818e39826e1.png

默认设置在这里了。

接下来要模拟CPU就要进行映射了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值