当前位置: 首页 > news >正文

calchash.exe和chckhash.exe计算pe文件hash值的两个实用小工具

第一部分:
C:\WINDOWS\system32\CatRoot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}\NT5.CAT t部分内容

B B D 0 2 2 2 1 A A 6 5 5 6 2 8 F 4 9 5 F 6 C D 3 0 3 9 0 8 B B E 0 0 F 9 5 9 5  

第二部分:
D:\>calchash.exe pidgen.dll
BB D0 22 21 AA 65 56 28 F4 95 F6 CD 30 39 08 BB E0 0F 95 95

第三部分:
D:\>chckhash.exe pidgen.dll
C:\WINDOWS\system32\CatRoot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}\NT5.CAT contains pidgen.dll
C:\WINDOWS\system32\CatRoot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}\SP3.CAT contains pidgen.dll

第四部分:main函数主要调用了一个CryptCATAdminCalcHashFromFileHandle函数

D:\srv03rtm\ds\security\cryptoapi\pkitrust\tools\calchash\calchash.cpp

 

extern "C" int __cdecl wmain(int argc, WCHAR **wargv)
{
int                 cMember;
cWArgv_             *pArgs;
BOOL                fFailed;
CRYPTCATCDF         *pCDF;
CRYPTCATMEMBER      *pMember;
LPWSTR              pwszMemberTag;
CRYPTCATATTRIBUTE   *pAttr;
BOOL                fContinueOnError;
BYTE                pbHash[40];
DWORD               cbHash = sizeof(pbHash);
HANDLE               hFile;
LPSTR               psz;

    pCDF = NULL;

    if (!(pArgs = new cWArgv_((HINSTANCE)GetModuleHandle(NULL), &fFailed)))
{
goto MemoryError;
}

    if (fFailed)
{
goto MemoryError;
}

    pArgs->AddUsageText(IDS_USAGETEXT_USAGE, IDS_USAGETEXT_OPTIONS,
IDS_USAGETEXT_OPTPARAM, IDS_USAGETEXT_FILENAME, IDS_USAGETEXT_OPTPARAM);

    pArgs->Add2List(IDS_PARAM_HELP,         IDS_PARAMTEXT_HELP,       WARGV_VALUETYPE_BOOL, (void *)FALSE);

    pArgs->Fill(argc, wargv);

    if (!(pArgs->Fill(argc, wargv)) ||
(pArgs->GetValue(IDS_PARAM_HELP)))
{
wprintf(L"%s", gszUsage);
goto NeededHelp;
}

    if (!(pwszFile = pArgs->GetFileName()))
{
wprintf(L"%s",gszUsage);
goto ParamError;
}

    pPrint = new PrintfU_;

    SetLastError(0);

    if ((hFile = CreateFileU(pwszFile,
GENERIC_READ,
FILE_SHARE_READ,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL)) == INVALID_HANDLE_VALUE)
{

        wprintf(L"Cannot open file - GLE = %lx\n", GetLastError());
goto CATCloseError;
}

    if (!CryptCATAdminCalcHashFromFileHandle(hFile,
&cbHash,
pbHash,
0))
{
goto CATCloseError;
}

http://www.xdnf.cn/news/1355095.html

相关文章:

  • 智慧零售漏扫率↓79%!陌讯多模态融合算法在智能收银与货架管理的实战解析
  • 双目密集匹配(stereo dense matching)
  • stack,queue以及deque的介绍
  • 深度学习中主流激活函数的数学原理与PyTorch实现综述
  • 【字母异位分组】
  • 随机森林1
  • 【机器学习深度学习】多模态学习
  • 【GaussDB】使用MySQL客户端连接到GaussDB的M-Compatibility数据库
  • 【85页PPT】数字化转型LIMS大型企业智能制造之LIMS实验室管理系统产品解决方案(附下载方式)
  • MVC模式在个人博客系统中的应用
  • 简单介绍计算机的工作过程
  • 激光雷达工作原理
  • 算法训练营day59 图论⑨ dijkstra(堆优化版)精讲、Bellman_ford 算法精讲
  • C++初阶(2)C++入门基础1
  • 第1篇:走进日志框架的世界 - 从HelloWorld到企业级应用
  • 为什么在WHERE子句里使用函数,会让索引失效
  • 复杂工业场景误报率↓85%!陌讯多模态火焰识别算法实战解析
  • Codeforces Round 1043 (Div. 3)(A-E)
  • 历史数据分析——半导体
  • 【科研绘图系列】浮游植物的溶解性有机碳与初级生产力的关系
  • 【Game】Powerful——Punch and Kick(12.2)
  • ComfyUI Portrait Master肖像大师中文版
  • 【51单片机】【protues仿真】基于51单片机宠物投食器系统
  • Redis 持久化策略
  • 如何创建自己的 Minecraft 世界
  • MiMo-VL 技术报告
  • rust语言 (1.88) egui (0.32.1) 学习笔记(逐行注释)(九)数值拖拽控件、进度条、滑动条
  • 【51单片机】【protues仿真】 基于51单片机储物箱系统
  • 双指针:三数之和
  • Sentinel相关记录