首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android LD_PRELOAD等效

Android LD_PRELOAD等效
EN

Stack Overflow用户
提问于 2014-05-23 07:07:01
回答 1查看 1.6K关注 0票数 1

我有一个客户端和一个用C编写的服务器,为了保护我实现的连接:

  • 我自己连接并接受了Diffie-Hellman密钥。
  • 我自己发送和接收,以便加密流量使用AES。基本上,我用数据加密缓冲区,并调用加密缓冲区上的原始发送。解密也一样。

当我运行程序时,我使用:

  • LD_PRELOAD:my_socket.so ./client
  • LD_PRELOAD:my_socket.so ./server
  • 客户端和服务器可以是任何使用套接字的程序。

稍后编辑: LD_PRELOAD强制加载程序用我自己版本的接受、连接、发送和接收:http://www.catonmat.net/blog/simple-ld-preload-tutorial/加载我的库

现在,我想把我的图书馆移到Android上。我如何模拟LD_PRELOAD的行为,以便使我的库尽可能成为Android上客户端的父级呢?

谢谢你,多鲁

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-08 20:38:41

在安卓系统中,没有与LD_PRELOAD相当的精确版本。然而,X-定框架提供了一个API来改变应用程序的行为而不修改它们。它专门设计来填补缺少LD_PRELOAD功能的空白。

X型安装程序用修改后的版本取代/system/bin/app_process,它将加载JAR“插件”,它可以覆盖任何类中的任何方法,即使是在Android级别。一个交互式的应用程序方便了插件的管理。更多细节可以在教程中找到。

(请注意,替换/system中的文件需要根权限。如果您的应用程序依赖于,那么您的所有用户都需要根设备。)

替代方案:希望上面的内容能够回答您关于LD_PRELOAD功能的问题。但是,我认为您的情况有一个替代方案,它不需要根特权。Android提供了VpnService类,允许开发人员实现自己的虚拟专用网解决方案。这允许您开发Android应用程序,该应用程序可以向用户请求拦截和处理所有网络流量的权限。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23823035

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档