Skip to content

Commit 8e527b5

Browse files
committed
v 3.2.7
Method 63 added (see #78 for more information) Yuubari updated for newest Win10 versions Compatibility and other fixes Readme updated
1 parent 21117b5 commit 8e527b5

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+2343
-514
lines changed

README.md

+10-1
Original file line numberDiff line numberDiff line change
@@ -577,11 +577,20 @@ Keys (watch debug output with dbgview or similar for more info):
577577
* Works from: Windows 10 RS4 (17134)
578578
* Fixed in: unfixed :see_no_evil:
579579
* How: -
580+
63. Author: Arush Agarampur
581+
* Type: Dll Hijack
582+
* Method: ISecurityEditor
583+
* Target(s): Native Image Cache elements
584+
* Component(s): Attacker defined
585+
* Implementation: ucmNICPoisonMethod
586+
* Works from: Windows 7 (7600)
587+
* Fixed in: unfixed :see_no_evil:
588+
* How: -
580589

581590
Note:
582591
* Method (6) unavailable in wow64 environment starting from Windows 8;
583592
* Method (11) (54) implemented only in x86-32 version;
584-
* Method (13) (19) (30) (50) implemented only in x64 version;
593+
* Method (13) (19) (30) (50) (63) implemented only in x64 version;
585594
* Method (14) require process injection, wow64 unsupported, use x64 version of this tool;
586595
* Method (26) is still working, however it main advantage was UAC bypass on AlwaysNotify level. Since 15031 it is gone;
587596
* Method (30) require x64 because it abuses WOW64 subsystem feature;

Source/Akagi/Resource.rc

0 Bytes
Binary file not shown.

Source/Akagi/bin/Akatsuki64.cd

0 Bytes
Binary file not shown.

Source/Akagi/bin/Chiyoda64.cd

0 Bytes
Binary file not shown.

Source/Akagi/bin/Fujinami.cd

0 Bytes
Binary file not shown.

Source/Akagi/bin/Ikazuchi32.cd

0 Bytes
Binary file not shown.

Source/Akagi/bin/Ikazuchi64.cd

0 Bytes
Binary file not shown.

Source/Akagi/bin/Kamikaze.cd

0 Bytes
Binary file not shown.

Source/Akagi/bin/fubuki32.cd

64 Bytes
Binary file not shown.

Source/Akagi/bin/fubuki64.cd

32 Bytes
Binary file not shown.

Source/Akagi/bin/hibiki32.cd

0 Bytes
Binary file not shown.

Source/Akagi/bin/hibiki64.cd

0 Bytes
Binary file not shown.

Source/Akagi/bin/kongou32.cd

0 Bytes
Binary file not shown.

Source/Akagi/bin/kongou64.cd

0 Bytes
Binary file not shown.

Source/Akagi/compress.c

+90-47
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44
*
55
* TITLE: COMPRESS.C
66
*
7-
* VERSION: 3.24
7+
* VERSION: 3.27
88
*
9-
* DATE: 20 Apr 2020
9+
* DATE: 10 Sep 2020
1010
*
1111
* Compression and encoding/decoding support.
1212
*
@@ -30,52 +30,95 @@ pfnDecompress pDecompress = NULL;
3030
typedef struct _DCK_HEADER {
3131
DWORD Id;
3232
BYTE Data[UACME_KEY_SIZE];
33-
} DCK_HEADER, *PDCK_HEADER;
33+
} DCK_HEADER, * PDCK_HEADER;
3434

3535
typedef struct _UCM_STRING_TABLE_ENTRY {
3636
WORD Id;
3737
WORD DataLength;//in bytes
38-
CONST UCHAR *Data;
39-
} UCM_STRING_TABLE_ENTRY, *PUCM_STRING_TABLE_ENTRY;
38+
CONST UCHAR* Data;
39+
} UCM_STRING_TABLE_ENTRY, * PUCM_STRING_TABLE_ENTRY;
4040

