2008年4月23日星期三

卡巴斯基的病毒分类及命名

卡巴斯基将所有的恶意程序分为四类:网络蠕虫、传统病毒、木马、其它恶意软件。

网络蠕虫指通过局域网或Internet传播,具有如下目标的程序——
渗透远程机器
在受害机器上加载自己的拷贝
进一步向新的机器传播网络蠕虫利用不同的网络系统进行传播:Email、及时通讯系统、文件共享系统(P2P)、IRC通道、局域网、广域网等等。

传统病毒是指那些在单个机器内传播自己拷贝的程序,它们的目的是:
当满足一定的条件时加载并执行自己的代码
在受害机器上渗透到其它资源
这类病毒不会象蠕虫一样,利用网络资源来渗透到其它机器。只有当被它们感染的目标被用户在其它机器上加载时,它们才能渗透到另一台没被感染的机器。

木马程序是指不被用户知晓的情况下,进行如下行为的广泛一类程序:
收集数据并发送给网络犯罪者
恶意改变或毁坏数据
导致计算机故障
利用被害计算机的能力进行恶意或犯罪目的,比如发送垃圾邮件

其它恶意软件包括黑客工具和其它一些恶意程序,比如:
病毒、木马或蠕虫的生成工具
制造恶意软件的程序库
加密被感染文件以逃避反病毒软件的黑客工具
妨碍电脑正常功能的玩笑程序
故意误导用户,使之不能正确了解其在系统中行为的程序
其它被设计来直接或间接波坏本地或网络计算机的程序

一、网络蠕虫网络蠕虫按照它们的传播途径又分为如下类型——
通过Email传播的蠕虫
通过及时通讯系统传播的蠕虫
通过Internet传播的蠕虫
通过IRC传播的蠕虫
通过文件共享网络传播的蠕虫

1.1 通过Email传播的蠕虫。这类蠕虫的特点就是会自动收集被感染机器上的邮件地址,并自动向外发送带毒(自身拷贝)的邮件。卡巴斯基命名为——
Email-Worm.HTML.xxx :利用Email传播,但感染方式是在邮件的HTML格式代码中包含可执行的ActiveX对象
Email-Worm.JS.xxx :包含在邮件中的恶意代码是Javascript程序
Email-Worm.VBS.xxx :包含在邮件中的恶意代码是Vb Script脚本
Email-Worm.PIF.xxx :包含在邮件中的病毒体是标准的windows PIF文件
Email-Worm.Win32.xxx :以邮件附件的方式传播的32位windows exe病毒
I-Worm.Win32.xxx :没有附件,只在自动发送的邮件中包含有发送邮件机器上带毒文件的链接Net-Worm.Win32.xxx :除了Email外,还能以多种方式通过网络传播

1.2 通过及时通讯系统传播的病毒。
IM-Worm.Mac.xxx, IM-Worm.OSX.xxx :这两类都是感染Mac OS X系统及其上的应用程序。IM-Worm.Win32.xxx :windows系统上的及时通讯蠕虫

1.3 通过Internet传播的蠕虫部分Email蠕虫也同时利用Internet传播,卡巴仍旧将它们命名为Email-Worm.xxxWorm.Win32.xxx :32位windows系统上的蠕虫,病毒体为win PE文件。Worm.SymbOS.xxx :Symbian OS上传播的蠕虫
Worm.SunOS.xxx :Solaris/SunOS 上传播的蠕虫,有一些会攻击IIS Server
Worm.OSX.xxx :Mac OSX上的蠕虫,有一些会通过蓝牙传播
Worm.FreeBSD.xxx :FreeBSD上传播的蠕虫
Net-Worm.Win32.xxx :利用Windows漏洞进行主动攻击并传播的蠕虫,比较著名的象冲击波、Nimda等
Net-Worm.Linux.xxx :利用Linux系统漏洞传播的蠕虫
Net-Worm.Perl.xxx :用Perl写的通过某些基于Perl的有漏洞的论坛传播的蠕虫

1.4 IRC聊天系统蠕虫。其实也是一种及时通讯蠕虫,但卡巴将它们单列出来了。
IRC-Worm.Win32.xxx :病毒体是win32可执行文件,自动向IRC的活动联系人发送带毒链接IRC-Worm.VBS.xxx :病毒体为VB Script,通过IRC通道传播
IRC-Worm.MSWord.xxx :能够利用IRC传播的Word宏蠕虫
IRC-Worm.IRC.xxx :在IRC内利用mIRC客户进行传播的蠕虫,本身可能是一个批命令或VBE程序IRC-Worm.DOS.xxx :病毒体为DOS可执行文件,利用mIRC客户传播

1.5 通过文件共享网络(P2P)传播的蠕虫。
P2P-Worm.Win32.xxx :目前只有这类,病毒体为Win32 PE文件,将自身拷入p2p系统的共享文件夹,有的会相应p2p请求并将自身传播给每个客户


二、传统病毒
2.1 文件或引导区病毒这类病毒非常多,卡巴命名第一个.分隔符前一般为Virus,第二个是操作系统,比如DOS、Win9x等
2.2 宏病毒
Macro.AmiPro.xxx
Macro.Excel.xxx
Macro.Excel97.xxx
Macro.Word.xxx
Macro.PPoint.xxx
Macro.MSWord.xxx...
第一部分为Macro,第二部分是应用程序的名字

2.3 脚本病毒
Virus.BAT.xxx :BAT脚本病毒
Virus.WinHLP.xxx :Windows帮助文件脚本病毒
Virus.JS.xxx :JavaScript脚本病毒
Virus.WinINT.xxx:Inf脚本病毒
Virus.PHP.xxx :PHP脚本病毒
Virus.VBS.xxx :VbScript脚本病毒

三、木马卡巴将木马按照其主要行为特征分为如下类型——

