问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

checksum这个校验的文件咋用?

发布网友 发布时间:2022-04-30 01:38

我来回答

3个回答

懂视网 时间:2022-04-09 08:56

”,因为看过官方文档知道怎么用,手头正好有坏库,正好做个示范~

  我们先看一下DBCC CHECKDB的结果 ,目的只是告诉你这是一个有坏页的数据库!

  技术分享

 

  好了,那我们做一下备份看看!

  正常的备份,不加 checksum 成功备份!

  技术分享

  

  加上checksum备份,失败!

  技术分享

 

 

  好像果然和微软文档说的一样!看到这有些看官会想,这不和我做CHECKDB差不多了么?

  

  博主别的不多就是坏库多! 我们再拿一个库试一下!

  我们先看一下DBCC CHECKDB的结果 ,目的只是告诉你也这是一个有坏页的数据库!

  技术分享

 

  我们用checksum 备份一下

  技术分享

 

   哦??成功了???这是啥意思??

 

 

   我们先来看一下 backupset的结果 :

   技术分享

 

   那么损坏的页没check出来?我们再看一下 suspect_pages

   技术分享

    

 

    suspect_pages里只查出了Test 库的坏页,那我XB28_3库的坏页哪里去了?

    突然想到 suspect_pages 里面的数据只是 823 错误或 824 错误而失败的页!

    而且使用checksum系统表会被漏掉,本文中XB28_3库的坏页就是一个object_id = 60的 系统表!

     而且并不是数据库中所有的页都会被叫上页校验和,当页损坏发生时,IO系统可不会区分损坏的页是有页校验和还是没有校验和的。所以使用BACKUP ... WITH CHECKSUM就有可能导致一些损坏页不被发现。

  

    这也说明备份时使用checksum不能完全取代DBCC checkDB的作用,这和Paul Randal大神的文章一致 : A SQL Server DBA myth a day: (27/30) use BACKUP WITH CHECKSUM to replace DBCC CHECKDB

 

--------------博客地址---------------------------------------------------------------------------------------

Expert 诊断优化系列 http://www.cnblogs.com/double-K/

 

 

-----------------------------------------------------------------------------------------------------

 

  

  总结 :备份的checksum 选项可以用来发现数据库是否损坏,但不是所有类型的坏页都可以发现。

      看官们的疑问:backup with checksum 可以用来取代DBCC checkDB。

     这个观点是不正确的,一些逻辑一致性错误checksum是没法发现的!

        

     数据库损坏不是很常见,很多DBA工作好多年都没有遇到,但是做好CHECKDB检查还是很必要的!万一出现你没有发现就比较悲剧了!

   

  PS : 差异备份也可以使用checksum,但只会校验差异部分~

 ----------------------------------------------------------------------------------------------------

注:此文章为原创,欢迎转载,请在文章页面明显位置给出此文链接!
若您觉得这篇文章还不错请点击下右下角的推荐,非常感谢!

数据库备份checksum选项你会用么?

标签:

热心网友 时间:2022-04-09 06:04

校验和(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;

else

return FALSE;

}

热心网友 时间:2022-04-09 07:22