4141
UCM_STRING_TABLE_ENTRY ucmStringTable[] = {
4242
{ IDSB_USAGE_HELP, sizeof(B_USAGE_HELP), B_USAGE_HELP },
4343
{ IDSB_USAGE_UAC_REQUIRED, sizeof(B_USAGE_UAC_REQUIRED), B_USAGE_UAC_REQUIRED },
44-
{ IDSB_USAGE_ADMIN_REQUIRED, sizeof(B_USAGE_ADMIN_REQUIRED), B_USAGE_ADMIN_REQUIRED }
44+
{ IDSB_USAGE_ADMIN_REQUIRED, sizeof(B_USAGE_ADMIN_REQUIRED), B_USAGE_ADMIN_REQUIRED },
45+
{ IDSB_SIMDA_UAC, sizeof(B_SIMDA_UAC), B_SIMDA_UAC },
46+
{ IDSB_SIMDA_CONSENT_WARNING, sizeof(B_SIMDA_CONSENT_WARNING), B_SIMDA_CONSENT_WARNING }
4547
};
4648

47-
unsigned char MirrorBits(unsigned char x)
49+
50+
UINT64 StringCryptGenKey(
51+
_In_ PWCHAR Key
52+
)
4853
{
49-
return ((x >> 7) & 1) | ((x >> 5) & 2) | ((x >> 3) & 4) | ((x >> 1) & 8) |
50-
((x << 7) & 0x80) | ((x << 5) & 0x40) | ((x << 3) & 0x20) | ((x << 1) & 0x10);
54+
UINT64 k = 0;
55+
WCHAR c;
56+
57+
while (*Key)
58+
{
59+
k ^= *Key;
60+
61+
for (c = 0; c < 8; ++c)
62+
{
63+
k = (k << 8) | (k >> 56);
64+
k += (UINT64)c * 7 + *Key;
65+
}
66+
67+
++Key;
68+
}
69+
70+
return k;
5171
}
5272

