自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 收藏
  • 关注

原创 内核自旋锁spin_lock

自旋锁的初衷:在短期间内进行轻量级的锁定。一个被争用的自旋锁使得请求它的线程在等待锁重新可用的期间进行自旋(特别浪费处理器时间),所以自旋锁不应该被持有时间过长。如果需要长时间锁定的话, 最好使用信号量。单处理器的自旋锁:首先,自旋锁的目的如果在系统不支持内核抢占时,自旋锁的实现也是空的,因为单核只有一个线程在执行,不会有内核抢占,从而资源也不会被其他线程访问到。其次,支持内核抢占

2017-05-04 10:56:53 765

原创 内核抢占API

早期的Linux核心是不可抢占的。它的调度方法是:一个进程可以通过schedule()函数自愿地启动一次调度。非自愿的强制性调度只能发生在 每次从系统调用返回的前夕以及每次从中断或异常处理返回到用户空间的前夕。但是,如果在系统空间发生中断或异常是不会引起调度的。这种方式使内核实现得以 简化。但常存在下面两个问题:如果这样的中断发生在内核中,本次中断返回是不会引起调度的,而要到最初使CPU从

2017-05-04 10:55:57 980 1

原创 内核抢占1

一、什么叫抢占所谓抢占,说白了就是进程切换。linux的用户空间,进程A在执行中,来(硬?)中断打断A,从中断处理程序返回时,如果有更高优先级进程B在排队的话,那么执行进程B。 用户空间下进程总是可抢占的在linux的内核空间就不一定了,linux 2.4是不可抢占的,实时性就会降低,如下面这个样子:二、抢占的APIpreempt_enable()  开启抢占

2017-05-04 10:51:58 513 1

原创 OpenVirutualization的Trustzone安全内核SierraTEE架构解析

安全内核服务架构重要的数据结构: struct sw_global global_val; /** *@brief Secure API configuration details for task */typedef struct sa_config_t 创建任务以创建dispatcher任务为例。1. 初始化任务。dispatch_task_

2017-03-22 11:08:39 1762

原创 TrustICE: Hardware-assisted Isolated Computing Environments on Mobile Devices

本ppt是对信息安全综合类顶级学术会议可靠网络与系统DSN2015上的一篇文章的分析,文章利用Trustzone实现了类似于SGX Enclave的安全架构,首次将Trustzone的安全应用部署在了Trustzone普通世界里。利用freescale开发板特有的内存水印技术,以及对硬件中断处理,异常向量表,CPU模式切换事件的拦截,在普通世界里实现了与安全世界等价的CPU状态隔离,运行时内存隔离

2017-03-22 10:27:27 665

原创 InkTag: Secure Applications on an Untrusted Operating System

本ppt是对计算机体系结构顶级学术会议ASPLOS2013上的一篇文章进行的解读。Inktag安全系统利用Intel硬件虚拟化技术,针对云计算应用场景,为保障用户的敏感应用,隐私数据提供隔离保护,利用虚拟化中的nested page技术,确保不可信的OS只能以密文形式访问敏感应用的内存数据。该方案针对强大的操作系统敌手,即使在云主机,云OS不可信的情况下,仍能保证应用和数据的安全。完美适应云计算等

2017-03-17 20:52:11 842

转载 用户空间缺页异常pte_handle_fault()分析

前面简单的分析了内核处理用户空间缺页异常的流程,进入到了handle_mm_fault()函数,该函数为触发缺页异常的地址address分配各级的页目录,也就是说现在已经拥有了一个和address配对的pte了,但是这个pte如何去映射物理页框,内核又得根据pte的状态进行分类和判断,而这个过程又会牵扯出一些其他的概念……这也是初读linux内核源码的最大障碍吧,在一些复杂的处理中,一个点往往可以

2017-03-17 20:29:06 800

原创 内核文件加载执行控制方案实现(win7, win8 64位)--windows内核安全策略的演变

