- 博客(17)
- 资源 (11)
- 收藏
- 关注
原创 linux驱动模型学笔记——字符设备号
<br /> <br />内核版本:linux-2.6.34.1<br /> <br />字符设备号<br /> <br />一、简介<br />Linux下的应用程序在访问字符设备时,一般都是通过设备节点访问的。设备节点一般都在/dev目录下。字符设备文件的第一个标志是c,如下所示:<br />[machi@localhostdev]$ ll | grep tty<br />……..<br /> crw--w----.1 root root 4, 0 Sep 26 18:05
2010-09-29 13:30:00
2398
原创 linux驱动模型学笔记——kobject&kset
Linux内核版本:2.6.34.1 想看linux驱动模型好长时间了,老是看一点就坚持不住,结果最后是什么都没有学会,这回又下决心看这个,这次一定要坚持住~~ kobject, kobj_type, kset简介 kobject是linux设备模型中最基本的结构。要说明的是,linux内核虽然由C语言编写,但是内核在实现时,到处都体现出开发者面向对象的思想。所以,kobject也可以理解为所有驱动对象的基类。后面用到的驱动对象,几乎都是kobject的派生类。作为基
2010-09-19 21:42:00
4132
原创 OpenSSL学习笔记——CRL
今天晚上打完球真累,没心思学习了,所以把这一阵学的OpenSSL的CRL大概总结一下。 CRL(CertificateRevocationList),证书撤销列表,是在证书撤销时用的(好像是废话,晕)。当证书因为一些原因(比如,证书到期,证书私钥丢失等)会被CA吊销,CA为了让别人知道某个证书被吊销了,会定期发布一个CRL,CRL包含了在这个CRL发布时,被吊销的证书。客户端
2010-04-29 15:44:00
7600
原创 配置LAMP服务器
环境:Fedora 12,Apache 2.3,MySQL 5.1.44,PHP 5.3.2 我的机子已经安装了Apache和OpenSSL。现在需要安装和配置的是MySQL和PHP。 安装MySQL: sudo yum install mysql mysql-server 安装PHP: 从 http://www.php.net/downl
2010-04-29 15:43:00
774
原创 配置Apache和OpenSSL
环境:Fedora 12,OpenSSL 0.9.8l,httpd 2.3.5,假设,机子上没有安装openssl和httpd。 这篇日志描述了在Fedora 12上编译并安装ApacheWeb服务器,并打开433号端口,提供HTTPS服务。要说明的是,不用在mod_ssl的官网上再下载mod_ssl了,因为现在httpd已经把mod_ssl做为一个模块放到它自己的源码里,只
2010-04-29 15:42:00
7734
原创 OpenSSL学习笔记——哈希表
环境:OpenSSL 0.9.8l,Fedora 12 今天学的是《OpenSSL编程》第四章 哈希表。这一章主要讲了OpenSSL中哈希表的用法,和堆栈一样,OpenSSL实现了一个适用于任何数据类型的哈希表。 下面是哈希表中两个重要的数据结构,这些数据结构的定义在/crypto/lhash/lhash.h中: 这个结构体是一个链表,链表的每一个节点都是
2010-04-29 15:41:00
2647
原创 OpenSSL学习笔记——内存分配
环境:OpenSSL 0.9.8l,Fedora 12 今天学习的是《OpenSSL编程》第五章 内存分配。这一章主要讲了OpenSSL在内存分配时,是如何做的。在C语言中,一般使用的是malloc和free来申请和释放内存的。当然,在OpenSSL中,我们同样也可以使用前面两个函数的使用内存。不过,OpenSSL也为我们提供了一些更强大的内存管理函数。这些函数主要强大在,可以方
2010-04-29 15:41:00
8071
原创 OpenSSL学习笔记——堆栈
环境:OpenSSL 0.9.8l,Fedora 12 今天学的是《OpenSSL编程》第3章 堆栈。这一章讲了OpenSSL中堆栈的用法,OpenSSL实现了一个通用的栈,这个栈可以存储所有的数据类型(因为栈里存的是地址)。 下面是这章中最重要的一个数据结构,STACK,这个数据结构定义在文件stack.h里: typedef struct st
2010-04-29 15:40:00
1875
2
原创 C++内存布局
环境:Windows SP3,VC++6.0 现在很多程序都是用C++写的,要写一个安全又高效的C++程序或者逆向一个用C++编译的程序首先就要知道C++对象在内存是怎么布局的。要声明的一点是,这里的程序没有使用RTTI,所以不太复杂。 在这里首先要说的一点是,C++程序会大量得使用EXC寄存器,因为ECX是用来传递this指针的。class A{
2010-04-29 15:39:00
1037
原创 PE文件学习笔记
环境:Windows XP SP3,VC++6.0 这一个月好像天天都很忙,但到头来也不知道忙了些什么,好像在学习,又好像在玩,好久以前就想看“PE文件格式”,这次才算大概看了一遍,以前以为PE文件是高手才玩得懂的东西,现在看来貌似不是很难。虽然还有一些地方不太清楚,但趁现在头脑还比较清楚,赶紧把已经比较清楚的地方记下来。在这里,我只会记下每个结构的大体意思,和一些
2010-04-29 15:39:00
1165
原创 自己写的改键器——用过滤驱动实现
环境:Windows XP SP3, WDK 7600.16385.0 看了这么长时间驱动,这还是头一回写一个能用的东西。玩游戏的时候经常会用到改键,用过滤驱动实现改键还是比较方便的,而且可以了解一下用户层的程序是怎么得到键盘输入的。 首先,看一下用户的程序是怎么搞到键盘输入的。以前,我们都知道,像键盘这样的慢速设备,系统是用中断对其I/O操作的,其
2010-04-29 15:38:00
2515
原创 Win32结构化异常处理(SEH)——异常处理程序(__try/__except)
环境:VC++6.0, Windows XP SP3 上一篇中,我们看到了如何实现一个终止处理程序,和系统级的异常处理程序,在这一篇中,我们要着重看一下VC++6.0的异常处理程序是如何实现的。 这里要用的结构体有: typedef struct _SCOPETABLE { DWORD previo
2010-04-29 15:37:00
3533
原创 Win32结构化异常处理(SEH)——终止处理程序(__try/__finally)
环境:VC++6.0, Windows XP SP3 当我们想编写一个健壮的程序时,我们会用到异常处理,对各种异常进行考虑并进行处理。现在在各种语言都有自己的异常处理机制,比如C++的try, catch, throw,JAVA也一样。不过它们的实现都要基于OS。 Microsoft为了使系统程序和应用程序更加健壮,把异常处理加入了Windows。这里的
2010-04-29 15:36:00
2277
原创 浮点数的内存表示
判断浮点数是否相等如果用下面的方法: float x = 0.6; if(0.6 == x) { .... } 是不对的,得用下面的方法: if((x - 0.6 = -1e-6)) { ... } 原因是,浮点数在内存中的值不是一个精确值,比如0.6在内存中的值不是绝对与0.6相等。 对于Intel CPU,对32位浮点数的表示
2010-04-29 15:33:00
591
原创 关于栈在函数调用中的作用
环境:VC++6.0 用C语言写的函数,在调用时是怎么调用的,以前老说是通过栈实现的,但到底是怎么实现的,今天才搞清楚。 函数:int fun(int x, int y){ int a; char b; a = 0;
2010-04-29 15:33:00
2139
原创 if-else和switch的效率问题
(环境:VC++6.0 操作系统:Windows XP SP3) 以前以为if-else和switch的效率差不多,用switch能实现的功能,用if-else实现都一样,只是写法有区别而已,其实这两个结构还是有比较大的区别的,switch用的是一个静态查找表,表中存的是各个case句的行号。下面用一个有if-else和switch的例子看一下就知道了: C++源程序:
2010-04-29 15:27:00
1521
转载 Jacorb的配置问题
从JacORB官方网站上下载最新版本的JacORB,解压到本机,例如:D:/JacORB,具体配置过程如下:1将D:/JacORB/etc目录下的jacorb_properties.template文件拷贝到D:/JacORB/classes目录下,并更名为jacorb.properties,这个是JacORB的配置文件,用写字板打开这个文件,找到下面四行:#ORBInitRef.Na
2010-04-29 15:23:00
1083
The Art of C++
2010-02-25
进程间的通信(用4种方法实现)VC实现
2008-12-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人