后门木马:被用于攻击者对受害机器远程控制的木马
普通木马:没有其它类典型特征的木马
偷密码的木马:主要目的是盗取系统密码的木马
点击木马:将被害机器上重定向到一个特定的Web站点或其它Internet资源
木马下载器:在用户不知情的情况下下载另一个木马或广告等其它恶意软件
木马释放器:在被害机器上释放并加载另外的木马
代理木马:这类木马在被害机器上象一个代理样运行,提供匿名的Internet访问。比如被垃圾邮件发送者用来发出垃圾邮件
间谍木马:这类木马收集并盗取受害机器上的按键、屏幕、应用程序日志等用户活动信息,经常被用来盗取用户的银行或其它金融信息

3.1 后门木马。
这类木马是远程控制工具,与正常的远程管理软件的区别在于它们是在用户不知情的情况下安装并加载的。
BackDoor.Win32.xxx
BackDoor.WinCE.xxx

3.2 普通木马
Trojan-AOL.Win32.xxx :AOL木马,一般表现为偷AOL密码
Trojan-SMS.J2ME.xxx :Java平台手机短消息木马
Trojan-SMS.SymbOS.xxx :SymbOS平台手机短消息木马
Trojan.BAT.xxx :BAT脚本写的木马
Trojan.DOS.xxx :DOS可执行程序木马
Trojan.JS.xxx :JavaScript脚本木马
Trojan.MSWord.xxx :MS Word宏木马
Trojan.SymbOS.xxx :Symbian OS系统上的木马
Trojan.VBS.xxx :VBS脚本写的木马
Trojan.Win32.xxx :一般的Win32程序木马

3.3 偷密码的木马
Trojan-PSW.Win32.xxx :体为Win32 PE程序
Trojan-PSW.VBS.xxx :VbScript写的偷密码木马

3.4 点击木马。这类木马主要有如下目的:
增加某特定网站的点击量,用于广告等目的
发动分布式拒绝服务攻击
引导受害机器到另一被感染的网络资源使之感染另一种病毒或木马
Trojan-Clicker.Win32.xxx :木马体为Win32 PE程序

3.5 木马下载器
Trojan-Downloader.Js.xxx :JavaScript写的木马下载器
Trojan-Downloader.VBS.xxx :VbScript写的木马下载器
Trojan-Downloader.Win32.xxx :本身是Win32 PE的木马下载器

3.6 木马释放器
Trojan-Dropper.Ichitaro.xxx :木马本身是一个Ichitaro文件(JTD),Ichitaro是日本最流行的文本编辑器
Trojan-Dropper.MSWord.xxx :木马本身是一个Word宏,被包含在一个Word文档中
Trojan-Dropper.JS.xxx :JavaScript写的木马释放器
Trojan-Dropper.VBS.xxx :VbScript写的木马释放器
Trojan-Dropper.Win32.xxx :本身是Win32 PE程序的木马释放器

3.7 代理木马
Trojan-Proxy.Win32.xxx :目前只有这一类,木马都是Win32 PE程序

3.8 间谍木马
Trojan-Spy.HTML.xxx :一类利用IE的框架欺骗漏洞(MS04-004)的间谍木马
Trojan-Spy.Linux.xxx :Linux系统的间谍木马
Trojan-Spy.Win32.xxx :Win32 PE程序的间谍木马
Trojan-Spy.SymbOS.xxx :SymbOS系统的间谍木马

四、其它恶意软件
这一大类包含如下分类——
拒绝服务(DoS)或分布式拒绝服务(DDoS)工具:利用受害机器对另外的对象发动拒绝服务攻击
黑客工具或漏洞利用工具:被黑客利用来渗透对方计算机系统,安装后门等
洪水攻击工具:发出大量不完整的网络包导致受攻击者网络瘫痪
病毒生成工具:用于制造或生成病毒
核弹工具:发送经过特殊编码的请求以利用系统漏洞导致受害机器出现致命错误

4.1 拒绝服务(DoS)或分布式拒绝服务(DDoS)工具
DoS.Linux.xxx :Linux下的DoS工具
DoS.Perl.xxx :Perl脚本写的拒绝服务攻击工具
DoS.Win32.xxx :Win32 PE程序的DoS工具

4.2 黑客工具或漏洞利用工具
Exploit.HTML.xxx :在HTML网页中利用IE漏洞的工具
Exploit.IFrame.xxx :利用IE的IFrame漏洞的攻击器
Exploit.IIS.xxx :利用IIS漏洞的攻击器
Exploit.JS.xxx :JavaScript写的漏洞利用器
Exploit.Linux.xxx :Linux系统的漏洞利用器
Exploit.Win32.xxx :Win32程序的漏洞利用器
HackTool.Win32.xxx :Win32程序的黑客工具

4.3 洪水攻击工具
Flooder.Win32.xxx :win32 PE程序的洪水攻击工具
Email-Flooder.Win32.xxx :通过Email发动洪水攻击的工具

4.4 病毒生成工具
Constructor.DOS.xxx :本身是一个DOS程序,能够用来生成DOS病毒
Constructor.MSWord.xxx :本身是Word宏,用来生成Word宏病毒
Constructor.VBS. xxx :VbScript写的病毒生成器,可以用来制作某些蠕虫
VirTool.DOS. xxx :DOS程序的病毒工具
VirTool.MSWord.xxx :Word宏的病毒工具
VirTool.Win32.xxx :Win32 PE程序的病毒工具
(源自互联网)

标签:


几种文件区别

安装程序的可执行程序msi与setup.exe:

msi是Windows installer开发出来的程序安装文件,可以安装、修改、卸载所安装的程序。msi就是Windows installer的数据包,把所有和安装文件相关的内容封装在一个包里了。
setup.exe也允许你安装程序,但程序员在开发setup.exe的时候要比开发setup.msi困难的多,需要人工编写和安装,修改,卸载相关的很多内容。而msi把这些功能都集成化了,易于开发Windows程序安装包。


bin与exe:

在windows下,bin文件一般理解为纯粹的可执行代码和全局数据。
可执行文件则是在bin文件的基础上加上了和操作系统加载应用所需要的相关信息,并按照规定文件格式存储。


com与exe:

