From d3095127a2d2da47718ef57b78974a47115b549c Mon Sep 17 00:00:00 2001 From: Maurice Heumann Date: Tue, 21 Feb 2023 21:02:07 +0100 Subject: [PATCH] Precompute integrity checks --- src/client/component/arxan.cpp | 37 +- src/client/component/integrity.hpp | 1242 ++++++++++++++++++++++++++++ 2 files changed, 1277 insertions(+), 2 deletions(-) create mode 100644 src/client/component/integrity.hpp diff --git a/src/client/component/arxan.cpp b/src/client/component/arxan.cpp index dc43c6e3..c99b3d45 100644 --- a/src/client/component/arxan.cpp +++ b/src/client/component/arxan.cpp @@ -10,6 +10,8 @@ #include #include +#include "integrity.hpp" + #define ProcessDebugPort 7 #define ProcessDebugObjectHandle 30 #define ProcessDebugFlags 31 @@ -602,12 +604,41 @@ namespace arxan utils::hook::call(game_address, stub); } + void search_and_patch_integrity_checks_precomputed() + { + if (game::is_server()) + { + for (const auto i : intact_integrity_check_blocks_server) + { + patch_intact_basic_block_integrity_check(reinterpret_cast(game::relocate(i))); + } + + for (const auto i : split_integrity_check_blocks_server) + { + patch_split_basic_block_integrity_check(reinterpret_cast(game::relocate(i))); + } + } + else + { + for (const auto i : intact_integrity_check_blocks) + { + patch_intact_basic_block_integrity_check(reinterpret_cast(game::relocate(i))); + } + + for (const auto i : split_integrity_check_blocks) + { + patch_split_basic_block_integrity_check(reinterpret_cast(game::relocate(i))); + } + } + } + void search_and_patch_integrity_checks() { // There seem to be 1219 results. // Searching them is quite slow. // Maybe precomputing that might be better? - const auto intact_results = "89 04 8A 83 45 ? FF"_sig; + + /*const auto intact_results = "89 04 8A 83 45 ? FF"_sig; const auto split_results = "89 04 8A E9"_sig; for (auto* i : intact_results) @@ -618,7 +649,9 @@ namespace arxan for (auto* i : split_results) { patch_split_basic_block_integrity_check(i); - } + }*/ + + search_and_patch_integrity_checks_precomputed(); } LONG WINAPI exception_filter(const LPEXCEPTION_POINTERS info) diff --git a/src/client/component/integrity.hpp b/src/client/component/integrity.hpp new file mode 100644 index 00000000..1ef7c15b --- /dev/null +++ b/src/client/component/integrity.hpp @@ -0,0 +1,1242 @@ +#pragma once + +#include + +constexpr uint64_t intact_integrity_check_blocks[] = +{ + 0x1412DB621, + 0x1421902A2, + 0x14219E77E, + 0x14219FDDA, + 0x1421A3824, + 0x1421A4AA4, + 0x1421AA8A0, + 0x1421AAA0C, + 0x1421ABF14, + 0x1421AFB02, + 0x1421B18F9, + 0x1421B1AEF, + 0x1421B704D, + 0x1421B7243, + 0x1421BAB1D, + 0x1421C006B, + 0x1421C574D, + 0x1421C9FF1, + 0x1421CB658, + 0x1421D16B3, + 0x1421D3654, + 0x1421D4795, + 0x1421D5FDD, + 0x1421D62DF, + 0x1421DAC08, + 0x1421DD815, + 0x1421E6CA7, + 0x1421EB71A, + 0x1421F8B05, + 0x1421FA1E4, + 0x1421FB449, + 0x1422458FB, + 0x14224B0D4, + 0x1422E0837, + 0x1422F7745, + 0x1422FAD8F, + 0x14230555B, + 0x14230DC41, + 0x14231ACB5, + 0x14231D095, + 0x14287A304, + 0x14291E38F, + 0x142BE5E54, + 0x142C73251, + 0x142C7CC0C, + 0x142CCCF0F, + 0x15AB3876F, + 0x15AB42403, + 0x15AB45FBA, + 0x15AB4784F, + 0x15AB4B130, + 0x15AB7F2F8, + 0x15AB99231, + 0x15ABB5BB6, + 0x15ABB70A0, + 0x15ACE9577, + 0x15ACEB2B2, + 0x15AD8F00F, + 0x15AD92701, + 0x15AD94AF3, + 0x15AD98873, + 0x15AF34A25, + 0x15AF3734F, + 0x15AF38B05, + 0x15AF519D6, + 0x15AF53104, + 0x15AF54470, + 0x15AFC5EF0, + 0x15AFC86F5, + 0x15AFE60C0, + 0x15B1196C1, + 0x15B15F458, + 0x15B162864, + 0x15B2C472C, + 0x15B2CF6C6, + 0x15B2E3008, + 0x15B2E9D80, + 0x15B2EC126, + 0x15B2EF0D2, + 0x15B2F7AB4, + 0x15B2FB38D, + 0x15B2FCECF, + 0x15B2FE030, + 0x15B2FE0D9, + 0x15B3073D1, + 0x15B3ECD5F, + 0x15B3ED7FF, + 0x15B45BA07, + 0x15B45CCA5, + 0x15B45E227, + 0x15B45EBCF, + 0x15B45F29D, + 0x15B465012, + 0x15B46EEAF, + 0x15B47318D, + 0x15B47612F, + 0x15B4771C6, + 0x15B478482, + 0x15B494A82, + 0x15B495540, + 0x15B4A5E34, + 0x15B4AA305, + 0x15B4AD6C0, + 0x15B4B3B38, + 0x15B4C6F95, + 0x15B4C9939, + 0x15B4E0C37, + 0x15B4E4735, + 0x15B4EECA8, + 0x15B4F943E, + 0x15B501019, + 0x15B5040EE, + 0x15B5794A8, + 0x15B580AEE, + 0x15B580C7A, + 0x15B58B8C1, + 0x15B58FDC6, + 0x15B5912CF, + 0x15B594B45, + 0x15B59E430, + 0x15B5A1B1D, + 0x15B5B95CD, + 0x15B5C3275, + 0x15B5C4994, + 0x15B5C824A, + 0x15B5C99EB, + 0x15B5CA8B7, + 0x15B64336B, + 0x15B660AB5, + 0x15B66A990, + 0x15B66BF31, + 0x15B66FF8A, + 0x15B6777EB, + 0x15B67CAA8, + 0x15B7AB901, + 0x15B7CB0BE, + 0x15B7CF1C4, + 0x15B7D7EDB, + 0x15B7EDBDD, + 0x15B7EE9A3, + 0x15B7F6932, + 0x15B7F742C, + 0x15B7F7B78, + 0x15B828EEB, + 0x15B83DBCB, + 0x15B85BF85, + 0x15B866284, + 0x15B869F95, + 0x15B86C3D4, + 0x15B86E706, + 0x15B88D858, + 0x15B88F6A6, + 0x15B8919FE, + 0x15B892F11, + 0x15B89C735, + 0x15B8A65DF, + 0x15B8AFEC7, + 0x15B8B2F68, + 0x15B8E2731, + 0x15B8E2D48, + 0x15B8E6FD5, + 0x15B8E8BAB, + 0x15B91E4C0, + 0x15B91EE7A, + 0x15B91F2B5, + 0x15B923CD9, + 0x15B92E2D7, + 0x15B92E66D, + 0x15B9B782C, + 0x15B9BAECA, + 0x15B9BAFA9, + 0x15B9BDACD, + 0x15BAEA56F, + 0x15BAEC562, + 0x15BAF8E49, + 0x15BAF9C83, + 0x15BAFE4E6, + 0x15BB13DF6, + 0x15BB1A32D, + 0x15BB1BA87, + 0x15BB85BC7, + 0x15BB87839, + 0x15BB9189F, + 0x15BB9431C, + 0x15BB94CA6, + 0x15BB9824E, + 0x15BB9B796, + 0x15BB9E52D, + 0x15BBB8761, + 0x15BBB8C72, + 0x15BBBD472, + 0x15BBD4880, + 0x15BBD548E, + 0x15BC29769, + 0x15BC30BFA, + 0x15BC49C54, + 0x15BC4A648, + 0x15BC4C37D, + 0x15BC4D187, + 0x15BC4E1FA, + 0x15BC6520A, + 0x15BC6C18C, + 0x15BC7E73D, + 0x15BC7E9A0, + 0x15BC82F00, + 0x15BC83DDA, + 0x15BC89C76, + 0x15BCA56FF, + 0x15BCA91B3, + 0x15BCB2E4C, + 0x15BCB3208, + 0x15BCB353C, + 0x15BCBFB20, + 0x15BCC0472, + 0x15BDF18B2, + 0x15BDF2261, + 0x15BDF27BB, + 0x15BDF4316, + 0x15BDF57BB, + 0x15BDF6981, + 0x15BDF9718, + 0x15BDFABD9, + 0x15BE018F6, + 0x15BE06F66, + 0x15BE0B4D2, + 0x15BE158F9, + 0x15BE17D18, + 0x15BE18878, + 0x15BE1DEE2, + 0x15BE2BD0F, + 0x15BE2E29E, + 0x15BE38ACF, + 0x15BE42E18, + 0x15BE45BE1, + 0x15BE495DA, + 0x15BE52B4D, + 0x15BE629CC, + 0x15BE62A75, + 0x15BE84993, + 0x15BEA7A17, + 0x15BEAA6AF, + 0x15BEAB97F, + 0x15BEEBAFB, + 0x15BEF1CE2, + 0x15BEF4B31, + 0x15BEF53CD, + 0x15BEF5477, + 0x15BF32710, + 0x15BF371E0, + 0x15BF38E96, + 0x15BF3AFC2, + 0x15BF40734, + 0x15BF437AD, + 0x15BF44989, + 0x15BF4867E, + 0x15BF4BD4A, + 0x15BF68F29, + 0x15BF8BE64, + 0x15BF9E475, + 0x15BFA6771, + 0x15BFABEE4, + 0x15BFAEB25, + 0x15BFB5B60, + 0x15BFB6A48, + 0x15BFD7856, + 0x15BFD812A, + 0x15BFD9323, + 0x15BFFD00C, + 0x15C002DB6, + 0x15C003A6C, + 0x15C0046A8, + 0x15C00BF11, + 0x15C023E0F, + 0x15C027791, + 0x15C033861, + 0x15C035051, + 0x15C03578B, + 0x15C03803D, + 0x15C03F733, + 0x15C041896, + 0x15C06421B, + 0x15C064ADB, + 0x15C0E7A3A, + 0x15C10E820, + 0x15C1114A9, + 0x15C116067, + 0x15C116EA8, + 0x15C12B095, + 0x15C1588AC, + 0x15C159C1B, + 0x15C1670F3, + 0x15C16E2F7, + 0x15C16FF53, + 0x15C171254, + 0x15C249A45, + 0x15C2788C2, + 0x15C2928F2, + 0x15C2A0D00, + 0x15C2AF398, + 0x15C2B3309, + 0x15C2B3AD7, + 0x15C2B3C73, + 0x15C2B671A, + 0x15C2B8D8C, + 0x15C2C4F37, + 0x15C2CB4C8, + 0x15C2D36FF, + 0x15C2ED222, + 0x15C2EE90A, + 0x15C304534, + 0x15C31F73F, + 0x15C324EE5, + 0x15C327643, + 0x15C327FF5, + 0x15C3389A0, + 0x15C342F66, + 0x15C34403C, + 0x15C35DEFB, + 0x15C362B4E, + 0x15C363A2F, + 0x15C41A269, + 0x15C493724, + 0x15C4A94D4, + 0x15C4B01C4, + 0x15C4B5467, + 0x15C4B57BF, + 0x15C4B77F9, + 0x15C4BA467, + 0x15C4BE25C, + 0x15C4C3ADB, + 0x15C4C5957, + 0x15C4C6FD9, + 0x15C4CF39C, + 0x15C4D16EF, + 0x15C4D1C52, + 0x15C4D7997, + 0x15C4DEBAE, + 0x15C4DF9FF, + 0x15C4E4C0F, + 0x15C4F0D5B, + 0x15C4F18F4, + 0x15C4F745B, + 0x15C4F75DD, + 0x15C4FD042, + 0x15C5039A3, + 0x15C51A523, + 0x15C590AB3, + 0x15C5A908F, + 0x15C5B50F2, + 0x15C5BD76D, + 0x15C5C5C76, + 0x15C5CB016, + 0x15C5CBB3A, + 0x15C5CF8C0, + 0x15C5D6DC8, + 0x15C7489EB, + 0x15C74A959, + 0x15C7518CF, + 0x15C751D11, + 0x15C75295A, + 0x15C7562A5, + 0x15C759A01, + 0x15C77B9BC, + 0x15C77E47E, + 0x15C78068F, + 0x15C799629, + 0x15C7A7B57, + 0x15C7CDEE5, + 0x15C7CF506, + 0x15C7D0CBF, + 0x15C7D2E31, + 0x15C80F283, + 0x15C810413, + 0x15C93A407, + 0x15C93AFB8, + 0x15C93FD0F, + 0x15C93FE68, + 0x15C94B5AA, + 0x15C956341, + 0x15C957419, + 0x15C95B0EE, + 0x15C95D2C8, + 0x15C95DB0F, + 0x15C96DAFB, + 0x15C96EDF6, + 0x15C97DE75, + 0x15C983D79, + 0x15C99F3B7, + 0x15CA2B7C9, + 0x15CA33ABB, + 0x15CA361C2, + 0x15CA39934, + 0x15CA3BE99, + 0x15CA3C439, + 0x15CA3F23B, + 0x15CA4124F, + 0x15CA44ECC, + 0x15CA4D38B, + 0x15CA4EE87, + 0x15CA53881, + 0x15CA54F82, + 0x15CA75E40, + 0x15CA7797E, + 0x15CA7869A, + 0x15CA82545, + 0x15CA9B8D1, + 0x15CAAB678, + 0x15CAAD91C, + 0x15CAAF598, + 0x15CAAFCC2, + 0x15CABC263, + 0x15CABE256, + 0x15CACCD7E, + 0x15CAD05A6, + 0x15CAEFEC6, + 0x15CAF1D53, + 0x15CAF98A7, + 0x15CAFE6A4, + 0x15CAFF587, + 0x15CB00A5C, + 0x15CB1198A, + 0x15CB1363F, + 0x15CB1A1B9, + 0x15CB1B6A7, + 0x15CB21104, + 0x15CB2651F, + 0x15CB3B495, + 0x15CB42D54, + 0x15CB68A80, + 0x15CB6ABFF, + 0x15CB8160A, + 0x15CB825E8, + 0x15CBFE3D7, + 0x15CC05A71, + 0x15CC06EED, + 0x15CC0B912, + 0x15CC2BD98, + 0x15CC4E38C, + 0x15CC4E822, + 0x15CC504DF, + 0x15CC52FBA, + 0x15CC54277, + 0x15CC5630D, + 0x15CC6D011, + 0x15CCE0CFF, + 0x15CCE38BA, + 0x15CCE97E2, + 0x15CCEF4C3, + 0x15CD08768, + 0x15CD08E0F, + 0x15CD10D50, + 0x15CDFE8FB, + 0x15CE00A34, + 0x15CE0200D, + 0x15CE10449, + 0x15CE12A3C, + 0x15CE1357C, + 0x15CE15F3C, + 0x15CE17AE5, + 0x15CE1AFD1, + 0x15CE23B44, + 0x15CE37871, + 0x15CE5174C, + 0x15CE5391D, + 0x15CEC82B8, + 0x15CED055D, + 0x15D018EC7, + 0x15D025497, + 0x15D02945A, + 0x15D02B3FC, + 0x15D02B652, + 0x15D031725, + 0x15D0364D7, + 0x15D03CD08, + 0x15D03EE81, + 0x15D041334, + 0x15D062313, + 0x15D067DB6, + 0x15D0E33DC, + 0x15D0E3D08, + 0x15D0F1772, + 0x15D0F2FF4, + 0x15D0FA34A, + 0x15D11B335, + 0x15D11DF35, + 0x15D1215A9, + 0x15D1273E3, + 0x15D12AA85, + 0x15D131D58, + 0x15D1375A0, + 0x15D1655F9, + 0x15D1662AD, + 0x15D169FB3, + 0x15D16C66D, + 0x15D185FBF, + 0x15D18DEB9, + 0x15D195A20, + 0x15D19CCB0, + 0x15D19D61C, + 0x15D1BF451, + 0x15D1C74A0, + 0x15D1CCC97, + 0x15D1D58B1, + 0x15D1E3C99, + 0x15D311705, + 0x15D3141D1, + 0x15D3177AE, + 0x15D317B20, + 0x15D317E2A, + 0x15D31BD92, + 0x15D31C2FB, + 0x15D3288ED, + 0x15D33B188, + 0x15D33D6E8, + 0x15D3486C8, + 0x15D352AB8, + 0x15D36EB3F, + 0x15D375523, + 0x15D383AF0, + 0x15D3856F7, + 0x15D388C94, + 0x15D38DBF4, + 0x15D4BD63C, + 0x15D4BDF2F, + 0x15D4EA826, + 0x15D4ECB3D, + 0x15D4FBB8D, + 0x15D4FD038, + 0x15D4FF454, + 0x15D512CE4, + 0x15D515A9F, + 0x15D516EB9, + 0x15D51C895, + 0x15D5388A4, + 0x15D540703, + 0x15D541BA3, + 0x15D545490, + 0x15D54C163, + 0x15D550E3F, + 0x15D552748, + 0x15D552DE7, + 0x15D56AF87, + 0x15D56B9F2, + 0x15D56D9B3, + 0x15D56F41C, + 0x15D57284F, + 0x15D575A91, + 0x15D57692D, + 0x15D5769A2, + 0x15D57E61C, + 0x15D594716, + 0x15D596A2D, + 0x15D59B6AA, + 0x15D5A0B25, + 0x15D5A343C, + 0x15D5A4552, + 0x15D5AA1AD, + 0x15D5ACE62, + 0x15D5AD24D, + 0x15D5B86E6, + 0x15D5C11A0, + 0x15D5CB925, + 0x15D5CC078, + 0x15D5E0FE9, + 0x15D5E3B0D, + 0x15D5EBD35, + 0x15D5EBF32, + 0x15D5EDC52, + 0x15D5F58F7, + 0x15D5FA3C5, + 0x15D5FFA3F, + 0x15D602111, + 0x15D606714, + 0x15D6084CE, + 0x15D7C3470, + 0x15D7C75D3, + 0x15D7E3A25, + 0x15D7E8070, + 0x15D7EA2B3, + 0x15D7EA662, + 0x15D7ED110, + 0x15D7EF538, + 0x15D7F0BB0, + 0x15D7F2633, + 0x15D7F4BF9, + 0x15D7F70E4, + 0x15D7FF419, + 0x15D80820F, + 0x15D809BE4, + 0x15D80C120, + 0x15D813F4D, + 0x15D81619B, + 0x15D93D43A, + 0x15D9AB67A, + 0x15D9C2A37, + 0x15D9C4A30, + 0x15D9DF5FC, + 0x15D9E053D, + 0x15DA02876, + 0x15DA07B78, + 0x15DA09E7C, + 0x15DA0D85D, + 0x15DA10108, + 0x15DA189F2, + 0x15DA22ACC, + 0x15DA26131, + 0x15DABA3B1, + 0x15DABB271, + 0x15DABC40C, + 0x15DAC2BFE, + 0x15DAC9D11, + 0x15DAD4D9D, + 0x15DAD7F36, + 0x15DAF6353, + 0x15DAF8056, + 0x15DAFAC38, + 0x15DAFEDB4, + 0x15DB16F8B, + 0x15DB1A2D3, + 0x15DB34DE8, + 0x15DB37AB9, + 0x15DB3BF53, + 0x15DB3CB6F, + 0x15DB54449, + 0x15DB56292, + 0x15DB5B833, + 0x15DB5EED1, + 0x15DB651F8, + 0x15DB80425, + 0x15DB86AA8, + 0x15DB877F9, + 0x15DB9AD39, + 0x15DB9C645, + 0x15DBA0072, + 0x15DBA6D86, + 0x15DBA8EB4, + 0x15DBAA61C, + 0x15DBACDFF, + 0x15DBAE85B, + 0x15DBB11D1, + 0x15DBD4194, + 0x15DBD4941, + 0x15DBDF835, + 0x15DBE5BF4, + 0x15DBFD37D, + 0x15DC8D7C4, + 0x15DC8F96F, + 0x15DC9352F, + 0x15DC95E20, + 0x15DC9B3B6, + 0x15DCA5788, + 0x15DCAC2E6, + 0x15DCBD6A7, + 0x15DCBF8EC, + 0x15DCC0BA2, + 0x15DCC620A, + 0x15DCCE6E5, + 0x15DCCF44B, + 0x15DCD128A, + 0x15DCD1573, + 0x15DD06422, + 0x15DD071A3, + 0x15DD10C66, + 0x15DD1228E, + 0x15DD12ABA, + 0x15DD15DA7, + 0x15DD1BE9D, + 0x15DDFCA9E, + 0x15DE06808, + 0x15DE35EBB, + 0x15DE36BC5, + 0x15DE5B053, + 0x15DE5C3B4, + 0x15DE67B43, + 0x15DE68628, + 0x15DE6DA7C, + 0x15DE6E122, + 0x15DE7408E, + 0x15DE850BD, + 0x15DE85B7C, + 0x15DE94380, + 0x15DE9F064, + 0x15DF1943A, + 0x15DF1A047, + 0x15DF1CD15, + 0x15DF4B294, + 0x15DF66F22, + 0x15DF6B116, + 0x15DF79F44, + 0x15DF7D113, + 0x15DF7F662, + 0x15DF7FA5D, + 0x15DF8461D, + 0x15DF8C054, + 0x15DF92740, + 0x15DFA842A, + 0x15DFC0E4C, + 0x15DFC5224, + 0x15DFCA7F4, + 0x15E0038DF, + 0x15E02201F, + 0x15E0287E3, + 0x15E02E6B7, + 0x15E02E8B5, + 0x15E0328FA, + 0x15E036DC3, + 0x15E03C78A, + 0x15E040A7D, + 0x15E04182B, + 0x15E0428A7, + 0x15E050867, + 0x15E058ACD, + 0x15E0630AC, + 0x15E2CFAB1, + 0x15E2D1164, + 0x15E2D98AE, + 0x15E300AE3, + 0x15E3324F9, + 0x15E3325B6, + 0x15E3368D7, + 0x15E3396E7, + 0x15E34F607, + 0x15E43A8BD, + 0x15E45733B, + 0x15E464BA6, + 0x15E4669CF, + 0x15E46F96E, + 0x15E475479, + 0x15E475CFA, + 0x15E4787EE, + 0x15E478D71, + 0x15E47B6B5, + 0x15E484BCD, + 0x15E48B66A, + 0x15E48F7D6, + 0x15E492DF1, + 0x15E4C02A3, + 0x15E4D9BAC, + 0x15E4DE53E, + 0x15E4DF145, + 0x15E4DFF44, + 0x15E4E32A0, + 0x15E4EA47C, + 0x15E4EBDF4, + 0x15E506C85, + 0x15E51D1AC, + 0x15E525E8D, + 0x15E546E4F, + 0x15E54A55F, + 0x15E54D2E5, + 0x15E54D47C, + 0x15E5572D6, + 0x15E559C38, + 0x15E55A2C8, + 0x15E561607, + 0x15E5DAA0B, + 0x15E5DF4D5, + 0x15E5E51DD, + 0x15E5E8FC0, + 0x15E5EAD4C, + 0x15E5F26AA, + 0x15E5F4F48, + 0x15E5F57D8, + 0x15E5F8605, + 0x15E5FE8CC, + 0x15E5FFCFD, + 0x15E60130B, + 0x15E61305C, + 0x15E68D8E2, + 0x15E68E5A1, + 0x15E68EAE1, + 0x15E68FCB7, + 0x15E692A44, + 0x15E695607, + 0x15E697A44, + 0x15E69B4AE, + 0x15E6A6F18, + 0x15E6B0B06, + 0x15E6B1E90, + 0x15E6B2051, + 0x15E6B3253, + 0x15E6BC223, + 0x15E6BCB5E, + 0x15E6BEFD0, + 0x15E6CAF10, + 0x15E6D7237, + 0x15E6DE756, + 0x15E6DF446, + 0x15E6E028C, + 0x15E810A03, + 0x15E81995C, + 0x15E81A0B2, + 0x15E81F79E, + 0x15E820318, + 0x15E835208, + 0x15E83A215, + 0x15E840E71, + 0x15E843F57, + 0x15E844514, + 0x15E85A143, + 0x15E86E47A, + 0x15E86FFBC, + 0x15E89FFD8, + 0x15E8A44BD, + 0x15E8A56AD, + 0x15E8A5A37, + 0x15E8A9D59, + 0x15EA022BF, + 0x15EA91795, + 0x15EA92109, + 0x15EA96E16, + 0x15EAAAEEC, + 0x15EAB1DC9, + 0x15EABADFB, + 0x15EABC166, + 0x15EADDD6C, + 0x15EAE3856, + 0x15EAE99E3, + 0x15EAEA3D4, + 0x15EAF2E35, + 0x15EB0CDBA, + 0x15EB25B4F, + 0x15EB4E87B, + 0x15EB61DAB, + 0x15EB621A8, + 0x15EB65D57, + 0x15EB66449, + 0x15EB69B9F, + 0x15EB6BDD4, + 0x15EB71077, + 0x15EB7D86F, + 0x15EB83428, + 0x15EB842B8, + 0x15EB8A8EA, + 0x15EBBE8E6, + 0x15EBC251B, + 0x15EBC9588, + 0x15EBC99B0, + 0x15EBE22D8, + 0x15EBE45AD, + 0x15EBE72A5, + 0x15ED119FF, + 0x15EE9E8C0, + 0x15EE9ECAA, + 0x15EEB5D59, + 0x15EEBD715, + 0x15EEC0497, + 0x15EEC0E07, + 0x15EEDD889, + 0x15EEE5CD5, + 0x15EEE87FB, + 0x15EEEDC36, + 0x15EF64E3F, + 0x15EF667E2, + 0x15EF698E0, + 0x15EF6CE1F, + 0x15EF6D4A5, + 0x15EF75A95, + 0x15EF78700, + 0x15EF79050, + 0x15EF91844, + 0x15EF9452C, + 0x15EF94717, + 0x15EF95BFA, + 0x15EF9EF60, + 0x15EFAFD60, + 0x15EFB3750, + 0x15EFB93E5, + 0x15EFBD76C, + 0x15EFBE379, + 0x15EFBF0BF, + 0x15EFC0F61, + 0x15EFC9A20, + 0x15EFCB19C, + 0x15EFCCB5E, + 0x15F046328, + 0x15F0497FA, + 0x15F068D2E, + 0x15F0783A9, + 0x15F095A16, + 0x15F0B0D03, + 0x15F0BD3B5, + 0x15F0DF9B9, + 0x15F2FBF4E, + 0x15F2FFDF3, + 0x15F30E8FE, + 0x15F310274, + 0x15F313D72, + 0x15F339144, + 0x15F33A63C, + 0x15F33ABF6, + 0x15F3456BB, + 0x15F3493EE, + 0x15F3535CE, + 0x15F35AD1B, + 0x15F3743D1, + 0x15F37D6A0, + 0x15F39D3BA, + 0x15F3B30F5, + 0x15F3B4BBA, + 0x15F3BC17D, + 0x15F3BF1EF, + 0x15F3DA851, + 0x15F3DBA6C, + 0x15F3E26E5, + 0x15F3E7A70, + 0x15F3E96F4, + 0x15F3F2D93, + 0x15F3FDBD4, + 0x15F400130, + 0x15F439DB6, + 0x15F44B9CE, + 0x15F44C2EC, + 0x15F451168, + 0x15F4533DF, + 0x15F459505, + 0x15F459EBD, + 0x15F460ED1, + 0x15F462F68, + 0x15F468C0C, + 0x15F469213, + 0x15F486342, + 0x15F48A42B, + 0x15F5B9D69, + 0x15F5C1BE1, + 0x15F5C215B, + 0x15F5C858A, + 0x15F5C96B0, + 0x15F5E3554, + 0x15F5EF861, + 0x15F5F754B, + 0x15F5F75F8, + 0x15F617183, + 0x15F618E6F, + 0x15F61DD0A, + 0x15F620350, + 0x15F622F56, + 0x15F64018E, + 0x15F659B82, + 0x15F65B708, + 0x15F66A9BA, + 0x15F66C538, + 0x15F6778C6, + 0x15F68E2B5, + 0x15F6A7D3C, + 0x15F6AFB18, + 0x15F6B43B1, + 0x15F6B5388, + 0x15F7E1640, + 0x15F7E52AB, + 0x15F7F1859, + 0x15F7F83B8, + 0x15F8028EB, + 0x15F80B266, + 0x15F8299BA, + 0x15F82C925, + 0x15F82FD90, + 0x15F8312FE, + 0x15F8323F8, + 0x15F8378B1, + 0x15F84286C, + 0x15F8462ED, + 0x15F846994, + 0x15F97025A, + 0x15F9775D8, + 0x15F97D40D, + 0x15F980069, + 0x15F980122, + 0x15F98A553, + 0x15F98BFE3, + 0x15F9953A6, + 0x15F9C2FEF, + 0x15F9C8176, + 0x15F9C8AFA, +}; + +constexpr uint64_t split_integrity_check_blocks[] = +{ + 0x14144B338, + 0x14181B448, + 0x141C50408, + 0x1421859A9, + 0x1421C588E, + 0x1421C91C2, + 0x1421E15FE, + 0x1421E6065, + 0x1421F76FA, + 0x1421F956D, + 0x142245950, + 0x1422A44F8, + 0x1429A3878, + 0x142B1F878, + 0x142F20184, + 0x142F2F080, + 0x142F7BC02, + 0x15B12DCC5, + 0x15B158327, + 0x15B15AECD, + 0x15B19B63A, + 0x15B305B8E, + 0x15B479355, + 0x15B4956DB, + 0x15B4A4757, + 0x15B7C3D6A, + 0x15B860445, + 0x15B86DFBD, + 0x15B8887DA, + 0x15B9096F2, + 0x15BCA0056, + 0x15BCAE6F1, + 0x15BDEF4CC, + 0x15BE00FFB, + 0x15BE25DDA, + 0x15BE29F00, + 0x15BE2D6B6, + 0x15BE3EC5D, + 0x15BE64E4E, + 0x15BE64FCA, + 0x15BED5763, + 0x15BEF0717, + 0x15BEF1433, + 0x15BEF1496, + 0x15BEF1A69, + 0x15BF1B227, + 0x15BF423FA, + 0x15BFAB714, + 0x15BFB661F, + 0x15C003A64, + 0x15C029507, + 0x15C0607B4, + 0x15C10D1AB, + 0x15C148471, + 0x15C15C30E, + 0x15C160751, + 0x15C164C31, + 0x15C2A0326, + 0x15C2A2C91, + 0x15C2C9660, + 0x15C2CCC7C, + 0x15C2CD004, + 0x15C2CEA54, + 0x15C32D3AC, + 0x15C3425EA, + 0x15C4943AB, + 0x15C4D1379, + 0x15C4F793C, + 0x15C74E823, + 0x15C77A46B, + 0x15C79640A, + 0x15C7C6927, + 0x15C7D2474, + 0x15C955138, + 0x15C96F2EC, + 0x15CA116B5, + 0x15CA3B2DD, + 0x15CA3CE11, + 0x15CA4BD6A, + 0x15CA5F05C, + 0x15CA76AB1, + 0x15CAD88C5, + 0x15CAD9889, + 0x15CB02949, + 0x15CB1A8E3, + 0x15CB1B4E4, + 0x15CB2335A, + 0x15CB3E83F, + 0x15CB7B4CF, + 0x15CC2B7BC, + 0x15CC5433A, + 0x15CE38700, + 0x15CE3AC8C, + 0x15CECCBBC, + 0x15CECFDE7, + 0x15D031317, + 0x15D034E85, + 0x15D0683D5, + 0x15D0E0405, + 0x15D0F0894, + 0x15D0F13F1, + 0x15D16E41C, + 0x15D18A827, + 0x15D1992E4, + 0x15D1994D1, + 0x15D19BDE2, + 0x15D19FC9F, + 0x15D1A0266, + 0x15D1C732B, + 0x15D30AA16, + 0x15D33104A, + 0x15D346B94, + 0x15D36EBE8, + 0x15D378F71, + 0x15D385C1E, + 0x15D4C41F0, + 0x15D4E2011, + 0x15D4EC974, + 0x15D4F4671, + 0x15D502E1F, + 0x15D51C95B, + 0x15D5513F1, + 0x15D57067E, + 0x15D595709, + 0x15D59B9F8, + 0x15D59C1EF, + 0x15D59F537, + 0x15D5A103A, + 0x15D5A93C8, + 0x15D5A9C49, + 0x15D5BCD16, + 0x15D5BE74B, + 0x15D5E7B52, + 0x15D5FE983, + 0x15D606399, + 0x15D816F7B, + 0x15DA0444E, + 0x15DA1364C, + 0x15DA168A2, + 0x15DA218A8, + 0x15DA26015, + 0x15DAF9DFD, + 0x15DAFDF28, + 0x15DAFEF28, + 0x15DB002F6, + 0x15DBCF97F, + 0x15DBD4453, + 0x15DBD8A82, + 0x15DCB56E7, + 0x15DCB99BA, + 0x15DCBE63D, + 0x15DCC7AEA, + 0x15DD1BFA8, + 0x15DDFE084, + 0x15DE0AF5E, + 0x15DE15703, + 0x15DE3091B, + 0x15DE8AC74, + 0x15DF765DF, + 0x15DF7AED0, + 0x15DF881B7, + 0x15DF88779, + 0x15DFACD0D, + 0x15DFC0459, + 0x15DFC7F33, + 0x15E033981, + 0x15E0473B9, + 0x15E2D2B81, + 0x15E2D4326, + 0x15E2D9087, + 0x15E2E2165, + 0x15E3014C3, + 0x15E344476, + 0x15E452E67, + 0x15E4788C7, + 0x15E481057, + 0x15E489FCE, + 0x15E4935F1, + 0x15E4B3DE3, + 0x15E51BF05, + 0x15E52AAE2, + 0x15E5560E5, + 0x15E557B12, + 0x15E5EA09E, + 0x15E689E5D, + 0x15E692FAD, + 0x15E69371E, + 0x15E69BD03, + 0x15E6B321F, + 0x15E6C99C7, + 0x15E6DEAB5, + 0x15E6E6F19, + 0x15E85936B, + 0x15E893D12, + 0x15E9FBF90, + 0x15EAC187F, + 0x15EAC3013, + 0x15EAF4F26, + 0x15EB5BF5C, + 0x15EB6C2C8, + 0x15EB7A08C, + 0x15EB89AA4, + 0x15EBA067B, + 0x15EBBBEFC, + 0x15EBCBD5E, + 0x15ED0FE2E, + 0x15EEE0314, + 0x15EEE3C54, + 0x15EEE7535, + 0x15EEE9746, + 0x15EF6AE94, + 0x15EF95DEA, + 0x15EF99842, + 0x15EFA2759, + 0x15EFA8508, + 0x15EFB82E1, + 0x15F096B9E, + 0x15F0BC8AB, + 0x15F0C10B6, + 0x15F3629BD, + 0x15F3724F8, + 0x15F3B81C1, + 0x15F3F52CC, + 0x15F3F9C5B, + 0x15F43D5C8, + 0x15F44C4C9, + 0x15F452090, + 0x15F462AD3, + 0x15F5B470A, + 0x15F5DB572, + 0x15F5F1995, + 0x15F617572, + 0x15F6291F0, + 0x15F6594BF, + 0x15F7E1E5A, + 0x15F7F640D, + 0x15F7F96FE, + 0x15F80268B, + 0x15F808D87, + 0x15F8471B2, + 0x15F999F75, + 0x15F9A1870, + 0x15F9A4374, + 0x15F9A4A80, + 0x15F9A4FE0, +}; + +constexpr uint64_t intact_integrity_check_blocks_server[] = +{ + 0x140064DC4, + 0x140909BD4, + 0x1410654C1, +}; + +constexpr uint64_t split_integrity_check_blocks_server[] = +{ + 0x1400621A8, +};