前言
众所周知,每个人都有独一无二的指纹。与之类似,在计算机世界里,文件也可以通过一些貌似很复杂的算法(常见的MD5, SHA-1等),得到一个序列。不同的文件,其”数字指纹”不同。
介绍
这周写了一个叫Hash Modifier的小工具,原理很简单,功能是在不损坏文件的前提下,批量修改文件Hash值 。至于为什么要修改,没有具体的原因,各有各的用途,通常用于应付各种文件黑名单等等。
细节
纯C + Window SDK编写
高效批量修改
单次操作对文件的影响微乎其微 (会增加1 Byte),经测试不会影响正常使用
不存在Win平台(x86/x64)兼容性问题
需要当前用户具有指定目录的写入权限
另外还提供CUI版本,供Dos下使用
截图示例
代码
又到了代码分享时间,代码量比较少,两百多行,很简单。。下面拿出CUI版中修改文件用到的函数的代码,顺便说说原理。完整源码与GUI版本的源码截图都在末尾。
int Mod(FILE *fp)
{
int iResult;
if (fp == NULL)
return 0;
iResult = fseek(fp, 0L, 2);
if (iResult == -1)
return 0;
iResult = fwrite("\0", 1, 1, fp);
if (iResult == 1)
return 1;
else
return 0;
}
测试
如图约80M的视频,用软件操作一次,也就是在文件末尾加上一个字节’\0’,SHA-1发生了变化,但本身基本无影响,可以正常使用。
链接:https://pan.baidu.com/s/1w-XNAIVvfNOeHJOnBr-_Dw?pwd=zo5m
提取码:zo5m
以上是相关代码资源