
技术小屋
文章平均质量分 65
sploving
这个作者很懒,什么都没留下…
展开
-
CFI and SFI
看paper时遇见两个名词:CFI(control flow integrity ), SFI(software fault isolation ),那么两者到底有什么区别呢?查了一下文献,得知:SFI 是将代码限制在自己的代码块中。比如两个domainA 和B,A是trust, B是untrust, SFI就是防止B的代码跳转到A中,从而防止恶意攻击。采用的技术就是对于jump这原创 2009-09-08 21:49:00 · 2371 阅读 · 0 评论 -
gcc编译参数
转http://hi.baidu.com/i_love_lei_lei/blog/item/03b3370731885c7102088180.html1、gcc包含的c/c++编译器gcc、cc、c++、g++gcc和cc是一样的,c++和g++是一样的,一般c程序就用gcc编译,c++程序就用g++编译2、gcc的基本用法gcc test.c这样将编译出一个名为a.out转载 2009-11-01 16:17:00 · 1797 阅读 · 0 评论 -
TPM 读写NV
前提:#export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH#tcsd源码如下:#include #include "trousers/tss.h"#define CKERR if(result != TSS_SUCCESS) {perror("erro/n"); return 1;}int main(){原创 2009-12-20 22:03:00 · 2498 阅读 · 0 评论 -
kernel to/from NV
#include #include #include "include/trousers/tss.h"#define CKERR if(result != TSS_SUCCESS) {perror("erro/n"); return 1;}int main(){ TSS_HCONTEXT hContext; TSS_HTPM hTPM; TSS_HPOLICY h原创 2009-12-26 16:12:00 · 813 阅读 · 0 评论 -
google groups 新的地址
group的地址总是被屏蔽,发现一个新的可用的地址:groups.google.is原创 2010-08-21 08:40:00 · 897 阅读 · 0 评论 -
ubuntu 10.04安装IMA
<br />首先编译内核:<br />make menuconfig<br />把CONFIG_IMA*选上<br />然后make -j4;make install, make modules, make modules_install<br />即可<br />在启动时,grub的kernel那一项要加上<br />ima_tcb=1<br />这样就可以查看/sys/kernel/security/ima/里面的东西了原创 2010-09-02 10:14:00 · 1695 阅读 · 6 评论 -
ubuntu10.04,编译xen 4.01
<br />1.下载xen4.01的源码<br />2.安装必须的软件包(请参考http://wiki.xensource.com/xenwiki/Xen4.0)apt-get install bcc bin86 gawk bridge-utils iproute libcurl3 libcurl4-openssl-dev bzip2 <br />module-init-tools transfig tgif texinfo texlive-latex-base texlive-latex-recomm原创 2010-09-03 21:25:00 · 2638 阅读 · 0 评论 -
高端内存
一. 什么是高端内存linux中内核使用3G-4G的线性地址空间,也就是说总共只有1G的地址空间可以用来映射物理地址空间。但是,如果内存大于1G的情况下呢?是不是超过1G的内存就无法使用了呢?为此内核引入了一个高端内存的概念,把1G的线性地址空间划分为两部分:小于896M物理地址空间的称之为低端内存,这部分内存的物理地址和3G开始的线性地址是一一对应映射的,也就是说内核使用的线性地址空间3G--(3G+896M)和物理地址空间0-896M一一对应;剩下的128M的线性空间用来映射剩下的大转载 2010-09-29 14:50:00 · 788 阅读 · 0 评论 -
Linux内核代码之初始化内核临时页表---经典至极(转)
<br /> <br /><br />漫长而黑暗的史前时代终于到了setup。在setup汇编函数中,linux通过设置cr0寄存器的PE位(从实模式切换到保护模式)完成了史前文明到现代文明的转变。在setup时期,linux已经了解到世上可用的内存资源远远不止1MB。此时linux的欲望开始膨胀,最为满足它欲望的第一步,它开始抢占内存资源的前8MB。初始化临时内核页表是在startup_32汇编语言函数中完成的。在ULK所述中,假设内核能容纳于RAM的前8MB空间,然后对RAM的前8MB进行恒等映转载 2010-11-23 17:34:00 · 1222 阅读 · 0 评论 -
enable Selinux
<br />系统开启selinux步骤如下:<br />配置内核config文件,开启SELINUX 获得SElinux策略包以及工具<br /> apt-get install selinux-basics selinux-policy-default1. <br />运行selinux-activate 来配置Grub重启. <br />运行check-selinux-installation 检查selinux是不是装成功。 如果出现FSCKFIX的错误,设置/etc/defaul原创 2011-03-06 22:36:00 · 2797 阅读 · 0 评论 -
安装不同版本GCC
在Fedora 8时,重装编译grub-0.97时,总是出现如下错误:configure: error: GRUB requires a working absolute objcopy; upgrade your binutilsgoogle 了一下,原来是gcc版本不兼容,他要求的版本是3.4,而我的机器是4.1的,只好下载源码重新安装。原创 2009-10-30 10:53:00 · 2357 阅读 · 0 评论 -
09百度笔试试题(转)
转自:http://blog.youkuaiyun.com/haoxing168/archive/2009/10/18/4694620.aspx一。简述链表和数组各自的优缺点。二。程序题,程序大概如下,a为一个字符串数组,字符串中每个字符都是介于a到z的小写字母,且字符串长度不超过20。 (a)描述bbb函数的功能(可用一句话)。 (b)假设N=7,且a={"cafe"转载 2009-10-20 15:48:00 · 702 阅读 · 0 评论 -
Linux 汇编语言开发指南
转自 http://www.ibm.com/developerworks/cn/linux/l-assembly/ 汇编语言的优点是速度快,可以直接对硬件进行操作,这对诸如图形处理等关键应用是非常重要的。Linux 是一个用 C 语言开发的操作系统,这使得很多程序员开始忘记在 Linux中还可以直接使用汇编这一底层语言来优化程序的性能。本文为那些在Linux 平台上编写汇编代码转载 2009-09-09 14:03:00 · 455 阅读 · 0 评论 -
fedora 8 安装 scilab
从源码下的最新的scilab,然后在fc8上编译,遇到不少问题,逐一解决./configure1.hdf5 Could not find hdf5.yum install hdf5-devel2.configure:error: Could not find or use the Java package/jar jhdf5 used by HDF5Java l原创 2009-09-08 21:52:00 · 1776 阅读 · 0 评论 -
xen 编译一个问题
编译xen的时候,在make initrd时容易出现下面的问题:No ata_generic module found during initrd image creation 那么是/lib/modules/2.6.18.8-xen/kernel/driver目录下没有ata这个模块。我们可以把dom0的拷过去。我的内核是2.6.231.查看ata_generic放到哪个目原创 2009-09-28 21:10:00 · 828 阅读 · 0 评论 -
汇编小结
汇编常用的寄存器有:data register:EAX,EBX,ECX,EDXsegment register: CS, DS, EX, FS, GS, SSindex register: ESI, EDI(表示源和目的pointer register: EIP, ESP, EBP EIP 为指令指针, ESP 为堆栈指针,EBP为基址指针寄存器,用来标识栈中某一固定位置,原创 2009-09-21 10:52:00 · 622 阅读 · 0 评论 -
从 2.4 到 2.6:Linux 内核可装载模块机制的改变对设备驱动的影响
源自: http://www.ibm.com/developerworks/cn/linux/l-module26/ 从 2.4 到 2.6,Linux 内核在可装载模块机制、设备模型、一些核心 API等方面发生较大改变,设备驱动开发人员面临着将驱动从 2.4 移植到 2.6 内核,或是使驱动同时支持2.4 与 2.6内核的任务。站在设备驱动开发人员的角度,驱动由一个或几个外部转载 2009-09-22 16:47:00 · 553 阅读 · 0 评论 -
rootkit(1)-adore-ng0.56在Linux2.6应用
自己机器是fc8#uname -r 2.6.18.8-xen源码在/home/sploving/xen1. 下载adore-ng-0.562. cp Makefile.2.6 Makefile并修改相应的项,以适应自己的内核版本。3. make4. ./relink[root@localhost adore-ng-0.56-wztfix]# ./reli原创 2009-09-23 11:19:00 · 2086 阅读 · 1 评论 -
linux 系统调用列表(转)
转自:http://www.ibm.com/developerworks/cn/linux/kernel/syscall/part1/appendix.html本文列出了大部分常见的Linux系统调用,并附有简要中文说明。以下是Linux系统调用的一个列表,包含了大部分常用系统调用和由系统调用派生出的的函数。这可能是你在互联网上所能看到的唯一一篇中文注释的Linux转载 2009-09-24 14:24:00 · 553 阅读 · 0 评论 -
my first LKM
2.6的LKM加载机制和2.4有些区别。下面是我的第一个LKM/*hello.c*/#include #include #include static int hello_init(void) { printk(KERN_ALERT"Hello, world!/n"); return 1;}static void hello_exit(void) {原创 2009-09-24 16:10:00 · 526 阅读 · 0 评论 -
xen 添加hypercall
在linux系统中添加新的系统调用,一般需要三个步骤:1. 注册新的系统调用号2. 更新系统调用表3. 添加新函数在xen中添加一个 hypercall,类似于在linux中添加一个系统调. 基本上也是上面几个步骤。现在举个具体的例子:比如我们要在xen中添加一个打印消息的hypercall,参数有一个,类型为char*, 代表我们要打印的消息. 函数原型为:原创 2009-10-10 17:23:00 · 5679 阅读 · 13 评论 -
虚拟化前沿技术
2010 HyperSafe: A Lightweight Approach to Provide Lifetime Hypervisor Control-Flow Integrity Z. Wang and X. Jiang North Carolina State University The 5th European Conference on Computer Systems [Secure Systems] NOVA: A Microhypervi转载 2011-05-12 14:00:00 · 3021 阅读 · 1 评论