首先问候一下我的黑客伙伴们,在之前的Introduction to Amunet 教程中,我们了解到Amunet可能是一个间谍Android应用程序。 我不浪费太多时间因而直入主题。

在本教程中,我们将仅收集已安装的应用程序及其相关信息,但不会将它们发送到外部服务器,因为我们尚未设置我们的服务器和数据库。 我相信这将会在下一个教程中(设置Web服务器和数据库)。

我假设您已经安装了Android Studio并且环境运行顺畅。 如果没有,只需前往谷歌搜索“安装和设置android studio”或者只是按照这个外部网站 Android Studio for beginners, Part 1: Installation and setup(我与他们没有任何关系)。 话虽这么说,我们会继续创建一个Android项目。

创建一个新的安卓项目

启动Android Studio并创建一个新的android项目。

根据你的选择进入应用,我的是Amunet.域名可以是您选择的任何内容。 接下来的一步.


现在最小的手机目标API是19(KitKat).

通过该活动,继续选择基本活动,下一个。

我们将活动保留为“MainActivity”,然后单击Finish。

我们的项目应该成功创建。 我们不会对接口做太多工作,因为大多数代码都将在后台线程,服务和广播接收器中编写。 我们可能会使用UI来获取权限(在23 +上)

收集有关已安装应用程序的信息
前往

MainActivity.java

随意删除onCreate方法中FloatingActionButton的代码并添加此代码

new Thread(new Runnable() {@Overridepublic void run() {                 collect_installed_apps();             } }).start();

您可能已经猜到了,我们在onCreate方法中运行一个线程并调用方法(函数)collect_installed_apps。 您还会发现该函数已用红色下划线表示我们尚未创建该函数。 让我们继续前进并创建功能。

收集INSTALLED_APPS

在此方法中,我们导入ApplicationInfo,PackageManager,Log和List。 转到文件的最顶部但在包行(行1)下面并添加此import语句。

import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager; import java.util.List; import android.util.Log;

现在,让我们创建我们的方法collect_installed_apps

 private void collect_installed_apps() {final PackageManager pm = getPackageManager();     List<ApplicationInfo> packages = pm.getInstalledApplications(PackageManager.GET_META_DATA);     for (ApplicationInfo packageInfo : packages) {         if(pm.getLaunchIntentForPackage(packageInfo.packageName) != null)         {             String app_name = packageInfo.loadLabel(getPackageManager()).toString();             String app_package = packageInfo.processName;             Log.i("0x00sec", "App name: " + app_name + " Package Name: " + app_package);         }     } }

使用打包程序管理器,代码循环安装的应用程序并获取其信息。 我们在这里收集的信息是应用程序名称和包名称。 有很多可用的信息,但我们仅限于这两个。 但是,您可以继续收集其他信息。 由于我们没有设置我们的Web服务器和数据库,我们将使用Log.i将信息记录到控制台。

配置LOGCAT

您可以有关Logcat的信息,但简单来说,系统和其他应用程序会将错误,警告和其他信息等消息转储到此流中。 它永远在变化而不是不变。 我们的Android应用程序还使用Log.i调用将信息转储到此流中。 由于推送了大量信息,因此很难找到我们的信息,因此我们将Android Studio配置为仅显示具有特定标记的消息。 如果您在Log.i代码中注意到,我们分别传递了两个参数:tag和message。 我们告诉Android Studio只显示带有我们定义的标签0x00sec的消息。 通过这种方式,我们看不到与我们的Android应用程序无关的其他消息。 在Android Studio的左下角,我们将找到Logcat选项卡。 做你自己的荣誉并点击它。

按照图像中的步骤操作,将弹出另一个“日志”对话框。 填写正确的信息,否则将不会显示相应的消息。

1.输入您自己的过滤器名称。

2.在日志标记中,使用0x00sec(或您在Log.i代码中用作第一个参数的任何内容)。

3.输入包名称(位于MainActivity.java的第一行)

单击确定。 现在我们准备运行我们的Android应用程序。 首先必须确保在测试设备上启用USB调试。 点击此链接 How to Enable USB Debugging Mode on Android – KingoRoot- 如果您尚未启用它,请使用KingoRoot。

让我们运行我们的安卓应用程序

单击android studio顶部app旁边的绿色播放按钮,或使用Control + R(Mac)和Shift + F10(Windows / Linux)。 确保已连接设备并启用USB调试。
当应用程序运行时,控制台应填充我们安装的应用程序及其程序包名称。

正如您所注意到的,我们的logcat过滤器运行良好。

让我们在这里结束

在今天的教程中,我们学习了如何填充已安装的Android应用程序。 在下一个教程中,我们将设计我们的数据库并设置我们的Web服务器。 与此同时,欢迎我们的代码更正,建议,应用程序设计等。 感谢在我们下次见面前的分享的机会,我要离开了。

检查github仓库: https://github.com/sergeantexploiter/Amunet

作者:sergeantsploit
翻译:i春秋翻译小组-Neo(李皓伟)
翻译来源:https://www.0x00sec.org/t/building-a-god-s-eye-android-app-part-1-collecting-installed-android-apps/7121