A .COM file is a direct image of how the program will look in main memory(COM文件是最早的也是结构最简单的可执行文件,COM文件中仅仅包括可执行代码,没有附带任何“支持性”的数据), and a .EXE file will undergo some further relocation when it is run (and so it begins with a relocation header). A .COM file is limited to 64K for all segments combined, but a .EXE file can have as many segments as your linker will handle and be as large as RAM can take.

The actual file extension doesn't matter. DOS knows that a file being loaded is in .EXE format if its first two bytes are MZ or ZM; otherwise it is assumed to be in .COM format. For instance, DR-DOS 6.0's COMMAND.COM is in .EXE format as is COMMAND.COM in recent versions of MS-DOS.

Any .COM file can be converted to an .EXE file by adding an appropriate header to it.

The entry point of the .COM file is _always_ 0x100(没有附加数据来指定文件入口,这样,第一句执行指令必须安排在文件头部), while the entry point of the .EXE file can be at any address.

COM没有重定位信息,这样代码中不能有跨段操作数据的指令,造成代码和数据,甚至包括堆栈只能限制在同一个64 KB的段中。

The stack size of the .COM file is the remainder of those 64K which isn't used by the code image, while the stack size of the single segment .EXE file can be set at any size as long as it fits within those 64K. Thus the stack can be smallere in the .EXE file.

When a COM file is loaded, the entire TPA (= "free memory") of MS-DOS is allocated for that COM file -- including those parts of the TPA which are outside the 64k of the COM file. If you don't want this (e.g. because your COM file is a TSR and you want to load other programs later), you must explicitly free those parts of the TPA you want freed. In the header of an .EXE file you can specify how large part of the TPA that .EXE file should receive.


DOS下exe和Windows下exe:

可执行文件的格式是操作系统工作方式的写照,因为可执行文件头部的数据是供操作系统装载文件用的,不同操作系统的运行方式各不相同,所以造成可执行文件的格式各不相同。

DOS下exe:DOS下的EXE文件相比于COM文件,它在代码的前面加了一个文件头,文件头中包括各种说明数据,如文件入口、堆栈的位置、重定位表等,操作系统根据文件头中的信息将代码部分装入内存,根据重定位表修正代码,最后在设置好堆栈后从文件头中指定的入口开始执行。 DOS下EXE文件可以在DOS和WINDOWS中运行。它通过在文件头添加ASCII字符串“MZ”(16进制中表示为4D5A)来标识。“MZ”是MS-DOS开发者之一的Mark Zbikowski的姓名首字母缩写。

windows下exe:带PE头,通过在文件头添加ASCII字符串“PE”来标识。它主要运行于Windows 95和Windows NT以及更高版本的Windows中,也可在BeOS R3中运行。在PE文件中,代码、已初始化的数据、资源和重定位信息等数据被按照属性分类放到不同的节(Section)中,而每个节的属性和位置等信息用一个IMAGE_SECTION_HEADER结构来描述,所有的IMAGE_SECTION_HEADER结构组成一个节表(Section Table),节表数据在PE文件中被放在所有节数据的前面。我们知道,Win32中可以对每个内存页分别指定可执行、可读写等属性,PE文件将同样属性的数据分类放在一起是为了统一描述这些数据装入内存后的页面属性。关于PE格式在其他文章详述。


Flash的exe和swf格式:

exe是windows下课执行文件,能在windows平台上播放。
swf只能在安装了flash播放器的机器上播放。swf文件可以被轻易地看到源文件和资源文件。

标签:


PIF文件格式

PIF :Program Information File。可以用来指向一个dos程序,也就是dos程序的快捷方式,比如可以连到一个病毒或者木马。

PIF病毒可以用来隐藏蠕虫病毒。

2008年4月21日星期一

关于VC中的resource(资源)

resource:Binary data the resource compiler or developer adds to an application's executable file. Windows resources include icons, cursors, menus, dialog boxes, bitmaps, fonts, keyboard-accelerator tables, message-table entries, string-table entries, version data, and user-defined data.

resource compiler:An application that creates a binary resource file based on the resource-definition file. The resource compiler can also append binary resource data to an executable file and create a resource table in the executable file's header.

resource file:A binary file created by the resource compiler that contains an application's resource data. Resource files usually have a .RES extension.

resource table:Data the resource compiler adds to the header of an application's executable file. This data includes the location, name, type, language, and so on, of each resource in the executable file.

resource-definition file:A text file containing descriptions of an application's resources. The resource compiler creates a binary resource file based on the contents of the resource-definition file. Resource-definition files usually have a .RC extension.

标签:


2008年4月17日星期四

关于extern "C"

如果在.cpp中调用.c文件中的函数(包含.c的头文件,然后用里面的函数),编译的时候可以通过,但链接的时候会提示”unresolved external symbol 函数名“(即没有找到c中的函数体)。加入如下语句可正常链接。

#ifdef __cplusplus
extern "C" {
#endif

//在此处定义函数

#ifdef __cplusplus
}
#endif

这是为了在c++中引用c的库函数,才这样定义的。因为c++的编译器会对函数名和变量名做一些修正,如果也对c中的函数名和变量名也做修正,就会出现上述问题。这样定义后,c++编译器知道这是c中的函数名和变量名,不会对它们做修正,就可以正常使用了。
__cplusplus一般是用来判断用的是c还是c++编译器的。

标签:


vmware的问题

1. 今天在windows xp虚拟机中安装了一个木马分析专家,导致虚拟机不能正常启动,后将该虚拟机虚拟磁盘mount,删除木马分析专家安装文件,虚拟机系统正常启动。分析原因可能是木马分析专家与反病毒软件的冲突导致系统不能正常启动。

2. 启动虚拟机不能启动,并提示无法锁定虚拟磁盘,发现与vmdk同一文件夹下有文件windows xp professional.vmdk.lck,将其删除,虚拟机正常启动。分析原因,该文件锁住了vmdk,导致vmware不能锁vmdk,故不能启动操作系统。

