修改.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,用压缩文件工具打开)。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值