53-
VOID DecryptBufferMB(
54-
_In_ PBYTE Buffer,
55-
_In_ SIZE_T BufferSize
73+
SIZE_T StringCryptEncrypt(
74+
_In_ PWCHAR Src,
75+
_In_ PWCHAR Dst,
76+
_In_ PWCHAR Key
5677
)
5778
{
58-
SIZE_T c;
59-
unsigned char r = 127, r0;
79+
UINT64 k;
80+
WCHAR c;
81+
SIZE_T len = 0;
82+
83+
k = StringCryptGenKey(Key);
84+
85+
c = 0;
86+
while (*Src)
87+
{
88+
c ^= *Src + (wchar_t)k;
89+
*Dst = c;
6090

61-
for (c = 0; c < BufferSize; c++) {
62-
r0 = MirrorBits((BYTE)c) - Buffer[c];
63-
Buffer[c] = (r^r0) - (BYTE)c;
64-
r = r0;
91+
k = (k << 8) | (k >> 56);
92+
++Src;
93+
++Dst;
94+
++len;
6595
}
96+
97+
return len;
6698
}
6799

68-
VOID EncryptBufferMB(
69-
_In_ PBYTE Buffer,
70-
_In_ SIZE_T BufferSize
71-
)
100+
VOID StringCryptDecrypt(
101+
_In_ PWCHAR Src,
102+
_In_ PWCHAR Dst,
103+
_In_ SIZE_T Len,
104+
_In_ PWCHAR Key)
72105
{
73-
SIZE_T c;
74-
unsigned char r = 127;
106+
UINT64 k;
107+
WCHAR c, c0;
75108

76-
for (c = 0; c < BufferSize; c++) {
77-
r ^= Buffer[c] + c;
78-
Buffer[c] = MirrorBits((unsigned char)c) - r;
109+
k = StringCryptGenKey(Key);
110+
111+
c = 0;
112+
while (Len > 0)
113+
{
114+
c0 = *Src;
115+
*Dst = (c0 ^ c) - (wchar_t)k;
116+
c = c0;
117+
118+
k = (k << 8) | (k >> 56);
119+
++Src;
120+
++Dst;
121+
--Len;
79122
}
80123
}
81124

@@ -101,13 +144,11 @@ BOOLEAN DecodeStringById(
101144
if (cbBuffer < ucmStringTable[i].DataLength)
102145
break;
103146

104-
supCopyMemory(
105-
lpBuffer,
106-
cbBuffer,
107-
ucmStringTable[i].Data,
108-
ucmStringTable[i].DataLength);
147+
StringCryptDecrypt((PWCHAR)ucmStringTable[i].Data,
148+
(PWCHAR)lpBuffer,
149+
(SIZE_T)ucmStringTable[i].DataLength / sizeof(WCHAR),
150+
(PWCHAR)NTDLL_DLL);
109151

110-
DecryptBufferMB((PBYTE)lpBuffer, ucmStringTable[i].DataLength);
111152
return TRUE;
112153
}
113154
}
@@ -619,7 +660,7 @@ PVOID DecompressPayload(
619660
*
620661
*/
621662
CFILE_TYPE GetTargetFileType(
622-
VOID *FileBuffer
663+
VOID * FileBuffer
623664
)
624665
{
625666
CFILE_TYPE Result = ftUnknown;
@@ -628,12 +669,12 @@ CFILE_TYPE GetTargetFileType(
628669
return Result;
629670

630671
//check if file is in compressed format
631-
if (*((BYTE *)FileBuffer) == 'D' &&
632-
*((BYTE *)FileBuffer + 1) == 'C' &&
633-
*((BYTE *)FileBuffer + 3) == 1
672+
if (*((BYTE*)FileBuffer) == 'D' &&
673+
*((BYTE*)FileBuffer + 1) == 'C' &&
674+
*((BYTE*)FileBuffer + 3) == 1
634675
)
635676
{
636-
switch (*((BYTE *)FileBuffer + 2)) {
677+
switch (*((BYTE*)FileBuffer + 2)) {
637678

638679
case 'N':
639680
Result = ftDCN;
@@ -650,8 +691,8 @@ CFILE_TYPE GetTargetFileType(
650691
}
651692
else {
652693
//not compressed, check mz header
653-
if (*((BYTE *)FileBuffer) == 'M' &&
654-
*((BYTE *)FileBuffer + 1) == 'Z'
694+
if (*((BYTE*)FileBuffer) == 'M' &&
695+
*((BYTE*)FileBuffer + 1) == 'Z'
655696
)
656697
{
657698
Result = ftMZ;
@@ -671,7 +712,7 @@ CFILE_TYPE GetTargetFileType(
671712
BOOL ProcessFileMZ(
672713
PVOID SourceFile,
673714
SIZE_T SourceFileSize,
674-
PVOID *OutputFileBuffer,
715+
PVOID * OutputFileBuffer,
675716
PSIZE_T OutputFileBufferSize
676717
)
677718
{
@@ -714,7 +755,7 @@ BOOL ProcessFileMZ(
714755
BOOL ProcessFileDCN(
715756
PVOID SourceFile,
716757
SIZE_T SourceFileSize,
717-
PVOID *OutputFileBuffer,
758+
PVOID * OutputFileBuffer,
718759
PSIZE_T OutputFileBufferSize
719760
)
720761
{
@@ -785,13 +826,13 @@ BOOL ProcessFileDCN(
785826
BOOL ProcessFileDCS(
786827
PVOID SourceFile,
787828
SIZE_T SourceFileSize,
788-
PVOID *OutputFileBuffer,
829+
PVOID * OutputFileBuffer,
789830
PSIZE_T OutputFileBufferSize
790831
)
791832
{
792833
BOOL bResult = FALSE;
793834
COMPRESSOR_HANDLE hDecompressor = 0;
794-
BYTE *DataBufferPtr = NULL, *DataBuffer = NULL;
835+
BYTE* DataBufferPtr = NULL, * DataBuffer = NULL;
795836

796837
PDCS_HEADER FileHeader = (PDCS_HEADER)SourceFile;
797838
PDCS_BLOCK Block;
@@ -846,8 +887,10 @@ BOOL ProcessFileDCS(
846887
BytesDecompressed += Block->DecompressedBlockSize;
847888

848889
bResult = pDecompress(hDecompressor,
849-
Block->CompressedData, Block->CompressedBlockSize - 4,
850-
(BYTE *)DataBufferPtr, Block->DecompressedBlockSize,
890+
Block->CompressedData,
891+
Block->CompressedBlockSize - 4,
892+
(BYTE*)DataBufferPtr,
893+
Block->DecompressedBlockSize,
851894
NULL);
852895

853896
if (!bResult)
@@ -859,7 +902,7 @@ BOOL ProcessFileDCS(
859902

860903
DataBufferPtr = (BYTE*)DataBufferPtr + Block->DecompressedBlockSize;
861904
NextOffset = Block->CompressedBlockSize + 4;
862-
Block = (DCS_BLOCK*)((BYTE *)Block + NextOffset);
905+
Block = (DCS_BLOCK*)((BYTE*)Block + NextOffset);
863906
BytesRead += NextOffset;
864907
}
865908

Source/Akagi/compress.h

+12-9
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
/*******************************************************************************
22
*
3-
* (C) COPYRIGHT AUTHORS, 2014 - 2019
3+
* (C) COPYRIGHT AUTHORS, 2014 - 2020
44
*
55
* TITLE: COMPRESS.H
66
*
7-
* VERSION: 3.21
7+
* VERSION: 3.27
88
*
9-
* DATE: 26 Oct 2019
9+
* DATE: 10 Sep 2020
1010
*
1111
* Prototypes and definitions for compression.
1212
*
@@ -122,13 +122,16 @@ VOID EncodeBuffer(
122122
BOOL InitCabinetDecompressionAPI(
123123
VOID);
124124

125-
VOID EncryptBufferMB(
126-
_In_ PBYTE Buffer,
127-
_In_ SIZE_T BufferSize);
125+
SIZE_T StringCryptEncrypt(
126+
_In_ PWCHAR Src,
127+
_In_ PWCHAR Dst,
128+
_In_ PWCHAR Key);
128129

129-
VOID DecryptBufferMB(
130-
_In_ PBYTE Buffer,
131-
_In_ SIZE_T BufferSize);
130+
VOID StringCryptDecrypt(
131+
_In_ PWCHAR Src,
132+
_In_ PWCHAR Dst,
133+
_In_ SIZE_T Len,
134+
_In_ PWCHAR Key);
132135

133136
_Success_(return == TRUE)
134137
BOOLEAN DecodeStringById(

Source/Akagi/encresource.h

+47-22
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
/*******************************************************************************
22
*
3-
* (C) COPYRIGHT AUTHORS, 2016 - 2019
3+
* (C) COPYRIGHT AUTHORS, 2016 - 2020
44
*
55
* TITLE: ENCRESOURCE.H
66
*
7-
* VERSION: 3.22
7+
* VERSION: 3.27
88
*
9-
* DATE: 07 Nov 2019
9+
* DATE: 10 Sep 2020
1010
*
1111
* Encoded string resources.
1212
*
@@ -157,28 +157,53 @@ static const unsigned char g_encodedKamikazeFinal[129] = {
157157
};
158158

159159
static const unsigned char B_USAGE_HELP[100] = {
160-
0xD6, 0x55, 0xE2, 0x63, 0xE8, 0x63, 0x10, 0x89, 0xD6, 0x5D, 0xD9, 0x54, 0xE0, 0x53, 0x5E, 0xD3,
161-
0xA2, 0x11, 0x44, 0xB1, 0xBC, 0x2F, 0x62, 0xD7, 0xC1, 0x4A, 0x27, 0xAE, 0x7A, 0x15, 0x58, 0xB9,
162-
0x85, 0x26, 0x21, 0xC4, 0xB3, 0x50, 0x85, 0xEC, 0xB0, 0x47, 0x75, 0xE0, 0xC5, 0x72, 0xA4, 0xF5,
163-
0x9A, 0x49, 0x3B, 0xAA, 0x7F, 0x14, 0x4F, 0xC2, 0x9A, 0xE1, 0x47, 0xAE, 0xB1, 0x06, 0x61, 0xD8,
164-
0x78, 0xB7, 0xDA, 0x97, 0x87, 0xC4, 0x1A, 0xD3, 0x6C, 0xA3, 0xFF, 0xBA, 0x7D, 0xBA, 0x2F, 0xE6,
165-
0x62, 0x91, 0x12, 0x5F, 0x38, 0x03, 0x01, 0xAC, 0x97, 0xC0, 0xF3, 0x9E, 0x4D, 0x0A, 0x18, 0xBD,
166-
0x0E, 0xED, 0x20, 0x81
160+
0x05, 0x0A, 0xFB, 0xBA, 0xD7, 0x36, 0xA6, 0xFD, 0x08, 0xF7, 0xCA, 0xBE, 0x22, 0x36, 0x68, 0xFE,
161+
0x73, 0xF4, 0x9F, 0x44, 0xAD, 0xC8, 0xDE, 0x03, 0xA9, 0x09, 0x44, 0x40, 0x04, 0xC9, 0x6A, 0x01,
162+
0xBA, 0x08, 0x5C, 0xB8, 0x44, 0x34, 0x2B, 0xFF, 0x96, 0xF5, 0x66, 0xBC, 0x51, 0x35, 0x3C, 0xFD,
163+
0x31, 0xF7, 0x9A, 0x47, 0xBC, 0xCB, 0xE5, 0x00, 0x5C, 0x0A, 0xA0, 0x43, 0x91, 0xCA, 0xE9, 0x02,
164+
0xF7, 0x08, 0x1B, 0xB8, 0x2C, 0x34, 0x76, 0xFF, 0xDC, 0xF5, 0x26, 0xBC, 0x0F, 0x35, 0x79, 0xFD,
165+
0x7D, 0xF7, 0x87, 0x47, 0x97, 0xCB, 0x15, 0x00, 0xBB, 0x0A, 0x50, 0x43, 0x6D, 0xCA, 0x10, 0x02,
166+
0x05, 0x08, 0xED, 0xB8
167+
};
168+
169+
static const unsigned char B_USAGE_ADMIN_REQUIRED[84] = {
170+
0xF1, 0x09, 0x1E, 0xB9, 0x26, 0x35, 0x55, 0xFE, 0xE2, 0xF4, 0x4A, 0xBD, 0x63, 0x34, 0x0F, 0xFC,
171+
0x1C, 0xF6, 0xE6, 0x46, 0xA6, 0xCA, 0xDE, 0x01, 0x63, 0x0B, 0xCB, 0x42, 0xF4, 0xCB, 0x86, 0x03,
172+
0xA2, 0x09, 0x51, 0xB9, 0xBA, 0x32, 0xCC, 0xF9, 0x7E, 0xF3, 0x8B, 0xBA, 0xBA, 0x33, 0xC7, 0xFB,
173+
0xD2, 0xF1, 0x3D, 0x41, 0xD6, 0xCA, 0xA8, 0x01, 0x10, 0x0B, 0xE3, 0x42, 0xCE, 0xCB, 0xB9, 0x03,
174+
0x69, 0x0A, 0x94, 0xBA, 0xA4, 0x36, 0xDF, 0xFD, 0x61, 0xF7, 0x90, 0xBE, 0xAA, 0x37, 0xC4, 0xFF,
175+
0xD0, 0xF5, 0x69, 0x45
167176
};
168177

169178
static const unsigned char B_USAGE_UAC_REQUIRED[70] = {
170-
0xD1, 0x52, 0x00, 0x7D, 0xF6, 0x71, 0x18, 0x91, 0xDC, 0x53, 0xFE, 0x77, 0xBB, 0x38, 0x65, 0xEC,
171-
0x8E, 0x1D, 0x30, 0xBD, 0xAB, 0x40, 0x7E, 0xEB, 0x98, 0xFF, 0xB5, 0x20, 0x6F, 0xE4, 0xED, 0x64,
172-
0x0D, 0xAE, 0xB0, 0x0D, 0xE7, 0x8C, 0xD7, 0x3A, 0xE4, 0x7B, 0x01, 0x5C, 0x5C, 0xBF, 0x11, 0xA8,
173-
0x37, 0xA8, 0x0B, 0x5A, 0x06, 0x99, 0xE8, 0x39, 0xF4, 0x8B, 0xD0, 0x25, 0x20, 0x9B, 0xEA, 0x4F,
174-
0xFF, 0x40, 0x4E, 0x0B, 0x5D, 0x22
179+
0x00, 0x0A, 0xF7, 0xBA, 0xC7, 0x36, 0xAC, 0xFD, 0x10, 0xF7, 0xFD, 0xBE, 0x15, 0x36, 0x7B, 0xFE,
180+
0x65, 0xF4, 0x89, 0x44, 0xA4, 0xC8, 0xD2, 0x03, 0x7C, 0x09, 0xD4, 0x40, 0xC9, 0xC9, 0x83, 0x01,
181+
0x70, 0x08, 0xDB, 0xB8, 0xEA, 0x34, 0x93, 0xFF, 0x28, 0xF5, 0x80, 0xBC, 0xBC, 0x35, 0xCD, 0xFD,
182+
0xD4, 0xF7, 0x2A, 0x47, 0xC1, 0xCC, 0xAA, 0x07, 0x06, 0x0D, 0xED, 0x44, 0xDA, 0xCD, 0xA4, 0x05,
183+
0xBA, 0x0F, 0x45, 0xBF, 0xBC, 0x34
175184
};
176185

177-
static const unsigned char B_USAGE_ADMIN_REQUIRED[84] = {
178-
0xC2, 0x41, 0xE7, 0x66, 0xF5, 0x72, 0x1F, 0x9A, 0xE0, 0x57, 0x3D, 0xB8, 0xBB, 0x38, 0x67, 0xEA,
179-
0x93, 0x24, 0x63, 0xD2, 0xA9, 0x3E, 0x7A, 0xEF, 0xA3, 0x2C, 0x02, 0x8B, 0x5A, 0xF5, 0x34, 0x9D,
180-
0x35, 0x96, 0xE0, 0x7D, 0x21, 0x7E, 0xB0, 0x51, 0x12, 0x69, 0x98, 0x3D, 0x32, 0x85, 0xE7, 0x52,
181-
0xD5, 0x86, 0xBC, 0x29, 0x35, 0xEA, 0x04, 0x8D, 0x24, 0xDB, 0xF8, 0x7D, 0x3E, 0xF9, 0x0D, 0xAC,
182-
0xD2, 0x11, 0x7D, 0x3C, 0xF3, 0x38, 0x85, 0x48, 0xEB, 0x24, 0x75, 0x3C, 0x0A, 0x4D, 0x9C, 0x59,
183-
0xDD, 0x0E, 0x4E, 0x1B
186+
static const unsigned char B_SIMDA_UAC[164] = {
187+
0x05, 0x0A, 0xC9, 0xBA, 0xC7, 0x36, 0xED, 0xFD, 0x5F, 0xF7, 0xA4, 0xBE, 0x4C, 0x36, 0x3B, 0xFE,
188+
0x24, 0xF4, 0x26, 0x45, 0xCD, 0xCE, 0xA3, 0x05, 0x11, 0x0F, 0xEA, 0x46, 0xC3, 0xCF, 0xA8, 0x07,
189+
0xB4, 0x0D, 0x44, 0xBD, 0x6B, 0x31, 0x53, 0xFA, 0x00, 0xF0, 0xE1, 0xB9, 0xD6, 0x30, 0xA8, 0xF8,
190+
0x78, 0xF1, 0x80, 0x41, 0xC0, 0xCD, 0xBD, 0x06, 0x00, 0x0C, 0xA8, 0x45, 0x92, 0xCC, 0xFC, 0x04,
191+
0xEE, 0x0E, 0x14, 0xBE, 0x2E, 0x32, 0x50, 0xF9, 0x39, 0xF3, 0x38, 0xB9, 0x0F, 0x30, 0x71, 0xF8,
192+
0x53, 0xF2, 0xF8, 0x42, 0xD6, 0xCE, 0xAF, 0x05, 0x19, 0x0F, 0xE1, 0x46, 0xDC, 0xCF, 0xA1, 0x07,
193+
0xB4, 0x0D, 0x49, 0xBD, 0xA2, 0x36, 0xD2, 0xFD, 0x6A, 0xF7, 0x90, 0xBE, 0x78, 0x36, 0x05, 0xFE,
194+
0x1D, 0xF4, 0xED, 0x44, 0x06, 0xCF, 0x6B, 0x04, 0xDA, 0x0E, 0x33, 0x47, 0x05, 0xCE, 0x75, 0x06,
195+
0x60, 0x0C, 0x9E, 0xBC, 0x75, 0x37, 0x0B, 0xFC, 0xB3, 0xF6, 0x1B, 0xBF, 0x27, 0x36, 0x4D, 0xFE,
196+
0x56, 0xF4, 0xA6, 0x44, 0x4D, 0xCF, 0x22, 0x04, 0x8D, 0x0E, 0x63, 0x47, 0x4E, 0xCE, 0x22, 0x06,
197+
0x06, 0x0C, 0xBF, 0xBC
184198
};
199+
200+
static const unsigned char B_SIMDA_CONSENT_WARNING[112] = {
201+
0x04, 0x0A, 0xF7, 0xBA, 0xC3, 0x36, 0xBE, 0xFD, 0xD7, 0xF7, 0x22, 0xBE, 0x0F, 0x37, 0x72, 0xFF,
202+
0x6A, 0xF5, 0x90, 0x45, 0xBF, 0xC9, 0x95, 0x02, 0x55, 0x08, 0xA4, 0x41, 0x90, 0xC8, 0xE5, 0x00,
203+
0x35, 0x09, 0xCE, 0xB9, 0xFE, 0x35, 0x82, 0xFE, 0x34, 0xF4, 0xDD, 0xBD, 0xEB, 0x34, 0x85, 0xFC,
204+
0x9B, 0xF6, 0x64, 0x46, 0x53, 0xCA, 0xD0, 0x01, 0xB9, 0x0B, 0x65, 0x42, 0x78, 0xCB, 0x23, 0x03,
205+
0xDD, 0x0A, 0x76, 0xBA, 0x56, 0x36, 0x1D, 0xFD, 0x91, 0xF7, 0x39, 0xBE, 0x2E, 0x37, 0x61, 0xFF,
206+
0x97, 0xF6, 0x20, 0x46, 0xCB, 0xCD, 0xA0, 0x06, 0x1B, 0x0C, 0xF6, 0x45, 0x1E, 0xCD, 0x9C, 0x05,
207+
0x83, 0x0F, 0x83, 0xBE, 0x68, 0x35, 0x15, 0xFE, 0xAB, 0xF4, 0x51, 0xBD, 0x7C, 0x34, 0x34, 0xFC
208+
};
209+

0 commit comments

Comments
 (0)