3. vmount可以和vmware-mount合作挂载vmdk,在vmware->file->map or disconnect virtual disk也可以挂载。

标签:


2008年4月14日星期一

32位windows操作系统使用4G内存问题

症状
如果计算机上安装了 4 GB 随机存取内存 (RAM),则 Windows Vista 中的“系统信息”对话框中报告的系统内存将小于预期值。例如,如果某台计算机上安装了 4 GB (4,096 MB) 内存,但“系统信息”对话框可能报告系统内存为 3,120 MB。

原因
这一行为是某些硬件和软件因素导致的预期结果。 典型计算机中的各种设备均需要内存映射访问。这称为内存映射 I/O (MMIO)。若要使 MMIO 空间可用于 32 位操作系统,MMIO 空间必须驻留在前 4 GB 地址空间内。例如,如果您具有一个板载内存为 256 MB 的视频卡,此内存必须被映射到前 4 GB 地址空间内。如果已安装了 4 GB 系统内存,则图形内存映射必须保留部分此地址空间。此图形内存映射会覆盖一部分系统内存。这些情况降低了操作系统可用的系统内存总量。 可用系统内存的减少情况取决于计算机中安装的设备。不过,为避免潜在的驱动程序兼容性问题,Windows Vista 32 位版本将可用总内存限制为 3.12 GB。有关潜在驱动程序兼容性问题的信息,请参见“更多信息”一节。 如果计算机中安装了多台设备,则可用内存可能会减小到 3 GB 或更少。但是,在 Windows Vista 32 位版本中,最大可用内存通常为 3.12 GB。

替代方法
如果要使 Windows Vista 使用安装有 4 GB 内存的计算机上的全部 4 GB 内存,则该计算机必须符合下列要求:

芯片集必须至少支持 8 GB 地址空间。具有此功能的芯片集包括:
•Intel 975X
•Intel P965
•采用 Socket 775 插槽的 Intel 955X
•支持 AMD 处理器的芯片集,AMD 处理器采用 Socket F、Socket 940、Socket 939 或 Socket AM2 插槽。这些芯片集包括任意 AMD 插槽和 CPU 的组合,其中内存控制器位于 CPU 内。

•CPU 必须支持 x64 指令集。AMD64 CPU 和 Intel EM64T CPU 支持此指令集。
•BIOS 必须支持内存重新映射功能。利用内存重新映射功能,可以将先前被外围组件互连 (PCI) 配置空间覆盖的系统内存段重新映射到 4 GB 地址行以上。必须在计算机上的 BIOS 配置实用程序中启用该功能。有关如何启用此功能的说明,请查看计算机产品文档。大多数面向消费者的计算机可能不支持内存重新映射功能。在产品文档或 BIOS 配置实用程序中未使用与此功能有关的任何标准术语。因此,您可能必须阅读有关各种可用 BIOS 配置设置的说明,以确定是否有任何 BIOS 设置启用了内存重新映射功能。
•必须使用 Windows Vista x64(64 位)版本。请与计算机供应商联系以确定您的计算机是否符合上述要求。 注意:当计算机安装的物理 RAM 等于芯片集支持的地址空间时,操作系统可用的系统内存总和始终小于所安装的物理 RAM。我们以一台具有 Intel 975X 芯片集(支持 8 GB 地址空间)的计算机为例。如果安装 8 GB RAM,则 PCI 配置要求将减少操作系统可用的系统内存。在此情况下,PCI 配置要求会将操作系统的可用内存减少约 200 MB 至 1 GB,减少的数量取决于配置。

更多信息

PAE 模式引发的驱动程序兼容性问题
与数据执行保护 (DEP) 有关的驱动程序兼容性问题通常为物理地址扩展 (PAE) 模式引发的兼容性问题。注意:仅在其处理器支持硬件强制 DEP 功能的计算机上,PAE 才是必需的。对于执行代码生成或使用其他技术实时生成可执行代码的任意驱动程序,DEP 可能导致与该驱动程序的兼容性问题。出现上述问题的许多驱动程序均已得到修复。对 Windows 64 位版本上的驱动程序来说,由于 DEP 总是处于启用状态,因此这些驱动程序经常遇到兼容性问题。但是,并不保证所有驱动程序均已更新为可以修补 PAE 模式引发的兼容性问题。不过,很少有驱动程序使用这些技术。DEP 自己通常不会引起驱动程序兼容性问题。在 32 位计算机上运行 PAE 模式时可能出现驱动程序兼容性问题,这是您可能遇到的主要驱动程序兼容性问题。PAE 模式使处理器使用 4 GB 以上内存。PAE 和非 PAE 内存分页方案的主要区别在于在 PAE 模式下需要附加级别分页。PAE 模式需要三个级别的分页而不是两个级别的分页。如果启用了 PAE 模式,则某些驱动程序可能不会进行加载,因为设备可能无法执行 64 位寻址。或者,假设 PAE 模式需要 4 GB 以上内存,驱动程序可能会被写入。在写入此类驱动程序时,预计这些驱动程序在 PAE 模式下总是会收到 64 位地址,且此类驱动程序或相应设备无法解释该地址。其他驱动程序可通过直接修改系统页表项 (PTE) 在 PAE 模式下进行加载,但这会导致系统不稳定。这些驱动程序需要 32 位页表项,但在 PAE 模式下它们收到的却是 64 位 PTE。驱动程序的最常见 PAE 兼容性问题与直接内存访问 (DMA) 传输和映射寄存器分配有关。许多支持 DMA 的设备(通常是 32 位适配器)都无法进行 64 位物理寻址。当这些设备在 32 位模式下运行时,它们可以对所有物理地址空间进行寻址。在 PAE 模式下,数据可存在于超过 4 GB 的物理地址中。为了使具有这些约束条件的设备可以在此情况下工作,Microsoft Windows 2000 Server 和更高版本的 Windows 为 DMA 事务提供双缓冲功能。Windows 2000 Server 和更高版本的 Windows 通过提供由映射寄存器指示的 32 位地址来实现这一目的。该设备可对 32 位地址执行 DMA 事务。内核将内存复制到提供给此驱动程序的 64 位地址。当计算机在禁用 PAE 模式的情况下运行时,32 位设备的驱动程序不要求将系统内存分配到其映射寄存器。这意味着不需要双缓冲,因为所有设备和所有驱动程序均包含在 32 位地址空间内。在基于 64 位处理器的计算机上对 32 位设备的驱动程序进行测试的结果表明,经客户端测试的具有 DMA 功能的驱动程序通常需要无限的映射寄存器。本文中提到的第三方产品由 Microsoft 以外的其他公司提供。对于这些产品的性能或可靠性,Microsoft 不作任何暗示保证或其他形式的保证。

