实现 Android SO 压缩的流程如下:
| 步骤 | 操作 |
|----|----|
| 1 | 加载 SO 文件 |
| 2 | 解压缩 SO 文件 |
| 3 | 修改 SO 文件 |
| 4 | 压缩 SO 文件 |
| 5 | 替换原始 SO 文件 |
下面是每一步需要做的事情和相应的代码示例:
### 1. 加载 SO 文件
首先,我们需要加载原始的 SO 文件,并将其拷贝
原创
2023-12-19 03:49:51
152阅读
# Android SO库压缩实现教程
## 1. 概述
在Android开发中,我们经常会使用第三方的so库来提供额外的功能或优化性能。然而,由于so库体积较大,会增加应用的安装包大小。为了减小安装包的体积,我们可以对so库进行压缩处理。本文将介绍如何实现Android SO库压缩的步骤和方法。
## 2. 整体流程
下面是Android SO库压缩的整体流程,使用表格展示:
| 步骤
原创
2024-02-01 10:00:19
454阅读
参考官方连接: https://developer.android.google.cn/topic/performance/reduce-apk-size?hl=zh-cn 先看效果: 瘦身前(52.8MB): 瘦身后(29.3MB): 使用as自带Analyze Apk功能,可以很清楚的查看apk的组成及各部分占用的比列。APK 文件由一个 Zip 压缩文件组成,其中包含构成应用的所有文件。这些
转载
2023-11-16 19:30:43
74阅读
# Android So体积压缩的指南
在Android开发中,**So文件**(Shared Object)是一类常见的本地库,通常用于实现性能要求较高的计算或调用底层系统功能。这些库的体积有时会影响应用的整体大小,因此进行体积压缩就显得尤为重要。本文将介绍如何在Android项目中实现So文件的体积压缩,并提供代码示例和其它相关信息。
## So文件基本概念
So文件是动态链接库的格式,
前言: 做过Android网络开发的都知道,在网络传输中我们一般都会开启GZIP压缩,但是出于刨根问底的天性仅仅知道如何开启就不能满足俺的好奇心的,所以想着写个demo测试一下比较常用的两个数据压缩方式,GZIP/ZIP压缩。首先认识一下GZIP压缩GZIP是网站压缩加速的一种技术,对于开启后可以加快我们网站的打开速度,原理是经过服务器压缩,客户端浏览器快速解
转载
2023-07-23 22:24:25
38阅读
对与andorid图片的压缩,小伙伴们的可能都是用的bitmap.compress()方法,一般也没啥问题.开始我也是用的这个方法,这2天客户反映,压缩以后图片不够清楚,仔细去看,还真是,同一张图andorid和ios压出来的效果差距好大,这是为什么呢,经过不断的百度谷歌,发现原来是谷歌挖了一个坑,这个坑是什么呢,下面就开始我们的蛋疼之路.
首先简单介
转载
2024-02-19 15:06:19
63阅读
Unity图片纹理压缩方案Unity对纹理的处理是智能的:不论你放入的是PNG,PSD还是TGA,它们都会被自动转换成Unity自己的Texture2D格式。 在Texture2D的设置选项中,你可以针对不同的平台,设置不同的压缩格式,如IOS设置成PVRTC4,平台设置成RGBA16等。嗯,非常的智能。但是,在一些进阶的使用中,一些情况是难以满足的。比如,我们NGUI的图集纹理,在Androi
转载
2024-05-05 19:46:39
12阅读
zip是一种归档文件格式,zip可以把若干文件和目录下的文件进行归档,这些归档的文件可以压缩也可以不压缩,并且压缩算法也是可以选择的,目前zip最经常使用的是deflate算法,因为zip中包含若干归档的文件,每个文件都有一个元数据区描述该文件,而这个元数据区域是不能被压缩的,因此如果zip中存在大量文件时,直接存储zip格式的文件并不是很有效率,可以对一个zip格式的文件,使用gzip进行压缩,
转载
2023-11-01 10:59:21
39阅读
weex打包安卓一 配置安卓环境下载安卓SDK配置ANDROID_HOME配置%ANDROID_HOME%\toolsandroid -h 检查是否配置成功二 weex的安装使用一、weex简介以及开发前提1、简介 官网的解释为Weex是一个使用Web开发体验来开发高性能原生应用的框架。按我的理解其实就是,只用写一份代码,可以同时在PC端和移动端(包括android 和IOS)运行。2、开发前提和
转载
2023-12-27 09:35:29
164阅读
需求:给一个目标apk,要求hook它的native层代码,但是不能修改它原本的so文件。实现方法:通过/proc/pid/maps查看目标so文件加载到内存的基址,然后利用ida查看目标函数在so文件的内存偏移,两个数字相加得到目标函数的内存地址,然后利用Android-Inline-Hook框架编写c文件,编译生成so文件,再修改apk中的smali文件,加载我们的so文件,从而达到hook的
转载
2023-11-05 20:42:15
220阅读
第一、前言从今天开始我们正式开始Android的逆向之旅,关于逆向的相关知识,想必大家都不陌生了,逆向领域是一个充满挑战和神秘的领域。作为一名Android开发者,每个人都想去探索这个领域,因为一旦你破解了别人的内容,成就感肯定爆棚,不过相反的是,我们不仅要研究破解之道,也要研究加密之道,因为加密和破解是相生相克的。但是我们在破解的过程中可能最头疼的是native层,也就是so文件的破解。所以我们
第一、前言从今天开始我们正式开始Android的逆向之旅,关于逆向的相关知识,想必大家都不陌生了,逆向领域是一个充满挑战和神秘的领域。作为一名Android开发者,每个人都想去探索这个领域,因为一旦你破解了别人的内容,成就感肯定爆棚,不过相反的是,我们不仅要研究破解之道,也要研究加密之道,因为加密和破解是相生相克的。但是我们在破解的过程中可能最头疼的是native层,也就是so文件的破解。所以我们
转载
2024-01-17 19:51:29
72阅读
来来了解一下JNI吧,也许工作中并不一定用得着,但是也得知道一下大概内容呀。总结安卓中关于JNI的基础知识,有以下三个部分。(第一部分)A) 创建一个类(HelloWorld.java)或者在原来的类com.example.hellojni.HelloJNI中声明本地方法。(1)使用关键字native声明本地方法,表明这两个函数需要通过本地代码C/C++实现。public native
转载
2024-10-08 17:33:48
42阅读
全局符号表(GOT表)hook实际是通过解析SO文件,将待hook函数在got表的地址替换为自己函数的入口地址,这样目标进程每次调用待hook函数时,实际上是执行了我们自己的函数。 GOT表其实包含了导入表和导出表,导出表指将当前动态库的一些函数符号保留,供外部调用,导入表中的函数实际是在该动态库中调用外部的导出函数。 这里有几个关键点要说明一下: (1) so文件的绝对路径和加载到内存
转载
2023-08-30 20:08:09
316阅读
随着Android设备上的隐私安全问题越来越被公众重视,恶意软件对用户隐私,尤其是对电话、短信等私密信息的威胁日益突出,各大主流安全软件均推出了自己的隐私行为监控功能,在root情况下能有效防止恶意软件对用户隐私的窃取,那么这背后的技术原理是什么?我带着疑问开始一步步探索,如果要拦截恶意软件对电话、短信等API的调用,在Java或者Dalvik层面是不好进行的,因为这些层面都没有提供Hook的
转载
2024-01-28 00:38:58
74阅读
0X00 前言 为了增加APK文件的破解难度,很多比较重要的功能都是通过native实现,与反编译不同的是,java的伪代码可以很清楚的得到程序的逻辑关系,但是so文件反编译得到的是汇编代码,使用ida这样的神器可以得到c的伪代码。使用ida实现so的动态调试,可以在关键地方下断点,对于一些变换,比如有的时候输入的内容与经过一些列的变换后的结果比较,这个时候我们不需要关心中间的变换过程,在动态调
转载
2023-10-17 16:08:13
81阅读
本节用的so是上节用Android Studio创建的so。想在Android Studio中调用so中的方法,需要先引用so。Android Studio中引用so的方法有二种,下面开始介绍。一 引用so 在app/src/main目录下新建Directory,命名文件夹为jniLIB(文件名不能错),把so文件放进去 ,如图: 二 编写java代码调用so中方法 ①在代码
转载
2018-11-24 11:42:00
209阅读
在有些情况下,可能遇到需要改变目标进程的执行流程的问题,替换原函数转而指向我们自己的函数,而Hook就是指的改变待Hook函数的地址,替换地址而达到更换原函数的功能。本文主要介绍Android上对native层中的so库Hook的方法,核心技术其实是对GOT表的Hook,获取目标函数地址需要对so文件进行解析,而so文件实际上是ELF文件,所以在此之前需要对ELF文件格式有一个很好的了解。关键解析
转载
2023-07-24 22:28:26
118阅读
文章目录前言Hook So有导出so层hook无导出so层hookSo层实战hook脚本的编写hook脚本的效果总结 前言我在前面的一篇博客 CTF逆向-EasySo世界SO层反汇编 中记录了对一道 CTF 逆向题目的 Android APP 的 So 层函数进行基础的逆向分析的过程,通过 IDA 反汇编查看 So 层代码并分析获得了 Flag 值。生命在于折腾~本文将记录尝试通过 Frida
转载
2023-07-06 15:58:26
166阅读
前言
图片压缩、加水印是很多应用常见的需求,java虽然有很多文件/io相关处理的api,但是使用不当很容易造成各种数据崩溃,今天介绍一个好用的轮子:simpleimage
项目介绍
从首页进去,你看到的是一片空白,没错,跟项目名一样,就是这个simple,这个项目是阿里巴巴旗下的,至今。。。嗯四年前就不维护了,时间倒退到4年前,映象中maven也还不是那么的流行,所以网上看到很多使用这个项目的都
转载
2021-06-12 16:51:10
529阅读