`
骑猪逛街666
  • 浏览: 144254 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

使用函数计算来抽取apk信息

阅读更多
原文链接:http://click.aliyun.com/m/22127/
摘要: 在之前的博客中我们看到,可以使用函数计算来实现一个自定义的图像处理服务,这个服务是稳定、可靠、弹性伸缩的,并且它是无服务器架构,按函数的调用时间收费,节省了服务器闲置的开销和运维成本。 使用函数计算可以方便地构建类似的微服务,比如我们可以创建一个处理android apk文件的微服务: 小吴将下

在之前的博客中我们看到,可以使用函数计算来实现一个自定义的图像处理服务,这个服务是稳定、可靠、弹性伸缩的,并且它是无服务器架构,按函数的调用时间收费,节省了服务器闲置的开销和运维成本。

使用函数计算可以方便地构建类似的微服务,比如我们可以创建一个处理android apk文件的微服务:

小吴将下载的apk文件上传到OSS
他想分析一下这些apk应用的权限信息:
使用aapt工具抽取出每个apk文件的权限信息
将它们录入到数据库中(rds),方便日后查询
步骤
1. 创建一个OSS bucket
https://oss.console.aliyun.com/index#/

注意创建bucket时选择“华东2”区域。

image

2. 创建RDS数据库
https://rdsnew.console.aliyun.com/

在RDS控制台创建一个实例(注意选择华东2区域和经典网络) image
选择实例创建一个数据库
创建一个用户并授权其访问数据库的权限
添加白名单,允许所有的IP访问 image
3. 创建函数计算的服务和函数
https://fc.console.aliyun.com

创建服务
image

准备aapt工具
函数计算的运行环境是基于debian:8的镜像,因此我们最好在同样的环境下下载aapt工具:

docker run -it -v $(pwd):/opt debian:8
在容器中运行apt-get update && apt-get install -y aapt
将aapt及其所依赖的库从容器中拷贝出来:
mkdir /opt/aapt
cp $(which aapt) /opt/aapt/
cp -R /usr/lib/android /opt/aapt/
ldd $(which aapt) | grep -v android将其所依赖的库也拷贝到/opt/aapt/
准备函数代码
由于函数用到了mysql这个模块,所以需要将其安装:

npm install mysql 安装完毕之后,整个代码目录的结构是这样的: image
打包上传到OSS
将整个代码目录打包成zip:

编辑index.js将其中的数据库信息替换成自己真实的信息
zip -r code.zip *
将code.zip上传到OSS
创建函数
image
跳过触发器的设置,完成函数创建。

函数的关键代码如下,完整的代码包点此下载:

  ossClient.get(objectName, apkPath).then(function(res) {
    exec.execFile(
      '/code/aapt/aapt', ['dump', 'permissions', apkPath],
      {
        env: {
          'LD_LIBRARY_PATH': '/code/aapt:/code/aapt/android',
        },
      }, function(err, stdout, stderr) {
        if (err) {
          callback(err);
          return;
        }
        var apkPerm = stdout;
        console.log('%s permissions: %s', apkName, apkPerm);

        conn.query(
          'CREATE TABLE IF NOT EXISTS APK_PERM(NAME VARCHAR(50) NOT NULL, PERM TEXT, PRIMARY KEY (NAME))',
          function(err) {
            if (err) {
              callback(err);
              return;
            }

            conn.query(
              'REPLACE INTO APK_PERM VALUES (?, ?)', [apkName, apkPerm], function(err, results) {
                if (err) {
                  callback(err);
                  return;
                }
                console.log('insert ok: %s', results);
                callback(null, 'ok');
              }
            );
          });
      });
  }).catch(function(err) {
    console.error('error: ', err);
    callback(err);
  });
4. 运行函数并查看结果
https://fc.console.aliyun.com

先将需要分析的apk文件上传到OSS
在函数计算控制台执行函数,指定event的内容为apk文件所在位置 image
可以看到函数运行成功,接下来我们可以去RDS数据库中确认一下:

image
原文链接:http://click.aliyun.com/m/22127/
分享到:
评论

相关推荐

    ApkAnalyser-apk敏感信息提取

    【ApkAnalyser-apk敏感信息提取】 在移动应用开发领域,APK 文件是 Android 应用程序的主要打包格式。由于 APK 包含了应用程序的所有代码、资源和配置信息,因此,它也是安全分析和逆向工程的重要目标。ApkAnalyser...

    Excel函数计算公式大全(完整)

    Excel函数计算公式大全(完整),详细记录各实用函数极其使用

    APK Messenger APK版本等信息查看

    **MD5**是一种广泛使用的加密散列函数,它生成一个128位(16字节)的散列值,通常表示为32个十六进制数字。在APK文件中,MD5被用作文件的完整性检查,确保文件在传输或存储过程中没有被篡改。 **图标**(Icon)是...

    php 获取安卓apk信息

    5. **重新打包APK**:完成信息提取后,如果需要,可以使用Apktool将修改后的文件重新打包为APK。这通常涉及到另一个`apktool.jar`命令。 通过这种方式,PHP可以用来自动化处理和分析大量APK文件,这对于开发者、...

    matlab几种计算互信息的方法

    互信息(Mutual ...总的来说,这个压缩包提供了多种计算互信息的方法,可以帮助用户根据实际问题选择合适的算法。在学习过程中,对比不同方法的优缺点,理解其内在原理,将有助于提升数据分析和解决问题的能力。

    纯java读取apk文件信息(包括版本号,包名等)

    本教程将详细介绍如何使用纯Java来读取APK文件中的关键信息,如版本号和包名。 首先,我们需要了解APK文件的结构。一个APK文件本质上是一个ZIP格式的压缩包,我们可以用Java内置的`java.util.zip`库来处理。以下是...

    三角函数计算程序的C源码(支持反三角函数)

    这些函数通常需要处理浮点数,并可能使用数值稳定的方法来计算,例如牛顿迭代法或者查表法。在C语言中,没有内置的反三角函数,因此程序员必须自己实现这些功能。 `cos.c`、`tan.c`和`sin.c`则是正余弦、正切和正弦...

    DexClassLoader跨APK调用函数

    在“DexClassLoader跨APK调用函数”这个主题中,我们将深入探讨如何使用DexClassLoader来实现不同APK间的函数调用。 首先,了解DexClassLoader的基本结构和工作原理是至关重要的。DexClassLoader继承自...

    功函数计算

    用于计算功函数。第一性原理计算,需要得到能级基准的(真空层电势为基准)可以使用它。

    三次样条函数计算(很完整看了就明白)

    三次样条函数是一种在数值分析和计算数学中广泛使用的连续光滑插值方法。它通过构建一组函数,使得这些函数在给定的数据点上精确匹配,并且在这些点之间的区域保持平滑连续,同时满足二阶导数的连续性。这个过程涉及...

    论文研究-基于树核函数的蛋白质相互作用关系抽取研究 .pdf

    然而,现有的结构化信息表达方式存在一些问题,例如,在表示复杂句子结构时,传统的句法分析树可能过于复杂且包含大量与任务不相关的成分,这将导致信息抽取的效率和准确性降低。为了解决这些问题,研究者提出了基于...

    计算管家v4.2.apk

    支持多点触控、支持运算式、支持函数计算、支持单位转换和即时汇率换算。最人性化的触摸设计,最完美的触控体验;独创的文字编辑,快速备注不会忘;千分符、万分符,分隔数字看得清了财务算账不用愁,求和统计解您愁...

    功率谱估计、自相关函数估计、相干函数

    代码中使用了`awgn`函数来添加高斯噪声。`'measured'`参数表示噪声的功率是基于测量的。同时,信号是通过在不同时延上加权和移位的随机序列合成的,模拟了多个信号源和不同的传播条件。这种噪声加上不相关的白噪声...

    php自动提取apk包的信息程序演示

    php自动提取apk包的信息程序演示 1、安装java JDK包,比如安装到D:\JAVA目录 2、确保D:\JAVA目录权限——users组有“读取和运行”、“列出文件夹目录”和“读取”权限。 3、确定c:\windows\system32\cmd.exe文件有...

    查表法实现三角函数

    2. **线性插值**:为了提高精度,当需要计算的角并不直接对应于表中的角度时,可以使用线性插值来估算介于两个已知值之间的函数值。 3. **角度归一化**:考虑到三角函数的周期性和对称性,可以通过将角度转换到一个...

    三角函数(包括反三角函数)不调用库实现,可以取代math库

    三角函数包括反三角函数的实现,基本思想是利用泰勒级数。鉴于反三角函数ACOS在0.9-1的时候利用直接利用泰勒级数时收敛很慢的缺点,比较ulicx作了优化,使得精度和时间都达到了自己预期。适用于在嵌入式环境下不好...

    公式解析类(字符串公式,自定义函数公式)

    4. **自定义函数**: 允许用户自定义函数来扩展类的功能。 #### 实现原理与关键代码 ##### 类定义及初始化 ```java public class AnalyzeCalculate { public static List<String> lc = new ArrayList(); // 算术...

    解析apk的jar包

    `关键代码.txt`可能是这个解析过程中的核心代码示例,它可能包含了如何利用`apk-parser-1.0.2.jar`库来读取APK信息的Java代码片段。例如,这段代码可能包含以下步骤: 1. 加载`apk-parser-1.0.2.jar`库,这通常通过...

    php自动提取apk包的信息

    1、安装java JDK包,比如安装到D:\JAVA目录 ...该DEMO文件只对《php上传apk后自动提取apk包的信息》。具体项目运用,请根据自己项目需求改动。如有疑问,欢迎与我交流。 将该文件放至php运行目录下即可运行

Global site tag (gtag.js) - Google Analytics