标签:


2008年4月12日星期六

windbg+vmware调试驱动配置

宿主机是vista sp1,vmware上安装待调试目标机xp sp2。宿主机上安装windbg,同时要建立待调目标机相关符号表。

1. 编辑xp sp2 的C:\boot.ini文件,在[operating systems]节里,添加下面一句话:
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional - debug" /fastdetect /debug /debugport=com1 (指定待调目标机上的串口设备)

2. 打开xp sp2的设备管理器,选择端口(com1),端口设置中将波特率改为115200。(对目标机上串口设备进行设置)

3. 关闭xp sp2,配制虚拟机的硬件,VM->Settings->Add,加一个Serial Port,选择"Output to named pipe",下一步,第一框里保持默认的“file:////pipe/com_1”不变,第二框里选"This end is the server."第三框里选"The other end is an application."选中"Connect at power on"。然后点击 “i/o mode”选择"Yield CPU on poll"。(对目标机上串口设备进行设置)
虚拟机上设置结束。

4. 设置vista上windbg快捷方式的属性,加上“D:\Program Files\Debugging Tools for Windows\windbg.exe" -k com:port=\\.\pipe\com_1,baud=115200,pipe (指定宿主机上的串口设备)
宿主机上设置完毕。

5. 进入xp sp2,选择“启用调试程序”,并按回车,此时vmware的操作系统处于停顿状态。在vista中运行windbg。此时vmware下的操作系统,开始进入熟悉的欢迎界面了。

标签:


Ubuntu 架设 openssh服务器

一、安装OpenSSH

sudo apt-get install openssh-server


二、配置OpenSSH


OpenSSH的核心配置文件是/etc/ssh/sshd_config,首先备份(一定要养成良好的习惯!)

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.original

然后修改/etc/ssh/sshd_config文件

vim /etc/ssh/sshd_config

把相关的项目修改如下(不必理会注释的内容)

# 修改端口号,默认22,修改成其他的端口,增加安全性,这里改为222
Port 222
# 仅使用SSH2方式的连接
Protocol 2
# 定义服务器密钥的位数,这里选择1024
ServerKeyBits 1024
# 修改OpenSSH服务器等待用户登陆时间,单位秒
LoginGraceTimeout 20
# 不允许root用户通过SSH登陆
PermitRootLogin no
# 不允许密码方式的SSH登陆
PasswordAuthentication no
# 禁止空密码通过SSH登陆
PermitEmptyPasswords no

修改完配置文件后,重启服务

sudo /etc/init.d/ssh restart


三、生成RSA密钥


ssh-keygen -t rsa

会提示更改密钥路径,这里直接回车选择默认路径

然后会要求输入passphrase口令,重复输入两次,此口令保护私钥

保护公钥

cd ~/.ssh
cat id_rsa.pub >> authorized_keys
rm -f id_rsa.pub
chmod 400 ~/.ssh/authorized_keys


四、拷贝私钥到U盘,为windows通过putty登录openssh备用


五、从windows终端访问SSH服务器


打开puttygen

load并选择id_rsa,提示输入passphrase,如果正确提示“成功导入openssh ssh-e private key,并将私钥通过save private key转化为PuTTY自己格式。”

save private key

关闭puttygen


打开putty

左侧列表Connection -> SSH -> Auth

Browse并选择刚刚保存的私钥

左侧列表Session

填入主机IP和端口号,取名Save

双击刚刚保存的Session即可登陆

输入用户名后确认,如果用户名为私钥的创建者,会要求你输入passphrase,而不用输入它在Ubuntu上的密码登录;如果用户名不是私钥的创建者,跳过passphrase这一步,进而提示输入该用户在Ubuntu上的密码登录。

可以在sshd_config中禁用密码方式登录
PasswordAuthentication no
此时,为了在客户能够登录到服务器,必须建立SSH用的公钥与私钥,以用于客户端以“钥匙”的方式登录SSH服务器。

标签:


2008年4月10日星期四

Call dword ptr 和 Call

Call dword ptr [10049008] 是调用子程, 子程的入口地址在内存 ds:[10049008] 处的双字。
Call 10049008子程的入口地址是10049008

标签:


LoadLibrary

用于将指定的可执行模块映射到调用进程的地址空间,返回可执行模块的handle。
GetProcAddress可以通过handle参数得到某dll函数的地址。

Win32 API中,为了在支持Unicode的同时保持对ANSI的支持,许多API都定义了两个原型,分别以W结尾和A结尾。

如LoadLibraryW和LoadLibraryA。
事实上,在定义LoadLibrary的头文件Winbase.h中,有如下定义
#ifdef UNICODE
#define LoadLibrary LoadLibraryW
#else
#define LoadLibrary LoadLibraryA
#endif // !UNICODE

因此,当您的程序中定义了UNICODE宏时,您的LoadLibrary就相当于LoadLibraryW;相反,如果没有定义UNICODE宏,则程序中的LoadLibrary就相当于LoadLibraryA。一般来说,只需使用LoadLibrary就可以了。

标签:


windows XP 预读取

在Windows XP及其以后的操作系统中,增加了预读取功能(也可以理解为“预先装载”),该功能可以提高系统的性能,加快系统的启动、文件读取的速度,这些预读文件保存在%systemroot%\Prefetch目录中,以*.pf为扩展名,这些*.pf文件包括了载入文件的详细信息和载入顺序。

