作者:backahasten 发表于小米安全中心微信公众号 0x00 前言 Unicorn可以模拟多种指令集的代码,在很多安全研究领域有很强大的作用,但是由于需要从头自己布置栈空间,代码段等虚拟执行环境,阻碍了他的使用,本文将会分析一个实例,并介绍Unicorn虚拟运行环境的构建. 本文的例子是一个白盒实现的DES算法,在riscrue的文章Unboxing the white box[1]中介绍了白盒攻击的类侧信道和类错误注入方法,并用这个程序作为例子.在riscure的代码中,由于pytho…
只要平时对安全领域感兴趣的读者肯定都听过spectre&Meltdown侧信道攻击,今天简单介绍一下这种攻击的原理( https://www.bilibili.com/video/av18144159?spm_id_from=333.788.b_765f64657363.1 这里有详细的视频介绍,墙裂推荐). 1.CPU顺序执行指令 众所周知,程序是由一条条指令顺序排列构成的,老的cpu也是逐行执行指令:随着cpu的技术发展(著名的摩尔定律),cpu执行指令的速度越来越快,和内存读写速度的差距越…
今天介绍raw hammer攻击的原理:这次有点“标题党”了.事实上,raw hammer是基于DRAM内存的攻击:所以理论上,只要是用了DRAM内存的设备,不论是什么cpu(intel.amd,或则x86.arm架构),也不论是什么操作系统(windows.linux.ios.arm等),都可能受到攻击:常见的raw hanmmer攻击效果: 提权+宕机,却无需利用软件层面的任何漏洞 打破进程间隔离.user-kernel隔离.VM间隔离以及VM-VMM间隔离,对内存地址的内容进行读+写,却无…
第四十三个知识点:为AES描述一些基础的(可能无效)的对抗侧信道攻击的防御 原文地址:http://bristolcrypto.blogspot.com/2015/07/52-things-number-43-describe-some-basic.html 侧信道防御:为什么 对于一个现代的严肃的密码学方案,我们一般需要某种形式的安全证明.在AES中,我们认为如果攻击者不知道密钥,那么它就是一个随机排列.然而如果攻击者有侧信道信息,这可能不再安全.因此,我们能做什么防御它呢?理想的,我们可以创…
第四十五个知识点:描述一些对抗RSA侧信道攻击的基础防御方法 原文地址:http://bristolcrypto.blogspot.com/2015/08/52-things-number-45-describe-some-basic.html 为了让这篇文章保持简单,我们将会我们将讨论所谓的"香草"RSA(在加密中不使用随机性),并强调少量潜在的侧通道攻击和对策. 让我们回顾一下简单的RSA加密方案. 密钥生成:选择一对秘密的素整数\(p\)和\(q\),然后计算模\(N = pq\…
上面一篇介绍了spectre&meltdown基本原理和简单的demo方案,今天继续学习一下该漏洞发现团队原始的POC:https://spectreattack.com/spectre.pdf 1.先展示一下运行结果,便于有个直观的认识:从打印的结果来看,成功猜测出了secret字符串的内容: 2.下面详细解读代码 (1)整个漏洞利用核心的两个函数:rdtscp和clflush都在这两个头文件里申明了: #ifdef _MSC_VER #include <intrin.h> /* f…
前面简单介绍了row hammer攻击的原理和方法,为了更好理解这种底层硬件类攻击,今天介绍一下cpu的cache mapping: 众所周知,cpu从内存读数据,最开始用的是虚拟地址,需要通过分页机制,将虚拟地址转换成物理地址,然后从物理地址(默认是DRAM,俗称内存条)读数据:但内存条速度和cpu相差近百倍,由此诞生了L1\L2\L3 cache:cpu取数据时,会先从各个层级的cache去找,没有的再从内存取:那么问题来了,L3 cache里面有set.slice.line等模块将整个ca…
前面介绍了row hammer,理论上很完美,实际操作的时候会面临很尴尬的问题:内存存储数据最小的单位是cell(就是个电容,充电是1,放电是0),无数个横着的cell组成row,无数个竖着的cell组成colume:数个row和colume组成bank,多个bank组成chip,然后是rank,接着是dimm.channel,总的逻辑包含顺序是:channel->dimm->rank->chip->bak->row/colume->cell:怎么把物理地址映射到具体的…
0x00 前言 随着物联网IOT的飞速发展,各类嵌入式设备, 路由器安全研究也越来越火. 但因为跟以往纯软件安全研究的要求不同, 这类研究往往需要结合相应的硬件知识. 很多朋友困惑如何开始, 甚至卡在了该选何种工具上. 因此汪汪将会在系列文章中分享一些实战案例和相应的工具使用. 希望能对嵌入式安全研究起到抛砖引玉作用. 在WINKHUB这个案例中我们将使用几款简单的入门工具如万用表; UART 转接头和导线等. 同时将介绍一种通过芯片阻断的方式, 获取系统ROOT权限的攻击方法. 这种方法是俗称…
做SCTF时碰到一个没看过的题型,比赛结束之后才知道是orw的一个玩法,测信道攻击.主要特点就是只给使用open,read,但是不给write,即无法把flag输出到终端.这里可以通过把flag读到栈上,再逐个爆破比较,来确定flag.原理和web的时间盲注类似. 下面给出一个UNCTF的测信道攻击的例题: 1 __int64 __fastcall main(__int64 a1, char **a2, char **a3) 2 { 3 unsigned int v3; // eax 4 __i…
摘自: http://www.blogjava.net/BlueSUN/archive/2007/03/17/104391.html Groovy轻松入门--搭建Groovy开发环境 多日来,我发表了多篇关于Groovy的文章,想必大家对Groovy或多或少已经有所了解,今后我会抽空写些Groovy入门性质的文章,供大家参考. 由于时间仓促,水平有限,不足之处请各位朋友多包涵提点,谢谢. 既然是入门,我先不介绍那些IDE的东西,比如Eclipse中的Groovy插件(如果您迫不及待的话,可以先看…
本博文只是简要对JBPM4进行介绍,如需更详细内容请自行google 链接: JBPM入门系列文章: JBPM4入门——1.jbpm简要介绍 JBPM4入门——2.在eclipse中安装绘制jbpm流程图的插件 JBPM4入门——3.JBPM4开发环境的搭建 JBPM4入门——4.封装流程管理的工具类(JbpmUtil) JBPM4入门——5.流程定义的发布.查询.删除 JBPM4入门——6.流程实例的创建和执行 JBPM4入门——7.等待节点的单条线手动执行 JBPM4入门——8.等待节点的分…
[译]Kinect for Windows SDK开发入门(一):开发环境配置 前几天无意中看到微软发布了Kinect for windows sensor,进去看了一下Kinect应用的例子,发现Kinect除了作为xbox360游戏的外设外还能开发一些很酷的应用,而且微软也发布可针对Kinect开发的Kinect for windows SDK1.0正式版本,原本想买一个Kinect for windows sensor来进行开发玩一玩的,可是那个出来没多久,淘宝上只有代购的,而且比Kine…
Yeoman入门之安装及环境配置 http://blog.csdn.net/panlingfan/article/details/27345037 http://www.nodejs.orgYEOMAN的特性 Yeoman 是 Google 官方推荐的一款 AngularJS 开发工具. 闪电般的初始化:项目开始阶段,可以基于现有的末班框架(例如:HTML5 Bolierplate.Twitter Bootstrap)进行项目初始化的快速构建. 了不起的构建流程:不仅仅包括JS.CSS代码的压缩…
文章目录:<从入门到放弃,.net构建博客系统> 从入门到放弃,.net构建博客系统(一):系统构建 从入门到放弃,.net构建博客系统(二):依赖注入 上一篇中有讲到项目启动时会进行ioc的依赖注入,但具体是怎么注入的呢?我们先一步步往下走 一.注册autofac配置 首先bootstraper会进行初始化,接着将当前mvc控制器工厂改为AutofacControllerFactory. public class AutofacConfig { /// <summary> ///…
MyBatis基础入门<一>环境搭建 参考资料链接:http://www.mybatis.org/mybatis-3/ 使用maven构建项目,STS开发工具,jdk1.8 项目结构: mybatis-config.xml文件 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.…
http://www.cnblogs.com/wenjl520/archive/2009/06/02/1494514.html arcgis api for flex 开发入门(一)环境搭建arcgis api for flex 是arcgis 今年四月新推出来的进行RIA开发的flex库,是arcgis server9.3的一部分,使用  ArcGIS API for Flex可以基于ArcGIS Server建立漂亮的富互联网应用程序 rich internet applications (…
Hadoop生态圈-Hive快速入门篇之Hive环境搭建 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.数据仓库(理论性知识大多摘自百度百科) 1>.什么是数据仓库 数据仓库,英文名称为Data Warehouse,可简写为DW或DWH.数据仓库,是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合.它是单个数据存储,出于分析性报告和决策支持目的而创建. 为需要业务智能的企业,提供指导业务流程改进.监视时间.成本.质量以及控制. 2>.数据仓库的特点 第一:数…
Arduino可穿戴开发入门教程Arduino开发环境介绍 Arduino开发环境介绍 Arduino不像我们使用的PC端操作系统一样,可以直接在操作系统中安装软件为操作系统编程.Arduino的软件开发部分需要在PC端进行,硬件只负责执行编译好的程序.所以,本章就来详细地介绍一下Arduino IDE的安装和一些主要的操作. Arduino IDE Arduino IDE是在电脑端用来为Arduino进行程序开发的集成开发环境.Arduino开发程序通常需要使用到编辑器.编译器以及上传工具,A…
flink是一款开源的大数据流式处理框架,他可以同时批处理和流处理,具有容错性.高吞吐.低延迟等优势,本文简述flink在windows和linux中安装步骤,和示例程序的运行,包括本地调试环境,集群环境.另外介绍Flink的开发工程的构建. 首先要想运行Flink,我们需要下载并解压Flink的二进制包,下载地址如下:https://flink.apache.org/downloads.html 我们可以选择Flink与Scala结合版本,这里我们选择最新的1.9版本Apache Flink…
前言: 本文章主要是个人在学习SpringBoot框架时做的一些准备,参考老师讲解进行完善对SpringBoot构建简单项目的学习汇集成本篇文章,作为自己对SpringBoot框架的总结与笔记. 你将会从此篇文章了解到以下四点内容: SpringBoot框架简介 Hello SpringBoot项目的构建 单元测试与热部署 Spring Boot 原理分析和实现 一.SpringBoot框架简介 随着互联网的兴起,Spring势如破竹,占据着Java领域轻量级开发的王者地位. 随着Java语言的…
    既然是入门教程,那当然得基础点,因为搜索duilib相关资料时,发现有些小伙伴到处都是编译错误,以及路径配置错误等等,还有人不知道SVN,然后一个个文件手动下载的.     其实吧,duilib的定位好像是这样的: 有一定的界面基础,懂MFC.WTL.windows消息机制等等. 不然的话,即使环境配置好了,看Demo也绕晕你~\(^o^)/~     所以对于没有任何基础的童鞋,请先打好基础,不然学习duilib会走更多歪路,推荐以下资料:     书籍:<windows程序设计>…
#1.基本环境 环境 版本 jdk 1.7.0_10 ide eclipse-jee-luna-SR2-win32-x86_64 maven 3.3.3 mybatis 3.2.7 mysql 5.1.55 #2.所需jar包 maven的pom.xml 隐藏行号 复制代码 ? pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLS…
现在有许多做开发的转做移动端开发,做J2EE的转做Android开发,我也把自己的一些入门经验与大家分享一下,希望能给你带来帮助. 工具/原料 JDK,ADT,JAVA 方法/步骤   开发工具的准备: 第一个工具:JDK1.7, 第二个工具:Android Developer Tools简称ADT. JDK(Java Development Kit) 是 Java 语言的软件开发工具包(SDK)   只需以上两个工具就可以进行开发了. 初学者经常会陷入误区,去下载Android SDK,ecl…
  既然是入门教程,那当然得基础点,因为搜索duilib相关资料时,发现有些小伙伴到处都是编译错误,以及路径配置错误等等,还有人不知道SVN,然后一个个文件手动下载的.     其实吧,duilib的定位好像是这样的: 有一定的界面基础,懂MFC.WTL.windows消息机制等等. 不然的话,即使环境配置好了,看Demo也绕晕你~\(^o^)/~     所以对于没有任何基础的童鞋,请先打好基础,不然学习duilib会走更多歪路,推荐以下资料:     书籍:<windows程序设计>   …
上一篇:每篇半小时1天入门MongoDB——1.MongoDB介绍和安装 配置环境变量 Win10系统为例 右键单击“此电脑”——属性——高级系统设置——高级——环境变量,添加C:\Program Files\MongoDB\Server\3.0\bin;.注意:要以;隔开各种变量. 这样的话就可以直接在CMD命令窗口中输入mongo 表示环境变量设置成功,并已经连接到默认数据库test中. 我们可以输入mongod --help来查看相关的帮助信息 C:\Users\zouqi>mongod…
有人问我为啥很久不更新博客..我只能说在学校宿舍真的没有学习的环境..基本上在宿舍里面很颓废..不过要毕业找工作了,我要渐渐把这个心态调整过来,就从react-native第一篇博客开始.话说RN也出来很久了 每次我研究都比别人晚一步 不过没关系,意识到了就不算晚.环境搭建了几个小时,中间很正常的遇到了一些错误,于是记录下来过程和问题的解决方法,分享给大家. 转载请注明出处:http://blog.csdn.net/wingichoy/article/details/51791076 为什么要研…
戳更多文章: 1-Flink入门 2-本地环境搭建&构建第一个Flink应用 3-DataSet API 4-DataSteam API 5-集群部署 6-分布式缓存 7-重启策略 8-Flink中的窗口 9-Flink中的Time Flink时间戳和水印 Broadcast广播变量 FlinkTable&SQL Flink实战项目实时热销排行 Flink写入RedisSink 17-Flink消费Kafka写入Mysql 本地安装单机版本Flink 一般来说,线上都是集群模式,那么单机模…
    介绍:       1  Maven是用来管理jar包的一种工具,       2  Maven主要是构建java项目和java web项目        3 maven项目管理所依赖的jar包不需要手动向工程添加jar包,只需要在pom.xml(maven工程的配置文件)添加jar包的坐标,自动从maven仓库中下载 jar包.运行     第一步: 首先下载Maven的两个压缩包          http://maven.apache.org/ 下载共两个zip包. apache-…
java —— 一种可以撰写跨平台应用软件的面向对象的程序设计语言. 很多教程里都要概述java语言的诞生发明.其实像图灵的”图灵机“和”图灵测试“一样,当初的java并不是这样. 是用来操控一些电冰箱电器的一种编程语言.继而演变为了现在的java,当时的名字并不叫java.java的logo标志是一杯咖啡冒着热气,也就是爪哇岛的咖啡豆.因为程序员爱喝咖啡,所以取了现在的名字. 为了走大众化路线,java从1.5版本更新为5.0版本. java下载:包括jdk,jre: http://www.o…