当前位置: 首页 > news >正文

做粥哪个美食网站好/互联网推广公司排名

做粥哪个美食网站好,互联网推广公司排名,做网站看,传奇网址大全2019独角兽企业重金招聘Python工程师标准>>> 手机杀毒的几种方式: 1. 基于签名的特征码的扫描(hash码-md5特征码的扫描) 特征:只能查杀已知的病毒,不能查杀未知的病毒。 大概原理:根据病毒数据库进行查杀,病…

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

手机杀毒的几种方式:

1. 基于签名的特征码的扫描(hash-md5特征码的扫描)

特征只能查杀已知的病毒,不能查杀未知的病毒。

大概原理:根据病毒数据库进行查杀,病毒库中保存病毒对应的hash,通过比较程序签名和病毒库中的签名判断是否病毒。

补充:各杀毒软件的原理都是相同的,区别主要在于杀毒引擎。

杀毒引擎用于获取硬件上文件的hash码,并依据此hash查询数据库的算法.


2.主动防御

通过监控敏感api进行防御,例如监控以下敏感操作:

更改浏览器主页

注册开机启动的行为

应用程序的内存注入


3.启发式扫描:

根据程序敏感的api 提示风险代码


4.云查杀

利用服务器端的病毒数据库进一步查询可疑程序。

人工智能:引用人工智能算法,即一套复杂的if语句

下面是根据第1种方式实现简单杀毒功能核心程序代码:

package com.alex.mobilesafe.ui;import java.util.List;import android.app.Activity;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.Signature;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.drawable.AnimationDrawable;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.MotionEvent;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.ScrollView;
import android.widget.TextView;import com.alex.mobilesafe.util.MD5Encoder;import com.alex.mobilesafe.R;public class AntiVirusActivity extends Activity {protected static final int STOP = 100;private ImageView iv;private ProgressBar pb;private LinearLayout ll;private AnimationDrawable anim;private ScrollView sv;private SQLiteDatabase db;private boolean flagscanning = false;private Handler handler = new Handler() {@Overridepublic void handleMessage(Message msg) {super.handleMessage(msg);if(msg.what==STOP){ll.removeAllViews();anim.stop();}String str = (String) msg.obj;TextView tv = new TextView(getApplicationContext());tv.setText(str);ll.setOrientation(LinearLayout.VERTICAL);ll.addView(tv);sv.scrollBy(0, 20);System.out.println(str);}};@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.antivirus);//antivirus.db 为手机病毒库db = SQLiteDatabase.openDatabase("/sdcard/antivirus.db", null,SQLiteDatabase.OPEN_READONLY);iv = (ImageView) this.findViewById(R.id.iv);//扫描病毒进度条pb = (ProgressBar) this.findViewById(R.id.progressBar1);ll = (LinearLayout) this.findViewById(R.id.ll);//设置ImageView背景资源为动画文件iv.setBackgroundResource(R.drawable.anti_anim);//sv用来显示病毒的扫描结果sv = (ScrollView) this.findViewById(R.id.sv);anim = (AnimationDrawable) iv.getBackground();}@Overridepublic boolean onTouchEvent(MotionEvent event) {//如果程序正在杀毒过程中,拒绝再次启动杀毒线程if(flagscanning){return false;}//如果用户触摸屏幕,则开启杀毒线程	if (event.getAction() == MotionEvent.ACTION_UP) {flagscanning= true;anim.start();new Thread() {public void run() {// 获取每一个应用程序的签名,签名须与数据库的签名想比较List<PackageInfo> infos = getPackageManager().getInstalledPackages(PackageManager.GET_UNINSTALLED_PACKAGES | PackageManager.GET_SIGNATURES);//设置进度条的扫描范围pb.setMax(infos.size());int total = 0;int virustotal = 0;//设置初始病毒数为0for (PackageInfo info : infos) {total++;try {sleep(20);//只为便于观察扫描效果和进度,无实质作用} catch (InterruptedException e) {e.printStackTrace();}Message msg = Message.obtain();msg.obj = "正在扫描" + info.packageName;handler.sendMessage(msg);Signature[] signs = info.signatures;String str = signs[0].toCharsString();String md5 = MD5Encoder.encode(str);//将应用程序签名与数据库中保存的签名进行比较,如果相一致,则使病毒数加1,并通过handler在界面显示病毒包名Cursor cursor = db.rawQuery("select desc from datable where md5=?",new String[] { md5 });if (cursor.moveToFirst()) {String desc = cursor.getString(0);msg = Message.obtain();msg.obj = info.packageName + ": " + desc;handler.sendMessage(msg);virustotal++;}cursor.close();pb.setProgress(total);}Message msg = Message.obtain();msg.what = STOP;msg.obj = "扫描完毕 ,共发现" + virustotal + "个病毒";handler.sendMessage(msg);flagscanning = false;pb.setProgress(0);};}.start();}return super.onTouchEvent(event);}@Overrideprotected void onDestroy() {if (db.isOpen())db.close();super.onDestroy();}
}

package com.alex.mobilesafe.util;import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;public class MD5Encoder {//获得传入字符串的数据摘要,并通过与操作转化为字符串形式的摘要信息public static String encode(String source){String result = null;try {MessageDigest md = MessageDigest.getInstance("md5");byte[] output = md.digest(source.getBytes());StringBuffer sb = new StringBuffer();for(int i=0;i<output.length;i++){String s = Integer.toHexString(0xff&output[i]);if(s.length()==1){sb.append("0"+s);}else{sb.append(s);}}result= sb.toString();} catch (NoSuchAlgorithmException e) {//since the exception won't never happen , we can process the exception here .//In normal case , we should always throw the exception .e.printStackTrace();}return result;}
}

运行效果:

 

 

转载于:https://my.oschina.net/AlexZhuang/blog/53335

http://www.jmfq.cn/news/4863727.html

相关文章:

  • 长沙网站制作公司推荐/网络营销和直播电商专业学什么
  • 网站建站怎么分前端和后端/太原seo网站管理
  • 湛江廉江网站建设/网络推广员的工作内容
  • 免费的服务器有哪些/人员优化方案
  • 网站附件下载表格怎么做/企业网络营销
  • 做俄语网站建设/百度站长工具添加不了站点
  • 大麦网的网站建设/网站优化seo教程
  • 高端网站建设公司哪家公司好/全网营销图片
  • 湖北城乡建设网站/鼓楼网站seo搜索引擎优化
  • 让别人看到自己做的网站/百度推广代理商查询
  • 云南做企业建站/西安的网络优化公司
  • 软件测试基础知识/app关键词优化
  • 闸北区网站建设网页设计/曲靖seo建站
  • 做医院网站及微信公众号价格/北大青鸟
  • 上海学做网站/网店推广实训系统
  • 都江堰建设局官方网站/seo做的比较好的公司
  • 东莞免费做网站公司/电商线上推广渠道
  • 佛山网站建设优化制作公司/seo营销怎么做
  • 做网站公司郑州郑州的网站建设公司/百度热榜
  • 网站备案幕布拍照/seo完整教程视频教程
  • wordpress 时间归档/优化大师软件下载
  • 怎么上传做 好的网站吗/工具seo
  • 建立耐受什么意思/seo外包是什么意思
  • 企业做网站建设/北京网站优化校学费
  • 做网站哪里买空间好/广州seo关键词优化外包
  • 网络营销试题/关键词优化排名
  • 学生网站作品/北京网站seo哪家公司好
  • 定制网站建设服务/九江seo优化
  • 设计网站建设方案/百度认证官网
  • 国内做批发的网站/b站视频推广app