每一个应用程序,包括Windows XP的启动过程,都会在PrefetCh目录下留下相应的预读取文件,预读取文件描述了应用程序或启动时各个模块的装载顺序,其命名方式是以应用程序的可执行文件的名字为基础,加上一个“-”和描述执行文件完整路径的十六进制值,再加上文件扩展名.pf,例如QQ.EX-0065A2A1.pf。每当用户启动一个程序,会自动在Prefetch目录中对应的*.pf文件中留下一条记录。不过,Windows XP启动的预读取文件总是同一个名称,即NTOSBOOT-B00DFAAD.PF,其中包含着启动时载入文件的记录。 当下一次启动系统或运行某个程序时,Windows会参考相应的*.pf文件,将其中记录的所有文件载入内存,而不是象以往一项一项依指令逐个载入文件。另外,Windows会利用启动程序或程序的*.pf文件制订一个最优化的磁盘分配方案,这个方案的相关信息存储在Lyaout.ini文件中。

与预读取相关的键值是
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters目录下EnablePrefeteher子键,微软的技术文档解释了EnablePrefetcher被赋予不同值的含义:

0:取消预读取功能;
1:只预读取应用程序;
2:只预读取Windows系统文件。
3:预读取Windows系统文件和应用程序,这是WindowsXP的默认值。

虽然EnablePrefetcher键值设置为1后,的确可以减少预读取的文件,但系统初始化内核的工作是一个非常复杂的过程,此时需要加载很多底层的驱动程序、启动子系统以及相关的服务,即使是当我们看到了欢迎屏幕,也不能认为此时系统已经启动完成,因为系统会在后台继续初始化那些未完成的驱动程序的加载工作,虽然滚动条的动作次数较以前大大减少,但在显示欢迎屏幕之前的黑屏过程却反而有所增加,因此总的系统时间并未变化。

标签:


2008年4月9日星期三

ACPI

ACPI就是Advanced Configuration and Power Interface的缩写,意思是“高级配置与电源接口”。这是英特尔、微软和东芝共同开发的一种电源管理标准,意图是让操作系统而不是BIOS控制电源管理。

ACPI可实现以下功能:   
1、用户可以使外设在指定时间开关;   
2、使用笔记本电脑的用户可以指定计算机在低电压的情况下进入低功耗状态,以保证重要的应用程序运行; 
3、操作系统可以在应用程序对时间要求不高的情况下降低时钟频率;
4、操作系统可以根据外设和主板的具体需求为它分配能源;
5、在无人使用计算机时可以使计算机进入休眠状态,但保证一些通信设备打开;
6、即插即用设备在插入时能够由ACPI来控制。

不过,ACPI和其他的电源管理方式一样,要想享受到上面这些功能,必须要有软件和硬件的支持。在软件方面,Windows 98及其后续产品和Windows 2000都对ACPI给予了全面的支持;硬件方面比较麻烦,除了要求主板、显卡和网卡等外设要支持ACPI外,还需要机箱电源的配合。电源在提供5伏电压给主板的同时,还必须使电流稳定在720毫安以上才可以,这样它才能够实现电脑的“睡眠”和“唤醒”。


ACPI共有六种状态,分别是S0到S5,它们代表的含义分别是:
S0--实际上这就是我们平常的工作状态,所有设备全开,功耗一般会超过80W;
S1--也称为POS(Power on Suspend),这时除了通过CPU时钟控制器将CPU关闭之外,其他的部件仍然正常工作,这时的功耗一般在30W以下;(其实有些CPU降温软件就是利用这种工作原理)
S2--这时CPU处于停止运作状态,总线时钟也被关闭,但其余的设备仍然运转;
S3--这就是我们熟悉的STR(Suspend to RAM),这时的功耗不超过10W;(待机)
S4--也称为STD(Suspend to Disk),这时系统主电源关闭,但是硬盘仍然带电并可以被唤醒;(休眠)
S5--这种状态是最干脆的,就是连电源在内的所有设备全部关闭,功耗为0。


我们最常用到的是S3状态,即Suspend to RAM(挂起到内存)状态,简称STR。顾名思义,STR就是把系统进入STR前的工作状态数据都存放到内存中去。在STR状态下,电源仍然继续为内存等最必要的设备供电,以确保数据不丢失,而其他设备均处于关闭状态,系统的耗电量极低。一旦我们按下Power按钮(主机电源开关),系统就被唤醒,马上从内存中读取数据并恢复到STR之前的工作状态。内存的读写速度极快,因此我们感到进入和离开STR状态所花费的时间不过是几秒钟而已;而S4状态,即STD(挂起到硬盘)与STR的原理是完全一样的,只不过数据是保存在硬盘中。由于硬盘的读写速度比内存要慢得多,因此用起来也就没有STR那么快了。STD的优点是只通过软件就能实现,比如Windows 2000就能在不支持STR的硬件上实现STD。

标签:


ubuntu7.10下播放rmvb

sudo wget http://www.medibuntu.org/sources.list.d/gutsy.list -O /etc/apt/sources.list.d/medibuntu.list
将gusty.list写入本地medibuntu.list,软件安装路径
wget -q http://packages.medibuntu.org/medibuntu-key.gpg -O- | sudo apt-key add - && sudo apt-get update
GnuPG更新命令

sudo apt-get install kmplayer
下载kmplayer播放器

sudo apt-get install w32codecs
安装codec

标签:


wget 使用实例

下载ftp里面某个目录里面的所有文件,wget -r ftp://10.8.8.8/movie/
不要目录,
wget -r -nd ftp://10.8.8.8/movie/
不要主机目录,
wget -r -nH ftp://10.8.8.8/movie/
忽略目录movie,
wget -r -nH --cut-dirs=1 ftp://10.8.8.8/movie/

