Android自检工具

前一段时间在做发包任务时, 由于疏忽, 尽管自检了, 但是还是漏掉了关键项的检查, 所以对此深恶痛觉, 便有了这个自检工具。


先使用Apktool进行APK的反编,然后对AndroidManifest.xml进行解析和比较来确定参数的正确性。

AndroidManifest.xml文件的解析:

public void checkUpOn_manifest(string xmlPath)
		{
			string localMsID = "", localServerID = "", localEgameID = "",localPackageName = "";
			ZXml xml = new ZXml(xmlPath);
			var root = xml._data.SelectSingleNode("manifest").SelectSingleNode("application");
			localPackageName = ((XmlElement)xml._data.SelectSingleNode("manifest")).GetAttribute("package").ToString();
			AddNewLineMsg("-----------------------------------");
			AddNewLineMsg("应用包名:" + localPackageName);
			AddNewLineMsg("指定包名:" + this.packgeName);
			AddNewLineMsg("-----------------------------------");

			var metas = root.ChildNodes;
			

			foreach(var item in metas)
			{
				XmlElement metaEle = (XmlElement)item;
				string data = metaEle.GetAttribute("android:name").ToString();
				switch(data)
				{
					case "EGAME_CHANNEL":
						localEgameID = metaEle.GetAttribute("android:value");
						AddNewLineMsg("电信ID:" + localEgameID);
						AddNewLineMsg("指定ID:" + this.egameID);
						AddNewLineMsg("-----------------------------------");
						break;
					case "ServerChannelId":
						localServerID = metaEle.GetAttribute("android:value");
						AddNewLineMsg("后台ID:" + localServerID);
						AddNewLineMsg("指定ID:" + this.serverID);
						AddNewLineMsg("-----------------------------------");
						break;
					case "MSDK_CHANNELID":
						localMsID = metaEle.GetAttribute("android:value");
						AddNewLineMsg("火星ID:" + localMsID);
						AddNewLineMsg("指定ID:" + this.msID);
						AddNewLineMsg("-----------------------------------");
						break;

					default: break;
				}
			}

			AddNewLineMsg("Manifest对比结果:");
			if(!string.IsNullOrEmpty(this.packgeName))
			{
				if(localPackageName != this.packgeName) AddNewLineMsg("包名不同!"); else AddNewLineMsg("包名相同!");
			}

			if(!string.IsNullOrEmpty(this.msID))
			{
				if(localMsID != this.msID) AddNewLineMsg("火星ID不同!"); else AddNewLineMsg("火星ID相同!");
			}

			if(!string.IsNullOrEmpty(this.serverID))
			{
				if(localServerID != this.serverID) AddNewLineMsg("后台不同!"); else AddNewLineMsg("后台相同!");
			}

			if(!string.IsNullOrEmpty(this.egameID))
			{
				if(localEgameID != this.egameID) AddNewLineMsg("电信ID不同!"); else AddNewLineMsg("电信ID相同!");
			}
			AddNewLineMsg("-----------------------------------");
		}
使用Apktool进行Apk的反编译:

public void useApkToolToDecompile(string strInFilePath, string strOutDirectoryPath)
		{

			if(Directory.Exists(strOutDirectoryPath))
			{
				AddNewLineMsg("输出路径已存在,开始清除目录...");
				Directory.Delete(strOutDirectoryPath, true);
			}
			AddNewLineMsg("开始反编译apk");

			Process process = new Process();
			process.StartInfo.FileName = this._apkToolPath;
			process.StartInfo.Arguments = " d " + strInFilePath + " -o " + strOutDirectoryPath;

			//隐藏DOS窗口  
			process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
			process.Start();
			process.WaitForExit();
			process.Close();

			AddNewLineMsg("反编译完成!开始比对manifest文件:");

			checkUpOn_manifest(strOutDirectoryPath + "/AndroidManifest.xml");
		}


本工具全由C#编写,因为公司主营的是单机游戏,所以功能上也是贴合自己的需求而做的,项目我已经上传网盘,需要的看官自取。

链接:http://pan.baidu.com/s/1qYlwtvY 密码:trh3



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本产品适用于于单位内部对自身的计算机设备的保密情况以及计算机违规使用情况进行自查。它主要包括以下几部分功能: ■ 系统运行痕迹:该功能主要查看电脑使用和程序运行情况,可以准备获取最近的电脑开关机时间、运行过的程序。 ■ 电脑外联痕迹:该功能主要查看电脑远程登录或者网络连接情况,主要获取网上邻居访问痕迹、远程终端登录痕迹、ADSL拨号连接情况以及无线网络连接情况。 ■ 上网行为痕迹:上网痕迹包括了系统中由于访问互联网而留下的各种痕迹。这里列出的痕迹是系统内的未清理过的,或者未完全清理干净的一些痕迹。 ■ URL 缓存痕迹:分为快速和深度两种检查方法,快速为直接读取IE浏览器缓存文件,深度检查从磁盘级搜索上网痕迹,基于数据特征和数据恢复技术,可以搜出被清除过或者重装过系统的电脑的上网痕迹。 ■ 文档处理痕迹:这里主要描述当前和最近一段时间计算机上处理和访问的文档的名称。可通过名称查看是否有违规现象。 ■ USB 设备管理:该功能列举出了所有在该计算机上曾经使用过的USB存储设备的名称、型号及日期等信息。 ■ 文件内容检索:可以搜索微软office,金山office,PDF等办公文档内容,检索是否有违规关键字文件存在。 ■ 删除文件检索:可以搜索磁盘中已删除的文件,文件夹,可通过名称查看是否有违规现象。 多种痕迹取证,三种深度检查,涉密文档检索
众所周知,人工智能是当前最热门的话题之一, 计算机技术与互联网技术的快速发展更是将对人工智能的研究推向一个新的高潮。 人工智能是研究模拟和扩展人类智能的理论与方法及其应用的一门新兴技术科学。 作为人工智能核心研究领域之一的机器学习, 其研究动机是为了使计算机系统具有人的学习能力以实现人工智能。 那么, 什么是机器学习呢? 机器学习 (Machine Learning) 是对研究问题进行模型假设,利用计算机从训练数据中学习得到模型参数,并最终对数据进行预测和分析的一门学科。 机器学习的用途 机器学习是一种通用的数据处理技术,其包含了大量的学习算法。不同的学习算法在不同的行业及应用中能够表现出不同的性能和优势。目前,机器学习已成功地应用于下列领域: 互联网领域----语音识别、搜索引擎、语言翻译、垃圾邮件过滤、自然语言处理等 生物领域----基因序列分析、DNA 序列预测、蛋白质结构预测等 自动化领域----人脸识别、无人驾驶技术、图像处理、信号处理等 金融领域----证券市场分析、信用卡欺诈检测等 医学领域----疾病鉴别/诊断、流行病爆发预测等 刑侦领域----潜在犯罪识别与预测、模拟人工智能侦探等 新闻领域----新闻推荐系统等 游戏领域----游戏战略规划等 从上述所列举的应用可知,机器学习正在成为各行各业都会经常使用到的分析工具,尤其是在各领域数据量爆炸的今天,各行业都希望通过数据处理与分析手段,得到数据中有价值的信息,以便明确客户的需求和指引企业的发展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值