Z6确实属于新一代的motorola linux了Z6的QTE如果我没猜错的话,应该和E2很接近的,可以利用Lasly的E2 EZX SDK进行尝试与以前的EZX不同,Z6是2.6.10内核,不叫montavista xxx版本,而是mobilinux4.1以前的EZX使用的是cramfs格式来保存刷机包smg文件,而Z6使用的是squashfs格式。如何从sbf获得smg文件?你可以使用winhex查找hsqs头部来获得,这样比较麻烦,但同时你可以记录下原smg所在的位置方便改sbf时替换或者使用RSD Lite进行假刷机,在loading ram downloader的进度未完成时拷出生成的smg文件,然后拨掉数据线避免喜刷刷要给Z6改包,需要给你的PC LINUX安装squashfs支持你可以google搜得squashfs的源代码进行安装(可能需要对内核进行patch和重新编译)简单地,使用编译好的安装包进行安装,例如我的ubuntu就是直接使用synaptic(新立得)安装的使用mount -o loop -t squashfs <smgfile> <mountpoint>挂载smg文件tar zcvf <arch.tar.gz> <mountpoint>umount <mountpoint>tar zxvf <arch.tar.gz> -C ./修改刷机包的过程与EZX基本类似。但根文件系统已有较大不同,需探索一番使用mksquashfs <mountpoint> <newsmgfile>来生成新的smg文件在尾部添加FF内容,使新的smg文件达到原smg大小(要是生成就超过,那就删点你的东西吧,呵呵)我分解的z6_cmcc_nolock_r60_g_80.31.17r各smg文件列表如下:cg36=rootfscg43=setupcg44=secure setup*cg52=resource未发现这几个smg存在像EZX一样的FF头部,各squashfs的smg文件均可直接挂载*:需要注意的是:cg44包含0x800尾部,呵呵,这个很意外直接用winhex拷原版cg44的尾部,替换生成的smg的尾部吧。制作完smg文件后需要进行的是刷机包sbf的替换和修改先将你的修改的smg的内容替换进sbf里原smg的位置,这个较简单比较重要的是checksum的替换,这关系到你的sbf能否正确刷入,完成checksum校验各smg 的 checksum 保存在sbf文件内的0x750~0x1000位置使用checksum <smgfile>来获得checksum值,注意,得出的值是反向的,如得到ab cd,则应写入/查找 cd ab* checksum.exe作者是yan0以下是我拆的版本的各smg checksum值及值的位置:cg36.smg 85 A5 @ 0x7F4cg43.smg 26 F5 @ 0x8B8cg44.smg 1A 7A @ 0x8D4cg46.smg 65 4C @ 0x90Ccg52.smg 05 EB @ 0x9E4
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
关于聚金宝 买白银问题 平安银行个人贵金属交易业务有哪些? 网易云音乐为什么歌这么少? 公路边种的有什么花 高速路上常用的绿化花卉有那些? 公路绿化用什么花 我一键开核后顺利进入WIN7 系统,可是一开网站就重启是怎么回事,我开6... 电脑开不了机,反复重启,显示器也没反应 技嘉MA78LM-S2开核后怎么不能进系统?老是自动重启。 X3 440开核后不断重启 豆腐炖香肠怎么做 如何计算checksum 如何计算TCP的CHECKSUM 战歌是什么意思? 战歌是什么意思啊 斗鱼直播天天说战歌 会务服务的会务流程 如何开物业保安会议? 如何做好会务保障工作? 怎么在ps里画出这样的波浪圈 保安会议内容有哪些 ps中 波浪圈 怎么画 六安苏埠糯米圆子的做法 物业保安会议提什么建议好呢 谁能告诉我PS怎么能做出下面这图的效果 波浪花边 ps这种波浪图形怎么做的? PS里如何才能看起来平滑? ps如何制作波浪形花边 泼水节是什么的节日 怎样找到QQ密码 泼水节有什么特点? CRC和checksum的区别 腊肠煮豆腐的做法,腊肠煮豆腐怎么做好吃,腊肠 Checksum计算 yy里面经常放什么战歌? 微信聊天记录中向某账号发送的信息被长按该条消息删除后如何恢复?如 checksum文件 效验怎么算 除了水煮,香肠还能怎么吃呢? 触手tv剑仙,我以前看他直播的时候听过一首歌,当时他说我要放战歌了…。这首歌是送给喷子们的… md5 checksum与md5是一样吗 抖音标题跑到评论里怎么改回来 [串口通讯]关于发送指令时的 CHECKSUM,帮忙解析下通讯协议。 征途指挥刺探的时候YY里放战歌是怎么放的 苹果微信消息删除了怎么恢复 为何做香肠后煮出的香肠全成豆腐渣样? ip checksun 怎么计算 男人放这首歌代表他心里想表达什么呢! QQ巨轮怎么换人。 串口 通信 检验和 tt中放战歌为什么没声音 WireShark 中为什么会出现 Tcp Checksum Offload