断点续传,wget -c -r -nH --cut-dirs=1 ftp://10.8.8.8/movie/
http协议get all,类似于flashget、qq旋风下载全部链接功能,
wget -r -k http://www.ctan.org/tex-archive/macros/latex/
指定递归深度,
wget -r -l2 -k http://www.ctan.org/tex-archive/macros/latex/



标签:


wget

wget是一个从网络上自动下载文件的自由工具。它支持HTTP,HTTPS和FTP协议,可以使用HTTP代理.

所谓的自动下载是指,wget可以在用户退出系统的之后在后台执行。这意味这你可以登录系统,启动一个wget下载任务,然后退出系统,wget将在后台执行直到任务完成,相对于其它大部分浏览器在下载大量数据时需要用户一直的参与,这省去了极大的麻烦。

wget可以跟踪HTML页面上的链接依次下载来创建远程服务器的本地版本,完全重建原始站点的目录结构。这又常被称作"递归下载"。在递归下载的时候, wget遵循Robot Exclusion标准(/robots.txt). wget可以在下载的同时,将链接转换成指向本地文件,以方便离线浏览。

wget非常稳定,它在带宽很窄的情况下和不稳定网络中有很强的适应性.如果是由于网络的原因下载失败,wget会不断的尝试,直到整个文件下载完毕。如 果是服务器打断下载过程,它会再次联到服务器上从停止的地方继续下载。这对从那些限定了链接时间的服务器上下载大文件非常有用。

wget的常见用法
●wget的使用格式:
Usage: wget [OPTION]... ...
●用wget做站点镜像:
wget -r -p -np -k http://dsec.pku.edu.cn/~usr_name/
# 或者
wget -m http://www.tldp.org/LDP/abs/html/
●在不稳定的网络上下载一个部分下载的文件,以及在空闲时段下载:
wget -t 0 -w 31 -c http://dsec.pku.edu.cn/BBC.avi -o down.log &
# 或者从filelist读入要下载的文件列表
wget -t 0 -w 31 -c -B ftp://dsec.pku.edu.cn/linuxsoft -i filelist.txt -o down.log &
上面的代码还可以用来在网络比较空闲的时段进行下载。我的用法是:在mozilla中将不方便当时下载的URL链接拷贝到内存中然后粘贴到文件filelist.txt中,在晚上要出去系统前执行上面代码的第二条。
●使用代理下载:
wget -Y on -p -k https://sourceforge.net/projects/wvware/
代理可以在环境变量或wgetrc文件中设定:
# 在环境变量中设定代理
export PROXY=http://211.90.168.94:8080/
# 在~/.wgetrc中设定代理
http_proxy = http://proxy.yoyodyne.com:18023/
ftp_proxy = http://proxy.yoyodyne.com:18023/

wget各种选项分类列表
●启动:
-V, --version 显示wget的版本后退出
-h, --help 打印语法帮助
-b, --background 启动后转入后台执行
-e, --execute=COMMAND 执行`.wgetrc'格式的命令,wgetrc格式参见/etc/wgetrc或~/.wgetrc
●记录和输入文件:
-o, --output-file=FILE 把记录写到FILE文件中
-a, --append-output=FILE 把记录追加到FILE文件中
-d, --debug 打印调试输出
-q, --quiet 安静模式(没有输出)
-v, --verbose 冗长模式(这是缺省设置)
-nv, --non-verbose 关掉冗长模式,但不是安静模式
-i, --input-file=FILE 下载在FILE文件中出现的URLs
-F, --force-html 把输入文件当作HTML格式文件对待
-B, --base=URL 将URL作为在-F -i参数指定的文件中出现的相对链接的前缀
--sslcertfile=FILE 可选客户端证书
--sslcertkey=KEYFILE 可选客户端证书的KEYFILE
--egd-file=FILE 指定EGD socket的文件名
●下载:
--bind-address=ADDRESS 指定本地使用地址(主机名或IP,当本地有多个IP或名字时使用)
-t, --tries=NUMBER 设定最大尝试链接次数(0 表示无限制).
-O --output-document=FILE 把文档写到FILE文件中
-nc, --no-clobber 不要覆盖存在的文件或使用.#前缀
-c, --continue 接着下载没下载完的文件
--progress=TYPE 设定进程条标记
-N, --timestamping 不要重新下载文件除非比本地文件新
-S, --server-response 打印服务器的回应
--spider 不下载任何东西
-T, --timeout=SECONDS 设定响应超时的秒数
-w, --wait=SECONDS 两次尝试之间间隔SECONDS秒
--waitretry=SECONDS 在重新链接之间等待1...SECONDS秒
--random-wait 在下载之间等待0...2*WAIT秒
-Y, --proxy=on/off 打开或关闭代理
-Q, --quota=NUMBER 设置下载的容量限制
--limit-rate=RATE 限定下载输率
●目录:
-nd --no-directories 不创建目录
-x, --force-directories 强制创建目录
-nH, --no-host-directories 不创建主机目录
-P, --directory-prefix=PREFIX 将文件保存到目录 PREFIX/...
--cut-dirs=NUMBER 忽略 NUMBER层远程目录
●HTTP 选项:
--http-user=USER 设定HTTP用户名为 USER.
--http-passwd=PASS 设定http密码为 PASS.
-C, --cache=on/off 允许/不允许服务器端的数据缓存 (一般情况下允许).
-E, --html-extension 将所有text/html文档以.html扩展名保存
--ignore-length 忽略 `Content-Length'头域
--header=STRING 在headers中插入字符串 STRING
--proxy-user=USER 设定代理的用户名为 USER
--proxy-passwd=PASS 设定代理的密码为 PASS
--referer=URL 在HTTP请求中包含 `Referer: URL'头
-s, --save-headers 保存HTTP头到文件
-U, --user-agent=AGENT 设定代理的名称为 AGENT而不是 Wget/VERSION.
--no-http-keep-alive 关闭 HTTP活动链接 (永远链接).
--cookies=off 不使用 cookies.
--load-cookies=FILE 在开始会话前从文件 FILE中加载cookie
--save-cookies=FILE 在会话结束后将 cookies保存到 FILE文件中
●FTP 选项:
-nr, --dont-remove-listing 不移走 `.listing'文件
-g, --glob=on/off 打开或关闭文件名的 globbing机制
--passive-ftp 使用被动传输模式 (缺省值).
--active-ftp 使用主动传输模式
--retr-symlinks 在递归的时候,将链接指向文件(而不是目录)
●递归下载:
-r, --recursive 递归下载--慎用!
-l, --level=NUMBER 最大递归深度 (inf 或 0 代表无穷).
--delete-after 在现在完毕后局部删除文件
-k, --convert-links 转换非相对链接为相对链接
-K, --backup-converted 在转换文件X之前,将之备份为 X.orig
-m, --mirror 等价于 -r -N -l inf -nr.
-p, --page-requisites 下载显示HTML文件的所有图片
●递归下载中的包含和不包含(accept/reject):
-A, --accept=LIST 分号分隔的被接受扩展名的列表
-R, --reject=LIST 分号分隔的不被接受的扩展名的列表
-D, --domains=LIST 分号分隔的被接受域的列表
--exclude-domains=LIST 分号分隔的不被接受的域的列表
--follow-ftp 跟踪HTML文档中的FTP链接
--follow-tags=LIST 分号分隔的被跟踪的HTML标签的列表
-G, --ignore-tags=LIST 分号分隔的被忽略的HTML标签的列表
-H, --span-hosts 当递归时转到外部主机
-L, --relative 仅仅跟踪相对链接
-I, --include-directories=LIST 允许目录的列表
-X, --exclude-directories=LIST 不被包含目录的列表
-np, --no-parent 不要追溯到父目录