对于xp和32位win7系统,内核层文件加载执行控制主要是通过对系统服务描述符表(SSDT)进行hook来实现。在64位系统下,由于patchguard内核防护技术的存在,SSDT等关键的内核数据结构已无法被第三方驱动程序修改。patchguard技术在windows内核启动阶段开启安全定时器,并对SSDT等关键数据结构的完整性进行定期检查,一旦发现这些数据结构被修改,则立即转入紧急处理模式(多数

2017-03-17 20:16:57 2070

原创 内核文件加载执行控制方案实现(xp和win 7 32)

文件加载执行控制是程序白名单安全系统的技术基础,即在可执行文件(exe),库文件(dll)加载入内存前的一种监控机制,为安全软件提供了一种对系统允许加载运行的程序进行白名单定制的机会。在windows平台下,该方案可以实现在应用层,也可以以设备驱动的形式实现在内核层。若实现在应用层,则需要对explorer.exe和cmd.exe两个系统进程进行运行时代码注入,以分别监控由图形界面和命令行启动的程

2017-03-17 19:51:19 1286

原创 Trustzone安全内核SierraTEE将根文件系统从虚拟盘移至sd卡方案

s3c6410 支持Nand Flash本地启动Linux,包括内核,根文件系统,bootloader均写入在Nand Flash.这样可以独立运行.  很多情况下,Nand Flash的某种原因无法写入内核和Rootfs.而使用tftp下载内核,用NFS启动根文件系统比较慢.s3c6410 支持 SD卡启动,经过改造u-boot可以从SD卡引导内核,这样而Linux 又可以从SD卡的

2017-03-17 19:01:47 484

原创 (TrustCom 2015)基于Trustzone的智能手机双因子认证通用安全架构

本PPT是本人发表在TrustCom2015 大会的论文 TrustTokenF: a Generic Security Framework for Mobile Two-factor Authentication Using TrustZone的会议报告PPT,该论文介绍了使用智能手机代替专有硬件令牌(U盾,银行卡等)实现的通用双因子认证安全架构。方案解决了硬件令牌双因子认证协议操作复杂,部署困

2017-03-17 18:01:45 1327

原创 三星KNOX中Trustzone内核完整性动态度量方案(TIMA架构)解析

三星TIMA方案利用Trustzone安全模块对普通世界操作系统内核提供运行时完整性保护,即使操作系统被攻击者控制,也无法(1)修改原有合法内核代码(2)注入新的内核恶意代码(3)实施return-to-user攻击,将用户空间恶意代码在内核层运行。这种设计思路的最大挑战在于正常世界对自己的系统资源具有完全的控制权,如物理内存,页表及相应的控制寄存器,一旦操作系统被敌手攻破,完全可以通过修改页

2017-03-17 17:34:26 2287

原创 Trustzone安全内核Open Virtualization SierraTEE向Xilinx ZC702移植手册

本文档描述将OV项目向ZC702开发板移植的过程。 第一章.       环境搭建ZC702开发板可以通过SD卡和网络两种方式启动,但是从SD卡启动方式在每次OS内核变化时就需要替换SD卡中的旧OS内核,需要重复插拔SD卡,太过繁琐,不如从网络方式启动方便。这一章便描述如何建立ZC702的网络启动方式,方便以后修改OV内核。网络环境搭建ZC702板和开发主机Host按照下图进行

2017-03-17 16:48:02 2698 3

原创 Controlled-Channel Attacks: Deterministic Side Channels for Untrusted Operating Systems

本PPT是对发表在Security&Privacy 2015 上的一篇文章的研读和解析,该论文介绍了一种针对InkTag,Haven两类主流shielding system提出的一种确定性控制侧信道攻击。Inktag和Haven主要针对不可信的云主机,云OS,利用可信硬件(hypervisor和Intel SGX)为云端敏感应用和隐私数据提供隔离保障。该攻击基于操作系统敌手对敏感应用的页错误中断的

2017-03-17 16:10:33 1214

转载 epoll与线程池实现的服务器端示例

[代码] [C/C++]代码/* Linux 2.6 x86_64 only*/#include  #include  #include  #include  #include  #include  #include  #include  #include #include   #define THREAD_MAX 20 #defin

2014-11-19 10:55:34 867 1

转载 fstab

主要翻译自http://www.tuxfiles.org/linuxhelp/fstab.html,根据自己的理解做了修改和补充 可能玩Linux的朋友都知道fstab这个文件,如果要用好linux,熟悉linux的一些核心配置文件是必要的,而fstab则是其中之一。这个文件描述系统中各种文件系统的信息,应用程序读取这个文件,然后根据其内容进行自动挂载的工作。因此,我们需要理解其中的内容,了解它如

2014-06-12 15:44:13 673

转载 Linux udev 的原理、功能、使用和维护

如果你使用Linux比较长时间了,那你就知道,在对待设备文件这块,Linux改变了几次策略。在Linux早期,设备文件仅仅是是一些带有适当 的属性集的普通文件,它由mknod命令创建,文件存放在/dev目录下。后来,采用了devfs, 一个基于内核的动态设备文件系统,他首次出现在2.3.46内核中。Mandrake,Gentoo等Linux分发版本采用了这种方式。devfs创建 的设备文件是动态的

2014-06-12 15:20:22 2816

转载 Linux修改eth2到eth0

之前在公司提供的虚拟机器上面,一直有个问题用着很不舒服,为什么它的IP选择的设备的eth2的,但是我在/etc/sysconfig/network-scrpts/下面也没有找到ifcfg-eth2的配置文件,这样子,我就没法修改IP了,也没法使用静态IP了,每次都是虚拟机动态分配的IP,这个太麻烦了。有时间解决了下这个问题。首先我声明下,我这里是用的NAT的方式与主机相连的。其实我到现在也还没有弄

2014-06-11 16:00:05 13913 4

转载 XEN网络配置综述

Xen网络概览Xen可配置让它的虚拟机(VMs):使用已有的网络与IP地址.使用新创建的私有IP地址段.Xen在/etc/xen/xend-config.sxp有3个主要配置:...Xen网络概览Xen可配置让它的虚拟机(VMs):使用已有的网络与IP地址.使用新创建的私有IP地址段.Xen在/etc/xen/xend-confi

2014-06-11 11:10:01 6606

转载 80386ASM程序设计基础(十):段描述符,段选择子(zz)

主要介绍段描述符,段选择子   在保护模式下,段是实现虚拟地址到线性地址转换的基础。在保护方下,每个段有三个参数:段基址,段界限,段属性。段基址规定了线性地址空间中段的开始地址,段基址长度为32位,所以任何一个段都可以从32位线性地址空间中的任何一个字节开始,这一点和实式方式不同,实式方式下要求段的边界必须被16整除。段界限规定段的大小,段界限用20位表示,而且段界限可以是字节

2014-05-26 21:01:17 1839

转载 MPQ技术内幕

开始尝试翻译一些英文文章,最近正好对mpq产生兴趣,看到一片文章叫做 inside MPQ,于是翻译一下,就当锻炼自己吧。这篇文章非常的不厚道,在关键地方戛然而止,而且没有更新的迹象。让人郁闷无比。但是还是比国内一些研究MPQ的少的可怜的文章要好些。看了这些文章,无比惋惜国内技术的滞后和黑客技术,逆向工程技术的贫乏。我们总是拿来主义,做应用。自己的原创真的太少了。LEGAL COPYRIG

2014-05-09 11:14:52 1326

转载 软件安装过程解析

软件在安装时,到底做了些什么? 大家每天都在用电脑,可能也经常在自己的电脑上安装软件。就算自己没安装过,至少也看到人家安装过软件。在这里,我不是想教你怎么安装软件,而是想向你展示,软件在安装的过程中,到底都做了些什么动作?为什么有些软件要安装,直接拷贝过去却不能用?为什么一些软件安装或卸载之后要重启。下面要讨论的就是这些问题。 首先,我们探讨一下软件安装的共通部分,说共通,就是在不同版本的

2014-03-21 10:24:25 3222 1

转载 堆和栈

http://m.baidu.com/from=2001a/bd_page_type=1/ssid=0/uid=0/pu=usm%400%2Csz%401320_1003%2Cta%40iphone_2_4.2_1_9.6/baiduid=A235413A50CB2032878F3CCDAE64067C/w=0_10_堆+栈/t=iphone/l=3/tc?ref=www_iphone&lid=1

2014-02-26 14:48:37 577

原创 Vmware虚拟机中的bridged、NAT、host-only

Vmware在网络实验和调式中我们经常用到.Vmware在安装时默认安装了两块虚拟网卡,VMnet1和VMnet8,另外还有VMnet0。这些虚拟网卡的配置都是由Vmware虚拟机自动生成的.它们是bridged(桥接模式)、NAT(网络地址转换模式)和host-only(主机模式)。要想在网络管理和维护中合理应用它们,你就应该先了解一下这三种工作模式。下面Yesure就简

2014-02-24 09:21:34 724 1

转载 va_list详解

va_list深究  2011-04-21 21:06:11|  分类: C/C++|字号 订阅VA函数(variable argument function),参数个数可变函数,又称可变参数函数。C/C++编程中,系统提供给编程人员的va函数很少。*printf()/*scanf()系列函数,用于输入输出时格式化字符串;exec*()系列函数,用于在程

2013-09-25 16:07:37 16597 1

转载 gmp用法

http://5iwen.net/2012/01/gmp-usage-int/

2013-08-25 11:44:44 1050

原创 内核配置方式介绍

1. 如果.config不存在,运行make config/menuconfig时的缺省设置由固化在各个Kconfig文件中各项目的缺省值决定。2. 如果.config存在,运行make config/menuconfig时的缺省设置即是当前.config的设置,若对设置进行了修改,.config将被更新,并将原.config保存至.config.old3. arch/arm/defcon

2013-07-20 21:22:46 764

转载 Linux 内核配置方式详解

Linux 内核配置方式详解在做Virtualization这段时间,编译过多次Linux kernel,编译Kernel过程中配置config这一步是相对来说比较复杂的。对编译内核过程中的配置这一步做详细的说明吧,总结一下,多数内容源于网上的多篇文章。首发在我的博客:http://renyongjie668.blog.163.com/blog/static/1600531

2013-07-20 16:10:16 537

转载 fdisk命令详解

linux_fdisk命令详解fdisk -l  可以列出所有的分区,包括没有挂上的分区和usb设备.我一般用这个来查找需要挂载的分区的位置,比如挂上u盘.  实例解说Linux中fdisk分区使用方法 :http://linux.chinaitlab.com/set/39459.html  笔记:fdisk -l   列出全部的分区  一、fdisk 的介绍;

2013-07-19 15:13:30 853

原创 Trustzone安全内核SierraTEE将根文件系统从虚拟盘移至sd卡方案

s3c6410 支持Nand Flash本地启动Linux,包括内核,根文件系统,bootloader均写入在Nand Flash.这样可以独立运行.  很多情况下,Nand Flash的某种原因无法写入内核和Rootfs.而使用tftp下载内核,用NFS启动根文件系统比较慢.s3c6410 支持 SD卡启动,经过改造u-boot可以从SD卡引导内核,这样而Linux 又可以从

2013-07-19 15:12:39 4689

转载 initrd和ramdisk

Ramdisk简介先简单介绍一下ramdisk,Ramdisk是虚拟于RAM中的盘(Disk)。对于用户来说,能把RAM disk和通常的硬盘分区(如/dev/hda1)同等对待来使用,例如:redice # mkfs.ext2 /dev/ram0mke2fs 1.38 (30-Jun-2005)Filesystem label=OS type: LinuxBlock si

2013-07-19 10:49:15 1042

转载 kernel command1

Linux内核在启动的时候,能接收某些命令行选项或启动时参数。当内核不能识别某些硬件进而不能设置硬件参数或者为了避免内核更改某些参数的值,可以通过这种方式手动将这些参数传递给内核。如果不使用启动管理器,比如直接从BIOS或者把内核文件用“cp zImage /dev/fd0”等方法直接从设备启动,就不能给内核传递参数或选项--这也许是我们使用引导管理器比如LILO的好处之一吧。Li

2013-07-19 10:05:13 450

转载 kernel command

概述内核引导参数大体上可以分为两类:一类与设备无关、另一类与设备有关。内核源码树下的 Documentation/kernel-parameters.txt 文件列出了所有可用的引导参数,并指明了处理每个参数的具体文件。注意:对于模块而言,引导参数只能用于直接编译到核心里的模块,格式是使用"模块名.参数=值"模式指定,比如:usbcore.blinkenlights=1 。动态加载的模块可

2013-07-19 10:04:28 761

原创 trustzone调研

trustzone是一种arm处理器安全架构,是一种虚拟cpu技术,允许cpu状态,mmu单元在安全世界和非安全世界切换。提供了一个隔离的,优先级高于正常世界操作系统的安全执行环境(通常片上rom和ram只能由安全世界访问,使用内部总线连接,一定程度上抵御了简单的硬件攻击)。安全世界与正常世界的切换通过smc指令进入cpu的monitor模式 完成状态切换。安全世界通常占有少量的硬件资源,

2013-07-18 14:50:19 1633

转载 ARM的MMU总结

ARM的MMU总结(2009-11-18 14:08:35)转载▼标签:armmmu杂谈分类: 嵌入式之路MMU,全称Memory Manage Unit, 中文名——存储器管理单元。许多年以前,当人们还在使用DOS或是更古老的操作系统的时候,计算机的内存还非常小,一般都是以K为单位进行计算,相应的,当时的程序

2013-07-02 12:50:27 808

转载 arm架构mmu

http://www.360doc.com/content/11/1023/18/1317564_158491248.shtml

2013-07-02 11:09:34 562

转载 ARM中断返回PC值分析

ARM中断返回PC值分析在ARM程序的开发过程中,对中断的处理是很普遍的、也是相当重要的。Realview MDK使用的RVCT编译器提供了__irq关键字,用此关键字修饰的函数被作为中断来函数编译,即在编译的过程中,编译器会自动添加中断处理过程中现场保护和恢复的代码,减小程序的开发难度,加快软件的开发过程。在理解__irq关键字的作用之前,先看一下ARM核对异常的处理过程

2013-06-29 10:12:16 687

转载 ioctl问题

对于struct file_operations中ioctl消失的学习笔记2011-12-06 15:24:12分类: 原文地址:对于struct file_operations中ioctl消失的学习笔记 作者:tekkamanninja     很久都没有写驱动代码了,对于一些驱动相关的内核变化也没有怎么关心。这次重游《LDD3》获益良多,其值对于struct file_

2013-05-28 20:15:04 688

转载 深入分析任务切换与堆栈

深入分析任务切换与堆栈 ————没细看,只是感觉写的很屌的样子。。。。MARK深入分析任务切换与堆栈 by Liu Wanli 关键字:时间中断、任务切换、堆栈、LINUX0.01 引言: 任务切换与堆栈的关系怎样?很多朋友可能不知道她们之间有什么关系,还有一些朋友可能认为他们之间不会有太大的关系(文献4)。而我认为:任务切换跟堆栈有着密切的关系!下面是我对

2013-05-27 15:50:16 907

转载 euid和uid以及gcc的euid uid链接问题

linux用户标识UID与有效用户标识EUID2009-04-01 21:12:53标签:euiduid有效用户id 用户id linux原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://keren.blog.51cto.com/720558/144908linux系统中每个

2013-05-26 16:13:50 1114

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除