构建一个Gods Eye Android应用程序:第1部分 – 收集已安装的Android应用程序
首先问候一下我的黑客伙伴们,在之前的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() {
@Override
public 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
有问题大家可以留言哦~也欢迎大家到春秋论坛中来玩耍呢!>>>点击跳转
构建一个Gods Eye Android应用程序:第1部分 – 收集已安装的Android应用程序的更多相关文章
- 三步升级已安装的 Android SDK 和 ADT 插件(转载)
转载:http://www.tfan.org/update-adt-and-android-sdk-in-five-minutes/ 如何快速地把已安装的 Android SDK 及 Eclipse ...
- 使用adb命令启查看已安装的Android应用的versionCode、versionName
列出已经安装的应用 adb shell pm list package C:\Users\CJTDEV003>adb shell pm list package package:com.sams ...
- android开发里跳过的坑——调用已安装视频播放器在有些机器上无效
调用已安装视频播放器播放未修改之前的代码 private void startPlay(String fileName){ File file = new File(fileName); Intent ...
- Android利用广播监听设备安装和卸载应用程序
MainActivity如下: package cn.testappaddandremove; import android.os.Bundle; import android.app.Activit ...
- 如果您想确保Windows 10在新用户登录时不安装内置应用程序,则必须删除所有配置的应用程序。
原文 如果您想确保Windows 10在新用户登录时不安装内置应用程序,则必须删除所有配置的应用程序. 本文的内容 已安装与配置的应用程序 删除配置的应用程序 安装与配置的应用程序^ 在介绍如何删除所 ...
- Android高效的应用程序开发工具集1---ant构建一个简单的Android工程
在java编译那些事通过提到ant编译Java工程,如今扩大到用它来构建Android目,事实上道理是相通的.变化的仅仅是使用的形式.ant构建相比IDE的优点是多个子项目使用自己定义jar包时,an ...
- 跟Google学习Android开发-起始篇-用碎片构建一个动态的用户界面(3)
4.3 构建一个灵活的用户界面 当设计你的应用程序要支持大范围的屏幕尺寸时,你可以在不同的布局配置中重用碎片,来根据可用的屏幕空间优化用户体验. 例如,在手持设备上,它可能是适应来在一个单窗格用户界面 ...
- NHibernate构建一个ASP.NET MVC应用程序
NHibernate构建一个ASP.NET MVC应用程序 什么是Nhibernate? NHibernate是一个面向.NET环境的对象/关系数据库映射工具.对象/关系数据库映射(object/re ...
- Android学习笔记-构建一个可复用的自定义BaseAdapter
转载自http://www.runoob.com/w3cnote/android-tutorial-customer-baseadapter.html 作者:coder-pig 本节引言: 如题, ...
随机推荐
- TCC细读 - 3 恢复流程
重试定时任务,通过外部调度实现 package org.mengyun.tcctransaction.spring.recover; import org.mengyun.tcctransaction ...
- C#调用java代码(IKVMC)
参考资料:https://blog.csdn.net/threadroc/article/details/51406587 参考1:http://www.cnblogs.com/Jack-Blog/p ...
- jmeter 连接 MySql
1.连接 mysql 驱动包安装下载 1)首先需要安装 mysql 驱动包,下载地址:https://dev.mysql.com/downloads/connector/j/5.1.html 2)下载 ...
- Web前端(整理不好,自己未学)
1.公司招聘信息 (1)小公司 (2)腾讯 ①社会招聘 ②校园招聘 (3)百度 ①社会招聘 ②实习 ③校园招聘 2.岗位要求 开发经验,良好的编程习惯,学习能力,至少二个项目开发设计,具备需求功能模块 ...
- 微软Office Online服务安装部署(一)
1.要使用office online功能,首先需要的是2台主机,并且主机的系统要求是windwos Server 我把他命名为Server和Client(两台服务器 用户必须为administrato ...
- 腾讯云主机的公网无法访问,putty和FileZilla连接不上
1.解决方法一(之前百度都是这种安全组忘了添加) 2.解决方案二(ps:我是用centos的,然后不知道为什么访问不了,端口也是全部开的) service network restart 重置网络命令 ...
- Django实现微信消息推送
一 所需准备条件 微信公众号的分类 微信消息推送 公众号 已认证公众号 服务号 已认证服务号 企业号 基于:微信认证服务号 主动推送微信消息.前提:关注服务号环境:沙箱环境 沙箱环境地址: https ...
- thinkphp 视图(一)
视图 View <?php namespace app\index\controller; class Index{ public function index(){ return view() ...
- 更改angular的默认端口
一.现象 当本地同时运行了多个angular项目时,端口占用问题 Port 4200 is already in use. Use '--port' to specify a different po ...
- latex相关概念
关于Latex,收到网友的鼓励,决定好好整理下相关的信息. 在初次使用相关的程序时,遇到很多迷惑的概念,下面这篇帖子汇总得很详细. 关于latex各种概念与理解 帖子中提到了三个概念,引擎,宏集(即下 ...