标签:


2008年4月6日星期日

ubuntu7.10下vmware的安装及使用问题

在官方网站www.vmware.com上下载VMware-workstation-6.0.3-80004.i386.tar.gz
从网上找一个合适的序列号,vmware的序列号很好找,而且一般情况下找到就能用

解压到本用户的工作目录或者其他拥有写权限的目录
sudo -s 或 su root进入管理员身份,
chmod +x vmware-install.pl
./vmwarfe-install.pl

启动安装后会问一系列问题,如bin的位置,C编译的位置等等,一般按照默认的回答就好了。在C编译的时候,会查找C编译的文件,如果没有,会一直提醒你输入绝对路径,这个时候多半是没有装好GCC、C++等。
apt-get install build-essential
apt-get install gcc-3.4

安装完毕,打开一个虚拟机或创建一个新虚拟机时提示
VMware Workstation unrecoverable error: (vcpu-0)Failed to allocate page for guest RAM!A log file is available in "/media/sda3/Virtual Machines/xp/xp/vmware.log". A core file is available in "/media/sda3/Virtual Machines/xp/xp/core". Please request support and include the contents of the log file and core file.
需要对vmx文件进行修改,增加以下一行内容:mainMem.useNamedFile = "FALSE"保存下 就可以启动了。

标签:


ubuntu的root密码

第一次安装ubuntu的时候,root帐号没有启用
安装ubuntu时创建的第一个用户拥有系统的administrative权限,能通过sudo以root权限运行程序,如sudo apt-get update.
如果想像传统unix那样使用root帐户,可以通过如下命令创建root帐号密码
sudo passwd root
如果要开启一个有root权限的shell,执行命令sudo -s.

标签:


2008年4月3日星期四

0day

0day泛指所有在官方发布该作品之前或者当天,主要涵盖了影视、软件、游戏、音乐、资料等方面,由一些特别小组非法发布的数码内容。基本上每个0day发布作品中都包含了说明该发布作品的NFO文件,该文件主要包括发布小组的信息、发布作品的信息、破解信息等。

“0day”其实就是Warez的一种传播形式,“0day”不是说那些破解专家不到1天就“搞定”某个软件,而是说他在最短的时间内迅速地“解锁”,并在网上发布。0day的真正意思是“即时发布”(尽管不是真的当天发布),大家可以把它看作是一种精神。

“0day”是一种自发的网络运动而已,“warez”是对破解的泛称;如果有人说他属于“0day组织”,并不是说他真的在一个叫做“0day”的破解组织里干活,其真正涵义是他属于某个破解组织,而这个组织经常向0day发布作品。很多人说“0day”是一个邪恶的组织,其实他们只是将自己的破解作品以“0day”的发行形式发布,分享给全世界的人。

“0day”的主要目的是交换,完全是非商业化、非盈利、志愿的行为。如果有人将0day的东西拿去做成盗版光盘,那么与0day的本意无关。

“0day”是会把各种游戏、应用软件等东西分类破解以后,把破解软件进行打包,做一个硬盘版的整合“套装”流通的。《WAREZ无形帝国》里面说:“0day所发行的硬盘版要求2.8兆×65,即不能超过65个破解文件”——这是很久之前的规矩了,而且只是大家约定俗成的规则,实际中并不一定这样。目前做打包软件RIP或者游戏硬盘版的时候,尽可能小的原则还是延续下来,但不一定是“硬盘版要求2.8兆”,否则破解家们都没法干活了——谁让现在的软件、游戏都这样大?2.8兆的空间根本包容不了。

网络安全意思上的0DAY就是指一些没有公布补丁的漏洞,或者是还没有被漏洞发现者公布出来的漏洞利用工具,由于这种漏洞的利用程序对网络安全都具有巨大威胁,因此0DAY也成为黑客的最爱。

标签:


2008年4月1日星期二

dsw、dsp等

dsw和dsp分别是vc++6.0的workspace和project文件,一个workspace可以有一个以上的project。

sln是vs开发环境的解决方案文件,它将一个或多个项目的所有元素组织到单个的解决方案中,它是一个或多个.proj的集合。sln文件中包含了较为通用的信息,包括解决方案所包含项目的列表,解决方案内任何项的位置以及解决方案的生成配置。

suo也是vs开发环境的解决方案文件。

vcproj是vs开发环境的工程文件。

标签:


This page is powered by Blogger. Isn't yours?

订阅 博文 [Atom]