CbsVerifyFileAgainstCatalog

    xiaoxiao2026-01-05  10

    CbsVerifyFileAgainstCatalog

    __int64 __fastcall CbsVerifyFileAgainstCatalog(__int64 a1, __int64 a2) { __int64 v2; // rdi@1 __int64 v3; // rsi@1 signed int v4; // esi@2 const char *v5; // r14@2 signed int v6; // eax@6 __int32 v7; // eax@7 __int64 *v8; // rbx@7 __int32 v9; // eax@8 __int64 v10; // rdx@8 __int64 v11; // r8@8 signed int v12; // eax@10 __int32 v13; // eax@14 signed int v14; // eax@16 __int64 v15; // rdx@16 __int64 v16; // rcx@16 __int64 v17; // rdx@17 void (__fastcall *v18)(__int64 *); // rdi@24 void (__fastcall *v19)(__int64 *); // rdi@29 void (__fastcall *v21)(__int64 *); // rdi@33 __int32 *v22; // [sp+20h] [bp-89h]@0 bool v23[8]; // [sp+30h] [bp-79h]@16 __int64 *v24; // [sp+38h] [bp-71h]@6 const char *v25; // [sp+40h] [bp-69h]@14 __int64 v26; // [sp+48h] [bp-61h]@14 const char *v27; // [sp+50h] [bp-59h]@34 __int32 v28; // [sp+58h] [bp-51h]@1 __int64 v29; // [sp+60h] [bp-49h]@8 __int64 v30; // [sp+68h] [bp-41h]@8 __int64 v31; // [sp+70h] [bp-39h]@8 __int128 v32; // [sp+80h] [bp-29h]@10 __int128 v33; // [sp+90h] [bp-19h]@10 __int64 v34; // [sp+A0h] [bp-9h]@10 __int64 v35; // [sp+A8h] [bp-1h]@10 __int64 v36; // [sp+B0h] [bp+7h]@10 char v37; // [sp+C0h] [bp+17h]@10 int v38; // [sp+C4h] [bp+1Bh]@12 int v39; // [sp+C8h] [bp+1Fh]@10 v28 = -2147023537; v2 = a2; v3 = a1; if ( !a1 ) { v4 = 150; v5 = "Not-null check failed: pszFileNameToVerify"; LABEL_3: Windows::ErrorHandling::COM::CBaseFrame<Windows::ErrorHandling::COM::CSimpleHResultCarryingFrame>::SetInvalidParameter_NullPointer(&v28); LABEL_34: LODWORD(v26) = v4; v24 = (__int64 *)"base\\cbs\\util\\cbsverifytrust.cpp"; v27 = v5; v25 = "CbsVerifyFileAgainstCatalog"; Windows::ErrorHandling::COM::CBaseFrame<Windows::ErrorHandling::COM::CSimpleHResultCarryingFrame>::ReportErrorOrigination( &v28, (Windows::ErrorHandling::COM *)&v24); return (unsigned int)v28; } if ( !a2 ) { v4 = 151; v5 = "Not-null check failed: pszCatalogToVerifyAgainst"; goto LABEL_3; } v24 = 0i64; v6 = RtlGetSystem(0, 0i64, (void (__fastcall ****)(_QWORD))&v24); if ( v6 < 0 ) { v7 = ConvertNtStatusToHResult(v6); v8 = v24; v28 = v7; LABEL_23: if ( v8 ) { v18 = *(void (__fastcall **)(__int64 *))*v8; _guard_check_icall_fptr(*(_QWORD *)*v8); v18(v8); } Windows::ErrorHandling::COM::CBaseFrame<Windows::ErrorHandling::COM::CSimpleHResultCarryingFrame>::ReportErrorPropagation(&v28); return (unsigned int)v28; } v8 = v24; v30 = 0i64; v29 = 0i64; v31 = 0i64; v9 = GetFileContents(v24, v2, (__int64)&v29); if ( v9 < 0 ) { v28 = v9; LABEL_22: Windows::Rtl::AutoBlob<Windows::Auto<_LBLOB>>::Close((__int64)&v29); goto LABEL_23; } v34 = 0i64; _mm_store_si128((__m128i *)&v32, 0i64); _mm_store_si128((__m128i *)&v33, 0i64); v35 = 0i64; v36 = 0i64; v37 = 0; v39 = 0; v12 = CCatalog::Create((CCatalog *)&v32, v10, v11, (const struct _LBLOB *)&v29, (unsigned __int32 *)v22); if ( v12 < 0 ) { v28 = ConvertNtStatusToHResult(v12); LABEL_21: CCatalog::~CCatalog((CCatalog *)&v32); goto LABEL_22; } if ( v38 != 4 ) { CBSWdsLog(0x2000000u, -2147024121, 1i64, "Can't understand the catalog algorithm in catalog %S"); v4 = 172; v5 = 0i64; v28 = ConvertNtStatusToHResult(-1073740759); goto LABEL_32; } v25 = 0i64; v24 = 0i64; v26 = 0i64; v13 = GetFileContents(v8, v3, (__int64)&v24); if ( v13 < 0 ) { v28 = v13; LABEL_20: Windows::Rtl::AutoBlob<Windows::Auto<_LBLOB>>::Close((__int64)&v24); goto LABEL_21; } v26 = 0i64; v25 = 0i64; *(_QWORD *)v23 = 0i64; v14 = RtlAllocateLBlob(32i64, (__int64)&v25); if ( v14 < 0 || (v14 = RtlHashLBlob(v16, v15, (__int64)&v24, &v25), v14 < 0) || (v28 = 0, v23[0] = 0, v14 = CCatalog::FindSubject((CCatalog *)&v32, v17, (const struct _LBLOB *)&v25, v23, &v28), v14 < 0) ) { v28 = ConvertNtStatusToHResult(v14); Windows::Rtl::AutoBlob<Windows::Auto<_LBLOB>>::Close((__int64)&v25); goto LABEL_20; } if ( !v23[0] || v28 < 0 ) { v28 = -2146762496; v4 = 197; v5 = "((HRESULT)0x800B0100L)"; Windows::Rtl::AutoBlob<Windows::Auto<_LBLOB>>::Close((__int64)&v25); Windows::Rtl::AutoBlob<Windows::Auto<_LBLOB>>::Close((__int64)&v24); LABEL_32: CCatalog::~CCatalog((CCatalog *)&v32); Windows::Rtl::AutoBlob<Windows::Auto<_LBLOB>>::Close((__int64)&v29); if ( v8 ) { v21 = *(void (__fastcall **)(__int64 *))*v8; _guard_check_icall_fptr(*(_QWORD *)*v8); v21(v8); } goto LABEL_34; } Windows::Rtl::AutoBlob<Windows::Auto<_LBLOB>>::Close((__int64)&v25); Windows::Rtl::AutoBlob<Windows::Auto<_LBLOB>>::Close((__int64)&v24); CCatalog::~CCatalog((CCatalog *)&v32); Windows::Rtl::AutoBlob<Windows::Auto<_LBLOB>>::Close((__int64)&v29); if ( v8 ) { v19 = *(void (__fastcall **)(__int64 *))*v8; _guard_check_icall_fptr(*(_QWORD *)*v8); v19(v8); } return 0i64; }
    转载请注明原文地址: https://ju.6miu.com/read-1305682.html
    最新回复(0)