计算资源中ICON,Image,Bmp的CRC值,检查自己的程序图片是否被篡改
来源:互联网 发布:淘宝集分宝怎么获得 编辑:程序博客网 时间:2024/05/22 06:29
char crc[MAX_PATH] = {0};bool CalcResourceCrc(WORD ResourceID) { AFX_MANAGE_STATE(AfxGetStaticModuleState()); HINSTANCE hInst = AfxGetResourceHandle(); hRes = FindResource(hInst, MAKEINTRESOURCE(ResourceID), RT_GROUP_ICON); //int iTest = SizeofResource(hInst, hRes); int err = ::GetLastError(); if (!hRes) return false; HRSRC hMem = (HRSRC)LoadResource(hInst, hRes); HRSRC lpResource = (HRSRC)LockResource(hMem); //BYTE bTest[30] = {0}; //memcpy(bb, lpResource, iTest); 这一段是ICON的开头信息,有点紊乱,以后研究. int nID = LookupIconIdFromDirectoryEx((PBYTE)lpResource, TRUE, 0, 0, LR_DEFAULTCOLOR); HRSRC hResource = FindResource(hInst, MAKEINTRESOURCE(nID), MAKEINTRESOURCE(RT_ICON)); hMem = (HRSRC)LoadResource(hInst, hResource); lpResource = (HRSRC)LockResource(hMem); int len = SizeofResource(hInst, hResource); BYTE b = new BYTE[len + 1]; b[len] = 0; memcpy(b, lpResource, len); _snprintf(crc, MAX_PATH, "%08X", CRC::CRC_32(b, len)); CFile inout; if(inout.Open(_T("icon.bin"), CFile::modeWrite | CFile::modeCreate)) { inout.Write(b, len); inout.Close(); } delete[] b; return true; }
经测试,输出来的文件ICON.BIN和 原来在资源中的文件的二进制值完全匹配。这个方法也可以推广到bitmap, image, jpg上,此处省略一万字。
对于RT_GROUP_ICON 找到的ICON文件头信息,有点不一样,不明觉厉,以后再追究。
参考:http://blog.csdn.net/kvw3000/article/details/69805
以下是实验的对比图
0 0
- 计算资源中ICON,Image,Bmp的CRC值,检查自己的程序图片是否被篡改
- python-计算资源图标的crc值
- WinCE显示资源中BMP图片的几种方法附自己个人实验数据
- QT 程序中加载ICON的图片
- 计算文件的MD5值上传到服务器 下载验证文件是否被篡改
- CBitmap程序中动态加载 本地文件上的BMP图片资源
- WinCE显示资源中BMP图片的几种方法
- WinCE显示资源中BMP图片的几种方法
- WinCE显示资源中BMP图片的几种方法
- WinCE显示资源中BMP图片的几种方法
- iPhone下,计算图片的crc
- Image扩展,如何将网络图片显示在自己的程序中
- 保存bmp图片的程序
- 检测网站是否被篡改的脚本
- 查表法计算crc的python演示程序
- [MTK FP]用Python把图片资源image.rar中为.pbm后缀的文件更改为.bmp后缀的方法
- VC中显示ICON和BMP图片
- Android判断图片被篡改的方法
- Serializable 作用
- jdk配置
- git 的分支合并
- 制作AssetBundle
- RabbitMQ流控机制
- 计算资源中ICON,Image,Bmp的CRC值,检查自己的程序图片是否被篡改
- POJ 2253 Frogger (floyd, 二分)
- K2 Blackpearl开发技术要点(Part1)
- 枚举的使用
- vss删除文件后报错误:File names.dat may be corrupt 修复
- 事件委托和冒泡机制有关系吗?
- String相关方法
- 分布式存储复制技术:链式复制
- vs2010 连接 oracle 11g