有问题大家可以留言哦~也欢迎大家到春秋论坛中来玩耍呢!  >>>点击跳转

转载于:https://www.cnblogs.com/ichunqiu/p/9372294.html

构建一个Gods Eye Android应用程序:第1部分 – 收集已安装的Android应用程序相关推荐

  1. WIN10之右键“管理”报错:该文件没有与之关联的程序来执行该操作,请安装一个程序,或者,如果已安装程序.....

    在网上找不到较好的解决方法,但是又影响操作,通过自己排查出来的解决方式.之前一直通过win+R 输入"sysdm.cpl"调出管理界面. 故障提示: win10系统,此电脑(我的电 ...

  2. android 获取已安装 错误代码,android获取手机已经安装的app信息

    Android获取手机已安装APP(系统/非系统) 效果图 主体代码 private ListView mlistview; private ListpackageInfoList; private ...

  3. android 获取已安装列表权限,Android 如何完整的获取到用户已安装应用列表

    接到产品经理的预研需求,说希望获取用户已安装应用列表.这个问题应该不难,只要是要把相关的知识点整理和验证一下. 对于获取用户已安装应用列表,我个人是很熟悉的,因为我的华为手机上,手机管家天天会在通知栏 ...

  4. 已安装各个模块,程序仍报错:ModuleNotFoundError: No module named 'numpy'

    对于已安装各个模块的如numpy.pandas.jupyter notebook等,程序仍报错:ModuleNotFoundError: No module named 'numpy' 我当时还怀疑自 ...

  5. 怎样上android官方下载,【图文教程】如何安装 iOS/Android(安卓)触动精灵?

    iOS 注意事项 必须越狱. iOS12 及其以上系统只能安装专业版 arm64 版本客户端并且购买专业版授权,专业版授权和标准版授权不通用. iPhone 7 10 系统设备由于越狱问题无法使用触动 ...

  6. 安装程序无法更新计算机配置,无法安装某些更新或程序

    在尝试下载 ActiveX 控件.安装 Windows 或 Windows 组件的更新.安装 Windows 或 Windows 组件的 Service Pack.或者安装 Microsoft 或第三 ...

  7. android pak文件_Android 获取手机中已安装apk文件信息

    通过PackageManager可以获取手机端已安装的apk文件的信息,具体代码如下 PackageManager packageManager = this.getPackageManager(); ...

  8. Android之开启内置闹钟与已安装的应用程序设置

    开启内置闹钟: Intent intent = new Intent(); intent.setAction("android.intent.action.SET_ALARM"); ...

  9. android程序到处apk,导出已安装到手机中程序的apk文件

    查看该手机所有安装包的包名, 输入adb shell pm list packages 找到你要导出的包名 获取该安装apk的路径, 输入adb shell pm path com.pfoc.myac ...

最新文章

  1. Linux boot启动串口出现乱码,使用 am335x-evm-sdk-src-02.00.01.07 的源码,UBOOT阶段使用LCD控制器后,内核启动串口控制台输出乱码。...
  2. 网站推广期间出现排名异常网站推广专员应如何应对?
  3. 【Android 电量优化】JobScheduler 相关源码分析 ( JobSchedulerService 源码分析 | Android 源码在线网址推荐 )
  4. 十天精通CSS3(11)
  5. 如何设计让用户喜欢且令人尖叫的产品?
  6. RabbitMQ远程不能访问问题的解决
  7. POJ - 3179 Corral the Cows(离散化+二分+二维前缀和)
  8. 《朝花夕拾》金句摘抄(四)
  9. 前端学习(753):js没有块级作用域
  10. Atitit. 数据约束 校验 原理理论与 架构设计 理念模式java php c#.net js javascript mysql oracle...
  11. 32 - III. 从上到下打印二叉树 III
  12. [Effective Java]第二章 创建和销毁对象
  13. 最新基于高德地图的android进阶开发(3)GPS地图定位
  14. [杂]实用工具与链接
  15. Genius‘s Gambit【学习进度条1】
  16. Cgroup 资源配置方法
  17. 监控摄像头网页直播解决方案
  18. 2020年6月——北京大学《软件工程》笔记
  19. 极限中0除以常数_酶动力学中的一些常数简介
  20. JS 小坑 - AJAX请求的小坑,请求接口404

热门文章

  1. 天际线java_Java实现 LeetCode 807 保持城市天际线 (暴力)
  2. 解决浏览器打印时,背景色不显示
  3. sqli-labs--23-37关通关指南(详细)
  4. CSS基础知识——栅格系统
  5. STM32F1与STM32CubeIDE快速入门-ADC轮询方式实现PWM调光器
  6. 基于matlab的温度信号采集,基于matlab与单片机的动态温度监控系统的设计
  7. JavaScript将unix时间戳转为正常时间类型
  8. 【idea创建doc文件和报错的解决方法】
  9. OpenCV摄像头-录屏
  10. 系统分析与设计 Homework3