`
骑猪逛街666
  • 浏览: 147888 次
  • 性别: 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/
分享到:
评论

相关推荐

    特殊函数计算手册

    由特定微分方程的解定义的特殊函数有正交多项式(如Chebyshev、Laguerre和Hermite多项式),Gamma函数,Legendre函数类,Bessel函数(如球Bessel、变型Bessel、Ricatti-Bessel函数等),Kelvin函数,Airy函数,...

    SYBASE iq与ORACLE使用分析函数计算同期值及常用计算函数使用

    SYBASE iq中可以使用SUM() OVER()函数来计算累计及同期累计值,例如:SUM(Column) OVER(PARTITION BY Column1, Column2, Column3... ORDER BY Column4 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) 3. TOP ...

    log函数快速计算c语言程序

    C语言标准库提供了数学函数,包括log函数,来帮助程序员处理这类计算。本篇文章将深入探讨log函数的使用、原理以及优化技巧。 一、log函数的定义与类型 在C语言中,log函数是通过包含`<math.h>`头文件来使用的。...

    自定义抽取数据函数

    本文介绍了如何在SQL Server中创建一个自定义函数来抽取字符串中的数字部分。通过对函数的目的、参数、实现细节以及相关的SQL字符串函数进行深入解析,不仅帮助读者理解了该函数的工作原理,还提供了实用的应用案例...

    不完全伽马函数的计算

    例如,当x较大时,可以使用斯特林公式来近似伽马函数。 在实际编程过程中,通常会引入误差控制机制,如牛顿迭代法或二分法,来提高计算精度。同时,为了提高效率,可以预计算一些常见p值的伽马函数结果,并存储在...

    ApkAnalyser-apk敏感信息提取

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

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

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

    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`则是正余弦、正切和正弦...

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

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

    利用随机函数抽取幸运数字

    本文将深入探讨如何利用随机函数来抽取幸运数字,这在各种抽奖活动或数据分析中非常常见。我们将从以下几个方面来详细解释这个主题: 1. **随机数生成原理**:随机数在计算机科学中并不是真正的“随机”,而是通过...

    MATLAB核函数算法

    MATLAB作为一种强大的数学计算软件,提供了丰富的核函数库,使得研究人员和工程师可以方便地利用这些函数进行复杂的数据分析和模型构建。本文将深入探讨几种常用的MATLAB核函数算法及其应用。 1. **线性核函数...

    计算管家v4.2.apk

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

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

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

    Android一个apk启动另外一个apk

    首先,你需要创建一个Intent对象,使用`Intent()`构造函数。如果知道被启动的Activity的类名,可以使用`setComponent(ComponentName)`方法指定;如果只知道对应的Action和Category,可以使用`setAction(String)`和`...

    点扩散函数理论(点扩散函数理论的推导)

    对于衍射受限的光学成像系统来说,其点扩散函数可以通过傅里叶变换来计算得到。具体而言,可以利用复指数函数与贝塞尔函数之间的关系,将二维傅里叶变换转化为一系列一维傅里叶变换和汉克尔变换的组合。这种方法不仅...

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

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

    用FlowDroid生成Android应用程序的函数调用图

    4. **使用FlowDroid**:为了生成函数调用图,用户需要提供APK文件,FlowDroid会自动进行分析并生成报告。报告通常包括可疑的数据流路径、潜在的安全问题和其他有用的信息,这对于安全审计和代码优化非常有价值。 5....

Global site tag (gtag.js) - Google Analytics