如何在没有资料的情况下调用Linux链接库

本文介绍了如何在没有相关资料的情况下,针对Linux系统,特别是Moto E2手机的EZX图形库,导出头文件并编写程序。通过理解Linux程序的编译原理,使用nm命令导出动态链接库的函数列表,然后构造C++类来调用这些函数,从而实现对未开放SDK的图形库的调用。文章详细讲解了这一过程,并指出该方法适用于类似情况。
摘要由CSDN通过智能技术生成

引言

Moto E2是一部具有相当性价比的Linux智能手机,但是由于某些商业上的原因并没有开放其本地的图形库SDK,导致其竞争力与扩展性大幅度的降低。本文以我在编写其应用中获得的经验,介绍如何在没有相关资料的情况下导出对应的头文件并且编写相应的程序代码。

注意,本文并非面对一般的手机用户,如果想顺利的阅读这篇文章,请首先学习一些相关的C/C++知识以及编译知识。当然,由于本人所学限制,可能有错误,甚至是缪误,也欢迎众多高手斧正讨论。另外,这篇文章所描述的方法并不只限于Moto E2EZX图形库的使用方法,理论上能够应用于任何类似的环境。



. 原理

为了破解这些没有资料的动态连接库,首先必须理解在linux下面的程序编译。下面首先假定需要破解的动态连接库是某个系统的基础(例如,Moto E2手机的图形库即EZX,这是一个基于QT2.3.8的扩展图形库,也就是我们需要破解的部分),否则作为非通用性(仅对当前系统而言)没有任何的实际意义。

Linux的程序在链接库的使用方式上有三种。

1.编译时链接.a库文件并将起代码拷贝到生成的二进制文件中,运行时脱离.a库文件运行。

2.编译时链接.so库文件并将其作为引用生成二进制文件,运行时需要依赖相应.so文件。

3.在程序用以动态链接库的方式调用相关的.so库文件,在编译器不依赖这些.so文件,但是在运行期需要依赖这些.so文件。

作为现状来说,第一种方式首先被排

评论 31
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值