demi的博客

漏洞挖掘、利用及修复——从人工到自动的跨越

随着互联网的普及,各类App如雨后春笋般产生。受限于代码质量,App中或多或少的会存在各类漏洞。据统计,CVE(http://cve.mitre.org/)及CNNVD(http://www.cnnvd.org.cn/)能够涵盖的漏洞多达100000个,严重威胁着网络及用户安全。当前,二进制漏洞挖掘主要依靠专业人员的人工审计,从而能够提供准确的漏洞点、漏洞利用及修补方案。

然而,人工审计与挖掘存在以下缺陷:

1. 开发团队往往缺少专业的安全人员,不能及时发现漏洞;

2. 面对数量庞大的漏洞,安全人员疲于应对。而自动化漏洞挖掘能够为人工审计提供良好的补充,也更为经济。

那么要构建这样一个自动化漏洞挖掘的系统需要哪些技术呢?下面,我们介绍一些具有代表性的相关技术。

一、自动化漏洞挖掘技术

当我们拿到一个App以后,首要的工作是找到该App中的漏洞点。从被检测程序是否被运行的角度可知,自动化漏洞挖掘技术可分为静态分析、动态分析及混合分析。

主流物联网无线技术都在这了!

本文涉及:蓝牙,WiFi,BLE,Zigbee,Z-Wave,6LoWPAN,NFC,WiFi Direct,GSM,LTE,LoRa,NB-IoT和LTE-M。小隐根据它们的功能,数据速度和操作范围不同而成几个大类。

点对点技术

点对点即表示两个设备连接在一起以进行直接通信。通常只有两个设备可以参与对等连接。

Bluetooth Classic (经典蓝牙)

最知名的点对点无线技术当属蓝牙无疑了。将手机连接到蓝牙扬声器时,蓝牙扬声器是手机和扬声器之间即为点对点无线连接。

由于相对较短的工作范围,蓝牙功耗相当低。它比WiFi消耗更少的功率,比蜂窝技术少得多,但仍远远超过蓝牙低功耗或Zigbee等技术。

WiFi Direct

大家都知道WiFi,但很少有人听说过WiFi Direct,即便是几乎所有手机和平板电脑都支持它。与蓝牙一样,但与传统WiFi不同,WiFi Direct是一种点对点无线技术。

图像识别的未来:机遇与挑战并存

本文转载自公众号微软研究院AI头条(ID:MSRAsia)
本文作者:代季峰、林思德、郭百宁

编者按:自1998年成立以来,微软亚洲研究院一直致力于推动计算机科学领域的前沿技术发展。在建院20周年之际,我们特别邀请微软亚洲研究院不同领域的专家共同撰写“预见未来”系列文章,以各自领域的前瞻视角,从机器学习、计算机视觉、系统架构、图形学、自然语言处理等多个方向出发,试图描绘一幅未来科技蓝图。

在计算机视觉领域,图像识别这几年的发展突飞猛进,但在进一步广泛应用之前,仍然有很多挑战需要我们去解决。本文中,微软亚洲研究院视觉计算组的研究员们为我们梳理目前深度学习在图像识别方面所面临的挑战以及具有未来价值的研究方向。

识别图像对人类来说是件极容易的事情,但是对机器而言,这也经历了漫长岁月。

在计算机视觉领域,图像识别这几年的发展突飞猛进。例如,在PASCAL VOC物体检测基准测试中,检测器的性能从平均准确率30%飙升到了今天的超过90%。对于图像分类,在极具挑战性的ImageNet数据集上,目前先进算法的表现甚至超过了人类。

迁移学习在自然语言处理领域的应用

迁移学习

迁移学习近年来在图形领域中得到了快速的发展,主要在于某些特定的领域不具备足够的数据,不能让深度模型学习的很好,需要从其它领域训练好的模型迁移过来,再使用该模型进行微调,使得该模型能很好地拟合少量数据的同时又具备较好的泛化能力(不过拟合)。

在迁移学习任务中,需要事先定义一组源数据集合,使用该集合训练得到预训练好的模型,该模型具备了源数据集合中的一些知识,在目标数据集合上微调该预训练的模型,使得模型能够很好地完成目标数据集合定义的任务,即完成了迁移学习。

由于深度学习模型结构复杂,在NLP领域中迁移学习不够成熟,不知道如何进行迁移、迁移模型的哪个结构部分、源数据集合与目标数据集合之间需要满足怎样的关系。本文以CNN文本分类任务为例进行描述,总结一下迁移学习在NLP领域文本分类任务中的一些经验。

CNN文本分类模型框架

机器视觉中工业相机常用参数

工业相机是机器视觉系统中的一个关键组件,其最基础功能就是将光信号转变成为有序的电信号。选择合适的工业相机也是机器视觉系统设计中的重要环节,工业相机不仅是直接决定所采集到的图像分辨率、图像质量等,同时也与整个系统的运行模式直接相关。

工业相机主要参数

1. 分辨率(Resolution):相机每次采集图像的像素点数(Pixels),对于工业数字相机一般是直接与光电传感器的像元数对应的,对于工业数字模拟相机则是取决于视频制式,PAL制为768*576,NTSC制为640*480。

2. 像素深度(Pixel Depth):即每像素数据的位数,一般常用的是8Bit,对于工业数字数字相机一般还会有10Bit、12Bit等。

3. 最大帧率(Frame Rate)/行频(Line Rate):相机采集传输图像的速率,对于面阵相机一般为每秒采集的帧数(Frames/Sec.),对于线阵相机机为每秒采集的行数(Hz)。

详解 RNN 文本分类模型的架构

典型 RNN 模型

下图是典型的 RNN 模型,X 是输入,对文本经过嵌入层嵌入处理,再进入 RNN,RNN 的后面是全连接层,输出各个类别的概率。

详解 RNN 文本分类模型的架构

下面来描述一次数据从输入到输出的完整过程:

在自然语言处理中,不管是中文还是英文,首先第一步的任务是如何将文本数据数值化。对于中文,可以先建立词汇表,给词汇表中的没歌词建立唯一的 id 标识(数字),这样每段文本都可以用一串数字 id 来表示,然后就能进行词嵌入操作,英文的处理方法也类似。

对文本预处理时,由于每条文本的长度不一,需要给输入统一规定长度(seq_length),超过的截断,不足的填充。假设有 N​ 段文本(text),统一长度后就变成了 [N, 1, seq_length]​大小的矩阵,矩阵的每一行代表一段文本,大小为​[1, seq_length]​。

什么是离屏渲染?什么情况下会触发?该如何应对?

离屏渲染就是在当前屏幕缓冲区以外,新开辟一个缓冲区进行操作。

离屏渲染出发的场景有以下:
  •   圆角 (maskToBounds并用才会触发)
  •   图层蒙版
  •   阴影
  •   光栅化

为什么要有离屏渲染?

大家高中物理应该学过显示器是如何显示图像的:需要显示的图像经过CRT电子枪以极快的速度一行一行的扫描,扫描出来就呈现了一帧画面,随后电子枪又会回到初始位置循环扫描,形成了我们看到的图片或视频。

为了让显示器的显示跟视频控制器同步,当电子枪新扫描一行的时候,准备扫描的时发送一个水平同步信号(HSync信号),显示器的刷新频率就是HSync信号产生的频率。然后CPU计算好frame等属性,将计算好的内容交给GPU去渲染,GPU渲染好之后就会放入帧缓冲区。然后视频控制器会按照HSync信号逐行读取帧缓冲区的数据,经过可能的数模转换传递给显示器,就显示出来了。具体的大家自行查找资料或询问相关专业人士,这里只参考网上资料做一个简单的描述。

Unity 2019.1 Alpha新功能:增量式垃圾回收

我们为Unity 2019.1a10中加入了实验性新功能:Incremental Garbage Collection增量式垃圾回收。本文将介绍增量式垃圾回收功能,如何启用以及未来开发计划。

Unity 2019.1 Alpha新功能:增量式垃圾回收

为什么使用增量式垃圾回收

C#语言使用托管内存和自动垃圾回收,这意味着它使用自动化方法跟踪内存中的对象,然后释放不再使用对象的内存。

这种做法的优点是,开发者不必手动跟踪释放不需要的内存,因为垃圾回收器会自动执行此操作,这样会使开发者的工作更轻松,同时避免出现潜在Bug。缺点是垃圾回收器需要一些时间完成工作,而开发者或许不希望将特定时间用于此处。

人工神经网络真的像神经元一样工作吗?

来源:Medium/编译:weakish

编者按:Google产品经理Yariv Adan讨论了困惑很多人的问题:人工神经网络和人类大脑中的神经网络到底有多像?

人工神经网络和机器学习已经成为大众媒体的热门主题。智能机器这一想法勾起了很多人的想象,而且人们特别喜欢把它和人类放一起比较。特别是有一个关于人工智能的底层机制的基础问题经常出现——这些人工神经网络的工作方式真的和我们大脑中的神经元相似吗?

Tl;Dr

不。尽管从高层概念上说,ANN(人工神经网络)受到了大脑中的神经元和神经网络的启发,但这些概念的ML实现和大脑的工作方式大有径庭。不仅如此,随着这些年来ML领域的进展,新的复杂想法和技术的提出(RNN、GAN等)——这一联系进一步削弱了。

关键相似点

前馈全连接网络的高层架构和一般原则体现了人工神经网络和大脑中的神经网络的相似性。

从高层看,大脑的神经元由三部分组成: