2009年5月30日星期六

自己动手写操作系统1

自己动手写操作系统
看到这本书的时候是我大二上学期,几乎很多看不懂,秘密糊糊的看了些,没有真正的自己动手,感觉自己的能力要提高才可以,其实不然,可以我过去是多么的幼稚和没有及其强烈的求知欲和好奇心。但是,现在也一点也不晚,我会认真的读这本书同时我也会实践里面的内容,而不是简单的读书,更重要的书中的思想和精神?真的是一本不错的好书。
好,让我们开始第一章
纸上得来终觉浅,绝知此事要躬行。——陆游
用到什么学什么。
只要用心,就没有学不会的东西。
Intel Architecture Software Developer Manual

software: NASM汇编编译器 虚拟机

用NASM编译一下
nasm boot.asm -o boot.img
简单说明一下,我是根据自己平台对书中进行了一些改动,那样我才可以在我的电脑上完成相应的任务,而且我暂时是不会用windowns的,所以有很多将不一样。

当计算机电源被打开时,它会先进行加电自检(POST),然后寻找启动盘,如果是选择从软盘启动,计算机就会检查软盘的0面0磁道1扇区,如果发现它以0xAA55结束,则BIOS认为它是一个引导扇区,也就是我们说的Boot Sector。一个正确的Boot Sector除了以0xAA55结束之外,还应该包含一段小于512B的执行码。一旦BIOS发现了Boot Sector,就会将这512B的内容转载到内存的0000:7c00处,然后跳转到0000:7c00处将控制权彻底交给这段代码。到此为止电脑就不再由BIOS控制了而是变成由操作系统的一部分来控制了。

可以用ndisamw -o 0x7c00 boot.img >> disboot.asm
反汇编查看刚才生成的二进制文件
而真正用的是[root@localhost 1]# ndisasm -o 0x7c00 boot.img >> disboot.asm
其disboot.asm文件中用
00007C09 E9FDFF jmp word 0x7c09
first
这本书,我现在看了真的比较符合现在的学生,更加注重的是感性认识,但是我们感性的认识了还是要上升到理性的认识哦!

magic

关于魔术,我以前也有点喜欢,但是从上次,同学生日聚会,那次亲身体验了近景魔术,感觉真的比较神奇。尽管自己也知道那是手法或者是道具,都是假的,但是我看不出来如何的破绽。现在看了很多教学视频知道了一些基本的手法,当然只是学的一招半式,不敢拿出去卖弄,完全自娱自乐。昨天晚上看了《致命魔术》,那些是职业魔术师,表演大魔术,当然还有危险的魔术,他们玩的也太疯狂了,其实是竞争太激烈了。最后,把自己的家人都赔进去了,甚至连自己也搭了进去,那些真的是太不可思议了,也许在其他的领域里也会有发生这类事件的。当然,我玩魔术不会玩的像他们那么的好,自然也不会像他们那样为了竞争而不择手段,但是也许当我们为了生存有时候不得不那样干,我会给别人更多的关心来化解彼此的矛盾,也许那样付出很多最后什么也得不到,甚至会得到更多的报复和变本加厉的索取。所以,现在魔界有自己规则,那样对每一个人都是有益的。永远,不要太自负了!

记录一些小技巧,其实魔界里面真正的高手会用复杂的方式记录自己魔术技巧的,为了保存自己的技术更防止别人的偷看。而我呢?无所谓了,那些技巧网上也多的是呢?不是什么秘密。

开扇练习了,大概俩周了,还是不是那么的熟练有时开不好。

玩硬币,感觉手还是很生硬,不是很灵活,别人估计可以看的很清楚那是为什么。
用右手把硬币放在左手,合并左手,同时用右手的中指取走硬币,感觉硬币还在你的左手其实已经在右手了。这个技巧很实用!
把硬币可以在自己的手缝自己任意的翻转,也可以藏在任意俩根手指之间。
手心藏硬币。

扑克,变脸:
1.面对观众,把左手中的牌的最后一张准备配合右手同时伸出去,把牌放到右手而后拿上来放在整副牌的上面就OK了,要快,而且要在放上来还在装一会就好了。
2.把牌拉起,同时用握牌的那个手的拇指卡住一张牌,另一个手拉起牌,然后迅速放下就OK了牌已经改变了。
很多时候是需要用小拇指卡牌的,在后面就可以看见魔术的WHY了,只是障眼法而已,一切要快更要会用语言吸引观众。(视频里面告诉,这些小魔术可以泡小MM哦),当然魔术可以提升自己的个人魅力的!
大拇指,要拨牌。可以把多张牌当作一张使唤哦,效果不错,最好是用中指那牌效果更好。
差不多可以学切牌了,其实很好玩。

皮筋:
把十字枷锁,把皮筋拿出来,用一个手指压住皮筋而后想办法把手指转出来就OK了
用俩个皮筋,做翻山,就是把最后一根皮筋放在最上面,而后把交叉住的掩饰起来就OK了

剪绳
看似中间剪断其实是剪断了一个头而已,而后还把断的那里用手握住而后还可以利用再次剪断,感觉还是从中间剪断。
利用吸管和绳子表演,其实吸管已经被剪破了,而后把绳子伸进吸管,对折吸管,拉绳子(奥秘就在这里),剪断吸管,不要拿开哦,拉出绳子(完好无损)。

2009年5月22日星期五

wireless

无线局域网的组建
基础实验
一.实验目的
学习接入无线网络和使用无线网卡及其无线路由器
二.实验原理
局域网的组建原理
无线网卡的配置和无线路由的管理
接入最近的无线路由器
三.实验步骤
1.查找无线网卡,没有则可用外接的无线网卡
2.配置无线网卡,(最好是知道你附近的无线路由的IP地址)然后手动添加静态的IP
不知道则可以用动态的IP,可以从路由哪里获得,但是相对慢一些。
3.找到你要接入的无线的路由,使用电脑中已经安装的软件进行连接,当然你要进行一些简单的设置,选择您的名字(就是你在别人的无线网络中显示的名字),进行必要的配置,设置为基础类型,激活,然后就好了。刷新,看看无线网络中有多少用户和无线的路由,选择一个接入吧!
4.点对点的接入,从您的主机和您想接入的主机进行连接,其实很简单(可惜我没有抓图)点击连接就可以,或者是激活。
5.查看你是否已经建立了连接,在DOS命令行中输入ping 对方的IP或者是你接入的路由IP
如果通了,那么就已经可以进行通讯了,相当于一个局域网了。
6.进入到无线路由里面查看和进行必要的设置,在浏览器里面输入路由的IP进行登录。
进入了登录界面,输入用户名和密码,如果正确就进入了管理界面了,可以对它进行设置了,想要登录外网,当然要对它进行设置了,当然是老师已经设置好了!我们只是看看它设如何设置的,还有VLAN和WLAN的设置还有最大的通信量等等!
四.实验心得
简单的无线网络的配置及其使用就是这些,但是那些是刚刚进入无线网络的大门,所以还是要好好的学习的和查看更多的资料。感谢老师提供的设备和对我细心的讲解,当我对网络设置有疑问的时候。现在,还是没有想清楚为什么,别人可以ping的通我,但是我ping不通它,(防火墙也是关闭的,也许哪里有设置,我对Windowns不是很熟悉,我用的是LINUX系统,但是也不影响对无线网络的了解和应用)

抓包实验
一.实验目的
抓获无线网络中的数据,分析网络的中的数据报。
学习使用一些相应的软件来完成实验
网络协议开发分析,局域网监控,网络故障排除,企业应用,如流量分析。
二.实验原理
无线网络的技术规范,频率,编码方式,信道
每个BSS包含一个AP,BSSID一般为AP的MAC地址,多个BSS可以通过DS(Distribution System) 组成ESS(Extended Service Set),并使用ESSID来标识,ESSID一般为32个字符,当用作接入网时,多采用基础设施网络,此时DS一般为有线网络(例如以太网)
802.11帧结构 及其:管理帧的subtype 控制帧的subtype 数据帧的subtype
TCP/IP的三次握手
原理区分为:旁听模式、旁路模式、网关模式、网桥模式4种
三.实验步骤
1.安装omnipeek软件(安装老师讲解的进行安装,过程有点慢)之后,最好是自己查看帮助文件和利用网络进行搜索相关的资料进行实验。
学会了基本的使用就开始真正的实验,进行抓包,而后进行分析,抓到的每一个协议和报文进行分析和理解。
2.当然要进行这样的实验,基本实验还是要进行的!就是配置无线网络,(步骤是按照基本实验进行就可以了)
3.抓获你想要的进行分析和研究(在老师的指导下,我学会了抓取别人在网上进行的帐号与登录密码)分析TCP/IP的三次握手之后就可以看到你要的了,而且是明文,(看来以后上网还是要小心一点)。
4.在抓取之后,最好停止不断的抓取,这样便有分析。
四.实验心得
以后进行网络通讯时要时刻防范,现在准备学点关于真正网络安全的知识,尽管我们也上网络安全这门课但是只是原理,没有实际的,所以要进行自我学习和进行实战才可以,不攻击别人,但是也不让别人攻击自己!分析网络中的报文和协议,真正的理会网络是如何进行通讯和连接的。

路由器桥接实验
一.实验目的
把俩个或者多个路由器进行桥接。
二.实验原理
桥接(WDS):用无线信号把两个网络连接起来,不能再为无线客户端提供无线接入。
三.实验步骤
  两台TP-Link无线路由器
路由一:进入无线路由设置界面
1、进入网络,ip地址:192.168.1.1;子网掩码:255.255.255.0(其实上面已经设置好了)
2、进入设置向导,设置上网方式(可不设置,已设置好)
3、进入无线设置,频段设置为6(其他的也行,但两路由设置相同)重点:开启bridge功能,输入路由二的mac地址,开启安全设置 默认的就行了。
4、启用DHCP功能,开始ip:192.168.1.100;结束ip:192.168.1.199(这个可以根据个人设置,只要符合TCP/IP协议)。
5、以上步骤边设置边保存
路由二:进入无线路由二的设置界面
1、进入网络,设置ip地址:192.168.2.1;子网掩码:255.255.255.0
2、进入设置向导,选择自动,获取ip(动态ip)
3、进入无线设置,频段设置为6,开启无线功能;开启ssid广播;开启bridge,输入路由一的mac地址,开启安全设置(两个路由要一模一样)
4、启用DHCP功能,设置与路由一的一样 最后用一根网线把路由二的lan1与的网络接口相连,这时候就可以无线共享了
以上是设置全过程。(是参考网上的进行设置的,如有类同纯属巧合。)
四.实验心得
思考有没有更好的办法进行呢?
覆盖(WDS+AP):用无线信号把两个网络连接起来或增大无线客户端的接入范围,且可以为无线客户端提供无线接入。这样看来似乎覆盖更加好一点!
以后有条件自己也搭建一个小型的无线局域网,现在我们宿舍用的是有线应该很多人用的是有线,但是随着笔记本PC和LAPTOP的广泛使用还有无线网络技术更加的成熟,无线的应用将会更加的普及,所以现在还是有必要学好的!

破解实验
一.实验目的
破解客户端 wep
二.实验原理
BT2、BT3 下破解客户端 wep
三.实验步骤
BACKTRACK3_VMWare 映像文件的安装。把镜像安装到VM虚拟机里面,(过程也可以参考老师给的文件里面的backtrack3基础篇pdf),
老师告诉我的方法是用手动破解,具体参看了使用backtrack3使用全解_WEP破解PDF里面的设置。
1.查看当前的网卡用ifconfig -a
2.在USB接口已经插上了无线网卡,所以用ifconfig -a rausb0 up
使用如 Kismet、Airosnort 等工具来扫描当前无线网络的 AP, 找到了一个,可以看到,是有 WEP 加密的,记下它的 MAC 和频道,就是 channel。
(*其实下面是我摘写的,并没有真正的实验,实验室的电脑太慢了)
3. 然后,我们需要将网卡激活成 monitor 模式,才可以进行后续的破解,命令如下:
airmon‐ng start rausb0 6,这里这个 6 就是刚才我们发现的 AP 的频道,可以不输入,但输入会提高精确度。 然后输入下列命令开始抓包
airodump‐ng ‐w ciw.cap ‐‐channel 6 rausb0
这里 ciw.cap 就是我设置的抓包文件名,cap 文件名自已任意设置。
4.里为了加快 IVs 的获取,可以进行 ArpRequest 注入式攻击,这个很重要,实际入侵都会用到,可以有效提高抓包数量及破解速度,命令如下:
aireplay‐ng ‐3 ‐b AP's MAC ‐h Client's MAC ‐x 1024 rausb0
5.然后,就可以同步开启 aircrack‐ng 来进行同步破解了,命令如下:
aircrack‐ng ‐x ‐f 2 ciw.cap 这里‐x 是暴力破解模式,‐f 指的是复杂度为 2,后面是我
即时保存的那个抓包文件
四.实验心得
实验没有完成,而且我的电脑有点问题,没有办法进行无线网的实验,我是个Linux爱好者,所以对这个实验比较感兴趣,所以就把一些实验中的一些简单步骤记录了,真的希望以后有机会再做这个实验,感觉比较有意思!
感谢老师告诉我们很多的知识,还有有用的文档。
--
西邮: gaowei
Welcome my new blog:
http://gaowei.yo2.cn/


回复

转发

2009年5月14日星期四

vim 要不断学习

关于vim,我只是懂一点,尽管使用了很长的一段时间,当然也知道它有很强大的功能,但>是一直没有使用,没有用处,但是最近认识到如果学习了更加强大的功能的话,应该可以提
高我工作的效率,“磨刀不误砍材工”。值得学习vim更多的功能,从何学起呢?当然是从帮>助文件开始了。
进入vim之后:help里面有很多的.txt想看这些文件请继续:help 您要的文件名
如果要退后则按ctrl shift o
今天主要学:help usr_08.txt是关于分屏显示的
如果你进入一个文件那么想分屏而且打开同一个文件,那么就用:split
如果你想在这个窗口打开另一个文件那么用:split 文件名,打开一个新的窗口用:new
在编辑到这里由于一些错误的操作导致把这文件关闭了,而我还没有保存,还好vim为我保>存了,.vim.swp用vim -r .vim.swp就恢复了这个文件。
上面的分屏是上下分的,那左右分呢,用:vsplit 而打开一个新的用:vertical new
在vim里面末行里面也可以用Tab键补全,只是它从a~Z自动补全,而且可以变化
退出所有窗口:qall,保存所有窗口:wall
在一个窗口打开几个文件用vim -o one.txt two.txt three.txt
比较俩个文件用vimdiff main.c~ main.c当然这俩个文件在同一窗口。

2009年5月12日星期二

/etc下的一些文件

adjtime - correct the time to synchronize the system clock
# Aliases in this file will NOT be expanded in the header from
# Mail, but WILL be visible over networks or from /bin/mail.
# 对一些用户和服务使用者 设置为root
# /etc/anacrontab: configuration file for anacron
ant是一个基于JAVA的自动化脚本引擎,脚本格式为XML。除了做JAVA编译相关任务外,ANT还可以通过插件实现很多应用的调用。
声卡配置文件/etc/asound.conf
显卡模块fb.modes

smbclient - ftp-like client to access SMB/CIFS resources on servers

终端一些设置可以在/etc/bashrc文件进行设置

在其他的shell中语法规则也有所不同,请注意
csh配置文件/etc/csh*

Fedora下的一些文件系统/etc/filesystems

在文件/etc/gnokiirc # Set port to the physical port used to connect to your phone.# 真的可以吗

Gpm ( 通用鼠标守护进程 ) 是为控制台下运行的程序提供鼠标支持的服务器。它不仅提供了通用的剪切和粘贴支持,它的库文件还被许多程序( 如 links ) 用来在程序里实现鼠标。它对桌面电脑很有用,尤其是使用 (B)LFS 的安装指导时 - 在两个控制台之间拷贝和粘贴总比手动输入容易

/etc/inittab是对启动时候的一些设置是比较重要的一个文件。

logrotate is designed to ease administration of systems that gener-
ate large numbers of log files. It allows automatic rotation, com-
pression, removal, and mailing of log files. Each log file may be
handled daily, weekly, monthly, or when it grows too large.

ltrace.conf 里面有关于C语言的类型简单说明还有一些.h文件下的函数

minicom - friendly serial communication program

/etc/mtab 是硬盘的信息

/etc/my.cnf 是一些mysql的设置

原来在/etc/Muttrc文件中也有mutt的配置

/etc/named.conf是一个链接文件,在配置DNS用到
named.conf -> /var/named/chroot/etc/named.conf

今天早上刚听我们老师讲了ODBC
/etc/odbcinst.ini 是对数据库和嵌入式相关Included in the unixODBC package
里面是对MySQL和PostgreSQL的一些设置

关于一些密码的设置在/etc/passwd

一些关于颜色的设置/etc/pinforc还有和keybinndings

/etc/profile这个文件还是比较重要的
# System wide environment and startup programs, for login setup
# # Functions and aliases go in /etc/bashrc
#

/etc/protocols一些协议和端口号
/etc/services 这里有更多

/etc/rc是关于一些服务的一些设置
rc -> rc.d/rc
系统启动时候的一些设置/etc/rc.sysinit

DNS的设置/etc/resolv.b 但是还有resolv.conf和resolv.conf.bak其实起作用的是resolv.conf
/etc/rsyslog.conf 日志# Log all kernel messages to the console.

/etc/rwtab不知道为什么对一些文件进行说明

/etc/shells这里有shell的种类

/etc/sudoers是可以使得普通用户有超级用户权限

/etc/vimrc是对vim的一些设置还有virc也可

/etc/wgetrc是对wget的一些设置

/etc/yum.conf是对yum的一些

2009年5月3日星期日

修身,齐家,治国,平天下

这是我的一个生活中的老师告诉我的!
五一的时候,我祝福他!他又给了一些关于修身的名句!很感谢元老师!
修身子的每一天,
早上起来添点盐,
旋转行走守涌泉。
修身太极随意玩,
气沉丹田歌委婉,
俩手空松肩肘沉,
太极推手显奇功!
笔落曾经惊风雨,
而今诗成泣鬼神。
百亩荒漠变绿洲,
鸟语花香鱼戏水!
冬练三九抗严寒,
赤日炎炎战黄沙。
手植十万绿生灵,
现已成为栋梁才。
学文习武明是非,
修真养性乐无边。

linux 模块编译

一个简单的模块
#define MODULE
#include <linux/module.h>
int init_module(void)
{
printk("<1> Hello World!\n");
return 0;
}
void cleanup_module(void)
{
printk(" <1>Goodbye!\n");
}
开始的时候用gcc -c hello.c
hello.c:2:26: 错误:linux/module.h:没有那个文件或目录
之后编写了一个Makefile文件
obj-m := hello.o
KERNELDIR ?= /lib/modules/$(shell uname -r)/build
PWD ?= $(shell pwd)
defalult:
make -C ${KERNELDIR} M=${PWD} modules
install:
insmod hello.ko
uninstall:
rmmod hello.ko
clear:
make -C ${KERNELDIR} M=${PWD} clean
之后,用make就可以编译成功了!
加载模块#insmod hello.ko
卸载模块#rmmod hello
查看#tail /var/log/messages当然也可以用dmesg查看!
May 3 22:23:26 localhost kernel: Hello World!
May 3 22:24:11 localhost kernel: <1>Goodbye!
如何不编写Makefile文件也可以编译成功呢?思考中!
lsmod命令
调用lsmod程序将显示当前系统中正在使用的模块信息。实际上这个程序的功能就是读取/proc文件系统中的文件/proc/modules中的信息,其命令格式为:#lsmod
ksyms命令
ksyms这个程序用来显示内核符号和模块符号表的信息。与lsmod相似,它的功能是读取/proc文件系统中的另一个文件/proc/kallsyms

time