① checksum函数在哪个头文件中定义
校验和(Checksum)PE的可选映像头(IMAGE_OPTION_HEADER)里面,有一个Checksum字段,是该文件的校验和,一般EXE文件可以使0,但一些重要的和系统DLL及驱动文件必须有一个校验和.Windows 提供了一个API函数MapFileAndCheckSum 测试文件的Checksum,它位于IMAGEHLP.DLL链接库里,其原型:ULONG MapFileAndCheckSum{ LPSTR FileName, // 文件名 LPDWORD HeaderSum, // 指向PE文件头的CheckSum LPDWORD new_checksum // 指向新计算出的Checksum}程序一旦运行后,new_checksum 地址处将放当前的文件的校验和,old_checksum地址指向PE文件的checksum字段安全的方法是将此值放在注册表里,需要时比较.内存映像校验磁盘文件完整性校验可以抵抗解密者直接修改文件,但对内存补丁却没有效果,必须对内存关键的代码进行校验.1 对整个代码进行校验每个程序至少有一个代码区块和数据区块,数据区块属性可读写,程序运行时全局变量通常会放在这里,这些数据会动态变化,因此校验这部分是没什么意义,而代码段只读,存放的是程序代码,在程序中数据数不会变的,因此用这部分进行内存校验是可行的.具体实现方法:(1) 从内存中映像中得到PE相关数据,如代码块的RVA和内存大小(2) 根据得到代码区块的RVA值和内存大小,计算出内存数据的CRC-32值(3) 读取自身文件先前存储的CRC-32值(PE文件头前一个字段),这个值是通过软件写进去的.(4) 比较两个CRC-32值.这样比较内存的代码段校验,只要内存的数据被修改,就能发现。BOOL CodeSectionCRC32(){ PIMAGE_DOS_HEADER pDosHeader = NULL; PIMAGE_NT_HEADERS pNTHeader = NULL; PIMAGE_SECTION_HEADER pSection = NULL; DWORD ImageBase,OriginalCRC32;ImageBase = (DWORD)GetMoleHandle(NULL); // 取基址 pDosHeader = (PIMAGE_DOS_HEADER)ImageBase; pNtHeader = (PIMAGE_NT_HEADER32)((DWORD)pDosHeader + pDosHeader -> e_lfanew);// 定位到PE文件头前4个字节值,并读取存储在这里的CRC -32值 OriginalCRC32 = *((DWORD*)(DWORD)pNtHeader – 4);pSecHeader = IMAGE_FIRST_SECTION(pNtHeader); // 得到第一个区块的地址//假设第一个区块就是代码区块if(OriginalCRC32 == CRC32((BYTE*)ImageBase + pSecHeader -> VirtualAddress)// 为了方便加壳// 上一句也可为if(OriginalCRC32 == CRC32((BYTE *)0x401000, 0x36AE)return TRUE;elsereturn FALSE;}
② 我下了孤岛危机弹头中文版,却出现CHECKSUM.md5文件,还有四个GBT SET UP 文件,不知道怎么安装,求解。
你下的是镜像文件吧.用虚拟光驱来安装
③ bin文件checksum原理
首先处理bin文件,这个文件格式最简单,纯粹的二进制数据,不涉及到地址信息,所以只需要将其从头到尾加起来就行了。需要注意的地方是如果Flash的大小为4MB,bin的实际大小只有3MB大小,剩下的1MB大小的空间填充的不是00而是FF。设计思想就是首先开辟指定大小空间的数组,全部填充为0xFF,再将bin文件读入的数据放入数组中,这样使得最后数组中的数据就为实际的Flash中的数据。再计算该数组的CheckSum即可。希望我的回答对你有帮助,欢迎采纳我的回答,
④ linux文件系统完整性检查的基本步骤有哪些
文件系统完整性可以用脚本来检查:cat my_filecheck.sh#!/bin/bash## 变量首先声明才能使用shopt -s -o nounset # 声明 # 建立日期 Date=$(date +'%Y%m%d%H%M%S') # 加入审核的目录 # Dirs="/bin /sbin /usr/bin /usr/sbin /lib /usr/local/sbin /usr/local/bin /usr/local/lib" # 临时文件 # TMP_file=$(mktemp /tmp/check.XXXXXX) # 文件checksum存储文件FP="/root/fp.$Date.chksum" # 使用哪种checksum工具Checker="/usr/bin/md5sum"Find="/usr/bin/find" # 函数区 # scan_file() { local f for f in $Dirs do $Find $f -type f >> $TMP_file done} # 读取文件建立每个文件的checksum值cr_checksum_list() { local f if [ -f $TMP_file ]; then for f in $(cat $TMP_file); do $Checker $f >> $FP done fi}rmTMP() { [ -f $TMP_file ] && rm -rf $TMP_file}# 主程序区# 扫描列表scan_file # 建立文件的checksum值cr_checksum_list # 清理临时文件rmTMP
⑤ linux 怎么获取iso的sha-256 checksum
用Linux的sha1sum命令可以获取ISO(其实可以是任何一个文件)的指纹码,sha1sum命令的用法也非常简单:sha1sum 某文件的文件名。
⑥ md5 checksum与md5是一样吗
两个不是一概念。。checksum是一个概念,一串数据或者一个文件的校验码,叫做checksum。如果一个文件的checksum与原本的checksum不一样的话,说明这个文件已经被改过了(被植入病毒或者广告)。从这个角度来理解的话,checksum的计算方法有多种多样。md5是一个加解密算法,可以用在各方各面,如口令加密/文件加密等等。md5 checksum,就是采用MD5方式的checksum的计算方法。不知道这样解释是否够明白。
⑦ checksum文件 效验怎么算
校验和(Checksum)PE的可选映像头(IMAGE_OPTION_HEADER)里面,有一个Checksum字段,是该文件的校验和,一般EXE文件可以使0,但一些重要的和系统DLL及驱动文件必须有一个校验和.Windows 提供了一个API函数MapFileAndCheckSum 测试文件的Checksum,它位于IMAGEHLP.DLL链接库里,其原型:ULONG MapFileAndCheckSum{ LPSTR FileName, // 文件名 LPDWORD HeaderSum, // 指向PE文件头的CheckSum LPDWORD new_checksum // 指向新计算出的Checksum}程序一旦运行后,new_checksum 地址处将放当前的文件的校验和,old_checksum地址指向PE文件的checksum字段安全的方法是将此值放在注册表里,需要时比较.内存映像校验磁盘文件完整性校验可以抵抗解密者直接修改文件,但对内存补丁却没有效果,必须对内存关键的代码进行校验.1 对整个代码进行校验每个程序至少有一个代码区块和数据区块,数据区块属性可读写,程序运行时全局变量通常会放在这里,这些数据会动态变化,因此校验这部分是没什么意义,而代码段只读,存放的是程序代码,在程序中数据数不会变的,因此用这部分进行内存校验是可行的.具体实现方法:(1) 从内存中映像中得到PE相关数据,如代码块的RVA和内存大小(2) 根据得到代码区块的RVA值和内存大小,计算出内存数据的CRC-32值(3) 读取自身文件先前存储的CRC-32值(PE文件头前一个字段),这个值是通过软件写进去的.(4) 比较两个CRC-32值.这样比较内存的代码段校验,只要内存的数据被修改,就能发现。BOOL CodeSectionCRC32(){ PIMAGE_DOS_HEADER pDosHeader = NULL; PIMAGE_NT_HEADERS pNTHeader = NULL; PIMAGE_SECTION_HEADER pSection = NULL; DWORD ImageBase,OriginalCRC32;ImageBase = (DWORD)GetMoleHandle(NULL); // 取基址 pDosHeader = (PIMAGE_DOS_HEADER)ImageBase; pNtHeader = (PIMAGE_NT_HEADER32)((DWORD)pDosHeader + pDosHeader -> e_lfanew);// 定位到PE文件头前4个字节值,并读取存储在这里的CRC -32值 OriginalCRC32 = *((DWORD*)(DWORD)pNtHeader – 4);pSecHeader = IMAGE_FIRST_SECTION(pNtHeader); // 得到第一个区块的地址//假设第一个区块就是代码区块if(OriginalCRC32 == CRC32((BYTE*)ImageBase + pSecHeader -> VirtualAddress)// 为了方便加壳// 上一句也可为if(OriginalCRC32 == CRC32((BYTE *)0x401000, 0x36AE)return TRUE;elsereturn FALSE;}
⑧ checksum是什么意思
checksum意思是检查和。
checksum
词义:名词:检查和(用以校验数据项的和)。
固定搭配:checksum result校验结果。
例句:
1、This cell contains a checksum of the database record. 该单元格包含数据库记录的校验和。
2、You can add achecksumfile to your datafiles.你能够把一份检查机检验和文件加到你的数据上文件。
2、You can add achecksumfile to your datafiles.你能够把一份检查机检验和文件加到你的数据上文件。
⑨ CMD命令运行.exe程序(Checksum.exe)!无效返回
你是想把checksum.exe运行后出现的信息写到txt是吧?比如这程序放在c:\start c:\checksum.exe >c:\1.txt如果它有反馈信息,就会写在c盘中1.txt里面
未经允许不得转载:山九号 » 文件checksum文件名|linux文件系统完整性检查的基本步骤有哪些