inds xp日志文件格式分析
日志文件是inds系统中一个比较特殊的文件,它记录着inds系统中所发生的一切,如各种系统服务的启动、运行、关闭等信论文联盟http://息。inds日志包括应用程序、安全、系统等几个部分,应用程序日志、安全日志和系统日志对应的文件名为appevent.evt、
sysevent.evt。这些文件受到&ldqu;event lg(事件记录)&rdqu;服务的保护只能被清空,但是不能删除某一条记录。
应用程序日志、安全日志、系统日志、dns日志等默认存放位置:%systert%\\syste32\\nfig,默认文件大小512kb。
安全日志:%systert%\\syste32\\nfig\\seevent.evt
系统日志:%systert%\\syste32\\nfig\\sysevent.evt
应用程序日志:%systert%\\syste32\\nfig\\appevent.evt
可以在注册表中修改这些lg文件的默认存放位置:
hkey_lal_ahine\\syste\\urrentntrlset\\servies\\eventlg
2日志文件的数据结构
2.1日志文件头结构分析
inds sdn中日志文件头的结构体数据类型如下:
typedef strut _eventlgheader {
ulng headersize; //文件头的大小,是固定值(0x30)
ulng signature; //特定码值,总是(0x654664)
ulng ajrversin; //主版本号,总是1
ulng inrversin; //次版本号,总是1
ulng startffset; //第一条(最早)日志记录的偏移量
ulng endffset; //文件尾的文件内偏移量
ulng urrentrerdnuber; //将要产生记录的记录号
ulng ldestrerdnuber;//第一条(最早)记录的记录号
ulng axsize; //日志文件的总大小,这里是64k(0x10000)
ulng flags; //日志文件的状态标志
ulng retentin; //文件创建时的保留值,与注册表关联。
ulng endheadersize; //文件头的大小,文件头结束。
}eventlgheader, *peventlgheader
为了更为直观地展现出日志文件头的储存结构我们用inhex打开一个日志记录为空的日志文件,没有事件记录,只有文件头和文件尾。如图1所示。
可以看到前三行共48个字节是文件头部分,接下来的40个字节是文件尾部分,之间没有事件记录。文件头部分其内容和日志文件头结构体相一致。在这里由于日志文件的内容是空的,所以startffset(第一条(最早)日志记录的文件内偏移量)和endffset(文件尾的文件内偏移量)相同都是0x30。这是一个空日志文件,由于没有事件记录所以ldestrerdnuber(第一条(最早)日志记录的记录号)为00 00 00 00。
图1文件头和文件尾
2.2日志文件尾结构分析
inds sdn中日志文件尾的结构体数据类型如下:
typedef strut _eventlgef {
ulng rerdsizebeginning;//文件尾大小,固定值(0x28)
ulng ne; //标识符,总是(0x11111111)
ulng t; //标识符,总是(0x22222222)
ulng three; //标识符,总是(0x33333333)
ulng fur; //标识符,总是(0x44444444)
ulng beginrerd; //第一条(最早)日志记录的偏移量
ulng endrerd; //将要产生新的一条记录的偏移量,即当前文件尾的偏移量
ulng urrentrerdnuber; //将要产生的记录的记录号
ulng ldestrerdnuber; //第一条(最早)日志记录的记录号,如果事件日志为空时这里的值是0
ulng rerdsizeend; //文件尾大小,是固定值(0x28)
} eventlgef, *peventlgef;
在图1中所示的日志文件,是把日志里的事件记录清空后得到的空日志文件,所以文件尾中的ldestrerdnuber值是1而不是0,endrerd值0x f4 71 05 00和urrentrerdnuber值0x 74 06 00 00都是日志事件记录清空前的值,系统并没有将其立即更新,而是等到再写入新事件记录时再更新。如果清空日志之前再产生一条记录的话,那么它的文件内偏移量将是0x f4 71 05 00记录号将是0x 74 06 00 00,即第1652个记录(0x674=1652)。
未完...点击下方链接下载完整文档