aboutsummaryrefslogtreecommitdiffstats
path: root/fw/audits/gcp.json
blob: 4806eddc6d6de8d87ee5509680733e734549f799 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
{
 "gcp_cmd01_AllocateDRMSession": {
  "addr": "0x402718",
  "copies": [
   [
    "sub_405084",
    "a1: 0, a2: off_4027C4, v9",
    "v9"
   ]
  ],
  "guards": [
   "if ( *(_DWORD *)(a2 + 16) <= 1u ) /*0x40272a*/",
   "if ( *v4 == 0 ) /*0x402736*/",
   "if ( v7 == 0 ) /*0x402756*/",
   "if ( v9 != 0 ) /*0x402786*/"
  ],
  "lines": 45
 },
 "gcp_cmd02_SendDRMCertificate": {
  "addr": "0x404c54",
  "copies": [],
  "guards": [
   "if ( v4 <= 0x1F ) /*0x404c6a*/",
   "if ( v9 == 1 ) /*0x404c82*/"
  ],
  "lines": 36
 },
 "gcp_cmd04_GetContentKey": {
  "addr": "0x403704",
  "copies": [
   [
    "sub_405022",
    "a1: v20, a2: v2, a3: 16, a4: v23, a5: &v21",
    "&v21"
   ]
  ],
  "guards": [
   "if ( v7 < 0x20 ) /*0x403748*/",
   "if ( sub_4010C4(a1: v22, a2: v6 + 4, a3: 16) != 0 ) /*0x403766*/",
   "if ( sub_404FB0(a1: dword_403878 - 1879048192, a2: 128, a3: &v19) == 0 ) /*0x403776*/",
   "if ( sub_40524C(a1: v19, a2: &v16, a3: 1) == 0 /*0x4037b0*/",
   "while ( *v3 != v26 )",
   "if ( v8 != 0 ) /*0x403848*/"
  ],
  "lines": 110
 },
 "gcp_cmd05_CloseDRMSession": {
  "addr": "0x402878",
  "copies": [
   [
    "sub_405084",
    "a1: 0, a2: (const char *)dword_402980, v8",
    "v8"
   ]
  ],
  "guards": [
   "if ( v2 > 0x1F ) /*0x402888*/",
   "if ( *(_DWORD *)(v5 + 4) == 0 ) /*0x40289c*/",
   "if ( v6 != 0 ) /*0x4028b2*/",
   "if ( v7 != 0 ) /*0x4028bc*/",
   "if ( v8 != 0 ) /*0x4028da*/"
  ],
  "lines": 56
 },
 "gcp_cmdFE02_GetObfKeyCryptoSession": {
  "addr": "0x403b4c",
  "copies": [
   [
    "sub_404FB0",
    "a1: dword_403CF0 - 1879048192, a2: 128, a3: &v21",
    "&v21"
   ],
   [
    "sub_405022",
    "a1: v20, a2: v2, a3: *(_DWORD *)(a2 + 52), a4: v23, a5: &v19",
    "&v19"
   ],
   [
    "sub_405084",
    "a1: 0, a2: off_403D34[0], a2",
    "a2"
   ]
  ],
  "guards": [
   "if ( v6 >> 30 == 0 ) /*0x403b74*/",
   "if ( *(_DWORD *)(88 * HIBYTE(v6) + a1 + 2080) != 2 ) /*0x403b8e*/",
   "if ( (unsigned int)(v8 - 1) > 0xF ) /*0x403b96*/",
   "if ( sub_4010C4(a1: v22, a2: a2 + 20, a3: v8) == 0 ) /*0x403bc8*/",
   "if ( sub_404FB0(a1: dword_403CF0 - 1879048192, a2: 128, a3: &v21) != 0 /*0x403c14*/",
   "while ( *v3 != v26 ) /*0x403c88*/"
  ],
  "lines": 118
 },
 "gcp_cmdFE03_CreateAuthenticatedSession": {
  "addr": "0x402e94",
  "copies": [],
  "guards": [
   "if ( v4 == 0x10000000 ) /*0x402eb2*/",
   "if ( *(_DWORD *)(v5 + 24) == 0 ) /*0x402eb6*/",
   "if ( (_DWORD)v8 == 0 ) /*0x402eee*/",
   "if ( v12 != 0 ) /*0x402f0a*/"
  ],
  "lines": 55
 },
 "gcp_cmdFE08_KeyExchangeAuthenticatedSession": {
  "addr": "0x4040e0",
  "copies": [],
  "guards": [
   "if ( v6 >> 28 != 0 ) /*0x404102*/",
   "if ( v8[193] == 1 ) /*0x40411a*/",
   "else if ( v8[198] == 1 ) /*0x404128*/",
   "if ( v7 == 0 ) /*0x404152*/",
   "if ( dword_405CE4 != v17 ) /*0x404184*/"
  ],
  "lines": 70
 },
 "gcp_cmdFE09": {
  "addr": "0x402988",
  "copies": [
   [
    "sub_405084",
    "a1: 0, a2: off_402B28[0], v8, v11",
    "v11"
   ],
   [
    "sub_405084",
    "a1: 0, a2: (const char *)dword_402B6C, v8, v11",
    "v11"
   ],
   [
    "sub_405084",
    "a1: 0, a2: off_402B70[0], v8, v11",
    "v11"
   ]
  ],
  "guards": [
   "if ( v4 >> 28 == 0 ) /*0x4029a4*/",
   "if ( v6 > 0xFFFFFFFB || v6 + 4 <= v7 ) /*0x4029d2*/",
   "if ( v9 != 1 ) /*0x4029f2*/",
   "if ( *(_DWORD *)(v14 + 792) == 3 ) /*0x402a14*/",
   "if ( sub_4052AC() == 0 ) /*0x402a22*/",
   "if ( v15 <= *(_DWORD *)(v14 + 840) ) /*0x402a70*/"
  ],
  "lines": 106
 },
 "gcp_cmdFE0A_QueryAccessibilityAttributes": {
  "addr": "0x404420",
  "copies": [
   [
    "sub_403678",
    "a1: v11 + 198, a2: a2 + 1620, a3: v7",
    "v7"
   ]
  ],
  "guards": [
   "if ( v4 >> 28 == 0 ) /*0x40443c*/",
   "if ( v6 <= 0xFFFFFFFB ) /*0x404458*/",
   "if ( v10 + 4 <= v7 ) /*0x4044e8*/",
   "if ( v11[198] != 3 ) /*0x404470*/",
   "if ( *((_QWORD *)v11 + 104) >= (unsigned __int64)(unsigned int)v12 ) /*0x404494*/",
   "if ( (unsigned int)(v11[193] - 1) >= 2 ) /*0x4044cc*/"
  ],
  "lines": 148
 },
 "gcp_cmdFE0B_DestroyAuthenticatedSession": {
  "addr": "0x4030a4",
  "copies": [],
  "guards": [
   "if ( v4 >> 28 == 0 ) /*0x4030ba*/",
   "if ( *(_DWORD *)(v6 + 768) == v4 ) /*0x4030d2*/",
   "if ( v7 == 0 || (v8 = v7 - 1, *(_DWORD *)(a1 + 7680) = v8, v8 == 0) ) /*0x4030ea*/",
   "if ( v9 != 0 ) /*0x4030f2*/"
  ],
  "lines": 35
 },
 "gcp_cmdFE0C_CreateAuthenticatedSession": {
  "addr": "0x402f90",
  "copies": [],
  "guards": [
   "if ( v4 == 0x40000000 ) /*0x402fac*/",
   "if ( *(_DWORD *)(v5 + 32) == 0 ) /*0x402fb0*/",
   "if ( v8 == 0 ) /*0x402ff0*/",
   "if ( v12 != 0 ) /*0x40300a*/"
  ],
  "lines": 56
 },
 "gcp_cmdFE0D_DestroyAuthenticatedSession": {
  "addr": "0x403170",
  "copies": [],
  "guards": [
   "if ( v4 >> 30 != 0 ) /*0x403186*/",
   "if ( *(_DWORD *)(v6 + 2048) == v4 ) /*0x40319c*/",
   "if ( v7 == 0 || (v8 = v7 - 1, *(_DWORD *)(a1 + 7680) = v8, v8 == 0) ) /*0x4031b8*/",
   "if ( v9 != 0 ) /*0x4031c0*/"
  ],
  "lines": 33
 },
 "gcp_cmdFE0F_GetCryptoSessionByDecodeHandle": {
  "addr": "0x403a88",
  "copies": [],
  "guards": [
   "if ( i == 0 ) /*0x403aa0*/",
   "if ( sub_4010C4(a1: v4 + 6, a2: a2 + 16, a3: 8) == 0 ) /*0x403aae*/"
  ],
  "lines": 26
 },
 "gcp_cmdFE10_StartKeyRefreshCryptoSession": {
  "addr": "0x404e28",
  "copies": [],
  "guards": [
   "if ( v4 >> 30 != 0 ) /*0x404e3e*/",
   "if ( v7 == 2 ) /*0x404e54*/"
  ],
  "lines": 44
 },
 "gcp_cmdFE11_FinishKeyRefreshCryptoSession": {
  "addr": "0x4032d4",
  "copies": [],
  "guards": [
   "if ( v4 >> 30 != 0 ) /*0x4032ea*/",
   "if ( *(_DWORD *)(v7 + 2080) == 2 ) /*0x403300*/"
  ],
  "lines": 42
 }
}