栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

修改.aar和.so文件

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

修改.aar和.so文件

前言

由于公司项目有个sdk太过老旧,只有armabi,没有v7a和v8a两个库,导致项目升级到新版的时候,找不到so文件。后面在GitHub上找到了对应的项目,有新的v7a和v8a这两个库,但是有些地方变了,必须需要做修改。

需要准备的工具:Android Studio、IDA pro、010 Editor

一、修改aar文件

1.把aar要复制一份,把复制的那一份的后缀改成zip,然后解压,不能上来就直接解压aar,后面要放到项目里了,解压了就坏了(可能啊),解压目的是为了那里面的so文件。

2.用AndroidStudio创建一个简单的项目,把aar包放在app那个module里,再进行依赖(作为一个Android开发工程师,这都不会,那没招了)。

3.依赖好了之后,在AndroidStudio的左侧,External Libraries找到对应的aar,进到class.jar,找到你想要修改的class文件。

4.复制目标文件的包名,在新建一样的包名,新建一个java文件名字也要一模一样,把你刚才在aar包查看的目标class里的代码,全部复制粘贴到新的目标Java文件里,然后里面有爆红的,你也要根据爆红的包名,再创建一样的包名,再创建一样的Java文件,名字一样,如果这个Java文件不是你想要的,方法里做成空的。目标Java再改成你想要的代码就行。

5.整个项目没有爆红了,顶部Build-->Rebuild Project,编译一下,然后就可以拿到你想要的class文件了,在app-->build-->intermediates-->javac-->debug里。

 6.然后右键aar包,使用压缩软件打开(不是解压),然后再把刚才得到的新class文件,放到对应的路径下。

 7.提示是否替换,选择替换,提示已经修改,选择是,就可以了。

8.你会发现有些同个名字的多个class文件,有$1、$2这些,就是一个原来的代码实现了多个对象,以及里面有内部类和内部接口,一样弄,然后把这些同名的多个class文件删掉之后在粘贴新的class文件进去。

二、修改so文件

需要用到IDA pro、010 Editor,可以自己搜,也可以下载我这个,里面包含了这两个工具

1.使用IDA工具打开so文件,ida.exe打开的是32位和x86的so,ida64.exe打开的是64位的so文件;

2.双击打开IDA工具,选择Go,有其他弹窗都是选择默认的,然后选择so目录将文件打开,也是默认按钮,左侧这边是方法名,选择可疑的方法名,然后按F5,弹窗选择默认按钮,就可以看到代码了,其实是伪代码;

 3.选中伪代码里的单词(有些是可以选择的),双击,就会打开新的界面,有对应的代码坐标了

 4.使用010Editor打开同一个so文件,找到对应的坐标,修改右边的字符串,对应的16进制也会相应的改变,然后保存。

 5.修改so的字符串只能替换同等数量的字母,不能新增。

6.修改完成之后保存,在将修改好的so文件,放到aar包里进行替换(不能解压aar,用压缩文件工具打开)。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/878489.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号