1
/* Copyright (C) 2007-2010 Open Information Security Foundation
3
* You can copy, redistribute or modify this Program under the terms of
4
* the GNU General Public License version 2 as published by the Free
7
* This program is distributed in the hope that it will be useful,
8
* but WITHOUT ANY WARRANTY; without even the implied warranty of
9
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10
* GNU General Public License for more details.
12
* You should have received a copy of the GNU General Public License
13
* version 2 along with this program; if not, write to the Free Software
14
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
21
* \author Anoop Saldanha <poonaatsoc@gmail.com>
24
#include "suricata-common.h"
30
#include "detect-engine.h"
31
#include "detect-parse.h"
32
#include "detect-content.h"
33
#include "detect-pcre.h"
34
#include "detect-isdataat.h"
35
#include "detect-bytetest.h"
36
#include "detect-bytejump.h"
39
#include "util-spm-bm.h"
41
#include "stream-tcp-reassemble.h"
42
#include "stream-tcp.h"
44
#include "app-layer.h"
45
#include "app-layer-dcerpc.h"
46
#include "decode-tcp.h"
47
#include "flow-util.h"
48
#include "util-debug.h"
49
#include "util-unittest.h"
50
#include "util-unittest-helper.h"
53
* \brief Run the dce stub match functions for the dce stub based keywords.
55
* The following keywords are inspected:
62
* All keywords are evaluated against the dce stub data.
64
* For accounting the last match in relative matching,
65
* det_ctx->payload_offset var is used.
67
* \param de_ctx Detection engine context.
68
* \param det_ctx Detection engine thread context.
69
* \param s Signature to inspect.
70
* \param sm SigMatch to inspect.
72
* \param payload Pointer to the dce stub to inspect.
73
* \param payload_len Length of the payload
78
static int DoInspectDcePayload(DetectEngineCtx *de_ctx,
79
DetectEngineThreadCtx *det_ctx, Signature *s,
80
SigMatch *sm, Flow *f, uint8_t *stub, uint32_t stub_len)
95
DetectContentData *cd = NULL;
96
cd = (DetectContentData *)sm->ctx;
97
SCLogDebug("inspecting content %"PRIu32" stub_len %"PRIu32,
100
/* rule parsers should take care of this */
101
BUG_ON(cd->depth != 0 && cd->depth <= cd->offset);
103
/* search for our pattern, checking the matches recursively.
104
* if we match we look for the next SigMatch as well */
105
uint8_t *found = NULL;
107
uint32_t depth = stub_len;
108
uint32_t prev_offset = 0; /**< used in recursive searching */
111
if (cd->flags & DETECT_CONTENT_DISTANCE ||
112
cd->flags & DETECT_CONTENT_WITHIN) {
113
SCLogDebug("det_ctx->payload_offset %"PRIu32,
114
det_ctx->payload_offset);
116
offset = det_ctx->payload_offset;
119
if (cd->flags & DETECT_CONTENT_DISTANCE) {
120
if (cd->distance < 0 && (uint32_t)(abs(cd->distance)) > offset) {
123
offset += cd->distance;
126
SCLogDebug("cd->distance %"PRIi32", offset %"PRIu32", depth %"PRIu32,
127
cd->distance, offset, depth);
130
if (cd->flags & DETECT_CONTENT_WITHIN) {
131
if ((int32_t)depth > (int32_t)(det_ctx->payload_offset + cd->within)) {
132
depth = det_ctx->payload_offset + cd->within;
135
SCLogDebug("cd->within %"PRIi32", det_ctx->payload_offset "
136
"%"PRIu32", depth %"PRIu32, cd->within,
137
det_ctx->payload_offset, depth);
140
if (cd->depth != 0) {
141
if ((cd->depth + det_ctx->payload_offset) < depth) {
142
depth = det_ctx->payload_offset + cd->depth;
145
SCLogDebug("cd->depth %"PRIu32", depth %"PRIu32,
149
if (cd->offset > offset) {
151
SCLogDebug("setting offset %"PRIu32, offset);
154
/* implied no relative matches */
157
if (cd->depth != 0) {
165
/* update offset with prev_offset if we're searching for
166
* matches after the first occurence. */
167
SCLogDebug("offset %"PRIu32", prev_offset %"PRIu32, offset,
169
offset += prev_offset;
171
SCLogDebug("offset %"PRIu32", depth %"PRIu32, offset, depth);
173
if (depth > stub_len)
176
/* if offset is bigger than depth we can never match on a
177
* pattern. We can however, "match" on a negated pattern. */
178
if (offset > depth || depth == 0) {
179
if (cd->flags & DETECT_CONTENT_NEGATED) {
186
uint8_t *sstub = stub + offset;
187
uint32_t sstub_len = depth - offset;
188
uint32_t match_offset = 0;
189
SCLogDebug("sstub_len %"PRIu32, sstub_len);
190
BUG_ON(sstub_len > stub_len);
192
/* do the actual search */
193
if (cd->flags & DETECT_CONTENT_NOCASE) {
194
found = BoyerMooreNocase(cd->content, cd->content_len, sstub,
195
sstub_len, cd->bm_ctx->bmGs,
198
found = BoyerMoore(cd->content, cd->content_len, sstub,
199
sstub_len, cd->bm_ctx->bmGs,
203
/* next we evaluate the result in combination with the
205
SCLogDebug("found %p cd negated %s", found,
206
cd->flags & DETECT_CONTENT_NEGATED ? "true" : "false");
208
if (found == NULL && !(cd->flags & DETECT_CONTENT_NEGATED)) {
210
} else if (found == NULL && cd->flags & DETECT_CONTENT_NEGATED) {
212
} else if (found != NULL && cd->flags & DETECT_CONTENT_NEGATED) {
213
match_offset = (uint32_t)((found - stub) + cd->content_len);
214
SCLogDebug("content %"PRIu32" matched at offset %"PRIu32", but "
215
"negated so no match", cd->id, match_offset);
218
match_offset = (uint32_t)((found - stub) + cd->content_len);
219
SCLogDebug("content %"PRIu32" matched at offset %"PRIu32"",
220
cd->id, match_offset);
221
det_ctx->payload_offset = match_offset;
223
if (!(cd->flags & DETECT_CONTENT_RELATIVE_NEXT)) {
224
SCLogDebug("no relative match coming up, so this is a match");
228
BUG_ON(sm->next == NULL);
229
SCLogDebug("content %"PRIu32, cd->id);
231
/* see if the next payload keywords match. If not, we will
232
* search for another occurence of this content and see
233
* if the others match then until we run out of matches */
234
int r = DoInspectDcePayload(de_ctx, det_ctx, s, sm->next,
240
/* set the previous match offset to the start of this match + 1 */
241
prev_offset += (match_offset - (cd->content_len - 1));
242
SCLogDebug("trying to see if there is another match after "
243
"prev_offset %"PRIu32, prev_offset);
249
case DETECT_ISDATAAT:
251
SCLogDebug("inspecting isdataat");
253
DetectIsdataatData *id = (DetectIsdataatData *)sm->ctx;
254
if (id->flags & ISDATAAT_RELATIVE) {
255
if (det_ctx->payload_offset + id->dataat > stub_len) {
256
SCLogDebug("det_ctx->payload_offset + id->dataat "
257
"%"PRIu32" > %"PRIu32,
258
det_ctx->payload_offset + id->dataat, stub_len);
261
SCLogDebug("relative isdataat match");
265
if (id->dataat < stub_len) {
266
SCLogDebug("absolute isdataat match");
269
SCLogDebug("absolute isdataat mismatch, id->isdataat %"PRIu32", "
270
"stub_len %"PRIu32"", id->dataat, stub_len);
278
SCLogDebug("inspecting pcre");
280
int r = DetectPcrePayloadMatch(det_ctx, s, sm, /* no packet */NULL,
289
case DETECT_BYTETEST:
291
if (DetectBytetestDoMatch(det_ctx, s, sm, stub, stub_len) != 1) {
298
case DETECT_BYTEJUMP:
300
if (DetectBytejumpDoMatch(det_ctx, s, sm, stub, stub_len) != 1) {
307
/* we should never get here, but bail out just in case */
317
/* this sigmatch matched, inspect the next one. If it was the last,
318
* the payload portion of the signature matched. */
319
if (sm->next != NULL) {
320
int r = DoInspectDcePayload(de_ctx, det_ctx, s, sm->next, f, stub, stub_len);
328
* \brief Do the content inspection & validation for a signature against dce stub.
330
* \param de_ctx Detection engine context.
331
* \param det_ctx Detection engine thread context.
332
* \param s Signature to inspect.
333
* \param sm SigMatch to inspect.
335
* \param flags App layer flags.
336
* \param state App layer state.
338
* \retval 0 No match.
341
int DetectEngineInspectDcePayload(DetectEngineCtx *de_ctx,
342
DetectEngineThreadCtx *det_ctx, Signature *s,
343
Flow *f, uint8_t flags, void *alstate)
346
DCERPCState *dcerpc_state = (DCERPCState *)alstate;
347
uint8_t *dce_stub_data = NULL;
348
uint16_t dce_stub_data_len;
351
if (s->dmatch == NULL || dcerpc_state == NULL) {
355
/* we are not relying on the stub pointer being set by the dce_stub_data
356
* match function. Instead we will retrieve it directly from the app layer. */
357
if (flags & STREAM_TOSERVER) {
358
if (dcerpc_state->dcerpc.dcerpcrequest.stub_data_buffer == NULL ||
359
dcerpc_state->dcerpc.dcerpcrequest.stub_data_fresh == 0) {
362
dce_stub_data = dcerpc_state->dcerpc.dcerpcrequest.stub_data_buffer;
363
dce_stub_data_len = dcerpc_state->dcerpc.dcerpcrequest.stub_data_buffer_len;
365
if (dcerpc_state->dcerpc.dcerpcresponse.stub_data_buffer == NULL ||
366
dcerpc_state->dcerpc.dcerpcresponse.stub_data_fresh == 0) {
369
dce_stub_data = dcerpc_state->dcerpc.dcerpcresponse.stub_data_buffer;
370
dce_stub_data_len = dcerpc_state->dcerpc.dcerpcresponse.stub_data_buffer_len;
373
det_ctx->payload_offset = 0;
375
r = DoInspectDcePayload(de_ctx, det_ctx, s, s->dmatch, f,
376
dce_stub_data, dce_stub_data_len);
384
/**************************************Unittests*******************************/
389
* \test Test the working of detection engien with respect to dce keywords.
391
int DcePayloadTest01(void)
395
0x05, 0x00, 0x0b, 0x03, 0x10, 0x00, 0x00, 0x00,
396
0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
397
0xd0, 0x16, 0xd0, 0x16, 0x00, 0x00, 0x00, 0x00,
398
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
399
0x6a, 0x28, 0x19, 0x39, 0x0c, 0xb1, 0xd0, 0x11,
400
0x9b, 0xa8, 0x00, 0xc0, 0x4f, 0xd9, 0x2e, 0xf5,
401
0x00, 0x00, 0x00, 0x00, 0x04, 0x5d, 0x88, 0x8a,
402
0xeb, 0x1c, 0xc9, 0x11, 0x9f, 0xe8, 0x08, 0x00,
403
0x2b, 0x10, 0x48, 0x60, 0x02, 0x00, 0x00, 0x00
405
uint32_t bind_len = sizeof(bind);
407
uint8_t bind_ack[] = {
408
0x05, 0x00, 0x0c, 0x03, 0x10, 0x00, 0x00, 0x00,
409
0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
410
0xb8, 0x10, 0xb8, 0x10, 0x48, 0x1a, 0x00, 0x00,
411
0x0c, 0x00, 0x5c, 0x50, 0x49, 0x50, 0x45, 0x5c,
412
0x6c, 0x73, 0x61, 0x73, 0x73, 0x00, 0x00, 0x00,
413
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
414
0x04, 0x5d, 0x88, 0x8a, 0xeb, 0x1c, 0xc9, 0x11,
415
0x9f, 0xe8, 0x08, 0x00, 0x2b, 0x10, 0x48, 0x60,
416
0x02, 0x00, 0x00, 0x00
418
uint32_t bind_ack_len = sizeof(bind_ack);
420
uint8_t request1[] = {
421
0x05, 0x00, 0x00, 0x01, 0x10, 0x00, 0x00, 0x00,
422
0x18, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
423
0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00,
424
0xad, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
425
0xad, 0x0d, 0x00, 0x00, 0x91, 0xfc, 0x27, 0x40,
426
0x4a, 0x97, 0x4a, 0x98, 0x4b, 0x41, 0x3f, 0x48,
427
0x99, 0x90, 0xf8, 0x27, 0xfd, 0x3f, 0x27, 0x37,
428
0x40, 0xd6, 0x27, 0xfc, 0x3f, 0x9f, 0x4f, 0xfd,
429
0x42, 0x47, 0x47, 0x49, 0x3f, 0xf9, 0x9b, 0xd6,
430
0x48, 0x37, 0x27, 0x46, 0x93, 0x49, 0xfd, 0x93,
431
0x91, 0xfd, 0x93, 0x90, 0x92, 0x96, 0xf5, 0x92,
432
0x4e, 0x91, 0x98, 0x46, 0x4f, 0x4b, 0x46, 0xf5,
433
0xf5, 0xfd, 0x40, 0xf9, 0x9b, 0x40, 0x9f, 0x93,
434
0x4e, 0xf8, 0x40, 0x40, 0x4e, 0xf5, 0x4b, 0x98,
435
0xf5, 0x91, 0xd6, 0x42, 0x99, 0x96, 0x27, 0x49,
436
0x48, 0x47, 0x4f, 0x46, 0x99, 0x4b, 0x92, 0x92,
437
0x90, 0x47, 0x46, 0x4e, 0x43, 0x9b, 0x43, 0x42,
438
0x3f, 0x4b, 0x27, 0x97, 0x93, 0xf9, 0x42, 0x9b,
439
0x46, 0x9b, 0x4b, 0x98, 0x41, 0x98, 0x37, 0x41,
440
0x9f, 0x98, 0x4e, 0x93, 0x48, 0x46, 0x46, 0x9f,
441
0x97, 0x9b, 0x42, 0x37, 0x90, 0x46, 0xf9, 0x97,
442
0x91, 0xf5, 0x4e, 0x97, 0x4e, 0x99, 0xf8, 0x99,
443
0x41, 0xf5, 0x41, 0x9f, 0x49, 0xfd, 0x92, 0x96,
444
0x3f, 0x3f, 0x42, 0x27, 0x27, 0x93, 0x47, 0x49,
445
0x91, 0x27, 0x27, 0x40, 0x42, 0x99, 0x9f, 0xfc,
446
0x97, 0x47, 0x99, 0x4a, 0xf9, 0x3f, 0x48, 0x91,
447
0x47, 0x97, 0x91, 0x42, 0x4b, 0x9b, 0x4a, 0x48,
448
0x9f, 0x43, 0x43, 0x40, 0x99, 0xf9, 0x48, 0x4e,
449
0x92, 0x93, 0x92, 0x41, 0x46, 0x4b, 0x4a, 0x4a,
450
0x49, 0x96, 0x4a, 0x4f, 0xf5, 0x42, 0x47, 0x98,
451
0x9b, 0xf5, 0x91, 0xf9, 0xd6, 0x9b, 0x48, 0x4e,
452
0x9f, 0x91, 0xd6, 0x93, 0x4b, 0x37, 0x3f, 0x43,
453
0xf5, 0x41, 0x41, 0xf5, 0x37, 0x4f, 0x43, 0x92,
454
0x97, 0x27, 0x93, 0x92, 0x46, 0x47, 0x4b, 0x96,
455
0x41, 0x90, 0x90, 0x3f, 0x96, 0x27, 0x41, 0xd6,
456
0xd6, 0xd6, 0xf9, 0xf8, 0x47, 0x27, 0x46, 0x37,
457
0x41, 0x90, 0x91, 0xfc, 0x46, 0x41, 0x43, 0x97,
458
0x9f, 0x4a, 0x49, 0x92, 0x41, 0x91, 0x41, 0x92,
459
0x42, 0x4a, 0x3f, 0x93, 0x99, 0x9b, 0x9f, 0x4e,
460
0x47, 0x93, 0xd6, 0x37, 0x37, 0x40, 0x98, 0xfd,
461
0x41, 0x42, 0x97, 0x4e, 0x4e, 0x98, 0x9f, 0x4e,
462
0x48, 0x3f, 0x48, 0x42, 0x96, 0x9f, 0x99, 0x4f,
463
0x4e, 0x42, 0x97, 0xf9, 0x3f, 0x37, 0x27, 0x46,
464
0x41, 0xf9, 0x92, 0x96, 0x41, 0x93, 0x91, 0x4b,
465
0x96, 0x4f, 0x43, 0xfd, 0xf5, 0x9f, 0x43, 0x27,
466
0x99, 0xd6, 0xf5, 0x4e, 0xfd, 0x97, 0x4b, 0x47,
467
0x47, 0x92, 0x98, 0x4f, 0x47, 0x49, 0x37, 0x97,
468
0x3f, 0x4e, 0x40, 0x46, 0x4e, 0x9f, 0x4e, 0x4e,
469
0xfc, 0x41, 0x47, 0xf8, 0x37, 0x9b, 0x41, 0x4e,
470
0x96, 0x99, 0x46, 0x99, 0x46, 0xf9, 0x4e, 0x4f,
471
0x48, 0x97, 0x97, 0x93, 0xd6, 0x9b, 0x41, 0x40,
472
0x97, 0x97, 0x4f, 0x92, 0x91, 0xd6, 0x96, 0x40,
473
0x4f, 0x4b, 0x91, 0x46, 0x27, 0x92, 0x3f, 0xf5,
474
0xfc, 0x3f, 0x91, 0x97, 0xf8, 0x43, 0x4e, 0xfd,
475
0x9b, 0x27, 0xfd, 0x9b, 0xf5, 0x27, 0x47, 0x42,
476
0x46, 0x93, 0x37, 0x93, 0x91, 0x91, 0x91, 0xf8,
477
0x4f, 0x92, 0x4f, 0xf8, 0x93, 0xf5, 0x49, 0x91,
478
0x4b, 0x3f, 0xfc, 0x37, 0x4f, 0x46, 0x98, 0x97,
479
0x9f, 0x40, 0xfd, 0x9f, 0x98, 0xfd, 0x4e, 0x97,
480
0x4f, 0x47, 0x91, 0x27, 0x4a, 0x90, 0x96, 0x40,
481
0x98, 0x97, 0x41, 0x3f, 0xd6, 0xfd, 0x41, 0xfd,
482
0x42, 0x97, 0x4b, 0x9b, 0x46, 0x4e, 0xfc, 0x96,
483
0xf9, 0x37, 0x4b, 0x96, 0x9f, 0x9b, 0x42, 0x9f,
484
0x93, 0x40, 0x42, 0x43, 0xf5, 0x93, 0x48, 0x3f,
485
0x4b, 0xfd, 0x9f, 0x4b, 0x41, 0x4a, 0x90, 0x9b,
486
0x46, 0x97, 0x98, 0x96, 0x9b, 0x98, 0x92, 0xd6,
487
0x4e, 0x4a, 0x27, 0x90, 0x96, 0x99, 0x91, 0x46,
488
0x49, 0x41, 0x4b, 0x90, 0x43, 0x91, 0xd6, 0x48,
489
0x42, 0x90, 0x4f, 0x96, 0x43, 0x9b, 0xf9, 0x9b,
490
0x9f, 0x9f, 0x27, 0x47, 0x4b, 0xf5, 0x43, 0x99,
491
0x99, 0x91, 0x4e, 0x41, 0x42, 0x46, 0x97, 0x46,
492
0x47, 0xf9, 0xf5, 0x48, 0x4a, 0xf8, 0x4e, 0xd6,
493
0x43, 0x4a, 0x27, 0x9b, 0x42, 0x90, 0x46, 0x46,
494
0x3f, 0x99, 0x96, 0x9b, 0x91, 0x9f, 0xf5, 0x48,
495
0x43, 0x9f, 0x4a, 0x99, 0x96, 0xfd, 0x92, 0x49,
496
0x46, 0x91, 0x40, 0xfd, 0x4a, 0x48, 0x4f, 0x90,
497
0x91, 0x98, 0x48, 0x4b, 0x9f, 0x42, 0x27, 0x93,
498
0x47, 0xf8, 0x4f, 0x48, 0x3f, 0x90, 0x47, 0x41,
499
0xf5, 0xfc, 0x27, 0xf8, 0x97, 0x4a, 0x49, 0x37,
500
0x40, 0x4f, 0x40, 0x37, 0x41, 0x27, 0x96, 0x37,
501
0xfc, 0x42, 0xd6, 0x4b, 0x48, 0x37, 0x42, 0xf5,
502
0x27, 0xf9, 0xd6, 0x48, 0x9b, 0xfd, 0x40, 0x96,
503
0x4e, 0x43, 0xf8, 0x90, 0x40, 0x40, 0x49, 0x3f,
504
0xfc, 0x4a, 0x42, 0x47, 0xf8, 0x49, 0x42, 0x97,
505
0x4f, 0x91, 0xfd, 0x4b, 0x46, 0x4b, 0xfc, 0x48,
506
0x49, 0x96, 0x4b, 0x96, 0x43, 0x9f, 0x90, 0x37,
507
0xd6, 0x4a, 0xd6, 0x3f, 0xd6, 0x90, 0x49, 0x27,
508
0x4e, 0x96, 0x96, 0xf8, 0x49, 0x96, 0xf8, 0x37,
509
0x90, 0x4e, 0x4b, 0x4f, 0x99, 0xf8, 0x6a, 0x52,
510
0x59, 0xd9, 0xee, 0xd9, 0x74, 0x24, 0xf4, 0x5b,
511
0x81, 0x73, 0x13, 0x30, 0x50, 0xf0, 0x82, 0x83,
512
0xeb, 0xfc, 0xe2, 0xf4, 0xb1, 0x94, 0x0f, 0x6d,
513
0xcf, 0xaf, 0xb4, 0x7e, 0x5a, 0xbb, 0xbf, 0x6a,
514
0xc9, 0xaf, 0x0f, 0x7d, 0x50, 0xdb, 0x9c, 0xa6,
515
0x14, 0xdb, 0xb5, 0xbe, 0xbb, 0x2c, 0xf5, 0xfa,
516
0x31, 0xbf, 0x7b, 0xcd, 0x28, 0xdb, 0xaf, 0xa2,
517
0x31, 0xbb, 0x13, 0xb2, 0x79, 0xdb, 0xc4, 0x09,
518
0x31, 0xbe, 0xc1, 0x42, 0xa9, 0xfc, 0x74, 0x42,
519
0x44, 0x57, 0x31, 0x48, 0x3d, 0x51, 0x32, 0x69,
520
0xc4, 0x6b, 0xa4, 0xa6, 0x18, 0x25, 0x13, 0x09,
521
0x6f, 0x74, 0xf1, 0x69, 0x56, 0xdb, 0xfc, 0xc9,
522
0xbb, 0x0f, 0xec, 0x83, 0xdb, 0x53, 0xdc, 0x09,
523
0xb9, 0x3c, 0xd4, 0x9e, 0x51, 0x93, 0xc1, 0x42,
524
0x54, 0xdb, 0xb0, 0xb2, 0xbb, 0x10, 0xfc, 0x09,
525
0x40, 0x4c, 0x5d, 0x09, 0x70, 0x58, 0xae, 0xea,
526
0xbe, 0x1e, 0xfe, 0x6e, 0x60, 0xaf, 0x26, 0xb3,
527
0xeb, 0x36, 0xa3, 0xe4, 0x58, 0x63, 0xc2, 0xea,
528
0x47, 0x23, 0xc2, 0xdd, 0x64, 0xaf, 0x20, 0xea,
529
0xfb, 0xbd, 0x0c, 0xb9, 0x60, 0xaf, 0x26, 0xdd,
530
0xb9, 0xb5, 0x96, 0x03, 0xdd, 0x58, 0xf2, 0xd7,
531
0x5a, 0x52, 0x0f, 0x52, 0x58, 0x89, 0xf9, 0x77,
532
0x9d, 0x07, 0x0f, 0x54, 0x63, 0x03, 0xa3, 0xd1,
533
0x63, 0x13, 0xa3, 0xc1, 0x63, 0xaf, 0x20, 0xe4,
534
0x58, 0x41, 0xac, 0xe4, 0x63, 0xd9, 0x11, 0x17,
535
0x58, 0xf4, 0xea, 0xf2, 0xf7, 0x07, 0x0f, 0x54,
536
0x5a, 0x40, 0xa1, 0xd7, 0xcf, 0x80, 0x98, 0x26,
537
0x9d, 0x7e, 0x19, 0xd5, 0xcf, 0x86, 0xa3, 0xd7,
538
0xcf, 0x80, 0x98, 0x67, 0x79, 0xd6, 0xb9, 0xd5,
539
0xcf, 0x86, 0xa0, 0xd6, 0x64, 0x05, 0x0f, 0x52,
540
0xa3, 0x38, 0x17, 0xfb, 0xf6, 0x29, 0xa7, 0x7d,
541
0xe6, 0x05, 0x0f, 0x52, 0x56, 0x3a, 0x94, 0xe4,
542
0x58, 0x33, 0x9d, 0x0b, 0xd5, 0x3a, 0xa0, 0xdb,
543
0x19, 0x9c, 0x79, 0x65, 0x5a, 0x14, 0x79, 0x60,
544
0x01, 0x90, 0x03, 0x28, 0xce, 0x12, 0xdd, 0x7c,
545
0x72, 0x7c, 0x63, 0x0f, 0x4a, 0x68, 0x5b, 0x29,
546
0x9b, 0x38, 0x82, 0x7c, 0x83, 0x46, 0x0f, 0xf7,
547
0x74, 0xaf, 0x26, 0xd9, 0x67, 0x02, 0xa1, 0xd3,
548
0x61, 0x3a, 0xf1, 0xd3, 0x61, 0x05, 0xa1, 0x7d,
549
0xe0, 0x38, 0x5d, 0x5b, 0x35, 0x9e, 0xa3, 0x7d,
550
0xe6, 0x3a, 0x0f, 0x7d, 0x07, 0xaf, 0x20, 0x09,
551
0x67, 0xac, 0x73, 0x46, 0x54, 0xaf, 0x26, 0xd0
553
uint32_t request1_len = sizeof(request1);
555
uint8_t request2[] = {
556
0x05, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
557
0x18, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
558
0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00,
559
0xcf, 0x80, 0x98, 0x6d, 0xfe, 0xb0, 0x90, 0xd1,
560
0xcf, 0x86, 0x0f, 0x52, 0x2c, 0x23, 0x66, 0x28,
561
0x27, 0x30, 0x48, 0x55, 0x42, 0x6a, 0x48, 0x4b,
562
0x68, 0x22, 0x2e, 0x23, 0x64, 0x33, 0x2c, 0x2d,
563
0x5c, 0x51, 0x48, 0x55, 0x24, 0x67, 0x6c, 0x4c,
564
0x45, 0x71, 0x35, 0x72, 0x5a, 0x48, 0x5e, 0x35,
565
0x61, 0x78, 0x35, 0x42, 0x2c, 0x7a, 0x75, 0x61,
566
0x5b, 0x4e, 0x76, 0x30, 0x26, 0x2f, 0x2a, 0x34,
567
0x48, 0x29, 0x25, 0x6e, 0x5c, 0x3a, 0x6c, 0x3e,
568
0x79, 0x4e, 0x2a, 0x21, 0x6f, 0x6f, 0x34, 0x46,
569
0x43, 0x26, 0x5b, 0x35, 0x78, 0x27, 0x69, 0x23,
570
0x72, 0x21, 0x69, 0x56, 0x6a, 0x7d, 0x4b, 0x5e,
571
0x65, 0x37, 0x60, 0x44, 0x7c, 0x5d, 0x5b, 0x72,
572
0x7d, 0x73, 0x7b, 0x47, 0x57, 0x21, 0x41, 0x38,
573
0x76, 0x38, 0x76, 0x5c, 0x58, 0x32, 0x4a, 0x37,
574
0x2f, 0x40, 0x4b, 0x4c, 0x3d, 0x41, 0x33, 0x56,
575
0x73, 0x38, 0x61, 0x71, 0x24, 0x49, 0x4c, 0x4a,
576
0x44, 0x2e, 0x3a, 0x3f, 0x74, 0x54, 0x4c, 0x65,
577
0x54, 0x2d, 0x3b, 0x28, 0x41, 0x45, 0x49, 0x2c,
578
0x6e, 0x48, 0x44, 0x43, 0x37, 0x3d, 0x7b, 0x6d,
579
0x2b, 0x4b, 0x32, 0x5a, 0x31, 0x61, 0x6e, 0x2b,
580
0x27, 0x50, 0x6b, 0x66, 0x76, 0x4e, 0x55, 0x35,
581
0x2b, 0x72, 0x2d, 0x5e, 0x42, 0x3e, 0x5a, 0x5d,
582
0x36, 0x45, 0x32, 0x3a, 0x58, 0x78, 0x78, 0x3e,
583
0x60, 0x6c, 0x5d, 0x63, 0x41, 0x7c, 0x52, 0x21,
584
0x75, 0x6a, 0x5a, 0x70, 0x55, 0x45, 0x76, 0x58,
585
0x33, 0x40, 0x38, 0x39, 0x21, 0x37, 0x7d, 0x77,
586
0x21, 0x70, 0x2b, 0x72, 0x29, 0x6a, 0x31, 0x5f,
587
0x38, 0x4a, 0x66, 0x65, 0x62, 0x2c, 0x39, 0x52,
588
0x5f, 0x2a, 0x2b, 0x63, 0x4f, 0x76, 0x43, 0x25,
589
0x6a, 0x50, 0x37, 0x52, 0x5e, 0x23, 0x3c, 0x42,
590
0x28, 0x75, 0x75, 0x42, 0x25, 0x23, 0x28, 0x56,
591
0x6c, 0x46, 0x5c, 0x5e, 0x6b, 0x7d, 0x48, 0x24,
592
0x77, 0x6c, 0x70, 0x62, 0x2e, 0x28, 0x7d, 0x6b,
593
0x69, 0x4a, 0x75, 0x3d, 0x5d, 0x56, 0x21, 0x49,
594
0x56, 0x47, 0x64, 0x2b, 0x4c, 0x52, 0x43, 0x60,
595
0x77, 0x49, 0x46, 0x46, 0x33, 0x2c, 0x4b, 0x4b,
596
0x3d, 0x63, 0x5d, 0x33, 0x78, 0x76, 0x51, 0x56,
597
0x77, 0x3c, 0x72, 0x74, 0x52, 0x27, 0x40, 0x6c,
598
0x42, 0x79, 0x49, 0x24, 0x62, 0x5e, 0x26, 0x31,
599
0x5c, 0x22, 0x2b, 0x4c, 0x64, 0x49, 0x52, 0x45,
600
0x47, 0x49, 0x3a, 0x2a, 0x51, 0x71, 0x22, 0x22,
601
0x70, 0x24, 0x34, 0x67, 0x4b, 0x6d, 0x58, 0x29,
602
0x63, 0x26, 0x7b, 0x6f, 0x38, 0x78, 0x25, 0x62,
603
0x4d, 0x3a, 0x7d, 0x40, 0x23, 0x57, 0x67, 0x33,
604
0x38, 0x31, 0x4e, 0x54, 0x3c, 0x4b, 0x48, 0x69,
605
0x3c, 0x39, 0x31, 0x2b, 0x26, 0x70, 0x44, 0x66,
606
0x4a, 0x37, 0x2b, 0x75, 0x36, 0x45, 0x59, 0x34,
607
0x3e, 0x3e, 0x29, 0x70, 0x71, 0x5a, 0x55, 0x49,
608
0x3e, 0x4b, 0x68, 0x4e, 0x75, 0x70, 0x3c, 0x5c,
609
0x50, 0x58, 0x28, 0x75, 0x3c, 0x2a, 0x41, 0x70,
610
0x2f, 0x2b, 0x37, 0x26, 0x75, 0x71, 0x55, 0x22,
611
0x3a, 0x44, 0x30, 0x48, 0x5d, 0x2f, 0x6c, 0x44,
612
0x28, 0x4b, 0x34, 0x45, 0x21, 0x60, 0x44, 0x36,
613
0x7b, 0x32, 0x39, 0x5f, 0x6d, 0x3f, 0x68, 0x73,
614
0x25, 0x45, 0x56, 0x7c, 0x78, 0x7a, 0x49, 0x6a,
615
0x46, 0x3d, 0x2d, 0x33, 0x6c, 0x6f, 0x23, 0x77,
616
0x38, 0x33, 0x36, 0x74, 0x7b, 0x57, 0x4b, 0x6d,
617
0x27, 0x75, 0x24, 0x6e, 0x43, 0x61, 0x4d, 0x44,
618
0x6d, 0x27, 0x48, 0x58, 0x5e, 0x7b, 0x26, 0x6a,
619
0x50, 0x7c, 0x51, 0x23, 0x3c, 0x4f, 0x37, 0x4c,
620
0x47, 0x3e, 0x45, 0x56, 0x22, 0x33, 0x7c, 0x66,
621
0x35, 0x54, 0x7a, 0x6e, 0x5a, 0x24, 0x70, 0x62,
622
0x29, 0x3f, 0x69, 0x79, 0x24, 0x43, 0x41, 0x24,
623
0x65, 0x25, 0x62, 0x4f, 0x73, 0x3e, 0x2b, 0x36,
624
0x46, 0x69, 0x27, 0x55, 0x2a, 0x6e, 0x24, 0x6c,
625
0x7d, 0x64, 0x7c, 0x61, 0x26, 0x67, 0x2a, 0x53,
626
0x73, 0x60, 0x28, 0x2d, 0x6b, 0x44, 0x54, 0x61,
627
0x34, 0x53, 0x22, 0x59, 0x6d, 0x73, 0x56, 0x55,
628
0x25, 0x2c, 0x38, 0x4a, 0x3b, 0x4e, 0x78, 0x46,
629
0x54, 0x6e, 0x6d, 0x4f, 0x47, 0x4f, 0x4f, 0x5a,
630
0x67, 0x77, 0x39, 0x66, 0x28, 0x29, 0x4e, 0x43,
631
0x55, 0x6e, 0x60, 0x59, 0x28, 0x3b, 0x65, 0x62,
632
0x61, 0x5a, 0x29, 0x6e, 0x79, 0x60, 0x41, 0x53,
633
0x2f, 0x5d, 0x44, 0x36, 0x7b, 0x3e, 0x7c, 0x2b,
634
0x77, 0x36, 0x70, 0x3f, 0x40, 0x55, 0x48, 0x67,
635
0x4b, 0x4d, 0x5d, 0x51, 0x79, 0x76, 0x48, 0x4a,
636
0x2d, 0x21, 0x60, 0x40, 0x46, 0x55, 0x7a, 0x60,
637
0x22, 0x25, 0x3f, 0x4b, 0x54, 0x6a, 0x6a, 0x3c,
638
0x77, 0x22, 0x5b, 0x43, 0x67, 0x58, 0x71, 0x22,
639
0x79, 0x4b, 0x32, 0x61, 0x44, 0x4d, 0x6f, 0x42,
640
0x33, 0x2d, 0x53, 0x35, 0x3d, 0x6f, 0x57, 0x48,
641
0x33, 0x3b, 0x5a, 0x53, 0x3f, 0x4e, 0x3f, 0x6b,
642
0x4c, 0x27, 0x26, 0x3b, 0x73, 0x49, 0x22, 0x55,
643
0x79, 0x2f, 0x47, 0x2f, 0x55, 0x5a, 0x7a, 0x71,
644
0x6c, 0x31, 0x43, 0x40, 0x56, 0x7b, 0x21, 0x7a,
645
0x6d, 0x4c, 0x43, 0x5e, 0x38, 0x47, 0x29, 0x38,
646
0x62, 0x49, 0x45, 0x78, 0x70, 0x2b, 0x2e, 0x65,
647
0x47, 0x71, 0x58, 0x79, 0x39, 0x67, 0x7d, 0x6d,
648
0x6a, 0x67, 0x4a, 0x71, 0x27, 0x35, 0x2a, 0x4c,
649
0x3e, 0x58, 0x55, 0x30, 0x4d, 0x75, 0x77, 0x48,
650
0x5f, 0x4b, 0x59, 0x34, 0x65, 0x68, 0x57, 0x59,
651
0x63, 0x23, 0x47, 0x38, 0x47, 0x5e, 0x56, 0x28,
652
0x79, 0x58, 0x3e, 0x39, 0x66, 0x77, 0x67, 0x33,
653
0x29, 0x61, 0x24, 0x7d, 0x37, 0x44, 0x37, 0x67,
654
0x3a, 0x58, 0x76, 0x21, 0x51, 0x59, 0x61, 0x73,
655
0x66, 0x75, 0x71, 0x53, 0x4d, 0x24, 0x2d, 0x4b,
656
0x29, 0x30, 0x32, 0x26, 0x59, 0x64, 0x27, 0x55,
657
0x2c, 0x5a, 0x4c, 0x3c, 0x6c, 0x53, 0x56, 0x4b,
658
0x3e, 0x55, 0x2e, 0x44, 0x38, 0x6b, 0x47, 0x76,
659
0x2d, 0x2c, 0x3f, 0x4d, 0x22, 0x7b, 0x6d, 0x61,
660
0x34, 0x6b, 0x50, 0x73, 0x28, 0x6d, 0x41, 0x71,
661
0x21, 0x76, 0x52, 0x2a, 0x6d, 0x53, 0x2a, 0x74,
662
0x28, 0x27, 0x62, 0x2a, 0x66, 0x25, 0x6e, 0x5e,
663
0x37, 0x4f, 0x27, 0x72, 0x28, 0x47, 0x63, 0x6e,
664
0x5a, 0x6a, 0x41, 0x35, 0x3a, 0x42, 0x3f, 0x27,
665
0x75, 0x3e, 0x26, 0x3e, 0x6b, 0x55, 0x59, 0x60,
666
0x24, 0x70, 0x49, 0x3c, 0x4e, 0x2c, 0x39, 0x7a,
667
0x36, 0x6c, 0x27, 0x3e, 0x6a, 0x4a, 0x59, 0x5a,
668
0x3e, 0x21, 0x73, 0x4e, 0x59, 0x6e, 0x3d, 0x32,
669
0x27, 0x45, 0x49, 0x58, 0x7d, 0x37, 0x39, 0x77,
670
0x28, 0x51, 0x79, 0x54, 0x2b, 0x78, 0x46, 0x5a,
671
0x21, 0x75, 0x33, 0x21, 0x63, 0x5a, 0x7b, 0x3e,
672
0x33, 0x4f, 0x67, 0x75, 0x3a, 0x50, 0x48, 0x60,
673
0x26, 0x64, 0x76, 0x5c, 0x42, 0x5c, 0x72, 0x38,
674
0x6c, 0x52, 0x21, 0x2b, 0x25, 0x6b, 0x7c, 0x6b,
675
0x2d, 0x5e, 0x63, 0x2a, 0x4c, 0x26, 0x5b, 0x4c,
676
0x58, 0x52, 0x51, 0x55, 0x31, 0x79, 0x6c, 0x53,
677
0x62, 0x3a, 0x36, 0x46, 0x7a, 0x29, 0x27, 0x78,
678
0x1a, 0xbf, 0x49, 0x74, 0x68, 0x24, 0x51, 0x44,
679
0x5b, 0x3e, 0x34, 0x44, 0x29, 0x5e, 0x4f, 0x2a,
680
0xe9, 0x3f, 0xf8, 0xff, 0xff, 0x52, 0x7d, 0x47,
681
0x67, 0x40, 0x27, 0x5e, 0x47, 0x46, 0x6d, 0x72,
682
0x5d, 0x49, 0x26, 0x45, 0x33, 0x6b, 0x4d, 0x4a,
683
0x6f, 0x62, 0x60, 0x45, 0x62, 0x27, 0x27, 0x7d,
684
0x6a, 0x41, 0x2c, 0x6c, 0x5b, 0x2a, 0x2b, 0x36,
685
0x29, 0x58, 0x7a, 0x4c, 0x6e, 0x2d, 0x74, 0x5c,
686
0x38, 0x22, 0x5f, 0x49, 0x63, 0x43, 0x5b, 0x67
688
uint32_t request2_len = sizeof(request2);
690
uint8_t request3[] = {
691
0x05, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
692
0x18, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
693
0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00,
694
0x26, 0x65, 0x3c, 0x6e, 0x6d, 0x64, 0x24, 0x39,
695
0x56, 0x43, 0x3e, 0x61, 0x5c, 0x54, 0x42, 0x23,
696
0x75, 0x6b, 0x71, 0x27, 0x66, 0x2e, 0x6e, 0x3d,
697
0x58, 0x23, 0x54, 0x77, 0x3b, 0x52, 0x6b, 0x50,
698
0x3b, 0x74, 0x2c, 0x54, 0x25, 0x5c, 0x51, 0x7c,
699
0x29, 0x7c, 0x5f, 0x4a, 0x35, 0x5c, 0x3d, 0x3f,
700
0x33, 0x55, 0x3b, 0x5a, 0x57, 0x31, 0x59, 0x4f,
701
0x6d, 0x6d, 0x7b, 0x3e, 0x38, 0x4d, 0x68, 0x75,
702
0x64, 0x21, 0x50, 0x63, 0x47, 0x42, 0x56, 0x39,
703
0x6c, 0x6f, 0x61, 0x53, 0x32, 0x56, 0x43, 0x52,
704
0x43, 0x67, 0x26, 0x45, 0x28, 0x6b, 0x77, 0x28,
705
0x7c, 0x64, 0x61, 0x24, 0x38, 0x6b, 0x59, 0x2a,
706
0x4f, 0x6e, 0x5b, 0x57, 0x24, 0x54, 0x33, 0x37,
707
0x47, 0x58, 0x4b, 0x58, 0x3d, 0x21, 0x38, 0x7c,
708
0x2c, 0x24, 0x5f, 0x67, 0x3a, 0x41, 0x3e, 0x2a,
709
0x72, 0x66, 0x2d, 0x6b, 0x66, 0x7b, 0x2b, 0x75,
710
0x78, 0x2f, 0x4d, 0x4c, 0x51, 0x70, 0x5d, 0x55,
711
0x54, 0x3c, 0x63, 0x46, 0x6b, 0x64, 0x4d, 0x25,
712
0x45, 0x21, 0x34, 0x65, 0x48, 0x32, 0x58, 0x4c,
713
0x70, 0x4c, 0x4c, 0x75, 0x5c, 0x77, 0x68, 0x78,
714
0x34, 0x5c, 0x2d, 0x39, 0x58, 0x3b, 0x40, 0x71,
715
0x77, 0x47, 0x32, 0x2e, 0x3c, 0x61, 0x6f, 0x6d,
716
0x5f, 0x43, 0x74, 0x36, 0x4f, 0x21, 0x44, 0x66,
717
0x36, 0x62, 0x30, 0x29, 0x5a, 0x34, 0x66, 0x4e,
718
0x51, 0x23, 0x4e, 0x38, 0x51, 0x78, 0x74, 0x58,
719
0x2e, 0x6d, 0x51, 0x49, 0x55, 0x73, 0x2a, 0x71,
720
0x3c, 0x74, 0x38, 0x6f, 0x5d, 0x4b, 0x74, 0x68,
721
0x65, 0x4a, 0x58, 0x41, 0x55, 0x29, 0x42, 0x69,
722
0x55, 0x3b, 0x2b, 0x47, 0x64, 0x3b, 0x77, 0x72,
723
0x74, 0x38, 0x53, 0x5c, 0x69, 0x49, 0x49, 0x5b,
724
0x31, 0x41, 0x6a, 0x4e, 0x2c, 0x6a, 0x63, 0x3f,
725
0x58, 0x4e, 0x25, 0x3e, 0x57, 0x41, 0x61, 0x26,
726
0x5e, 0x24, 0x69, 0x7a, 0x38, 0x60, 0x73, 0x70,
727
0x7d, 0x63, 0x34, 0x78, 0x4d, 0x50, 0x35, 0x69,
728
0x49, 0x22, 0x45, 0x44, 0x3f, 0x6e, 0x75, 0x64,
729
0x57, 0x3a, 0x61, 0x60, 0x34, 0x21, 0x61, 0x21,
730
0x2a, 0x78, 0x7b, 0x52, 0x43, 0x50, 0x5b, 0x76,
731
0x5f, 0x4b, 0x6a, 0x5d, 0x23, 0x5b, 0x57, 0x40,
732
0x53, 0x51, 0x33, 0x21, 0x35, 0x7d, 0x31, 0x46,
733
0x65, 0x52, 0x28, 0x25, 0x30, 0x5a, 0x37, 0x7c,
734
0x2c, 0x3d, 0x2a, 0x48, 0x24, 0x5a, 0x2f, 0x47,
735
0x64, 0x73, 0x64, 0x3d, 0x7a, 0x5b, 0x34, 0x5e,
736
0x42, 0x22, 0x32, 0x47, 0x6e, 0x58, 0x3b, 0x3e,
737
0x25, 0x2f, 0x58, 0x78, 0x42, 0x66, 0x71, 0x56,
738
0x2a, 0x66, 0x66, 0x5b, 0x55, 0x35, 0x7a, 0x41,
739
0x7c, 0x7c, 0x6a, 0x2d, 0x59, 0x25, 0x22, 0x34,
740
0x5a, 0x61, 0x37, 0x48, 0x39, 0x31, 0x4a, 0x55,
741
0x6a, 0x68, 0x40, 0x2f, 0x45, 0x69, 0x46, 0x25,
742
0x51, 0x7d, 0x4f, 0x71, 0x21, 0x33, 0x55, 0x50,
743
0x56, 0x5f, 0x75, 0x27, 0x64, 0x36, 0x7a, 0x39,
744
0x40, 0x6a, 0x77, 0x38, 0x5d, 0x39, 0x30, 0x5e,
745
0x74, 0x54, 0x24, 0x3f, 0x3d, 0x79, 0x3b, 0x27,
746
0x7d, 0x68, 0x7d, 0x40, 0x71, 0x7a, 0x65, 0x54,
747
0x50, 0x66, 0x33, 0x3c, 0x42, 0x69, 0x6e, 0x3c,
748
0x63, 0x63, 0x69, 0x7a, 0x5e, 0x7b, 0x76, 0x26,
749
0x71, 0x6f, 0x4a, 0x6d, 0x70, 0x73, 0x66, 0x3b,
750
0x26, 0x70, 0x43, 0x5b, 0x52, 0x4c, 0x6d, 0x51,
751
0x2a, 0x66, 0x6c, 0x3e, 0x68, 0x6a, 0x31, 0x41,
752
0x79, 0x72, 0x37, 0x47, 0x7d, 0x2b, 0x3c, 0x40,
753
0x6b, 0x75, 0x56, 0x70, 0x7b, 0x2d, 0x5f, 0x33,
754
0x30, 0x30, 0x21, 0x35, 0x7a, 0x7a, 0x67, 0x48,
755
0x5e, 0x3b, 0x73, 0x50, 0x54, 0x47, 0x23, 0x2b,
756
0x4c, 0x4e, 0x2f, 0x24, 0x44, 0x34, 0x23, 0x5d,
757
0x76, 0x51, 0x5a, 0x73, 0x72, 0x3e, 0x47, 0x77,
758
0x40, 0x28, 0x65, 0x2e, 0x2a, 0x75, 0x3c, 0x2a,
759
0x27, 0x4a, 0x3f, 0x3c, 0x66, 0x2d, 0x21, 0x79,
760
0x2d, 0x2b, 0x78, 0x7c, 0x5a, 0x73, 0x46, 0x6b,
761
0x39, 0x65, 0x5e, 0x3d, 0x38, 0x40, 0x32, 0x3e,
762
0x21, 0x62, 0x34, 0x41, 0x58, 0x53, 0x67, 0x34,
763
0x58, 0x56, 0x61, 0x5b, 0x3e, 0x4e, 0x2c, 0x5b,
764
0x73, 0x35, 0x34, 0x35, 0x21, 0x3a, 0x61, 0x5f,
765
0x6e, 0x45, 0x78, 0x44, 0x28, 0x23, 0x48, 0x65,
766
0x53, 0x47, 0x6e, 0x2c, 0x38, 0x5e, 0x2c, 0x57,
767
0x58, 0x30, 0x7a, 0x3b, 0x4b, 0x4a, 0x74, 0x7d,
768
0x3e, 0x4d, 0x30, 0x24, 0x76, 0x66, 0x6d, 0x2e,
769
0x74, 0x75, 0x28, 0x48, 0x5c, 0x23, 0x6c, 0x46,
770
0x27, 0x46, 0x6e, 0x34, 0x63, 0x21, 0x58, 0x54,
771
0x50, 0x2f, 0x40, 0x47, 0x40, 0x32, 0x36, 0x48,
772
0x5f, 0x7d, 0x4a, 0x41, 0x6e, 0x60, 0x2c, 0x4a,
773
0x6a, 0x67, 0x6c, 0x41, 0x27, 0x23, 0x30, 0x48,
774
0x6a, 0x49, 0x73, 0x26, 0x77, 0x75, 0x4d, 0x65,
775
0x5b, 0x34, 0x79, 0x67, 0x61, 0x5b, 0x5c, 0x2b,
776
0x71, 0x3f, 0x62, 0x51, 0x3a, 0x53, 0x42, 0x26,
777
0x6f, 0x36, 0x57, 0x3f, 0x2b, 0x34, 0x24, 0x30,
778
0x60, 0x55, 0x70, 0x65, 0x70, 0x57, 0x5d, 0x68,
779
0x36, 0x52, 0x5d, 0x3f, 0x6a, 0x3a, 0x33, 0x31,
780
0x6c, 0x4e, 0x57, 0x79, 0x49, 0x79, 0x69, 0x71,
781
0x6f, 0x70, 0x6a, 0x76, 0x4b, 0x2f, 0x33, 0x51,
782
0x68, 0x30, 0x2e, 0x77, 0x78, 0x55, 0x2f, 0x53,
783
0x52, 0x5e, 0x57, 0x60, 0x3b, 0x6f, 0x69, 0x61,
784
0x6c, 0x60, 0x5a, 0x34, 0x5a, 0x35, 0x4b, 0x28,
785
0x54, 0x32, 0x6a, 0x35, 0x36, 0x6d, 0x68, 0x47,
786
0x5c, 0x74, 0x2e, 0x5f, 0x6c, 0x6d, 0x55, 0x42,
787
0x77, 0x64, 0x7d, 0x53, 0x4d, 0x39, 0x2c, 0x41,
788
0x42, 0x23, 0x3a, 0x73, 0x40, 0x60, 0x5d, 0x38,
789
0x6d, 0x36, 0x56, 0x57, 0x2a, 0x28, 0x3d, 0x3b,
790
0x5c, 0x75, 0x35, 0x2d, 0x69, 0x2d, 0x44, 0x51,
791
0x27, 0x63, 0x66, 0x33, 0x46, 0x42, 0x2e, 0x36,
792
0x6b, 0x7b, 0x2c, 0x23, 0x3b, 0x5a, 0x50, 0x2a,
793
0x65, 0x28, 0x3b, 0x3c, 0x51, 0x3f, 0x4d, 0x63,
794
0x38, 0x25, 0x74, 0x2e, 0x51, 0x22, 0x31, 0x74,
795
0x35, 0x33, 0x23, 0x2d, 0x3f, 0x77, 0x26, 0x2c,
796
0x55, 0x6d, 0x27, 0x39, 0x79, 0x76, 0x63, 0x4b,
797
0x43, 0x4a, 0x3a, 0x6b, 0x59, 0x55, 0x65, 0x26,
798
0x2f, 0x3f, 0x56, 0x67, 0x5a, 0x77, 0x71, 0x22,
799
0x51, 0x2b, 0x6d, 0x4c, 0x2c, 0x57, 0x66, 0x76,
800
0x37, 0x70, 0x5f, 0x52, 0x29, 0x44, 0x52, 0x22,
801
0x57, 0x37, 0x27, 0x79, 0x29, 0x5c, 0x57, 0x3b,
802
0x54, 0x3c, 0x3f, 0x53, 0x35, 0x27, 0x5e, 0x7c,
803
0x49, 0x77, 0x57, 0x5a, 0x22, 0x76, 0x7c, 0x5b,
804
0x2f, 0x53, 0x5e, 0x55, 0x6d, 0x64, 0x67, 0x34,
805
0x41, 0x23, 0x76, 0x67, 0x23, 0x78, 0x6a, 0x63,
806
0x27, 0x68, 0x43, 0x7d, 0x58, 0x49, 0x2d, 0x79,
807
0x2e, 0x75, 0x60, 0x6b, 0x34, 0x48, 0x6f, 0x4a,
808
0x6c, 0x48, 0x40, 0x68, 0x5f, 0x35, 0x25, 0x6c,
809
0x38, 0x5c, 0x30, 0x32, 0x4c, 0x36, 0x31, 0x29,
810
0x74, 0x4a, 0x55, 0x56, 0x6d, 0x4e, 0x23, 0x54,
811
0x2e, 0x69, 0x78, 0x61, 0x76, 0x66, 0x22, 0x44,
812
0x73, 0x25, 0x44, 0x29, 0x2a, 0x28, 0x3b, 0x67,
813
0x48, 0x58, 0x37, 0x4a, 0x76, 0x76, 0x51, 0x4a,
814
0x61, 0x70, 0x51, 0x74, 0x40, 0x23, 0x29, 0x63,
815
0x69, 0x4a, 0x29, 0x23, 0x34, 0x6a, 0x3b, 0x25,
816
0x28, 0x54, 0x45, 0x33, 0x28, 0x44, 0x30, 0x61,
817
0x5b, 0x60, 0x51, 0x3f, 0x68, 0x50, 0x70, 0x3d,
818
0x58, 0x2e, 0x6e, 0x59, 0x5a, 0x62, 0x66, 0x4d,
819
0x7a, 0x2e, 0x37, 0x37, 0x3d, 0x7b, 0x74, 0x79,
820
0x48, 0x45, 0x77, 0x56, 0x33, 0x76, 0x71, 0x60,
821
0x74, 0x3f, 0x61, 0x22, 0x52, 0x51, 0x71, 0x69
823
uint32_t request3_len = sizeof(request3);
825
uint8_t request4[] = {
826
0x05, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
827
0x18, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
828
0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00,
829
0x75, 0x3e, 0x76, 0x3e, 0x66, 0x6b, 0x6b, 0x3e,
830
0x6d, 0x59, 0x38, 0x2b, 0x63, 0x4d, 0x2c, 0x73,
831
0x54, 0x57, 0x34, 0x25, 0x5b, 0x42, 0x7d, 0x5d,
832
0x37, 0x34, 0x2c, 0x79, 0x24, 0x4b, 0x74, 0x73,
833
0x25, 0x36, 0x73, 0x3a, 0x2c, 0x55, 0x69, 0x3c,
834
0x58, 0x67, 0x33, 0x53, 0x67, 0x5c, 0x61, 0x7b,
835
0x44, 0x2e, 0x42, 0x2d, 0x6b, 0x50, 0x55, 0x24,
836
0x70, 0x58, 0x60, 0x38, 0x42, 0x45, 0x70, 0x6d,
837
0x2f, 0x27, 0x27, 0x2c, 0x21, 0x6d, 0x57, 0x6e,
838
0x43, 0x3c, 0x5b, 0x27, 0x7a, 0x34, 0x49, 0x5a,
839
0x69, 0x30, 0x3f, 0x6f, 0x77, 0x70, 0x39, 0x2d,
840
0x51, 0x74, 0x4b, 0x25, 0x70, 0x51, 0x64, 0x4d,
841
0x75, 0x52, 0x5e, 0x3e, 0x37, 0x30, 0x5d, 0x3b,
842
0x2c, 0x72, 0x25, 0x6c, 0x6f, 0x79, 0x69, 0x3c,
843
0x5b, 0x73, 0x3d, 0x41, 0x28, 0x28, 0x64, 0x60,
844
0x4b, 0x7a, 0x2c, 0x4a, 0x6b, 0x3d, 0x2e, 0x6c,
845
0x7a, 0x54, 0x70, 0x61, 0x6f, 0x4b, 0x40, 0x28,
846
0x59, 0x31, 0x25, 0x21, 0x57, 0x79, 0x4b, 0x31,
847
0x6f, 0x4e, 0x71, 0x2b, 0x3c, 0x24, 0x30, 0x28,
848
0x3c, 0x61, 0x28, 0x4b, 0x35, 0x61, 0x4d, 0x55,
849
0x5e, 0x66, 0x34, 0x5f, 0x61, 0x70, 0x7b, 0x67,
850
0x51, 0x55, 0x68, 0x78, 0x26, 0x3a, 0x27, 0x4e,
851
0x71, 0x79, 0x4f, 0x67, 0x2c, 0x5a, 0x79, 0x75,
852
0x59, 0x3a, 0x33, 0x4a, 0x36, 0x71, 0x72, 0x6d,
853
0x49, 0x3e, 0x53, 0x59, 0x2b, 0x2b, 0x27, 0x4e,
854
0x50, 0x5d, 0x21, 0x55, 0x64, 0x4b, 0x72, 0x73,
855
0x25, 0x55, 0x26, 0x4f, 0x3a, 0x21, 0x54, 0x29,
856
0x4f, 0x64, 0x51, 0x59, 0x60, 0x7b, 0x7c, 0x6f,
857
0x3e, 0x65, 0x74, 0x6a, 0x5b, 0x52, 0x2c, 0x56,
858
0x4e, 0x45, 0x53, 0x4b, 0x7c, 0x38, 0x49, 0x4b,
859
0x4e, 0x4f, 0x4a, 0x47, 0x5e, 0x7c, 0x46, 0x3b,
860
0x67, 0x2e, 0x43, 0x79, 0x35, 0x55, 0x59, 0x6d,
861
0x38, 0x70, 0x2f, 0x59, 0x4f, 0x27, 0x63, 0x40,
862
0x66, 0x2d, 0x39, 0x4f, 0x3d, 0x2e, 0x4c, 0x67,
863
0x71, 0x7d, 0x34, 0x22, 0x52, 0x4e, 0x36, 0x7b,
864
0x2c, 0x39, 0x4d, 0x42, 0x60, 0x75, 0x74, 0x72,
865
0x4f, 0x72, 0x68, 0x3a, 0x51, 0x31, 0x2d, 0x21,
866
0x4a, 0x35, 0x47, 0x6d, 0x69, 0x3c, 0x50, 0x4c,
867
0x59, 0x66, 0x4c, 0x71, 0x24, 0x3a, 0x36, 0x67,
868
0x24, 0x5a, 0x59, 0x28, 0x7c, 0x21, 0x5e, 0x77,
869
0x68, 0x5e, 0x7b, 0x6e, 0x56, 0x62, 0x36, 0x29,
870
0x6f, 0x4f, 0x5d, 0x57, 0x56, 0x2b, 0x75, 0x2a,
871
0x2c, 0x69, 0x63, 0x51, 0x74, 0x6e, 0x5e, 0x46,
872
0x50, 0x28, 0x2c, 0x3b, 0x32, 0x53, 0x28, 0x78,
873
0x59, 0x72, 0x39, 0x5e, 0x44, 0x5c, 0x77, 0x60,
874
0x72, 0x44, 0x3b, 0x75, 0x68, 0x39, 0x55, 0x3e,
875
0x44, 0x50, 0x76, 0x3c, 0x48, 0x46, 0x43, 0x22,
876
0x56, 0x27, 0x21, 0x31, 0x33, 0x4a, 0x5a, 0x74,
877
0x41, 0x58, 0x3f, 0x39, 0x29, 0x71, 0x73, 0x30,
878
0x57, 0x70, 0x33, 0x62, 0x7b, 0x4a, 0x75, 0x3e,
879
0x4d, 0x4c, 0x4e, 0x55, 0x63, 0x38, 0x66, 0x7d,
880
0x68, 0x7d, 0x6f, 0x23, 0x55, 0x50, 0x3d, 0x34,
881
0x46, 0x5e, 0x2f, 0x55, 0x27, 0x62, 0x68, 0x7c,
882
0x6c, 0x21, 0x2b, 0x63, 0x4b, 0x47, 0x6b, 0x6a,
883
0x5b, 0x7b, 0x5c, 0x71, 0x37, 0x7c, 0x52, 0x2b,
884
0x2f, 0x4a, 0x47, 0x70, 0x78, 0x50, 0x2f, 0x75,
885
0x28, 0x4c, 0x60, 0x4c, 0x4c, 0x54, 0x6b, 0x68,
886
0x63, 0x4f, 0x47, 0x39, 0x2a, 0x70, 0x51, 0x7d,
887
0x28, 0x59, 0x52, 0x46, 0x4b, 0x38, 0x27, 0x49,
888
0x50, 0x5d, 0x25, 0x22, 0x5f, 0x48, 0x2c, 0x2f,
889
0x67, 0x59, 0x5d, 0x7d, 0x21, 0x3d, 0x72, 0x4f,
890
0x5c, 0x5b, 0x41, 0x47, 0x5f, 0x56, 0x69, 0x42,
891
0x55, 0x60, 0x68, 0x4b, 0x77, 0x44, 0x4c, 0x3b,
892
0x7d, 0x5a, 0x58, 0x43, 0x7a, 0x33, 0x22, 0x58,
893
0x58, 0x6f, 0x74, 0x53, 0x57, 0x6d, 0x6e, 0x29,
894
0x6b, 0x33, 0x71, 0x68, 0x29, 0x48, 0x67, 0x35,
895
0x52, 0x41, 0x6b, 0x36, 0x4f, 0x46, 0x31, 0x24,
896
0x73, 0x56, 0x40, 0x48, 0x37, 0x51, 0x24, 0x2a,
897
0x59, 0x21, 0x74, 0x76, 0x25, 0x2e, 0x4a, 0x74,
898
0x32, 0x29, 0x5f, 0x57, 0x7c, 0x58, 0x30, 0x2c,
899
0x7b, 0x70, 0x5b, 0x51, 0x73, 0x27, 0x4a, 0x28,
900
0x77, 0x2a, 0x43, 0x28, 0x2e, 0x32, 0x3d, 0x38,
901
0x36, 0x2e, 0x6b, 0x40, 0x6c, 0x76, 0x54, 0x66,
902
0x4a, 0x5c, 0x25, 0x62, 0x2e, 0x61, 0x48, 0x30,
903
0x28, 0x41, 0x40, 0x69, 0x3c, 0x39, 0x36, 0x4b,
904
0x64, 0x50, 0x76, 0x3d, 0x52, 0x50, 0x77, 0x33,
905
0x3b, 0x65, 0x59, 0x31, 0x5c, 0x48, 0x6a, 0x74,
906
0x78, 0x5b, 0x74, 0x60, 0x47, 0x27, 0x60, 0x22,
907
0x4a, 0x72, 0x25, 0x34, 0x5d, 0x3a, 0x21, 0x66,
908
0x61, 0x7b, 0x34, 0x41, 0x3b, 0x3a, 0x27, 0x44,
909
0x48, 0x7c, 0x7a, 0x74, 0x3a, 0x68, 0x59, 0x48,
910
0x61, 0x32, 0x49, 0x61, 0x40, 0x22, 0x33, 0x75,
911
0x29, 0x76, 0x5b, 0x24, 0x5b, 0x5c, 0x76, 0x5c,
912
0x28, 0x75, 0x36, 0x26, 0x2c, 0x65, 0x5e, 0x51,
913
0x7b, 0x3a, 0x7d, 0x4f, 0x35, 0x73, 0x6b, 0x5b,
914
0x5c, 0x37, 0x35, 0x6b, 0x41, 0x35, 0x40, 0x3a,
915
0x22, 0x28, 0x6c, 0x71, 0x46, 0x68, 0x7b, 0x66,
916
0x56, 0x24, 0x7c, 0x54, 0x28, 0x30, 0x22, 0x4e,
917
0x3c, 0x65, 0x69, 0x36, 0x44, 0x53, 0x3d, 0x6c,
918
0x5f, 0x73, 0x6c, 0x6f, 0x5e, 0x27, 0x23, 0x4e,
919
0x60, 0x45, 0x2f, 0x3d, 0x37, 0x28, 0x51, 0x29,
920
0x77, 0x6a, 0x6b, 0x2a, 0x2a, 0x51, 0x26, 0x4c,
921
0x4e, 0x71, 0x77, 0x73, 0x71, 0x2d, 0x5a, 0x2c,
922
0x23, 0x3d, 0x5f, 0x62, 0x63, 0x2e, 0x72, 0x2a,
923
0x75, 0x66, 0x43, 0x56, 0x5f, 0x21, 0x64, 0x66,
924
0x35, 0x3b, 0x7a, 0x45, 0x3f, 0x4f, 0x57, 0x22,
925
0x5a, 0x45, 0x65, 0x37, 0x58, 0x5b, 0x43, 0x66,
926
0x4f, 0x5d, 0x6e, 0x41, 0x41, 0x62, 0x5e, 0x39,
927
0x65, 0x6f, 0x43, 0x4b, 0x5e, 0x51, 0x42, 0x3f,
928
0x2d, 0x68, 0x4b, 0x6e, 0x46, 0x6f, 0x21, 0x44,
929
0x3c, 0x22, 0x46, 0x31, 0x31, 0x2e, 0x56, 0x2e,
930
0x77, 0x48, 0x68, 0x23, 0x4a, 0x36, 0x52, 0x5d,
931
0x61, 0x47, 0x71, 0x2e, 0x3a, 0x4a, 0x5b, 0x56,
932
0x6b, 0x52, 0x2a, 0x4c, 0x4f, 0x24, 0x34, 0x60,
933
0x70, 0x58, 0x7a, 0x76, 0x4b, 0x68, 0x24, 0x5f,
934
0x51, 0x6d, 0x75, 0x45, 0x48, 0x21, 0x53, 0x4d,
935
0x27, 0x75, 0x5f, 0x50, 0x3e, 0x40, 0x3f, 0x5e,
936
0x64, 0x41, 0x5f, 0x68, 0x48, 0x30, 0x71, 0x4b,
937
0x66, 0x2c, 0x2f, 0x76, 0x4b, 0x23, 0x46, 0x34,
938
0x50, 0x58, 0x52, 0x69, 0x2b, 0x6e, 0x7a, 0x33,
939
0x53, 0x43, 0x43, 0x35, 0x54, 0x30, 0x73, 0x63,
940
0x3b, 0x43, 0x52, 0x29, 0x45, 0x37, 0x71, 0x79,
941
0x5a, 0x26, 0x24, 0x72, 0x73, 0x4e, 0x44, 0x38,
942
0x5b, 0x71, 0x36, 0x3a, 0x4f, 0x5b, 0x71, 0x28,
943
0x71, 0x79, 0x72, 0x40, 0x6e, 0x51, 0x72, 0x29,
944
0x3d, 0x4f, 0x33, 0x22, 0x73, 0x5a, 0x30, 0x71,
945
0x58, 0x54, 0x59, 0x48, 0x29, 0x2b, 0x5c, 0x73,
946
0x6f, 0x4e, 0x60, 0x2a, 0x72, 0x39, 0x50, 0x59,
947
0x6f, 0x48, 0x3e, 0x62, 0x6c, 0x62, 0x49, 0x6c,
948
0x2c, 0x3f, 0x43, 0x3f, 0x32, 0x7c, 0x6f, 0x6c,
949
0x39, 0x26, 0x26, 0x7b, 0x5d, 0x65, 0x6f, 0x41,
950
0x7c, 0x42, 0x2b, 0x65, 0x6f, 0x3e, 0x7b, 0x69,
951
0x46, 0x4d, 0x68, 0x68, 0x5a, 0x33, 0x25, 0x5d,
952
0x6f, 0x48, 0x7c, 0x77, 0x7d, 0x3f, 0x4e, 0x30,
953
0x69, 0x65, 0x28, 0x2e, 0x34, 0x34, 0x41, 0x43,
954
0x5e, 0x30, 0x23, 0x3b, 0x60, 0x79, 0x5b, 0x26,
955
0x7c, 0x77, 0x3e, 0x43, 0x24, 0x31, 0x3a, 0x56,
956
0x24, 0x3c, 0x60, 0x3f, 0x60, 0x55, 0x6a, 0x68
958
uint32_t request4_len = sizeof(request4);
960
uint8_t request5[] = {
961
0x05, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
962
0x18, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
963
0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00,
964
0x69, 0x3e, 0x72, 0x44, 0x31, 0x6b, 0x28, 0x2f,
965
0x79, 0x37, 0x58, 0x5d, 0x5f, 0x68, 0x71, 0x47,
966
0x7a, 0x68, 0x7c, 0x6c, 0x65, 0x3c, 0x74, 0x67,
967
0x59, 0x5c, 0x3d, 0x28, 0x65, 0x28, 0x58, 0x74,
968
0x44, 0x62, 0x2e, 0x36, 0x54, 0x2f, 0x24, 0x34,
969
0x4b, 0x6d, 0x3a, 0x7b, 0x60, 0x71, 0x5a, 0x77,
970
0x4a, 0x27, 0x25, 0x70, 0x75, 0x56, 0x78, 0x73,
971
0x2e, 0x38, 0x6c, 0x70, 0x66, 0x7b, 0x7b, 0x2d,
972
0x78, 0x27, 0x65, 0x63, 0x58, 0x4f, 0x7d, 0x5c,
973
0x31, 0x3e, 0x36, 0x6e, 0x65, 0x61, 0x2e, 0x4e,
974
0x26, 0x68, 0x2b, 0x33, 0x7d, 0x54, 0x2c, 0x28,
975
0x47, 0x3a, 0x31, 0x47, 0x56, 0x32, 0x74, 0x51,
976
0x79, 0x65, 0x42, 0x45, 0x60, 0x55, 0x6f, 0x48,
977
0x61, 0x23, 0x72, 0x62, 0x74, 0x3a, 0x5a, 0x26,
978
0x2d, 0x41, 0x58, 0x62, 0x75, 0x4b, 0x37, 0x2e,
979
0x3f, 0x2a, 0x6e, 0x2e, 0x2c, 0x43, 0x6f, 0x53,
980
0x5f, 0x48, 0x7a, 0x53, 0x7b, 0x54, 0x28, 0x30,
981
0x2b, 0x7a, 0x34, 0x33, 0x28, 0x2b, 0x23, 0x23,
982
0x72, 0x38, 0x25, 0x30, 0x35, 0x66, 0x76, 0x46,
983
0x2a, 0x57, 0x7a, 0x60, 0x38, 0x5a, 0x26, 0x4f,
984
0x78, 0x43, 0x2c, 0x7d, 0x3d, 0x76, 0x7d, 0x66,
985
0x48, 0x7d, 0x3e, 0x59, 0x31, 0x58, 0x6b, 0x30,
986
0x76, 0x45, 0x6e, 0x70, 0x72, 0x5f, 0x3c, 0x70,
987
0x6d, 0x77, 0x42, 0x75, 0x42, 0x73, 0x68, 0x5e,
988
0x5f, 0x72, 0x2b, 0x2a, 0x70, 0x38, 0x7a, 0x4c,
989
0x58, 0x2e, 0x5e, 0x2d, 0x2d, 0x78, 0x67, 0x5a,
990
0x77, 0x34, 0x5a, 0x50, 0x76, 0x2d, 0x2b, 0x77,
991
0x37, 0x6e, 0x38, 0x2d, 0x7b, 0x44, 0x78, 0x67,
992
0x52, 0x57, 0x79, 0x43, 0x7d, 0x6d, 0x4d, 0x32,
993
0x23, 0x37, 0x51, 0x4b, 0x41, 0x60, 0x6e, 0x53,
994
0x4e, 0x78, 0x37, 0x37, 0x60, 0x56, 0x64, 0x52,
995
0x25, 0x46, 0x53, 0x5f, 0x2b, 0x56, 0x2b, 0x3b,
996
0x40, 0x37, 0x33, 0x37, 0x23, 0x43, 0x36, 0x6b,
997
0x6b, 0x5d, 0x35, 0x28, 0x7d, 0x6a, 0x2c, 0x68,
998
0x28, 0x4b, 0x4a, 0x6c, 0x27, 0x35, 0x51, 0x66,
999
0x30, 0x39, 0x28, 0x4d, 0x61, 0x2f, 0x64, 0x36,
1000
0x59, 0x39, 0x68, 0x4b, 0x24, 0x51, 0x7b, 0x6e,
1001
0x38, 0x49, 0x55, 0x72, 0x5f, 0x33, 0x5c, 0x26,
1002
0x45, 0x2f, 0x71, 0x66, 0x33, 0x3d, 0x36, 0x68,
1003
0x65, 0x48, 0x42, 0x40, 0x58, 0x61, 0x4f, 0x50,
1004
0x70, 0x5e, 0x3c, 0x5d, 0x56, 0x43, 0x4c, 0x41,
1005
0x45, 0x54, 0x76, 0x4b, 0x21, 0x25, 0x45, 0x4c,
1006
0x5e, 0x58, 0x23, 0x7d, 0x34, 0x61, 0x5c, 0x53,
1007
0x2a, 0x47, 0x37, 0x22, 0x6d, 0x31, 0x42, 0x6e,
1008
0x22, 0x72, 0x62, 0x55, 0x59, 0x66, 0x28, 0x73,
1009
0x55, 0x50, 0x5c, 0x6f, 0x52, 0x40, 0x3e, 0x3b,
1010
0x44, 0x2a, 0x51, 0x3d, 0x4d, 0x47, 0x3a, 0x57,
1011
0x3e, 0x29, 0x29, 0x7d, 0x40, 0x36, 0x41, 0x3f,
1012
0x58, 0x77, 0x3b, 0x41, 0x2d, 0x64, 0x5a, 0x72,
1013
0x7c, 0x7d, 0x30, 0x68, 0x54, 0x34, 0x40, 0x21,
1014
0x7d, 0x2b, 0x2d, 0x2b, 0x6d, 0x5f, 0x49, 0x57,
1015
0x68, 0x65, 0x79, 0x2c, 0x21, 0x41, 0x31, 0x55,
1016
0x27, 0x4d, 0x78, 0x55, 0x2f, 0x61, 0x62, 0x78,
1017
0x58, 0x25, 0x3a, 0x4b, 0x3e, 0x67, 0x44, 0x7c,
1018
0x7d, 0x52, 0x3d, 0x3e, 0x3b, 0x62, 0x2d, 0x28,
1019
0x48, 0x70, 0x2c, 0x79, 0x31, 0x5a, 0x5e, 0x3f,
1020
0x6a, 0x30, 0x78, 0x41, 0x44, 0x60, 0x4e, 0x63,
1021
0x63, 0x2e, 0x31, 0x79, 0x2b, 0x47, 0x57, 0x26,
1022
0x22, 0x6a, 0x46, 0x43, 0x70, 0x30, 0x51, 0x7d,
1023
0x21, 0x3c, 0x68, 0x74, 0x40, 0x5a, 0x6e, 0x71,
1024
0x3f, 0x76, 0x73, 0x2e, 0x29, 0x3f, 0x6a, 0x55,
1025
0x21, 0x72, 0x65, 0x75, 0x5e, 0x6b, 0x39, 0x6e,
1026
0x3e, 0x76, 0x42, 0x41, 0x65, 0x3f, 0x2b, 0x37,
1027
0x70, 0x7a, 0x7a, 0x29, 0x50, 0x66, 0x21, 0x67,
1028
0x3f, 0x54, 0x32, 0x5f, 0x73, 0x27, 0x59, 0x6f,
1029
0x39, 0x4b, 0x4e, 0x23, 0x54, 0x3b, 0x39, 0x21,
1030
0x38, 0x41, 0x33, 0x44, 0x57, 0x6b, 0x51, 0x30,
1031
0x6a, 0x76, 0x62, 0x2c, 0x5c, 0x5e, 0x49, 0x3e,
1032
0x59, 0x38, 0x5e, 0x4a, 0x59, 0x77, 0x34, 0x25,
1033
0x4f, 0x76, 0x6a, 0x68, 0x6f, 0x73, 0x7c, 0x3d,
1034
0x2d, 0x64, 0x6c, 0x7a, 0x3d, 0x2c, 0x26, 0x28,
1035
0x58, 0x2b, 0x4b, 0x45, 0x68, 0x38, 0x74, 0x63,
1036
0x7b, 0x4a, 0x63, 0x52, 0x26, 0x54, 0x3c, 0x46,
1037
0x77, 0x2d, 0x6b, 0x78, 0x63, 0x7b, 0x6a, 0x50,
1038
0x26, 0x42, 0x62, 0x63, 0x65, 0x6b, 0x63, 0x54,
1039
0x4d, 0x47, 0x59, 0x48, 0x2e, 0x60, 0x7c, 0x4d,
1040
0x33, 0x4d, 0x61, 0x72, 0x76, 0x72, 0x21, 0x4d,
1041
0x2b, 0x43, 0x58, 0x47, 0x4a, 0x36, 0x2d, 0x7b,
1042
0x32, 0x72, 0x21, 0x78, 0x22, 0x38, 0x2c, 0x7a,
1043
0x34, 0x44, 0x45, 0x66, 0x31, 0x7b, 0x37, 0x68,
1044
0x62, 0x65, 0x62, 0x6d, 0x4e, 0x7c, 0x75, 0x38,
1045
0x2a, 0x73, 0x27, 0x64, 0x33, 0x4f, 0x21, 0x41,
1046
0x7c, 0x41, 0x3f, 0x60, 0x68, 0x34, 0x72, 0x5b,
1047
0x38, 0x33, 0x6f, 0x65, 0x3e, 0x5a, 0x7d, 0x25,
1048
0x49, 0x50, 0x60, 0x36, 0x59, 0x5e, 0x6b, 0x25,
1049
0x66, 0x7a, 0x7d, 0x71, 0x40, 0x6c, 0x2c, 0x6e,
1050
0x6a, 0x5a, 0x24, 0x5a, 0x76, 0x21, 0x67, 0x39,
1051
0x4b, 0x4a, 0x31, 0x24, 0x66, 0x66, 0x2e, 0x58,
1052
0x43, 0x46, 0x75, 0x6c, 0x47, 0x28, 0x4f, 0x21,
1053
0x75, 0x77, 0x6f, 0x71, 0x48, 0x3f, 0x4d, 0x4c,
1054
0x51, 0x37, 0x3b, 0x41, 0x4d, 0x41, 0x48, 0x28,
1055
0x71, 0x24, 0x2f, 0x7a, 0x22, 0x49, 0x4a, 0x39,
1056
0x44, 0x43, 0x68, 0x21, 0x3a, 0x34, 0x4e, 0x52,
1057
0x7a, 0x60, 0x71, 0x61, 0x6d, 0x51, 0x58, 0x2a,
1058
0x59, 0x4c, 0x4a, 0x59, 0x6b, 0x77, 0x78, 0x2e,
1059
0x27, 0x78, 0x76, 0x48, 0x4f, 0x46, 0x79, 0x2c,
1060
0x54, 0x42, 0x7b, 0x2c, 0x52, 0x41, 0x54, 0x2b,
1061
0x2c, 0x33, 0x6b, 0x70, 0x77, 0x2e, 0x2e, 0x41,
1062
0x25, 0x7a, 0x48, 0x6e, 0x71, 0x55, 0x6a, 0x43,
1063
0x5a, 0x2c, 0x6c, 0x76, 0x6d, 0x71, 0x72, 0x4d,
1064
0x76, 0x5b, 0x7b, 0x22, 0x4b, 0x45, 0x31, 0x30,
1065
0x26, 0x53, 0x75, 0x3f, 0x26, 0x59, 0x36, 0x2f,
1066
0x68, 0x4f, 0x34, 0x5e, 0x2b, 0x30, 0x63, 0x68,
1067
0x7b, 0x32, 0x5e, 0x77, 0x7d, 0x7b, 0x53, 0x5f,
1068
0x63, 0x53, 0x77, 0x7a, 0x7d, 0x35, 0x28, 0x3e,
1069
0x41, 0x6f, 0x5b, 0x31, 0x78, 0x7b, 0x2b, 0x51,
1070
0x23, 0x43, 0x46, 0x6a, 0x32, 0x32, 0x25, 0x45,
1071
0x57, 0x43, 0x22, 0x50, 0x60, 0x32, 0x70, 0x2e,
1072
0x79, 0x2e, 0x6b, 0x33, 0x67, 0x6c, 0x43, 0x5b,
1073
0x3b, 0x68, 0x53, 0x53, 0x6a, 0x48, 0x59, 0x5f,
1074
0x30, 0x72, 0x7d, 0x6b, 0x37, 0x24, 0x75, 0x52,
1075
0x50, 0x2b, 0x75, 0x35, 0x24, 0x3b, 0x6e, 0x53,
1076
0x56, 0x34, 0x23, 0x54, 0x65, 0x4f, 0x78, 0x3e,
1077
0x46, 0x7d, 0x25, 0x3f, 0x2f, 0x49, 0x6b, 0x49,
1078
0x47, 0x45, 0x24, 0x38, 0x3b, 0x68, 0x6c, 0x4f,
1079
0x29, 0x21, 0x50, 0x32, 0x67, 0x47, 0x5a, 0x72,
1080
0x76, 0x21, 0x39, 0x67, 0x3c, 0x72, 0x47, 0x43,
1081
0x4a, 0x2e, 0x31, 0x32, 0x34, 0x3c, 0x53, 0x2d,
1082
0x22, 0x5b, 0x5b, 0x6a, 0x77, 0x75, 0x31, 0x68,
1083
0x30, 0x45, 0x43, 0x5f, 0x60, 0x5d, 0x56, 0x67,
1084
0x66, 0x55, 0x6a, 0x72, 0x77, 0x7b, 0x44, 0x61,
1085
0x22, 0x64, 0x36, 0x39, 0x6e, 0x44, 0x37, 0x54,
1086
0x45, 0x46, 0x6f, 0x58, 0x35, 0x51, 0x3c, 0x62,
1087
0x49, 0x3a, 0x50, 0x58, 0x56, 0x5d, 0x77, 0x6f,
1088
0x56, 0x64, 0x7b, 0x49, 0x39, 0x21, 0x31, 0x2d,
1089
0x5f, 0x56, 0x56, 0x33, 0x31, 0x69, 0x4a, 0x52,
1090
0x62, 0x5b, 0x6e, 0x65, 0x7c, 0x3d, 0x31, 0x55,
1091
0x3d, 0x75, 0x25, 0x61, 0x50, 0x71, 0x45, 0x29
1093
uint32_t request5_len = sizeof(request5);
1095
uint8_t request6[] = {
1096
0x05, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
1097
0x18, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1098
0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00,
1099
0x5b, 0x56, 0x3d, 0x5a, 0x6b, 0x43, 0x73, 0x26,
1100
0x65, 0x3b, 0x38, 0x79, 0x26, 0x5e, 0x60, 0x59,
1101
0x40, 0x71, 0x7c, 0x72, 0x28, 0x29, 0x69, 0x32,
1102
0x72, 0x5a, 0x6c, 0x55, 0x43, 0x65, 0x3f, 0x4a,
1103
0x21, 0x66, 0x59, 0x30, 0x76, 0x39, 0x21, 0x69,
1104
0x4b, 0x25, 0x5d, 0x6e, 0x5f, 0x24, 0x2b, 0x38,
1105
0x70, 0x78, 0x35, 0x7d, 0x39, 0x36, 0x31, 0x72,
1106
0x44, 0x49, 0x45, 0x3d, 0x25, 0x50, 0x24, 0x3b,
1107
0x52, 0x27, 0x66, 0x46, 0x5d, 0x4f, 0x34, 0x50,
1108
0x26, 0x5a, 0x25, 0x3e, 0x3f, 0x34, 0x4b, 0x35,
1109
0x77, 0x3a, 0x3f, 0x3e, 0x23, 0x4e, 0x30, 0x23,
1110
0x70, 0x72, 0x33, 0x34, 0x60, 0x2a, 0x4a, 0x32,
1111
0x6e, 0x29, 0x54, 0x73, 0x5f, 0x26, 0x71, 0x3a,
1112
0x78, 0x5d, 0x3f, 0x31, 0x48, 0x59, 0x61, 0x44,
1113
0x5c, 0x38, 0x4f, 0x41, 0x73, 0x67, 0x62, 0x73,
1114
0x33, 0x52, 0x77, 0x73, 0x57, 0x49, 0x7a, 0x59,
1115
0x26, 0x21, 0x34, 0x38, 0x2b, 0x5f, 0x5f, 0x37,
1116
0x74, 0x28, 0x46, 0x3d, 0x43, 0x42, 0x26, 0x66,
1117
0x63, 0x37, 0x6d, 0x2a, 0x65, 0x3f, 0x71, 0x2d,
1118
0x4c, 0x72, 0x29, 0x4b, 0x3a, 0x77, 0x64, 0x6a,
1119
0x6b, 0x42, 0x70, 0x5c, 0x51, 0x38, 0x71, 0x25,
1120
0x4c, 0x7c, 0x6f, 0x74, 0x71, 0x39, 0x71, 0x25,
1121
0x3f, 0x62, 0x23, 0x45, 0x5f, 0x77, 0x59, 0x56,
1122
0x56, 0x67, 0x78, 0x3a, 0x2e, 0x4e, 0x27, 0x59,
1123
0x65, 0x2f, 0x64, 0x3c, 0x62, 0x40, 0x69, 0x52,
1124
0x36, 0x49, 0x3e, 0x3b, 0x2c, 0x47, 0x4f, 0x3e,
1125
0x61, 0x78, 0x2d, 0x45, 0x71, 0x3f, 0x7b, 0x55,
1126
0x34, 0x36, 0x47, 0x5e, 0x36, 0x51, 0x3d, 0x5a,
1127
0x4b, 0x75, 0x44, 0x72, 0x61, 0x44, 0x71, 0x4e,
1128
0x42, 0x6a, 0x2c, 0x34, 0x40, 0x3b, 0x40, 0x31,
1129
0x31, 0x75, 0x4b, 0x32, 0x71, 0x69, 0x3a, 0x5d,
1130
0x31, 0x25, 0x53, 0x2a, 0x61, 0x54, 0x68, 0x2a,
1131
0x76, 0x71, 0x57, 0x67, 0x56, 0x23, 0x7d, 0x70,
1132
0x7d, 0x28, 0x57, 0x5f, 0x2f, 0x4c, 0x71, 0x2e,
1133
0x40, 0x63, 0x49, 0x5b, 0x7c, 0x7b, 0x56, 0x76,
1134
0x77, 0x46, 0x69, 0x56, 0x3d, 0x75, 0x31, 0x3b,
1135
0x35, 0x40, 0x37, 0x2c, 0x51, 0x37, 0x49, 0x6a,
1136
0x79, 0x68, 0x53, 0x31, 0x4c, 0x6f, 0x57, 0x4c,
1137
0x48, 0x31, 0x6a, 0x30, 0x2b, 0x69, 0x30, 0x56,
1138
0x58, 0x4b, 0x76, 0x3b, 0x60, 0x6d, 0x35, 0x4d,
1139
0x74, 0x2f, 0x74, 0x2c, 0x54, 0x4f, 0x6e, 0x3f,
1140
0x38, 0x56, 0x5c, 0x67, 0x2b, 0x4a, 0x35, 0x30,
1141
0x67, 0x7d, 0x58, 0x24, 0x59, 0x54, 0x48, 0x2e,
1142
0x28, 0x7d, 0x6e, 0x51, 0x55, 0x68, 0x56, 0x54,
1143
0x59, 0x31, 0x4a, 0x65, 0x5a, 0x5e, 0x27, 0x76,
1144
0x76, 0x65, 0x6d, 0x2f, 0x75, 0x63, 0x67, 0x52,
1145
0x5e, 0x29, 0x58, 0x3d, 0x5c, 0x3f, 0x54, 0x7c,
1146
0x67, 0x21, 0x6e, 0x75, 0x67, 0x35, 0x77, 0x31,
1147
0x3d, 0x26, 0x3f, 0x60, 0x45, 0x2d, 0x2b, 0x45,
1148
0x5d, 0x3f, 0x55, 0x73, 0x59, 0x4c, 0x5e, 0x6c,
1149
0x30, 0x4a, 0x4e, 0x47, 0x55, 0x42, 0x6a, 0x4b,
1150
0x32, 0x3c, 0x75, 0x6e, 0x36, 0x51, 0x5f, 0x4c,
1151
0x68, 0x72, 0x72, 0x27, 0x3b, 0x51, 0x59, 0x7b,
1152
0x68, 0x7b, 0x3b, 0x54, 0x35, 0x37, 0x7c, 0x44,
1153
0x43, 0x36, 0x4c, 0x4f, 0x67, 0x62, 0x4e, 0x39,
1154
0x4b, 0x7a, 0x49, 0x36, 0x68, 0x38, 0x4c, 0x4a,
1155
0x64, 0x33, 0x35, 0x2f, 0x3e, 0x5c, 0x58, 0x61,
1156
0x23, 0x5b, 0x50, 0x6e, 0x34, 0x44, 0x60, 0x28,
1157
0x54, 0x41, 0x5c, 0x31, 0x53, 0x2d, 0x58, 0x58,
1158
0x54, 0x28, 0x77, 0x51, 0x6f, 0x64, 0x4c, 0x68,
1159
0x34, 0x79, 0x45, 0x66, 0x2c, 0x26, 0x77, 0x64,
1160
0x5f, 0x6c, 0x3b, 0x71, 0x28, 0x4d, 0x68, 0x2a,
1161
0x6b, 0x37, 0x6a, 0x34, 0x51, 0x27, 0x2a, 0x46,
1162
0x3a, 0x2e, 0x35, 0x21, 0x21, 0x79, 0x51, 0x44,
1163
0x58, 0x5d, 0x6f, 0x65, 0x6b, 0x76, 0x68, 0x3a,
1164
0x43, 0x70, 0x36, 0x41, 0x6b, 0x56, 0x64, 0x75,
1165
0x5b, 0x37, 0x24, 0x56, 0x7c, 0x6e, 0x6c, 0x41,
1166
0x3a, 0x60, 0x56, 0x38, 0x55, 0x63, 0x77, 0x4d,
1167
0x6e, 0x50, 0x3c, 0x3d, 0x7a, 0x44, 0x71, 0x42,
1168
0x4b, 0x55, 0x75, 0x72, 0x61, 0x60, 0x65, 0x6f,
1169
0x7a, 0x26, 0x64, 0x46, 0x67, 0x74, 0x29, 0x2a,
1170
0x5b, 0x62, 0x41, 0x28, 0x62, 0x30, 0x34, 0x33,
1171
0x40, 0x79, 0x7a, 0x38, 0x56, 0x38, 0x73, 0x22,
1172
0x7a, 0x7d, 0x73, 0x2a, 0x2a, 0x28, 0x2b, 0x63,
1173
0x27, 0x6f, 0x3d, 0x3e, 0x2c, 0x56, 0x23, 0x32,
1174
0x4b, 0x3b, 0x58, 0x4d, 0x72, 0x4c, 0x49, 0x6f,
1175
0x30, 0x76, 0x23, 0x21, 0x21, 0x3c, 0x49, 0x56,
1176
0x7a, 0x56, 0x79, 0x2f, 0x50, 0x7a, 0x5b, 0x21,
1177
0x21, 0x4a, 0x48, 0x61, 0x33, 0x52, 0x49, 0x2e,
1178
0x30, 0x7d, 0x2c, 0x2d, 0x67, 0x23, 0x55, 0x62,
1179
0x66, 0x52, 0x5a, 0x61, 0x75, 0x63, 0x3c, 0x39,
1180
0x69, 0x41, 0x31, 0x6b, 0x4e, 0x6f, 0x25, 0x34,
1181
0x74, 0x30, 0x21, 0x3a, 0x40, 0x72, 0x44, 0x40,
1182
0x60, 0x4c, 0x53, 0x74, 0x42, 0x64, 0x44, 0x49,
1183
0x76, 0x67, 0x21, 0x79, 0x36, 0x3c, 0x37, 0x70,
1184
0x4f, 0x58, 0x29, 0x71, 0x2a, 0x3a, 0x4d, 0x5d,
1185
0x67, 0x68, 0x52, 0x63, 0x23, 0x24, 0x4b, 0x21,
1186
0x3f, 0x68, 0x69, 0x6c, 0x66, 0x66, 0x42, 0x28,
1187
0x59, 0x35, 0x34, 0x6f, 0x2d, 0x6a, 0x25, 0x66,
1188
0x34, 0x54, 0x5d, 0x50, 0x26, 0x41, 0x22, 0x4f,
1189
0x34, 0x79, 0x3c, 0x50, 0x68, 0x2d, 0x5f, 0x7b,
1190
0x63, 0x7d, 0x58, 0x2e, 0x73, 0x46, 0x2f, 0x54,
1191
0x61, 0x27, 0x74, 0x45, 0x23, 0x72, 0x31, 0x7d,
1192
0x63, 0x4b, 0x43, 0x5e, 0x44, 0x54, 0x2c, 0x38,
1193
0x58, 0x24, 0x75, 0x6c, 0x50, 0x3c, 0x23, 0x5f,
1194
0x35, 0x57, 0x4f, 0x7b, 0x2f, 0x57, 0x29, 0x73,
1195
0x58, 0x2a, 0x66, 0x3e, 0x49, 0x42, 0x5a, 0x6b,
1196
0x75, 0x6a, 0x38, 0x3f, 0x73, 0x44, 0x42, 0x46,
1197
0x2d, 0x39, 0x66, 0x5b, 0x28, 0x3e, 0x63, 0x62,
1198
0x53, 0x75, 0x65, 0x64, 0x79, 0x32, 0x35, 0x71,
1199
0x22, 0x6a, 0x7b, 0x41, 0x2b, 0x26, 0x43, 0x79,
1200
0x58, 0x6f, 0x71, 0x25, 0x24, 0x34, 0x72, 0x5b,
1201
0x4a, 0x2c, 0x5c, 0x77, 0x23, 0x42, 0x27, 0x6a,
1202
0x67, 0x51, 0x5f, 0x3c, 0x75, 0x2c, 0x3f, 0x43,
1203
0x45, 0x5b, 0x48, 0x65, 0x6f, 0x6c, 0x27, 0x65,
1204
0x21, 0x3e, 0x33, 0x37, 0x5f, 0x2b, 0x2e, 0x24,
1205
0x22, 0x47, 0x4e, 0x33, 0x5b, 0x7b, 0x21, 0x3c,
1206
0x53, 0x69, 0x2e, 0x31, 0x3d, 0x48, 0x57, 0x3a,
1207
0x56, 0x48, 0x6b, 0x47, 0x5d, 0x33, 0x41, 0x6c,
1208
0x66, 0x4c, 0x61, 0x67, 0x32, 0x69, 0x53, 0x2c,
1209
0x2f, 0x3e, 0x36, 0x68, 0x37, 0x28, 0x40, 0x21,
1210
0x76, 0x27, 0x44, 0x26, 0x24, 0x6a, 0x30, 0x75,
1211
0x2a, 0x73, 0x48, 0x36, 0x52, 0x4a, 0x3b, 0x51,
1212
0x4e, 0x2f, 0x23, 0x36, 0x4b, 0x49, 0x33, 0x5a,
1213
0x70, 0x2c, 0x54, 0x5b, 0x67, 0x48, 0x53, 0x5d,
1214
0x21, 0x3e, 0x6b, 0x52, 0x6a, 0x3c, 0x48, 0x29,
1215
0x68, 0x27, 0x32, 0x75, 0x61, 0x7c, 0x51, 0x2e,
1216
0x7b, 0x49, 0x2f, 0x5b, 0x3d, 0x74, 0x5a, 0x28,
1217
0x26, 0x29, 0x2c, 0x30, 0x54, 0x74, 0x45, 0x55,
1218
0x4a, 0x3d, 0x39, 0x35, 0x66, 0x56, 0x28, 0x6d,
1219
0x6e, 0x38, 0x7b, 0x2b, 0x40, 0x31, 0x56, 0x61,
1220
0x74, 0x2b, 0x79, 0x5f, 0x63, 0x51, 0x53, 0x52,
1221
0x7d, 0x73, 0x4e, 0x2e, 0x45, 0x3b, 0x22, 0x28,
1222
0x6c, 0x2b, 0x47, 0x21, 0x50, 0x2a, 0x7c, 0x45,
1223
0x48, 0x57, 0x3e, 0x2f, 0x6d, 0x66, 0x6c, 0x51,
1224
0x23, 0x6c, 0x37, 0x4d, 0x4b, 0x4b, 0x66, 0x55,
1225
0x69, 0x2e, 0x4a, 0x69, 0x71, 0x7c, 0x71, 0x30,
1226
0x5c, 0x43, 0x46, 0x63, 0x5a, 0x23, 0x75, 0x40
1228
uint32_t request6_len = sizeof(request6);
1230
uint8_t request7[] = {
1231
0x05, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
1232
0x18, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1233
0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00,
1234
0x5d, 0x32, 0x55, 0x71, 0x51, 0x45, 0x4e, 0x54,
1235
0x34, 0x21, 0x46, 0x77, 0x5e, 0x5b, 0x75, 0x62,
1236
0x2b, 0x5c, 0x34, 0x26, 0x72, 0x2b, 0x2c, 0x64,
1237
0x4b, 0x65, 0x56, 0x72, 0x31, 0x7d, 0x6a, 0x5f,
1238
0x70, 0x26, 0x32, 0x29, 0x7d, 0x21, 0x5b, 0x3e,
1239
0x5e, 0x53, 0x3d, 0x48, 0x5e, 0x2a, 0x4c, 0x37,
1240
0x3d, 0x59, 0x79, 0x21, 0x4f, 0x56, 0x79, 0x2a,
1241
0x4e, 0x28, 0x61, 0x7d, 0x2c, 0x58, 0x2f, 0x78,
1242
0x5c, 0x3f, 0x5c, 0x42, 0x6d, 0x2f, 0x71, 0x54,
1243
0x25, 0x31, 0x73, 0x38, 0x6c, 0x31, 0x5a, 0x2e,
1244
0x42, 0x5b, 0x2d, 0x41, 0x24, 0x4c, 0x37, 0x40,
1245
0x39, 0x7d, 0x2a, 0x67, 0x60, 0x6a, 0x7a, 0x62,
1246
0x24, 0x4e, 0x3f, 0x2e, 0x69, 0x35, 0x28, 0x65,
1247
0x77, 0x53, 0x23, 0x44, 0x59, 0x71, 0x31, 0x5c,
1248
0x40, 0x5d, 0x3a, 0x27, 0x46, 0x55, 0x30, 0x56,
1249
0x21, 0x74, 0x3e, 0x73, 0x41, 0x22, 0x52, 0x68,
1250
0x40, 0x6c, 0x37, 0x3e, 0x62, 0x5a, 0x2e, 0x21,
1251
0x23, 0x33, 0x27, 0x73, 0x68, 0x26, 0x60, 0x67,
1252
0x70, 0x58, 0x50, 0x42, 0x58, 0x27, 0x3a, 0x35,
1253
0x6f, 0x51, 0x62, 0x78, 0x25, 0x2c, 0x7b, 0x66,
1254
0x34, 0x6a, 0x5a, 0x39, 0x60, 0x70, 0x41, 0x2d,
1255
0x65, 0x26, 0x5a, 0x67, 0x58, 0x2d, 0x3e, 0x56,
1256
0x6d, 0x30, 0x4b, 0x4d, 0x5d, 0x45, 0x41, 0x3d,
1257
0x6e, 0x27, 0x4e, 0x5a, 0x7d, 0x2e, 0x62, 0x4d,
1258
0x42, 0x70, 0x31, 0x24, 0x73, 0x5c, 0x78, 0x77,
1259
0x50, 0x73, 0x27, 0x48, 0x3d, 0x35, 0x2c, 0x4b,
1260
0x40, 0x2d, 0x25, 0x77, 0x5d, 0x3d, 0x6b, 0x50,
1261
0x6f, 0x57, 0x73, 0x2f, 0x4f, 0x6e, 0x4c, 0x6e,
1262
0x56, 0x7b, 0x55, 0x3c, 0x6d, 0x60, 0x47, 0x53,
1263
0x56, 0x39, 0x3b, 0x51, 0x61, 0x71, 0x75, 0x73,
1264
0x6b, 0x70, 0x58, 0x5f, 0x2c, 0x27, 0x74, 0x49,
1265
0x2c, 0x2b, 0x53, 0x2d, 0x5b, 0x79, 0x43, 0x34,
1266
0x39, 0x5a, 0x38, 0x3e, 0x2d, 0x66, 0x70, 0x3d,
1267
0x49, 0x51, 0x29, 0x4d, 0x5d, 0x4c, 0x57, 0x4a,
1268
0x2f, 0x41, 0x69, 0x56, 0x57, 0x77, 0x49, 0x58,
1269
0x75, 0x28, 0x29, 0x4a, 0x6d, 0x54, 0x4f, 0x4f,
1270
0x3f, 0x58, 0x5f, 0x58, 0x6f, 0x39, 0x22, 0x4d,
1271
0x5d, 0x31, 0x75, 0x43, 0x2f, 0x7d, 0x31, 0x3d,
1272
0x4c, 0x4d, 0x76, 0x74, 0x4d, 0x57, 0x3b, 0x56,
1273
0x57, 0x48, 0x2b, 0x5d, 0x32, 0x67, 0x51, 0x6e,
1274
0x60, 0x39, 0x6f, 0x64, 0x38, 0x37, 0x52, 0x4b,
1275
0x52, 0x42, 0x32, 0x4f, 0x24, 0x53, 0x31, 0x6e,
1276
0x4a, 0x68, 0x2f, 0x28, 0x2e, 0x27, 0x49, 0x75,
1277
0x77, 0x75, 0x26, 0x47, 0x7c, 0x5d, 0x72, 0x5a,
1278
0x77, 0x50, 0x2e, 0x6c, 0x27, 0x68, 0x6b, 0x7b,
1279
0x27, 0x63, 0x21, 0x3d, 0x30, 0x2d, 0x5c, 0x67,
1280
0x4d, 0x41, 0x79, 0x47, 0x42, 0x50, 0x6d, 0x32,
1281
0x74, 0x39, 0x62, 0x4d, 0x5f, 0x65, 0x78, 0x4f,
1282
0x67, 0x3a, 0x60, 0x26, 0x45, 0x61, 0x7c, 0x61,
1283
0x63, 0x40, 0x46, 0x79, 0x52, 0x47, 0x57, 0x49,
1284
0x53, 0x4c, 0x48, 0x36, 0x67, 0x47, 0x5c, 0x71,
1285
0x50, 0x4d, 0x4f, 0x58, 0x26, 0x40, 0x6d, 0x54,
1286
0x55, 0x67, 0x66, 0x23, 0x70, 0x23, 0x68, 0x70,
1287
0x4d, 0x2c, 0x7a, 0x3d, 0x60, 0x51, 0x35, 0x64,
1288
0x56, 0x2f, 0x26, 0x6d, 0x72, 0x6a, 0x59, 0x34,
1289
0x3a, 0x73, 0x4b, 0x27, 0x33, 0x61, 0x26, 0x45,
1290
0x61, 0x28, 0x74, 0x22, 0x54, 0x50, 0x2e, 0x39,
1291
0x6a, 0x2c, 0x27, 0x59, 0x26, 0x73, 0x44, 0x71,
1292
0x67, 0x4c, 0x37, 0x74, 0x2c, 0x63, 0x52, 0x2a,
1293
0x60, 0x4f, 0x7b, 0x32, 0x39, 0x21, 0x79, 0x54,
1294
0x79, 0x6d, 0x28, 0x27, 0x3a, 0x6a, 0x7d, 0x40,
1295
0x6a, 0x4f, 0x4b, 0x46, 0x61, 0x36, 0x6a, 0x22,
1296
0x3f, 0x77, 0x2d, 0x6a, 0x3b, 0x73, 0x71, 0x72,
1297
0x3c, 0x21, 0x2e, 0x3f, 0x33, 0x25, 0x76, 0x64,
1298
0x64, 0x70, 0x43, 0x32, 0x44, 0x73, 0x61, 0x51,
1299
0x3c, 0x3b, 0x45, 0x3a, 0x68, 0x46, 0x5b, 0x6e,
1300
0x36, 0x47, 0x4d, 0x38, 0x26, 0x4f, 0x5c, 0x7d,
1301
0x73, 0x29, 0x24, 0x78, 0x44, 0x75, 0x40, 0x42,
1302
0x41, 0x2a, 0x73, 0x2b, 0x24, 0x38, 0x51, 0x67,
1303
0x36, 0x67, 0x2f, 0x70, 0x58, 0x54, 0x6e, 0x5d,
1304
0x3b, 0x41, 0x59, 0x76, 0x7d, 0x2d, 0x40, 0x70,
1305
0x29, 0x4a, 0x4a, 0x31, 0x79, 0x2c, 0x4e, 0x22,
1306
0x31, 0x59, 0x31, 0x3c, 0x2f, 0x21, 0x29, 0x3f,
1307
0x65, 0x6c, 0x38, 0x55, 0x4f, 0x27, 0x66, 0x66,
1308
0x34, 0x45, 0x49, 0x41, 0x56, 0x24, 0x2e, 0x40,
1309
0x36, 0x23, 0x5a, 0x46, 0x40, 0x23, 0x7b, 0x2d,
1310
0x69, 0x54, 0x6c, 0x51, 0x58, 0x73, 0x56, 0x60,
1311
0x5f, 0x60, 0x63, 0x5f, 0x77, 0x6a, 0x4c, 0x2c,
1312
0x35, 0x39, 0x60, 0x73, 0x63, 0x3e, 0x2d, 0x55,
1313
0x5a, 0x26, 0x4b, 0x43, 0x3b, 0x56, 0x33, 0x58,
1314
0x74, 0x51, 0x4f, 0x5c, 0x2a, 0x44, 0x78, 0x66,
1315
0x78, 0x71, 0x40, 0x29, 0x5e, 0x26, 0x57, 0x51,
1316
0x49, 0x30, 0x29, 0x73, 0x38, 0x56, 0x6c, 0x41,
1317
0x78, 0x3d, 0x61, 0x3d, 0x2c, 0x33, 0x46, 0x57,
1318
0x54, 0x63, 0x3e, 0x79, 0x55, 0x4a, 0x7d, 0x2e,
1319
0x2a, 0x3c, 0x77, 0x47, 0x35, 0x29, 0x5a, 0x6d,
1320
0x69, 0x48, 0x6b, 0x73, 0x7d, 0x4f, 0x5f, 0x6f,
1321
0x3a, 0x7a, 0x4e, 0x54, 0x59, 0x38, 0x62, 0x44,
1322
0x72, 0x51, 0x57, 0x6a, 0x74, 0x54, 0x4f, 0x77,
1323
0x6b, 0x66, 0x4a, 0x6b, 0x39, 0x29, 0x69, 0x60,
1324
0x71, 0x52, 0x6a, 0x32, 0x66, 0x6c, 0x25, 0x76,
1325
0x27, 0x7a, 0x2c, 0x38, 0x72, 0x4e, 0x5f, 0x40,
1326
0x26, 0x74, 0x6a, 0x5e, 0x42, 0x38, 0x78, 0x34,
1327
0x4f, 0x4f, 0x35, 0x27, 0x39, 0x62, 0x52, 0x61,
1328
0x37, 0x54, 0x47, 0x38, 0x70, 0x31, 0x7a, 0x66,
1329
0x69, 0x72, 0x24, 0x52, 0x2a, 0x2a, 0x78, 0x72,
1330
0x2b, 0x2e, 0x2a, 0x57, 0x4a, 0x21, 0x52, 0x3c,
1331
0x2a, 0x2f, 0x24, 0x58, 0x34, 0x3c, 0x42, 0x5c,
1332
0x5b, 0x78, 0x27, 0x55, 0x63, 0x58, 0x3e, 0x26,
1333
0x50, 0x2c, 0x72, 0x60, 0x36, 0x6c, 0x46, 0x58,
1334
0x63, 0x59, 0x23, 0x2a, 0x2d, 0x63, 0x6a, 0x68,
1335
0x69, 0x74, 0x3f, 0x49, 0x4f, 0x48, 0x4a, 0x3b,
1336
0x59, 0x56, 0x77, 0x43, 0x6d, 0x57, 0x28, 0x5f,
1337
0x39, 0x73, 0x28, 0x74, 0x3c, 0x4f, 0x43, 0x48,
1338
0x6a, 0x57, 0x5d, 0x41, 0x73, 0x3f, 0x41, 0x7c,
1339
0x65, 0x5e, 0x2d, 0x38, 0x72, 0x3a, 0x53, 0x3e,
1340
0x33, 0x47, 0x69, 0x6a, 0x6e, 0x78, 0x67, 0x5d,
1341
0x35, 0x3b, 0x3f, 0x23, 0x7c, 0x71, 0x3d, 0x7c,
1342
0x3a, 0x3c, 0x75, 0x6e, 0x00, 0x00, 0x00, 0x00,
1343
0x50, 0x6a, 0x40, 0x00, 0x01, 0x00, 0x00, 0x00,
1344
0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
1345
0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
1346
0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
1347
0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
1348
0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
1349
0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
1350
0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
1351
0x00, 0x00, 0x00, 0x00, 0x50, 0x6a, 0x40, 0x00,
1352
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1353
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1354
0x50, 0x6a, 0x40, 0x00, 0x01, 0x00, 0x00, 0x00,
1355
0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
1356
0x00, 0x00, 0x00, 0x00, 0x50, 0x6a, 0x40, 0x00,
1357
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1358
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1359
0x50, 0x80, 0x23, 0x00, 0xdf, 0xaf, 0xff, 0x33,
1360
0x9b, 0x78, 0x70, 0x43, 0xc5, 0x0a, 0x4d, 0x98,
1361
0x96, 0x02, 0x64, 0x92, 0xc1, 0xee, 0x70, 0x32
1363
uint32_t request7_len = sizeof(request7);
1365
uint8_t request8[] = {
1366
0x05, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
1367
0x18, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1368
0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00,
1369
0x65, 0xc1, 0xef, 0x7b, 0xd6, 0xaa, 0xd6, 0x09,
1370
0x21, 0xf6, 0xe7, 0xd1, 0x4c, 0xdf, 0x6a, 0x2d,
1371
0x0a, 0xfb, 0x43, 0xea, 0xda, 0x07, 0x24, 0x84,
1372
0x88, 0x52, 0x9e, 0xa8, 0xa1, 0x7f, 0x4b, 0x60,
1373
0xec, 0x94, 0x57, 0x33, 0x06, 0x93, 0x92, 0x25,
1374
0xd6, 0xac, 0xdc, 0x89, 0x68, 0x5e, 0xbb, 0x32,
1375
0x2b, 0x17, 0x68, 0xf2, 0x06, 0xb7, 0x86, 0xac,
1376
0x81, 0xfe, 0x52, 0x27, 0xf5, 0x80, 0x11, 0x0d,
1377
0x4e, 0x2e, 0x1b, 0xa3, 0x44, 0x8a, 0x58, 0xed,
1378
0xf3, 0x9c, 0xe9, 0x31, 0x01, 0x72, 0xa6, 0xab,
1379
0xfa, 0xa8, 0x05, 0x00, 0x37, 0x60, 0x6b, 0x81,
1380
0xef, 0xf4, 0x96, 0x9a, 0xf7, 0x67, 0x95, 0x27,
1381
0x7a, 0x25, 0xef, 0x6f, 0x0e, 0xff, 0x2d, 0x15,
1382
0x7f, 0x23, 0x1c, 0xa7, 0x56, 0x94, 0x4a, 0x18,
1383
0x98, 0xc6, 0xd8, 0xd2, 0x29, 0x5b, 0x57, 0xb8,
1384
0x5d, 0x3a, 0x93, 0x58, 0x45, 0x77, 0x36, 0xe3,
1385
0xd1, 0x36, 0x87, 0xff, 0xe3, 0x94, 0x0f, 0x00,
1386
0xe6, 0x7c, 0x1a, 0x92, 0xc1, 0x5f, 0x40, 0xc3,
1387
0xa3, 0x25, 0xce, 0xd4, 0xaf, 0x39, 0xeb, 0x17,
1388
0xcf, 0x22, 0x43, 0xd9, 0x0c, 0xce, 0x37, 0x86,
1389
0x46, 0x54, 0xd6, 0xce, 0x00, 0x30, 0x36, 0xae,
1390
0xf9, 0xb5, 0x2b, 0x11, 0xa0, 0xfe, 0xa3, 0x4b,
1391
0x2e, 0x05, 0xbe, 0x54, 0xa9, 0xd8, 0xa5, 0x76,
1392
0x83, 0x5b, 0x63, 0x01, 0x1c, 0xd4, 0x56, 0x72,
1393
0xcd, 0xdc, 0x4a, 0x1d, 0x77, 0xda, 0x8a, 0x9e,
1394
0xba, 0xcb, 0x6c, 0xe8, 0x19, 0x5d, 0x68, 0xef,
1395
0x8e, 0xbc, 0x6a, 0x05, 0x53, 0x0b, 0xc7, 0xc5,
1396
0x96, 0x84, 0x04, 0xd9, 0xda, 0x4c, 0x42, 0x31,
1397
0xd9, 0xbd, 0x99, 0x06, 0xf7, 0xa3, 0x0a, 0x19,
1398
0x49, 0x07, 0x77, 0xf0, 0xdb, 0x7c, 0x43, 0xfa,
1399
0xb2, 0xad, 0xb0, 0xfa, 0x87, 0x52, 0xba, 0xc9,
1400
0x94, 0x61, 0xdc, 0xcf, 0x16, 0xac, 0x0f, 0x4a,
1401
0xa3, 0x6b, 0x5b, 0x6e, 0x27, 0x86, 0x1f, 0xfe,
1402
0x4d, 0x28, 0x3a, 0xa5, 0x10, 0x54, 0x6d, 0xed,
1403
0x53, 0xf9, 0x73, 0xc6, 0x6e, 0xa8, 0xc0, 0x97,
1404
0xcf, 0x56, 0x3b, 0x61, 0xdf, 0xab, 0x83, 0x18,
1405
0xe8, 0x09, 0xee, 0x6a, 0xb7, 0xf5, 0xc9, 0x62,
1406
0x55, 0x2d, 0xc7, 0x0c, 0x0d, 0xa0, 0x22, 0xd8,
1407
0xd4, 0xd6, 0xb2, 0x12, 0x21, 0xd7, 0x73, 0x3e,
1408
0x41, 0xb0, 0x5c, 0xd4, 0xcf, 0x98, 0xf3, 0x70,
1409
0xe6, 0x08, 0xe6, 0x2a, 0x4f, 0x24, 0x85, 0xe8,
1410
0x74, 0xa8, 0x41, 0x5f, 0x0e, 0xfd, 0xf1, 0xf3,
1411
0xbe, 0x9b, 0x14, 0xfd, 0xc0, 0x73, 0x11, 0xff,
1412
0xa5, 0x5b, 0x06, 0x34, 0xc3, 0x6c, 0x28, 0x42,
1413
0x07, 0xfe, 0x8a, 0xa5, 0xbe, 0x72, 0x7a, 0xf7,
1414
0xfa, 0x25, 0xec, 0x35, 0x5e, 0x98, 0x71, 0x50,
1415
0x60, 0x35, 0x76, 0x53, 0x40, 0x1a, 0x34, 0xa5,
1416
0x99, 0x09, 0xa2, 0xc6, 0xca, 0xa5, 0xce, 0x08,
1417
0x50, 0x45, 0xab, 0x8d, 0xfb, 0xe3, 0xb8, 0xe4,
1418
0x8a, 0x61, 0x48, 0x14, 0x6e, 0xf7, 0x58, 0x71,
1419
0xe5, 0x2e, 0xbc, 0x12, 0xd1, 0x25, 0xe9, 0x65,
1420
0x7a, 0xa1, 0x27, 0xbe, 0x3b, 0x8b, 0xe8, 0xe7,
1421
0xbc, 0xe1, 0x05, 0xe7, 0x92, 0xeb, 0xb9, 0xdf,
1422
0x5d, 0x53, 0x74, 0xc0, 0x63, 0x97, 0x80, 0xb8,
1423
0x3c, 0xae, 0xf3, 0xf2, 0x09, 0x12, 0x81, 0x6c,
1424
0x69, 0x10, 0x6f, 0xf6, 0xbe, 0x03, 0x7b, 0x88,
1425
0xcf, 0x26, 0x6b, 0x51, 0x06, 0x23, 0x68, 0x03,
1426
0xa1, 0xb7, 0xd3, 0x0c, 0xca, 0xbf, 0x29, 0x01,
1427
0xa9, 0x61, 0x34, 0x75, 0x98, 0x1e, 0x05, 0x59,
1428
0xb3, 0x46, 0x44, 0xff, 0x2b, 0x98, 0x04, 0x88,
1429
0x89, 0xfd, 0x7f, 0xd5, 0x19, 0x8a, 0xa6, 0xf3,
1430
0xd9, 0x44, 0xd5, 0xf9, 0x3a, 0x3c, 0xec, 0xd9,
1431
0x9b, 0x8c, 0x93, 0x93, 0x2b, 0x44, 0x86, 0x8b,
1432
0x80, 0x83, 0x23, 0x00, 0xdf, 0xaf, 0xff, 0x33,
1433
0x9b, 0x78, 0x70, 0x43, 0xf1, 0x55, 0x87, 0xb1,
1434
0xa1, 0xb3, 0x8e, 0x79, 0x02, 0x70, 0x82, 0x6c,
1435
0x0b, 0xc1, 0xef, 0x96, 0xf1, 0xef, 0xdd, 0xa2,
1436
0x69, 0x86, 0xc7, 0x85, 0x09, 0x7e, 0xf0, 0x2f,
1437
0x8e, 0xa0, 0x5f, 0xea, 0x39, 0x2e, 0x24, 0xf0,
1438
0x82, 0x30, 0x26, 0xa8, 0xa1, 0x4f, 0xc6, 0x5c,
1439
0xec, 0x94, 0x87, 0x52, 0x9b, 0x93, 0x92, 0xf3,
1440
0xa3, 0x1b, 0xc7, 0x8f, 0x9e, 0xb3, 0xbb, 0x32,
1441
0x2b, 0x17, 0x54, 0xf2, 0x06, 0x0c, 0x86, 0x92,
1442
0x0f, 0xb8, 0xe0, 0x27, 0x50, 0xaa, 0xeb, 0xf5,
1443
0x4e, 0x2b, 0x1b, 0xb2, 0x44, 0xe6, 0x58, 0x02,
1444
0xd7, 0x65, 0xdc, 0x31, 0x01, 0xec, 0xa6, 0xab,
1445
0xfa, 0xa8, 0x05, 0x00, 0x37, 0x60, 0x4f, 0xa1,
1446
0x3c, 0x4f, 0x7a, 0x9a, 0x10, 0x67, 0x95, 0xc2,
1447
0x5b, 0x25, 0xef, 0x76, 0x0e, 0xff, 0x2d, 0x15,
1448
0x7f, 0x23, 0x1c, 0x77, 0x56, 0x94, 0x4a, 0x18,
1449
0x98, 0xc6, 0xd8, 0xd2, 0x29, 0x44, 0x57, 0xb8,
1450
0x40, 0x3a, 0x93, 0x58, 0x45, 0x77, 0x36, 0x36,
1451
0x07, 0x35, 0x2a, 0xff, 0x00, 0x94, 0x5c, 0x80,
1452
0xe6, 0x7c, 0x1a, 0x92, 0xc1, 0x5f, 0x40, 0xc3,
1453
0xbc, 0xf8, 0xce, 0x05, 0x77, 0x39, 0x40, 0x17,
1454
0xcf, 0x63, 0x43, 0x77, 0x27, 0xce, 0x37, 0x86,
1455
0x46, 0x54, 0xd6, 0xce, 0x00, 0x30, 0x36, 0xae,
1456
0x9f, 0x24, 0x2b, 0x5a, 0xa0, 0xfe, 0xa3, 0x4b,
1457
0x2e, 0x7e, 0xf7, 0x54, 0xa9, 0xd8, 0xa5, 0x76,
1458
0x83, 0x7b, 0x63, 0x01, 0x1c, 0xd4, 0x56, 0x17,
1459
0x02, 0xdc, 0x4a, 0x89, 0x77, 0xda, 0x8f, 0x9e,
1460
0xba, 0xcb, 0x37, 0xe8, 0x19, 0x5d, 0x68, 0x38,
1461
0x8e, 0xbc, 0x6a, 0x05, 0x53, 0x0b, 0xc7, 0xc5,
1462
0x96, 0x84, 0x5a, 0xd9, 0x6d, 0x4c, 0x42, 0x31,
1463
0xd9, 0xf2, 0x99, 0x06, 0xf7, 0x0c, 0x99, 0xbe,
1464
0x49, 0x07, 0x77, 0xf0, 0x8b, 0x7c, 0x43, 0xfa,
1465
0xb2, 0xad, 0xb0, 0xfa, 0x87, 0x52, 0xba, 0xc9,
1466
0x94, 0x61, 0xdc, 0xcf, 0x16, 0xac, 0x0f, 0x4a,
1467
0xa3, 0x6b, 0x5b, 0x6e, 0x27, 0x86, 0x1f, 0xfe,
1468
0x4d, 0x28, 0x3a, 0xa5, 0x10, 0x98, 0x6d, 0xed,
1469
0x53, 0xf9, 0x73, 0xc6, 0xa5, 0xa8, 0xf7, 0x66,
1470
0xcf, 0x56, 0x3b, 0x61, 0xdf, 0xab, 0x83, 0x18,
1471
0xe8, 0x09, 0xee, 0x6a, 0xb7, 0xf5, 0xc9, 0x62,
1472
0x55, 0x2d, 0xc7, 0x0c, 0x0d, 0xa0, 0x22, 0xd8,
1473
0xd4, 0xd6, 0xb2, 0x12, 0x21, 0xd7, 0x73, 0x3e,
1474
0x41, 0xb0, 0x5c, 0xd4, 0xcf, 0x98, 0xf3, 0x70,
1475
0xe6, 0x08, 0xe6, 0x2a, 0x4f, 0x92, 0x85, 0xe8,
1476
0x74, 0xa8, 0x41, 0x5f, 0x0e, 0xfd, 0xf1, 0xf3,
1477
0xbe, 0x9b, 0x14, 0xfd, 0xc0, 0x73, 0x11, 0xff,
1478
0xa5, 0x5b, 0x06, 0x34, 0xc3, 0x5d, 0x28, 0x42,
1479
0x34, 0xfe, 0x8a, 0xa5, 0xbe, 0x72, 0x7a, 0xf7,
1480
0xfa, 0x25, 0x2b, 0x35, 0x5e, 0x98, 0x71, 0x50,
1481
0x2c, 0x35, 0x76, 0x53, 0x4e, 0x1a, 0x34, 0xa5,
1482
0x99, 0x09, 0xa2, 0xc6, 0xca, 0xa5, 0xce, 0x08,
1483
0x50, 0x45, 0xab, 0x8d, 0xfb, 0xe3, 0xb8, 0xe4,
1484
0x8a, 0x61, 0x48, 0x14, 0x6e, 0xf7, 0x58, 0x71,
1485
0xe5, 0x2e, 0xbc, 0x12, 0xd1, 0x25, 0xe9, 0x65,
1486
0x7a, 0xa1, 0x27, 0xbe, 0x3b, 0x8b, 0xe8, 0xe7,
1487
0xbc, 0x77, 0x05, 0xe7, 0x92, 0xeb, 0xb9, 0xdf,
1488
0x5d, 0x53, 0x74, 0xc0, 0x63, 0x97, 0x80, 0xb8,
1489
0x3c, 0xae, 0xf3, 0xf2, 0x09, 0x12, 0x81, 0x6c,
1490
0x69, 0x10, 0x6f, 0xf6, 0xbe, 0x03, 0x7b, 0x88,
1491
0xcf, 0x26, 0x6b, 0x51, 0x06, 0x23, 0x68, 0x03,
1492
0xa1, 0xb7, 0xd3, 0x0c, 0xca, 0xbf, 0x29, 0x01,
1493
0xa9, 0x61, 0x34, 0x75, 0x98, 0x1e, 0x6f, 0x59,
1494
0xb3, 0x46, 0x44, 0xff, 0x2b, 0x98, 0x04, 0x88,
1495
0x89, 0xfd, 0x1c, 0xd5, 0x19, 0x8a, 0xa6, 0xf3,
1496
0xd9, 0x44, 0xd5, 0xf9, 0x79, 0x26, 0x46, 0xf7
1498
uint32_t request8_len = sizeof(request8);
1500
uint8_t request9[] = {
1501
0x05, 0x00, 0x00, 0x02, 0x10, 0x00, 0x00, 0x00,
1502
0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1503
0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00,
1504
0xbf, 0xa1, 0x12, 0x73, 0x23, 0x44, 0x86, 0x8b,
1505
0x50, 0x6a, 0x40, 0x00
1507
uint32_t request9_len = sizeof(request9);
1512
DetectEngineCtx *de_ctx = NULL;
1513
DetectEngineThreadCtx *det_ctx = NULL;
1518
char *sig1 = "alert tcp any any -> any any (dce_stub_data; "
1519
"content:|26 d0 cf 80|; sid:1;)";
1520
char *sig2 = "alert tcp any any -> any any (dce_stub_data; "
1521
"content:|43 5b 67 26 65|; sid:2;)";
1522
char *sig3 = "alert tcp any any -> any any (dce_stub_data; "
1523
"content:|71 69 75 3e|; sid:3;)";
1524
char *sig4 = "alert tcp any any -> any any (dce_stub_data; "
1525
"content:|6a 68 69 3e 72|; sid:4;)";
1526
char *sig5 = "alert tcp any any -> any any (dce_stub_data; "
1527
"content:|61 50 71 45 29 5b 56 3d 5a|; sid:5;)";
1528
char *sig6 = "alert tcp any any -> any any (dce_stub_data; "
1529
"content:|23 75 40 5d 32 55|; sid:6;)";
1530
char *sig7 = "alert tcp any any -> any any (dce_stub_data; "
1531
"content:|ee 70 32 65 c1|; sid:7;)";
1532
char *sig8 = "alert tcp any any -> any any (dce_stub_data; "
1533
"content:|79 26 46 f7 bf a1|; sid:8;)";
1537
memset(&tv, 0, sizeof(ThreadVars));
1538
memset(&f, 0, sizeof(Flow));
1539
memset(&ssn, 0, sizeof(TcpSession));
1541
for (i = 0; i < 11; i++) {
1542
memset(&p[i], 0, sizeof(Packet));
1543
p[i].src.family = AF_INET;
1544
p[i].dst.family = AF_INET;
1545
p[i].payload = NULL;
1546
p[i].payload_len = 0;
1547
p[i].proto = IPPROTO_TCP;
1549
p[i].flowflags |= FLOW_PKT_TOSERVER;
1550
p[i].flowflags |= FLOW_PKT_ESTABLISHED;
1552
p[1].flowflags |= FLOW_PKT_TOCLIENT;
1554
FLOW_INITIALIZE(&f);
1555
f.protoctx = (void *)&ssn;
1556
f.src.family = AF_INET;
1557
f.dst.family = AF_INET;
1558
f.alproto = ALPROTO_DCERPC;
1560
StreamTcpInitConfig(TRUE);
1561
FlowL7DataPtrInit(&f);
1563
de_ctx = DetectEngineCtxInit();
1566
de_ctx->flags |= DE_QUIET;
1568
de_ctx->sig_list = SigInit(de_ctx, sig1);
1569
s = de_ctx->sig_list;
1573
s->next = SigInit(de_ctx, sig2);
1578
s->next = SigInit(de_ctx, sig3);
1583
s->next = SigInit(de_ctx, sig4);
1588
s->next = SigInit(de_ctx, sig5);
1593
s->next = SigInit(de_ctx, sig6);
1598
s->next = SigInit(de_ctx, sig7);
1603
s->next = SigInit(de_ctx, sig8);
1609
SigGroupBuild(de_ctx);
1610
DetectEngineThreadCtxInit(&tv, (void *)de_ctx, (void *)&det_ctx);
1612
r = AppLayerParse(&f, ALPROTO_DCERPC, STREAM_TOSERVER, bind, bind_len);
1614
printf("toserver chunk 1 returned %" PRId32 ", expected 0: ", r);
1618
/* detection phase */
1619
SigMatchSignatures(&tv, de_ctx, det_ctx, &p[0]);
1620
if ((PacketAlertCheck(&p[0], 1))) {
1621
printf("sid 1 matched but shouldn't have for packet 0: ");
1624
if ((PacketAlertCheck(&p[0], 2))) {
1625
printf("sid 2 matched but shouldn't have for packet 0: ");
1628
if ((PacketAlertCheck(&p[0], 3))) {
1629
printf("sid 3 matched but shouldn't have for packet 0: ");
1632
if ((PacketAlertCheck(&p[0], 4))) {
1633
printf("sid 4 matched but shouldn't have for packet 0: ");
1636
if ((PacketAlertCheck(&p[0], 5))) {
1637
printf("sid 5 matched but shouldn't have for packet 0: ");
1640
if ((PacketAlertCheck(&p[0], 6))) {
1641
printf("sid 6 matched but shouldn't have for packet 0: ");
1644
if ((PacketAlertCheck(&p[0], 7))) {
1645
printf("sid 7 matched but shouldn't have for packet 0: ");
1648
if ((PacketAlertCheck(&p[0], 8))) {
1649
printf("sid 8 matched but shouldn't have for packet 0: ");
1653
r = AppLayerParse(&f, ALPROTO_DCERPC, STREAM_TOCLIENT, bind_ack, bind_ack_len);
1655
printf("toserver chunk 1 returned %" PRId32 ", expected 0: ", r);
1659
/* detection phase */
1660
SigMatchSignatures(&tv, de_ctx, det_ctx, &p[1]);
1661
if ((PacketAlertCheck(&p[1], 1))) {
1662
printf("sid 1 matched but shouldn't have for packet 1: ");
1665
if ((PacketAlertCheck(&p[1], 2))) {
1666
printf("sid 2 matched but shouldn't have for packet 1: ");
1669
if ((PacketAlertCheck(&p[1], 3))) {
1670
printf("sid 3 matched but shouldn't have for packet 1: ");
1673
if ((PacketAlertCheck(&p[1], 4))) {
1674
printf("sid 4 matched but shouldn't have for packet 1: ");
1677
if ((PacketAlertCheck(&p[1], 5))) {
1678
printf("sid 5 matched but shouldn't have for packet 1: ");
1681
if ((PacketAlertCheck(&p[1], 6))) {
1682
printf("sid 6 matched but shouldn't have for packet 1: ");
1685
if ((PacketAlertCheck(&p[1], 7))) {
1686
printf("sid 7 matched but shouldn't have for packet 1: ");
1689
if ((PacketAlertCheck(&p[1], 8))) {
1690
printf("sid 8 matched but shouldn't have for packet 1: ");
1694
r = AppLayerParse(&f, ALPROTO_DCERPC, STREAM_TOSERVER, request1, request1_len);
1696
printf("toserver chunk 1 returned %" PRId32 ", expected 0: ", r);
1700
/* detection phase */
1701
SigMatchSignatures(&tv, de_ctx, det_ctx, &p[2]);
1702
if ((PacketAlertCheck(&p[2], 1))) {
1703
printf("sid 1 matched but shouldn't have for packet 2: ");
1706
if ((PacketAlertCheck(&p[2], 2))) {
1707
printf("sid 2 matched but shouldn't have for packet 2: ");
1710
if ((PacketAlertCheck(&p[2], 3))) {
1711
printf("sid 3 matched but shouldn't have for packet 2: ");
1714
if ((PacketAlertCheck(&p[2], 4))) {
1715
printf("sid 4 matched but shouldn't have for packet 2: ");
1718
if ((PacketAlertCheck(&p[2], 5))) {
1719
printf("sid 5 matched but shouldn't have for packet 2: ");
1722
if ((PacketAlertCheck(&p[2], 6))) {
1723
printf("sid 6 matched but shouldn't have for packet 2: ");
1726
if ((PacketAlertCheck(&p[2], 7))) {
1727
printf("sid 7 matched but shouldn't have for packet 2: ");
1730
if ((PacketAlertCheck(&p[2], 8))) {
1731
printf("sid 8 matched but shouldn't have for packet 2: ");
1735
SCLogDebug("sending request 2");
1736
r = AppLayerParse(&f, ALPROTO_DCERPC, STREAM_TOSERVER, request2, request2_len);
1738
printf("toserver chunk 1 returned %" PRId32 ", expected 0: ", r);
1742
/* detection phase */
1743
SigMatchSignatures(&tv, de_ctx, det_ctx, &p[3]);
1744
if (!(PacketAlertCheck(&p[3], 1))) {
1745
printf("sid 1 didn't match but should have for packet 3: ");
1748
if ((PacketAlertCheck(&p[3], 2))) {
1749
printf("sid 2 matched but shouldn't have for packet 3: ");
1752
if ((PacketAlertCheck(&p[3], 3))) {
1753
printf("sid 3 matched but shouldn't have for packet 3: ");
1756
if ((PacketAlertCheck(&p[3], 4))) {
1757
printf("sid 4 matched but shouldn't have for packet 3: ");
1760
if ((PacketAlertCheck(&p[3], 5))) {
1761
printf("sid 5 matched but shouldn't have for packet 3: ");
1764
if ((PacketAlertCheck(&p[3], 6))) {
1765
printf("sid 6 matched but shouldn't have for packet 3: ");
1768
if ((PacketAlertCheck(&p[3], 7))) {
1769
printf("sid 7 matched but shouldn't have for packet 3: ");
1772
if ((PacketAlertCheck(&p[3], 8))) {
1773
printf("sid 8 matched but shouldn't have for packet 3: ");
1777
SCLogDebug("sending request 3");
1778
r = AppLayerParse(&f, ALPROTO_DCERPC, STREAM_TOSERVER, request3, request3_len);
1780
printf("toserver chunk 1 returned %" PRId32 ", expected 0: ", r);
1784
/* detection phase */
1785
SCLogDebug("inspecting packet 4");
1786
SigMatchSignatures(&tv, de_ctx, det_ctx, &p[4]);
1787
if ((PacketAlertCheck(&p[4], 1))) {
1788
printf("sid 1 matched but shouldn't have for packet 4: ");
1791
if (!(PacketAlertCheck(&p[4], 2))) {
1792
printf("sid 2 didn't match but should have for packet 4: ");
1795
if ((PacketAlertCheck(&p[4], 3))) {
1796
printf("sid 3 matched but shouldn't have for packet 4: ");
1799
if ((PacketAlertCheck(&p[4], 4))) {
1800
printf("sid 4 matched but shouldn't have for packet 4: ");
1803
if ((PacketAlertCheck(&p[4], 5))) {
1804
printf("sid 5 matched but shouldn't have for packet 4: ");
1807
if ((PacketAlertCheck(&p[4], 6))) {
1808
printf("sid 6 matched but shouldn't have for packet 4: ");
1811
if ((PacketAlertCheck(&p[4], 7))) {
1812
printf("sid 7 matched but shouldn't have for packet 4: ");
1815
if ((PacketAlertCheck(&p[4], 8))) {
1816
printf("sid 8 matched but shouldn't have for packet 4: ");
1820
SCLogDebug("sending request 4");
1821
r = AppLayerParse(&f, ALPROTO_DCERPC, STREAM_TOSERVER, request4, request4_len);
1823
printf("toserver chunk 1 returned %" PRId32 ", expected 0: ", r);
1827
/* detection phase */
1828
SigMatchSignatures(&tv, de_ctx, det_ctx, &p[5]);
1829
if ((PacketAlertCheck(&p[5], 1))) {
1830
printf("sid 1 matched but shouldn't have for packet 5: ");
1833
if ((PacketAlertCheck(&p[5], 2))) {
1834
printf("sid 2 matched but shouldn't have for packet 5: ");
1837
if (!(PacketAlertCheck(&p[5], 3))) {
1838
printf("sid 3 didn't match but should have packet 5: ");
1841
if ((PacketAlertCheck(&p[5], 4))) {
1842
printf("sid 4 matched but shouldn't have for packet 5: ");
1845
if ((PacketAlertCheck(&p[5], 5))) {
1846
printf("sid 5 matched but shouldn't have for packet 5: ");
1849
if ((PacketAlertCheck(&p[5], 6))) {
1850
printf("sid 6 matched but shouldn't have for packet 5: ");
1853
if ((PacketAlertCheck(&p[5], 7))) {
1854
printf("sid 7 matched but shouldn't have for packet 5: ");
1857
if ((PacketAlertCheck(&p[5], 8))) {
1858
printf("sid 8 matched but shouldn't have for packet 5: ");
1862
r = AppLayerParse(&f, ALPROTO_DCERPC, STREAM_TOSERVER, request5, request5_len);
1864
printf("toserver chunk 1 returned %" PRId32 ", expected 0: ", r);
1868
/* detection phase */
1869
SigMatchSignatures(&tv, de_ctx, det_ctx, &p[6]);
1870
if ((PacketAlertCheck(&p[6], 1))) {
1871
printf("sid 1 matched but shouldn't have for packet 6: ");
1874
if ((PacketAlertCheck(&p[6], 2))) {
1875
printf("sid 2 matched but shouldn't have for packet 6: ");
1878
if ((PacketAlertCheck(&p[6], 3))) {
1879
printf("sid 3 matched but shouldn't have for packet 6: ");
1882
if (!(PacketAlertCheck(&p[6], 4))) {
1883
printf("sid 4 didn't match but should have packet 6: ");
1886
if ((PacketAlertCheck(&p[6], 5))) {
1887
printf("sid 5 matched but shouldn't have for packet 6: ");
1890
if ((PacketAlertCheck(&p[6], 6))) {
1891
printf("sid 6 matched but shouldn't have for packet 6: ");
1894
if ((PacketAlertCheck(&p[6], 7))) {
1895
printf("sid 7 matched but shouldn't have for packet 6: ");
1898
if ((PacketAlertCheck(&p[6], 8))) {
1899
printf("sid 8 matched but shouldn't have for packet 6: ");
1903
r = AppLayerParse(&f, ALPROTO_DCERPC, STREAM_TOSERVER, request6, request6_len);
1905
printf("toserver chunk 1 returned %" PRId32 ", expected 0: ", r);
1909
/* detection phase */
1910
SigMatchSignatures(&tv, de_ctx, det_ctx, &p[7]);
1911
if ((PacketAlertCheck(&p[7], 1))) {
1912
printf("sid 1 matched but shouldn't have for packet 7: ");
1915
if ((PacketAlertCheck(&p[7], 2))) {
1916
printf("sid 2 matched but shouldn't have for packet 7: ");
1919
if ((PacketAlertCheck(&p[7], 3))) {
1920
printf("sid 3 matched but shouldn't have for packet 7: ");
1923
if ((PacketAlertCheck(&p[7], 4))) {
1924
printf("sid 4 matched but shouldn't have for packet 7: ");
1927
if (!(PacketAlertCheck(&p[7], 5))) {
1928
printf("sid 5 didn't match but should have paket 7: ");
1931
if ((PacketAlertCheck(&p[7], 6))) {
1932
printf("sid 6 matched but shouldn't have for packet 7: ");
1935
if ((PacketAlertCheck(&p[7], 7))) {
1936
printf("sid 7 matched but shouldn't have for packet 7: ");
1939
if ((PacketAlertCheck(&p[7], 8))) {
1940
printf("sid 8 matched but shouldn't have for packet 7: ");
1944
r = AppLayerParse(&f, ALPROTO_DCERPC, STREAM_TOSERVER, request7, request7_len);
1946
printf("toserver chunk 1 returned %" PRId32 ", expected 0: ", r);
1950
/* detection phase */
1951
SigMatchSignatures(&tv, de_ctx, det_ctx, &p[8]);
1952
if ((PacketAlertCheck(&p[8], 1))) {
1953
printf("sid 1 matched but shouldn't have for packet 8: ");
1956
if ((PacketAlertCheck(&p[8], 2))) {
1957
printf("sid 2 matched but shouldn't have for packet 8: ");
1960
if ((PacketAlertCheck(&p[8], 3))) {
1961
printf("sid 3 matched but shouldn't have for packet 8: ");
1964
if ((PacketAlertCheck(&p[8], 4))) {
1965
printf("sid 4 matched but shouldn't have for packet 8: ");
1968
if ((PacketAlertCheck(&p[8], 5))) {
1969
printf("sid 5 matched but shouldn't have for packet 8: ");
1972
if (!(PacketAlertCheck(&p[8], 6))) {
1973
printf("sid 6 didn't match but should have paket 8: ");
1976
if ((PacketAlertCheck(&p[8], 7))) {
1977
printf("sid 7 matched but shouldn't have for packet 8: ");
1980
if ((PacketAlertCheck(&p[8], 8))) {
1981
printf("sid 8 matched but shouldn't have for packet 8: ");
1985
r = AppLayerParse(&f, ALPROTO_DCERPC, STREAM_TOSERVER, request8, request8_len);
1987
printf("toserver chunk 1 returned %" PRId32 ", expected 0: ", r);
1991
/* detection phase */
1992
SigMatchSignatures(&tv, de_ctx, det_ctx, &p[9]);
1993
if ((PacketAlertCheck(&p[9], 1))) {
1994
printf("sid 1 matched but shouldn't have for packet 9: ");
1997
if ((PacketAlertCheck(&p[9], 2))) {
1998
printf("sid 2 matched but shouldn't have for packet 9: ");
2001
if ((PacketAlertCheck(&p[9], 3))) {
2002
printf("sid 3 matched but shouldn't have for packet 9: ");
2005
if ((PacketAlertCheck(&p[9], 4))) {
2006
printf("sid 4 matched but shouldn't have for packet 9: ");
2009
if ((PacketAlertCheck(&p[9], 5))) {
2010
printf("sid 5 matched but shouldn't have for packet 9: ");
2013
if ((PacketAlertCheck(&p[9], 6))) {
2014
printf("sid 6 matched but shouldn't have for packet 9: ");
2017
if (!(PacketAlertCheck(&p[9], 7))) {
2018
printf("sid 7 didn't match but should have for packet 9: ");
2021
if ((PacketAlertCheck(&p[9], 8))) {
2022
printf("sid 8 matched but shouldn't have for packet 9: ");
2026
r = AppLayerParse(&f, ALPROTO_DCERPC, STREAM_TOSERVER, request9, request9_len);
2028
printf("toserver chunk 1 returned %" PRId32 ", expected 0: ", r);
2032
/* detection phase */
2033
SigMatchSignatures(&tv, de_ctx, det_ctx, &p[10]);
2034
if ((PacketAlertCheck(&p[10], 1))) {
2035
printf("sid 1 matched but shouldn't have for packet 10: ");
2038
if ((PacketAlertCheck(&p[10], 2))) {
2039
printf("sid 2 matched but shouldn't have for packet 10: ");
2042
if ((PacketAlertCheck(&p[10], 3))) {
2043
printf("sid 3 matched but shouldn't have for packet 10: ");
2046
if ((PacketAlertCheck(&p[10], 4))) {
2047
printf("sid 4 matched but shouldn't have for packet 10: ");
2050
if ((PacketAlertCheck(&p[10], 5))) {
2051
printf("sid 5 matched but shouldn't have for packet 10: ");
2054
if ((PacketAlertCheck(&p[10], 6))) {
2055
printf("sid 6 matched but shouldn't have for packet 10: ");
2058
if ((PacketAlertCheck(&p[10], 7))) {
2059
printf("sid 7 matched but shouldn't have for packet 10: ");
2062
if (!(PacketAlertCheck(&p[10], 8))) {
2063
printf("sid 8 didn't match but should have for paket 10: ");
2070
if (de_ctx != NULL) {
2071
SigGroupCleanup(de_ctx);
2072
SigCleanSignatures(de_ctx);
2074
DetectEngineThreadCtxDeinit(&tv, (void *)det_ctx);
2075
DetectEngineCtxFree(de_ctx);
2078
FlowL7DataPtrFree(&f);
2079
StreamTcpFreeConfig(TRUE);
2085
* \test Test the working of detection engien with respect to dce keywords.
2087
int DcePayloadTest02(void)
2091
0x05, 0x00, 0x0b, 0x03, 0x10, 0x00, 0x00, 0x00,
2092
0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2093
0xd0, 0x16, 0xd0, 0x16, 0x00, 0x00, 0x00, 0x00,
2094
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
2095
0x6a, 0x28, 0x19, 0x39, 0x0c, 0xb1, 0xd0, 0x11,
2096
0x9b, 0xa8, 0x00, 0xc0, 0x4f, 0xd9, 0x2e, 0xf5,
2097
0x00, 0x00, 0x00, 0x00, 0x04, 0x5d, 0x88, 0x8a,
2098
0xeb, 0x1c, 0xc9, 0x11, 0x9f, 0xe8, 0x08, 0x00,
2099
0x2b, 0x10, 0x48, 0x60, 0x02, 0x00, 0x00, 0x00
2101
uint32_t bind_len = sizeof(bind);
2103
uint8_t bind_ack[] = {
2104
0x05, 0x00, 0x0c, 0x03, 0x10, 0x00, 0x00, 0x00,
2105
0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2106
0xb8, 0x10, 0xb8, 0x10, 0x48, 0x1a, 0x00, 0x00,
2107
0x0c, 0x00, 0x5c, 0x50, 0x49, 0x50, 0x45, 0x5c,
2108
0x6c, 0x73, 0x61, 0x73, 0x73, 0x00, 0x00, 0x00,
2109
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2110
0x04, 0x5d, 0x88, 0x8a, 0xeb, 0x1c, 0xc9, 0x11,
2111
0x9f, 0xe8, 0x08, 0x00, 0x2b, 0x10, 0x48, 0x60,
2112
0x02, 0x00, 0x00, 0x00
2114
uint32_t bind_ack_len = sizeof(bind_ack);
2116
uint8_t request1[] = {
2117
0x05, 0x00, 0x00, 0x01, 0x10, 0x00, 0x00, 0x00,
2118
0x18, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2119
0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00,
2120
0xad, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2121
0xad, 0x0d, 0x00, 0x00, 0x91, 0xfc, 0x27, 0x40,
2122
0x4a, 0x97, 0x4a, 0x98, 0x4b, 0x41, 0x3f, 0x48,
2123
0x99, 0x90, 0xf8, 0x27, 0xfd, 0x3f, 0x27, 0x37,
2124
0x40, 0xd6, 0x27, 0xfc, 0x3f, 0x9f, 0x4f, 0xfd,
2125
0x42, 0x47, 0x47, 0x49, 0x3f, 0xf9, 0x9b, 0xd6,
2126
0x48, 0x37, 0x27, 0x46, 0x93, 0x49, 0xfd, 0x93,
2127
0x91, 0xfd, 0x93, 0x90, 0x92, 0x96, 0xf5, 0x92,
2128
0x4e, 0x91, 0x98, 0x46, 0x4f, 0x4b, 0x46, 0xf5,
2129
0xf5, 0xfd, 0x40, 0xf9, 0x9b, 0x40, 0x9f, 0x93,
2130
0x4e, 0xf8, 0x40, 0x40, 0x4e, 0xf5, 0x4b, 0x98,
2131
0xf5, 0x91, 0xd6, 0x42, 0x99, 0x96, 0x27, 0x49,
2132
0x48, 0x47, 0x4f, 0x46, 0x99, 0x4b, 0x92, 0x92,
2133
0x90, 0x47, 0x46, 0x4e, 0x43, 0x9b, 0x43, 0x42,
2134
0x3f, 0x4b, 0x27, 0x97, 0x93, 0xf9, 0x42, 0x9b,
2135
0x46, 0x9b, 0x4b, 0x98, 0x41, 0x98, 0x37, 0x41,
2136
0x9f, 0x98, 0x4e, 0x93, 0x48, 0x46, 0x46, 0x9f,
2137
0x97, 0x9b, 0x42, 0x37, 0x90, 0x46, 0xf9, 0x97,
2138
0x91, 0xf5, 0x4e, 0x97, 0x4e, 0x99, 0xf8, 0x99,
2139
0x41, 0xf5, 0x41, 0x9f, 0x49, 0xfd, 0x92, 0x96,
2140
0x3f, 0x3f, 0x42, 0x27, 0x27, 0x93, 0x47, 0x49,
2141
0x91, 0x27, 0x27, 0x40, 0x42, 0x99, 0x9f, 0xfc,
2142
0x97, 0x47, 0x99, 0x4a, 0xf9, 0x3f, 0x48, 0x91,
2143
0x47, 0x97, 0x91, 0x42, 0x4b, 0x9b, 0x4a, 0x48,
2144
0x9f, 0x43, 0x43, 0x40, 0x99, 0xf9, 0x48, 0x4e,
2145
0x92, 0x93, 0x92, 0x41, 0x46, 0x4b, 0x4a, 0x4a,
2146
0x49, 0x96, 0x4a, 0x4f, 0xf5, 0x42, 0x47, 0x98,
2147
0x9b, 0xf5, 0x91, 0xf9, 0xd6, 0x9b, 0x48, 0x4e,
2148
0x9f, 0x91, 0xd6, 0x93, 0x4b, 0x37, 0x3f, 0x43,
2149
0xf5, 0x41, 0x41, 0xf5, 0x37, 0x4f, 0x43, 0x92,
2150
0x97, 0x27, 0x93, 0x92, 0x46, 0x47, 0x4b, 0x96,
2151
0x41, 0x90, 0x90, 0x3f, 0x96, 0x27, 0x41, 0xd6,
2152
0xd6, 0xd6, 0xf9, 0xf8, 0x47, 0x27, 0x46, 0x37,
2153
0x41, 0x90, 0x91, 0xfc, 0x46, 0x41, 0x43, 0x97,
2154
0x9f, 0x4a, 0x49, 0x92, 0x41, 0x91, 0x41, 0x92,
2155
0x42, 0x4a, 0x3f, 0x93, 0x99, 0x9b, 0x9f, 0x4e,
2156
0x47, 0x93, 0xd6, 0x37, 0x37, 0x40, 0x98, 0xfd,
2157
0x41, 0x42, 0x97, 0x4e, 0x4e, 0x98, 0x9f, 0x4e,
2158
0x48, 0x3f, 0x48, 0x42, 0x96, 0x9f, 0x99, 0x4f,
2159
0x4e, 0x42, 0x97, 0xf9, 0x3f, 0x37, 0x27, 0x46,
2160
0x41, 0xf9, 0x92, 0x96, 0x41, 0x93, 0x91, 0x4b,
2161
0x96, 0x4f, 0x43, 0xfd, 0xf5, 0x9f, 0x43, 0x27,
2162
0x99, 0xd6, 0xf5, 0x4e, 0xfd, 0x97, 0x4b, 0x47,
2163
0x47, 0x92, 0x98, 0x4f, 0x47, 0x49, 0x37, 0x97,
2164
0x3f, 0x4e, 0x40, 0x46, 0x4e, 0x9f, 0x4e, 0x4e,
2165
0xfc, 0x41, 0x47, 0xf8, 0x37, 0x9b, 0x41, 0x4e,
2166
0x96, 0x99, 0x46, 0x99, 0x46, 0xf9, 0x4e, 0x4f,
2167
0x48, 0x97, 0x97, 0x93, 0xd6, 0x9b, 0x41, 0x40,
2168
0x97, 0x97, 0x4f, 0x92, 0x91, 0xd6, 0x96, 0x40,
2169
0x4f, 0x4b, 0x91, 0x46, 0x27, 0x92, 0x3f, 0xf5,
2170
0xfc, 0x3f, 0x91, 0x97, 0xf8, 0x43, 0x4e, 0xfd,
2171
0x9b, 0x27, 0xfd, 0x9b, 0xf5, 0x27, 0x47, 0x42,
2172
0x46, 0x93, 0x37, 0x93, 0x91, 0x91, 0x91, 0xf8,
2173
0x4f, 0x92, 0x4f, 0xf8, 0x93, 0xf5, 0x49, 0x91,
2174
0x4b, 0x3f, 0xfc, 0x37, 0x4f, 0x46, 0x98, 0x97,
2175
0x9f, 0x40, 0xfd, 0x9f, 0x98, 0xfd, 0x4e, 0x97,
2176
0x4f, 0x47, 0x91, 0x27, 0x4a, 0x90, 0x96, 0x40,
2177
0x98, 0x97, 0x41, 0x3f, 0xd6, 0xfd, 0x41, 0xfd,
2178
0x42, 0x97, 0x4b, 0x9b, 0x46, 0x4e, 0xfc, 0x96,
2179
0xf9, 0x37, 0x4b, 0x96, 0x9f, 0x9b, 0x42, 0x9f,
2180
0x93, 0x40, 0x42, 0x43, 0xf5, 0x93, 0x48, 0x3f,
2181
0x4b, 0xfd, 0x9f, 0x4b, 0x41, 0x4a, 0x90, 0x9b,
2182
0x46, 0x97, 0x98, 0x96, 0x9b, 0x98, 0x92, 0xd6,
2183
0x4e, 0x4a, 0x27, 0x90, 0x96, 0x99, 0x91, 0x46,
2184
0x49, 0x41, 0x4b, 0x90, 0x43, 0x91, 0xd6, 0x48,
2185
0x42, 0x90, 0x4f, 0x96, 0x43, 0x9b, 0xf9, 0x9b,
2186
0x9f, 0x9f, 0x27, 0x47, 0x4b, 0xf5, 0x43, 0x99,
2187
0x99, 0x91, 0x4e, 0x41, 0x42, 0x46, 0x97, 0x46,
2188
0x47, 0xf9, 0xf5, 0x48, 0x4a, 0xf8, 0x4e, 0xd6,
2189
0x43, 0x4a, 0x27, 0x9b, 0x42, 0x90, 0x46, 0x46,
2190
0x3f, 0x99, 0x96, 0x9b, 0x91, 0x9f, 0xf5, 0x48,
2191
0x43, 0x9f, 0x4a, 0x99, 0x96, 0xfd, 0x92, 0x49,
2192
0x46, 0x91, 0x40, 0xfd, 0x4a, 0x48, 0x4f, 0x90,
2193
0x91, 0x98, 0x48, 0x4b, 0x9f, 0x42, 0x27, 0x93,
2194
0x47, 0xf8, 0x4f, 0x48, 0x3f, 0x90, 0x47, 0x41,
2195
0xf5, 0xfc, 0x27, 0xf8, 0x97, 0x4a, 0x49, 0x37,
2196
0x40, 0x4f, 0x40, 0x37, 0x41, 0x27, 0x96, 0x37,
2197
0xfc, 0x42, 0xd6, 0x4b, 0x48, 0x37, 0x42, 0xf5,
2198
0x27, 0xf9, 0xd6, 0x48, 0x9b, 0xfd, 0x40, 0x96,
2199
0x4e, 0x43, 0xf8, 0x90, 0x40, 0x40, 0x49, 0x3f,
2200
0xfc, 0x4a, 0x42, 0x47, 0xf8, 0x49, 0x42, 0x97,
2201
0x4f, 0x91, 0xfd, 0x4b, 0x46, 0x4b, 0xfc, 0x48,
2202
0x49, 0x96, 0x4b, 0x96, 0x43, 0x9f, 0x90, 0x37,
2203
0xd6, 0x4a, 0xd6, 0x3f, 0xd6, 0x90, 0x49, 0x27,
2204
0x4e, 0x96, 0x96, 0xf8, 0x49, 0x96, 0xf8, 0x37,
2205
0x90, 0x4e, 0x4b, 0x4f, 0x99, 0xf8, 0x6a, 0x52,
2206
0x59, 0xd9, 0xee, 0xd9, 0x74, 0x24, 0xf4, 0x5b,
2207
0x81, 0x73, 0x13, 0x30, 0x50, 0xf0, 0x82, 0x83,
2208
0xeb, 0xfc, 0xe2, 0xf4, 0xb1, 0x94, 0x0f, 0x6d,
2209
0xcf, 0xaf, 0xb4, 0x7e, 0x5a, 0xbb, 0xbf, 0x6a,
2210
0xc9, 0xaf, 0x0f, 0x7d, 0x50, 0xdb, 0x9c, 0xa6,
2211
0x14, 0xdb, 0xb5, 0xbe, 0xbb, 0x2c, 0xf5, 0xfa,
2212
0x31, 0xbf, 0x7b, 0xcd, 0x28, 0xdb, 0xaf, 0xa2,
2213
0x31, 0xbb, 0x13, 0xb2, 0x79, 0xdb, 0xc4, 0x09,
2214
0x31, 0xbe, 0xc1, 0x42, 0xa9, 0xfc, 0x74, 0x42,
2215
0x44, 0x57, 0x31, 0x48, 0x3d, 0x51, 0x32, 0x69,
2216
0xc4, 0x6b, 0xa4, 0xa6, 0x18, 0x25, 0x13, 0x09,
2217
0x6f, 0x74, 0xf1, 0x69, 0x56, 0xdb, 0xfc, 0xc9,
2218
0xbb, 0x0f, 0xec, 0x83, 0xdb, 0x53, 0xdc, 0x09,
2219
0xb9, 0x3c, 0xd4, 0x9e, 0x51, 0x93, 0xc1, 0x42,
2220
0x54, 0xdb, 0xb0, 0xb2, 0xbb, 0x10, 0xfc, 0x09,
2221
0x40, 0x4c, 0x5d, 0x09, 0x70, 0x58, 0xae, 0xea,
2222
0xbe, 0x1e, 0xfe, 0x6e, 0x60, 0xaf, 0x26, 0xb3,
2223
0xeb, 0x36, 0xa3, 0xe4, 0x58, 0x63, 0xc2, 0xea,
2224
0x47, 0x23, 0xc2, 0xdd, 0x64, 0xaf, 0x20, 0xea,
2225
0xfb, 0xbd, 0x0c, 0xb9, 0x60, 0xaf, 0x26, 0xdd,
2226
0xb9, 0xb5, 0x96, 0x03, 0xdd, 0x58, 0xf2, 0xd7,
2227
0x5a, 0x52, 0x0f, 0x52, 0x58, 0x89, 0xf9, 0x77,
2228
0x9d, 0x07, 0x0f, 0x54, 0x63, 0x03, 0xa3, 0xd1,
2229
0x63, 0x13, 0xa3, 0xc1, 0x63, 0xaf, 0x20, 0xe4,
2230
0x58, 0x41, 0xac, 0xe4, 0x63, 0xd9, 0x11, 0x17,
2231
0x58, 0xf4, 0xea, 0xf2, 0xf7, 0x07, 0x0f, 0x54,
2232
0x5a, 0x40, 0xa1, 0xd7, 0xcf, 0x80, 0x98, 0x26,
2233
0x9d, 0x7e, 0x19, 0xd5, 0xcf, 0x86, 0xa3, 0xd7,
2234
0xcf, 0x80, 0x98, 0x67, 0x79, 0xd6, 0xb9, 0xd5,
2235
0xcf, 0x86, 0xa0, 0xd6, 0x64, 0x05, 0x0f, 0x52,
2236
0xa3, 0x38, 0x17, 0xfb, 0xf6, 0x29, 0xa7, 0x7d,
2237
0xe6, 0x05, 0x0f, 0x52, 0x56, 0x3a, 0x94, 0xe4,
2238
0x58, 0x33, 0x9d, 0x0b, 0xd5, 0x3a, 0xa0, 0xdb,
2239
0x19, 0x9c, 0x79, 0x65, 0x5a, 0x14, 0x79, 0x60,
2240
0x01, 0x90, 0x03, 0x28, 0xce, 0x12, 0xdd, 0x7c,
2241
0x72, 0x7c, 0x63, 0x0f, 0x4a, 0x68, 0x5b, 0x29,
2242
0x9b, 0x38, 0x82, 0x7c, 0x83, 0x46, 0x0f, 0xf7,
2243
0x74, 0xaf, 0x26, 0xd9, 0x67, 0x02, 0xa1, 0xd3,
2244
0x61, 0x3a, 0xf1, 0xd3, 0x61, 0x05, 0xa1, 0x7d,
2245
0xe0, 0x38, 0x5d, 0x5b, 0x35, 0x9e, 0xa3, 0x7d,
2246
0xe6, 0x3a, 0x0f, 0x7d, 0x07, 0xaf, 0x20, 0x09,
2247
0x67, 0xac, 0x73, 0x46, 0x54, 0xaf, 0x26, 0xd0
2249
uint32_t request1_len = sizeof(request1);
2251
uint8_t request2[] = {
2252
0x05, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
2253
0x18, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2254
0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00,
2255
0xcf, 0x80, 0x98, 0x6d, 0xfe, 0xb0, 0x90, 0xd1,
2256
0xcf, 0x86, 0x0f, 0x52, 0x2c, 0x23, 0x66, 0x28,
2257
0x27, 0x30, 0x48, 0x55, 0x42, 0x6a, 0x48, 0x4b,
2258
0x68, 0x22, 0x2e, 0x23, 0x64, 0x33, 0x2c, 0x2d,
2259
0x5c, 0x51, 0x48, 0x55, 0x24, 0x67, 0x6c, 0x4c,
2260
0x45, 0x71, 0x35, 0x72, 0x5a, 0x48, 0x5e, 0x35,
2261
0x61, 0x78, 0x35, 0x42, 0x2c, 0x7a, 0x75, 0x61,
2262
0x5b, 0x4e, 0x76, 0x30, 0x26, 0x2f, 0x2a, 0x34,
2263
0x48, 0x29, 0x25, 0x6e, 0x5c, 0x3a, 0x6c, 0x3e,
2264
0x79, 0x4e, 0x2a, 0x21, 0x6f, 0x6f, 0x34, 0x46,
2265
0x43, 0x26, 0x5b, 0x35, 0x78, 0x27, 0x69, 0x23,
2266
0x72, 0x21, 0x69, 0x56, 0x6a, 0x7d, 0x4b, 0x5e,
2267
0x65, 0x37, 0x60, 0x44, 0x7c, 0x5d, 0x5b, 0x72,
2268
0x7d, 0x73, 0x7b, 0x47, 0x57, 0x21, 0x41, 0x38,
2269
0x76, 0x38, 0x76, 0x5c, 0x58, 0x32, 0x4a, 0x37,
2270
0x2f, 0x40, 0x4b, 0x4c, 0x3d, 0x41, 0x33, 0x56,
2271
0x73, 0x38, 0x61, 0x71, 0x24, 0x49, 0x4c, 0x4a,
2272
0x44, 0x2e, 0x3a, 0x3f, 0x74, 0x54, 0x4c, 0x65,
2273
0x54, 0x2d, 0x3b, 0x28, 0x41, 0x45, 0x49, 0x2c,
2274
0x6e, 0x48, 0x44, 0x43, 0x37, 0x3d, 0x7b, 0x6d,
2275
0x2b, 0x4b, 0x32, 0x5a, 0x31, 0x61, 0x6e, 0x2b,
2276
0x27, 0x50, 0x6b, 0x66, 0x76, 0x4e, 0x55, 0x35,
2277
0x2b, 0x72, 0x2d, 0x5e, 0x42, 0x3e, 0x5a, 0x5d,
2278
0x36, 0x45, 0x32, 0x3a, 0x58, 0x78, 0x78, 0x3e,
2279
0x60, 0x6c, 0x5d, 0x63, 0x41, 0x7c, 0x52, 0x21,
2280
0x75, 0x6a, 0x5a, 0x70, 0x55, 0x45, 0x76, 0x58,
2281
0x33, 0x40, 0x38, 0x39, 0x21, 0x37, 0x7d, 0x77,
2282
0x21, 0x70, 0x2b, 0x72, 0x29, 0x6a, 0x31, 0x5f,
2283
0x38, 0x4a, 0x66, 0x65, 0x62, 0x2c, 0x39, 0x52,
2284
0x5f, 0x2a, 0x2b, 0x63, 0x4f, 0x76, 0x43, 0x25,
2285
0x6a, 0x50, 0x37, 0x52, 0x5e, 0x23, 0x3c, 0x42,
2286
0x28, 0x75, 0x75, 0x42, 0x25, 0x23, 0x28, 0x56,
2287
0x6c, 0x46, 0x5c, 0x5e, 0x6b, 0x7d, 0x48, 0x24,
2288
0x77, 0x6c, 0x70, 0x62, 0x2e, 0x28, 0x7d, 0x6b,
2289
0x69, 0x4a, 0x75, 0x3d, 0x5d, 0x56, 0x21, 0x49,
2290
0x56, 0x47, 0x64, 0x2b, 0x4c, 0x52, 0x43, 0x60,
2291
0x77, 0x49, 0x46, 0x46, 0x33, 0x2c, 0x4b, 0x4b,
2292
0x3d, 0x63, 0x5d, 0x33, 0x78, 0x76, 0x51, 0x56,
2293
0x77, 0x3c, 0x72, 0x74, 0x52, 0x27, 0x40, 0x6c,
2294
0x42, 0x79, 0x49, 0x24, 0x62, 0x5e, 0x26, 0x31,
2295
0x5c, 0x22, 0x2b, 0x4c, 0x64, 0x49, 0x52, 0x45,
2296
0x47, 0x49, 0x3a, 0x2a, 0x51, 0x71, 0x22, 0x22,
2297
0x70, 0x24, 0x34, 0x67, 0x4b, 0x6d, 0x58, 0x29,
2298
0x63, 0x26, 0x7b, 0x6f, 0x38, 0x78, 0x25, 0x62,
2299
0x4d, 0x3a, 0x7d, 0x40, 0x23, 0x57, 0x67, 0x33,
2300
0x38, 0x31, 0x4e, 0x54, 0x3c, 0x4b, 0x48, 0x69,
2301
0x3c, 0x39, 0x31, 0x2b, 0x26, 0x70, 0x44, 0x66,
2302
0x4a, 0x37, 0x2b, 0x75, 0x36, 0x45, 0x59, 0x34,
2303
0x3e, 0x3e, 0x29, 0x70, 0x71, 0x5a, 0x55, 0x49,
2304
0x3e, 0x4b, 0x68, 0x4e, 0x75, 0x70, 0x3c, 0x5c,
2305
0x50, 0x58, 0x28, 0x75, 0x3c, 0x2a, 0x41, 0x70,
2306
0x2f, 0x2b, 0x37, 0x26, 0x75, 0x71, 0x55, 0x22,
2307
0x3a, 0x44, 0x30, 0x48, 0x5d, 0x2f, 0x6c, 0x44,
2308
0x28, 0x4b, 0x34, 0x45, 0x21, 0x60, 0x44, 0x36,
2309
0x7b, 0x32, 0x39, 0x5f, 0x6d, 0x3f, 0x68, 0x73,
2310
0x25, 0x45, 0x56, 0x7c, 0x78, 0x7a, 0x49, 0x6a,
2311
0x46, 0x3d, 0x2d, 0x33, 0x6c, 0x6f, 0x23, 0x77,
2312
0x38, 0x33, 0x36, 0x74, 0x7b, 0x57, 0x4b, 0x6d,
2313
0x27, 0x75, 0x24, 0x6e, 0x43, 0x61, 0x4d, 0x44,
2314
0x6d, 0x27, 0x48, 0x58, 0x5e, 0x7b, 0x26, 0x6a,
2315
0x50, 0x7c, 0x51, 0x23, 0x3c, 0x4f, 0x37, 0x4c,
2316
0x47, 0x3e, 0x45, 0x56, 0x22, 0x33, 0x7c, 0x66,
2317
0x35, 0x54, 0x7a, 0x6e, 0x5a, 0x24, 0x70, 0x62,
2318
0x29, 0x3f, 0x69, 0x79, 0x24, 0x43, 0x41, 0x24,
2319
0x65, 0x25, 0x62, 0x4f, 0x73, 0x3e, 0x2b, 0x36,
2320
0x46, 0x69, 0x27, 0x55, 0x2a, 0x6e, 0x24, 0x6c,
2321
0x7d, 0x64, 0x7c, 0x61, 0x26, 0x67, 0x2a, 0x53,
2322
0x73, 0x60, 0x28, 0x2d, 0x6b, 0x44, 0x54, 0x61,
2323
0x34, 0x53, 0x22, 0x59, 0x6d, 0x73, 0x56, 0x55,
2324
0x25, 0x2c, 0x38, 0x4a, 0x3b, 0x4e, 0x78, 0x46,
2325
0x54, 0x6e, 0x6d, 0x4f, 0x47, 0x4f, 0x4f, 0x5a,
2326
0x67, 0x77, 0x39, 0x66, 0x28, 0x29, 0x4e, 0x43,
2327
0x55, 0x6e, 0x60, 0x59, 0x28, 0x3b, 0x65, 0x62,
2328
0x61, 0x5a, 0x29, 0x6e, 0x79, 0x60, 0x41, 0x53,
2329
0x2f, 0x5d, 0x44, 0x36, 0x7b, 0x3e, 0x7c, 0x2b,
2330
0x77, 0x36, 0x70, 0x3f, 0x40, 0x55, 0x48, 0x67,
2331
0x4b, 0x4d, 0x5d, 0x51, 0x79, 0x76, 0x48, 0x4a,
2332
0x2d, 0x21, 0x60, 0x40, 0x46, 0x55, 0x7a, 0x60,
2333
0x22, 0x25, 0x3f, 0x4b, 0x54, 0x6a, 0x6a, 0x3c,
2334
0x77, 0x22, 0x5b, 0x43, 0x67, 0x58, 0x71, 0x22,
2335
0x79, 0x4b, 0x32, 0x61, 0x44, 0x4d, 0x6f, 0x42,
2336
0x33, 0x2d, 0x53, 0x35, 0x3d, 0x6f, 0x57, 0x48,
2337
0x33, 0x3b, 0x5a, 0x53, 0x3f, 0x4e, 0x3f, 0x6b,
2338
0x4c, 0x27, 0x26, 0x3b, 0x73, 0x49, 0x22, 0x55,
2339
0x79, 0x2f, 0x47, 0x2f, 0x55, 0x5a, 0x7a, 0x71,
2340
0x6c, 0x31, 0x43, 0x40, 0x56, 0x7b, 0x21, 0x7a,
2341
0x6d, 0x4c, 0x43, 0x5e, 0x38, 0x47, 0x29, 0x38,
2342
0x62, 0x49, 0x45, 0x78, 0x70, 0x2b, 0x2e, 0x65,
2343
0x47, 0x71, 0x58, 0x79, 0x39, 0x67, 0x7d, 0x6d,
2344
0x6a, 0x67, 0x4a, 0x71, 0x27, 0x35, 0x2a, 0x4c,
2345
0x3e, 0x58, 0x55, 0x30, 0x4d, 0x75, 0x77, 0x48,
2346
0x5f, 0x4b, 0x59, 0x34, 0x65, 0x68, 0x57, 0x59,
2347
0x63, 0x23, 0x47, 0x38, 0x47, 0x5e, 0x56, 0x28,
2348
0x79, 0x58, 0x3e, 0x39, 0x66, 0x77, 0x67, 0x33,
2349
0x29, 0x61, 0x24, 0x7d, 0x37, 0x44, 0x37, 0x67,
2350
0x3a, 0x58, 0x76, 0x21, 0x51, 0x59, 0x61, 0x73,
2351
0x66, 0x75, 0x71, 0x53, 0x4d, 0x24, 0x2d, 0x4b,
2352
0x29, 0x30, 0x32, 0x26, 0x59, 0x64, 0x27, 0x55,
2353
0x2c, 0x5a, 0x4c, 0x3c, 0x6c, 0x53, 0x56, 0x4b,
2354
0x3e, 0x55, 0x2e, 0x44, 0x38, 0x6b, 0x47, 0x76,
2355
0x2d, 0x2c, 0x3f, 0x4d, 0x22, 0x7b, 0x6d, 0x61,
2356
0x34, 0x6b, 0x50, 0x73, 0x28, 0x6d, 0x41, 0x71,
2357
0x21, 0x76, 0x52, 0x2a, 0x6d, 0x53, 0x2a, 0x74,
2358
0x28, 0x27, 0x62, 0x2a, 0x66, 0x25, 0x6e, 0x5e,
2359
0x37, 0x4f, 0x27, 0x72, 0x28, 0x47, 0x63, 0x6e,
2360
0x5a, 0x6a, 0x41, 0x35, 0x3a, 0x42, 0x3f, 0x27,
2361
0x75, 0x3e, 0x26, 0x3e, 0x6b, 0x55, 0x59, 0x60,
2362
0x24, 0x70, 0x49, 0x3c, 0x4e, 0x2c, 0x39, 0x7a,
2363
0x36, 0x6c, 0x27, 0x3e, 0x6a, 0x4a, 0x59, 0x5a,
2364
0x3e, 0x21, 0x73, 0x4e, 0x59, 0x6e, 0x3d, 0x32,
2365
0x27, 0x45, 0x49, 0x58, 0x7d, 0x37, 0x39, 0x77,
2366
0x28, 0x51, 0x79, 0x54, 0x2b, 0x78, 0x46, 0x5a,
2367
0x21, 0x75, 0x33, 0x21, 0x63, 0x5a, 0x7b, 0x3e,
2368
0x33, 0x4f, 0x67, 0x75, 0x3a, 0x50, 0x48, 0x60,
2369
0x26, 0x64, 0x76, 0x5c, 0x42, 0x5c, 0x72, 0x38,
2370
0x6c, 0x52, 0x21, 0x2b, 0x25, 0x6b, 0x7c, 0x6b,
2371
0x2d, 0x5e, 0x63, 0x2a, 0x4c, 0x26, 0x5b, 0x4c,
2372
0x58, 0x52, 0x51, 0x55, 0x31, 0x79, 0x6c, 0x53,
2373
0x62, 0x3a, 0x36, 0x46, 0x7a, 0x29, 0x27, 0x78,
2374
0x1a, 0xbf, 0x49, 0x74, 0x68, 0x24, 0x51, 0x44,
2375
0x5b, 0x3e, 0x34, 0x44, 0x29, 0x5e, 0x4f, 0x2a,
2376
0xe9, 0x3f, 0xf8, 0xff, 0xff, 0x52, 0x7d, 0x47,
2377
0x67, 0x40, 0x27, 0x5e, 0x47, 0x46, 0x6d, 0x72,
2378
0x5d, 0x49, 0x26, 0x45, 0x33, 0x6b, 0x4d, 0x4a,
2379
0x6f, 0x62, 0x60, 0x45, 0x62, 0x27, 0x27, 0x7d,
2380
0x6a, 0x41, 0x2c, 0x6c, 0x5b, 0x2a, 0x2b, 0x36,
2381
0x29, 0x58, 0x7a, 0x4c, 0x6e, 0x2d, 0x74, 0x5c,
2382
0x38, 0x22, 0x5f, 0x49, 0x63, 0x43, 0x5b, 0x67
2384
uint32_t request2_len = sizeof(request2);
2390
DetectEngineCtx *de_ctx = NULL;
2391
DetectEngineThreadCtx *det_ctx = NULL;
2396
char *sig1 = "alert tcp any any -> any any "
2397
"(dce_iface:3919286a-b10c-11d0-9ba8-00c04fd92ef5; "
2399
char *sig2 = "alert tcp any any -> any any (dce_stub_data; "
2400
"content:|2d 5e 63 2a 4c|; sid:2;)";
2404
memset(&tv, 0, sizeof(ThreadVars));
2405
memset(&f, 0, sizeof(Flow));
2406
memset(&ssn, 0, sizeof(TcpSession));
2408
for (i = 0; i < 4; i++) {
2409
memset(&p[i], 0, sizeof(Packet));
2410
p[i].src.family = AF_INET;
2411
p[i].dst.family = AF_INET;
2412
p[i].payload = NULL;
2413
p[i].payload_len = 0;
2414
p[i].proto = IPPROTO_TCP;
2416
p[i].flowflags |= FLOW_PKT_TOSERVER;
2417
p[i].flowflags |= FLOW_PKT_ESTABLISHED;
2419
p[1].flowflags |= FLOW_PKT_TOCLIENT;
2420
p[1].flowflags &=~ FLOW_PKT_TOSERVER;
2422
FLOW_INITIALIZE(&f);
2423
f.protoctx = (void *)&ssn;
2424
f.src.family = AF_INET;
2425
f.dst.family = AF_INET;
2426
f.alproto = ALPROTO_DCERPC;
2428
StreamTcpInitConfig(TRUE);
2429
FlowL7DataPtrInit(&f);
2431
de_ctx = DetectEngineCtxInit();
2434
de_ctx->flags |= DE_QUIET;
2436
de_ctx->sig_list = SigInit(de_ctx, sig1);
2437
s = de_ctx->sig_list;
2441
s->next = SigInit(de_ctx, sig2);
2446
SigGroupBuild(de_ctx);
2447
DetectEngineThreadCtxInit(&tv, (void *)de_ctx, (void *)&det_ctx);
2449
r = AppLayerParse(&f, ALPROTO_DCERPC, STREAM_TOSERVER, bind, bind_len);
2451
printf("toserver chunk 1 returned %" PRId32 ", expected 0: ", r);
2455
/* detection phase */
2456
SigMatchSignatures(&tv, de_ctx, det_ctx, &p[0]);
2457
if (!(PacketAlertCheck(&p[0], 1))) {
2458
printf("sid 1 didn't match but should have for packet 0: ");
2461
if ((PacketAlertCheck(&p[0], 2))) {
2462
printf("sid 2 matched but shouldn't have for packet 0: ");
2466
r = AppLayerParse(&f, ALPROTO_DCERPC, STREAM_TOCLIENT, bind_ack, bind_ack_len);
2468
printf("toserver chunk 1 returned %" PRId32 ", expected 0: ", r);
2472
/* detection phase */
2473
SigMatchSignatures(&tv, de_ctx, det_ctx, &p[1]);
2474
if ((PacketAlertCheck(&p[1], 1))) {
2475
printf("sid 1 matched but shouldn't have for packet 1: ");
2478
if ((PacketAlertCheck(&p[1], 2))) {
2479
printf("sid 2 matched but shouldn't have for packet 1: ");
2483
r = AppLayerParse(&f, ALPROTO_DCERPC, STREAM_TOSERVER, request1, request1_len);
2485
printf("toserver chunk 1 returned %" PRId32 ", expected 0: ", r);
2489
/* detection phase */
2490
SigMatchSignatures(&tv, de_ctx, det_ctx, &p[2]);
2491
if (!(PacketAlertCheck(&p[2], 1))) {
2492
printf("sid 1 didn't match but should have for packet 2: ");
2495
if ((PacketAlertCheck(&p[2], 2))) {
2496
printf("sid 2 matched but shouldn't have for packet 2: ");
2500
r = AppLayerParse(&f, ALPROTO_DCERPC, STREAM_TOSERVER, request2, request2_len);
2502
printf("toserver chunk 1 returned %" PRId32 ", expected 0: ", r);
2506
/* detection phase */
2507
SigMatchSignatures(&tv, de_ctx, det_ctx, &p[3]);
2508
if ((PacketAlertCheck(&p[3], 1))) {
2509
printf("sid 1 matched but shouldn't have for packet 3: ");
2512
if (!(PacketAlertCheck(&p[3], 2))) {
2513
printf("sid 2 didn't match but should have for packet 3: ");
2520
if (de_ctx != NULL) {
2521
SigGroupCleanup(de_ctx);
2522
SigCleanSignatures(de_ctx);
2524
DetectEngineThreadCtxDeinit(&tv, (void *)det_ctx);
2525
DetectEngineCtxFree(de_ctx);
2528
FlowL7DataPtrFree(&f);
2529
StreamTcpFreeConfig(TRUE);
2535
* \test Test the working of detection engien with respect to dce keywords.
2537
int DcePayloadTest03(void)
2541
0x05, 0x00, 0x0b, 0x03, 0x10, 0x00, 0x00, 0x00,
2542
0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2543
0xd0, 0x16, 0xd0, 0x16, 0x00, 0x00, 0x00, 0x00,
2544
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
2545
0x6a, 0x28, 0x19, 0x39, 0x0c, 0xb1, 0xd0, 0x11,
2546
0x9b, 0xa8, 0x00, 0xc0, 0x4f, 0xd9, 0x2e, 0xf5,
2547
0x00, 0x00, 0x00, 0x00, 0x04, 0x5d, 0x88, 0x8a,
2548
0xeb, 0x1c, 0xc9, 0x11, 0x9f, 0xe8, 0x08, 0x00,
2549
0x2b, 0x10, 0x48, 0x60, 0x02, 0x00, 0x00, 0x00
2551
uint32_t bind_len = sizeof(bind);
2553
uint8_t bind_ack[] = {
2554
0x05, 0x00, 0x0c, 0x03, 0x10, 0x00, 0x00, 0x00,
2555
0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2556
0xb8, 0x10, 0xb8, 0x10, 0x48, 0x1a, 0x00, 0x00,
2557
0x0c, 0x00, 0x5c, 0x50, 0x49, 0x50, 0x45, 0x5c,
2558
0x6c, 0x73, 0x61, 0x73, 0x73, 0x00, 0x00, 0x00,
2559
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2560
0x04, 0x5d, 0x88, 0x8a, 0xeb, 0x1c, 0xc9, 0x11,
2561
0x9f, 0xe8, 0x08, 0x00, 0x2b, 0x10, 0x48, 0x60,
2562
0x02, 0x00, 0x00, 0x00
2564
uint32_t bind_ack_len = sizeof(bind_ack);
2566
uint8_t request1[] = {
2567
0x05, 0x00, 0x00, 0x01, 0x10, 0x00, 0x00, 0x00,
2568
0x18, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2569
0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00,
2570
0xad, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2571
0xad, 0x0d, 0x00, 0x00, 0x91, 0xfc, 0x27, 0x40,
2572
0x4a, 0x97, 0x4a, 0x98, 0x4b, 0x41, 0x3f, 0x48,
2573
0x99, 0x90, 0xf8, 0x27, 0xfd, 0x3f, 0x27, 0x37,
2574
0x40, 0xd6, 0x27, 0xfc, 0x3f, 0x9f, 0x4f, 0xfd,
2575
0x42, 0x47, 0x47, 0x49, 0x3f, 0xf9, 0x9b, 0xd6,
2576
0x48, 0x37, 0x27, 0x46, 0x93, 0x49, 0xfd, 0x93,
2577
0x91, 0xfd, 0x93, 0x90, 0x92, 0x96, 0xf5, 0x92,
2578
0x4e, 0x91, 0x98, 0x46, 0x4f, 0x4b, 0x46, 0xf5,
2579
0xf5, 0xfd, 0x40, 0xf9, 0x9b, 0x40, 0x9f, 0x93,
2580
0x4e, 0xf8, 0x40, 0x40, 0x4e, 0xf5, 0x4b, 0x98,
2581
0xf5, 0x91, 0xd6, 0x42, 0x99, 0x96, 0x27, 0x49,
2582
0x48, 0x47, 0x4f, 0x46, 0x99, 0x4b, 0x92, 0x92,
2583
0x90, 0x47, 0x46, 0x4e, 0x43, 0x9b, 0x43, 0x42,
2584
0x3f, 0x4b, 0x27, 0x97, 0x93, 0xf9, 0x42, 0x9b,
2585
0x46, 0x9b, 0x4b, 0x98, 0x41, 0x98, 0x37, 0x41,
2586
0x9f, 0x98, 0x4e, 0x93, 0x48, 0x46, 0x46, 0x9f,
2587
0x97, 0x9b, 0x42, 0x37, 0x90, 0x46, 0xf9, 0x97,
2588
0x91, 0xf5, 0x4e, 0x97, 0x4e, 0x99, 0xf8, 0x99,
2589
0x41, 0xf5, 0x41, 0x9f, 0x49, 0xfd, 0x92, 0x96,
2590
0x3f, 0x3f, 0x42, 0x27, 0x27, 0x93, 0x47, 0x49,
2591
0x91, 0x27, 0x27, 0x40, 0x42, 0x99, 0x9f, 0xfc,
2592
0x97, 0x47, 0x99, 0x4a, 0xf9, 0x3f, 0x48, 0x91,
2593
0x47, 0x97, 0x91, 0x42, 0x4b, 0x9b, 0x4a, 0x48,
2594
0x9f, 0x43, 0x43, 0x40, 0x99, 0xf9, 0x48, 0x4e,
2595
0x92, 0x93, 0x92, 0x41, 0x46, 0x4b, 0x4a, 0x4a,
2596
0x49, 0x96, 0x4a, 0x4f, 0xf5, 0x42, 0x47, 0x98,
2597
0x9b, 0xf5, 0x91, 0xf9, 0xd6, 0x9b, 0x48, 0x4e,
2598
0x9f, 0x91, 0xd6, 0x93, 0x4b, 0x37, 0x3f, 0x43,
2599
0xf5, 0x41, 0x41, 0xf5, 0x37, 0x4f, 0x43, 0x92,
2600
0x97, 0x27, 0x93, 0x92, 0x46, 0x47, 0x4b, 0x96,
2601
0x41, 0x90, 0x90, 0x3f, 0x96, 0x27, 0x41, 0xd6,
2602
0xd6, 0xd6, 0xf9, 0xf8, 0x47, 0x27, 0x46, 0x37,
2603
0x41, 0x90, 0x91, 0xfc, 0x46, 0x41, 0x43, 0x97,
2604
0x9f, 0x4a, 0x49, 0x92, 0x41, 0x91, 0x41, 0x92,
2605
0x42, 0x4a, 0x3f, 0x93, 0x99, 0x9b, 0x9f, 0x4e,
2606
0x47, 0x93, 0xd6, 0x37, 0x37, 0x40, 0x98, 0xfd,
2607
0x41, 0x42, 0x97, 0x4e, 0x4e, 0x98, 0x9f, 0x4e,
2608
0x48, 0x3f, 0x48, 0x42, 0x96, 0x9f, 0x99, 0x4f,
2609
0x4e, 0x42, 0x97, 0xf9, 0x3f, 0x37, 0x27, 0x46,
2610
0x41, 0xf9, 0x92, 0x96, 0x41, 0x93, 0x91, 0x4b,
2611
0x96, 0x4f, 0x43, 0xfd, 0xf5, 0x9f, 0x43, 0x27,
2612
0x99, 0xd6, 0xf5, 0x4e, 0xfd, 0x97, 0x4b, 0x47,
2613
0x47, 0x92, 0x98, 0x4f, 0x47, 0x49, 0x37, 0x97,
2614
0x3f, 0x4e, 0x40, 0x46, 0x4e, 0x9f, 0x4e, 0x4e,
2615
0xfc, 0x41, 0x47, 0xf8, 0x37, 0x9b, 0x41, 0x4e,
2616
0x96, 0x99, 0x46, 0x99, 0x46, 0xf9, 0x4e, 0x4f,
2617
0x48, 0x97, 0x97, 0x93, 0xd6, 0x9b, 0x41, 0x40,
2618
0x97, 0x97, 0x4f, 0x92, 0x91, 0xd6, 0x96, 0x40,
2619
0x4f, 0x4b, 0x91, 0x46, 0x27, 0x92, 0x3f, 0xf5,
2620
0xfc, 0x3f, 0x91, 0x97, 0xf8, 0x43, 0x4e, 0xfd,
2621
0x9b, 0x27, 0xfd, 0x9b, 0xf5, 0x27, 0x47, 0x42,
2622
0x46, 0x93, 0x37, 0x93, 0x91, 0x91, 0x91, 0xf8,
2623
0x4f, 0x92, 0x4f, 0xf8, 0x93, 0xf5, 0x49, 0x91,
2624
0x4b, 0x3f, 0xfc, 0x37, 0x4f, 0x46, 0x98, 0x97,
2625
0x9f, 0x40, 0xfd, 0x9f, 0x98, 0xfd, 0x4e, 0x97,
2626
0x4f, 0x47, 0x91, 0x27, 0x4a, 0x90, 0x96, 0x40,
2627
0x98, 0x97, 0x41, 0x3f, 0xd6, 0xfd, 0x41, 0xfd,
2628
0x42, 0x97, 0x4b, 0x9b, 0x46, 0x4e, 0xfc, 0x96,
2629
0xf9, 0x37, 0x4b, 0x96, 0x9f, 0x9b, 0x42, 0x9f,
2630
0x93, 0x40, 0x42, 0x43, 0xf5, 0x93, 0x48, 0x3f,
2631
0x4b, 0xfd, 0x9f, 0x4b, 0x41, 0x4a, 0x90, 0x9b,
2632
0x46, 0x97, 0x98, 0x96, 0x9b, 0x98, 0x92, 0xd6,
2633
0x4e, 0x4a, 0x27, 0x90, 0x96, 0x99, 0x91, 0x46,
2634
0x49, 0x41, 0x4b, 0x90, 0x43, 0x91, 0xd6, 0x48,
2635
0x42, 0x90, 0x4f, 0x96, 0x43, 0x9b, 0xf9, 0x9b,
2636
0x9f, 0x9f, 0x27, 0x47, 0x4b, 0xf5, 0x43, 0x99,
2637
0x99, 0x91, 0x4e, 0x41, 0x42, 0x46, 0x97, 0x46,
2638
0x47, 0xf9, 0xf5, 0x48, 0x4a, 0xf8, 0x4e, 0xd6,
2639
0x43, 0x4a, 0x27, 0x9b, 0x42, 0x90, 0x46, 0x46,
2640
0x3f, 0x99, 0x96, 0x9b, 0x91, 0x9f, 0xf5, 0x48,
2641
0x43, 0x9f, 0x4a, 0x99, 0x96, 0xfd, 0x92, 0x49,
2642
0x46, 0x91, 0x40, 0xfd, 0x4a, 0x48, 0x4f, 0x90,
2643
0x91, 0x98, 0x48, 0x4b, 0x9f, 0x42, 0x27, 0x93,
2644
0x47, 0xf8, 0x4f, 0x48, 0x3f, 0x90, 0x47, 0x41,
2645
0xf5, 0xfc, 0x27, 0xf8, 0x97, 0x4a, 0x49, 0x37,
2646
0x40, 0x4f, 0x40, 0x37, 0x41, 0x27, 0x96, 0x37,
2647
0xfc, 0x42, 0xd6, 0x4b, 0x48, 0x37, 0x42, 0xf5,
2648
0x27, 0xf9, 0xd6, 0x48, 0x9b, 0xfd, 0x40, 0x96,
2649
0x4e, 0x43, 0xf8, 0x90, 0x40, 0x40, 0x49, 0x3f,
2650
0xfc, 0x4a, 0x42, 0x47, 0xf8, 0x49, 0x42, 0x97,
2651
0x4f, 0x91, 0xfd, 0x4b, 0x46, 0x4b, 0xfc, 0x48,
2652
0x49, 0x96, 0x4b, 0x96, 0x43, 0x9f, 0x90, 0x37,
2653
0xd6, 0x4a, 0xd6, 0x3f, 0xd6, 0x90, 0x49, 0x27,
2654
0x4e, 0x96, 0x96, 0xf8, 0x49, 0x96, 0xf8, 0x37,
2655
0x90, 0x4e, 0x4b, 0x4f, 0x99, 0xf8, 0x6a, 0x52,
2656
0x59, 0xd9, 0xee, 0xd9, 0x74, 0x24, 0xf4, 0x5b,
2657
0x81, 0x73, 0x13, 0x30, 0x50, 0xf0, 0x82, 0x83,
2658
0xeb, 0xfc, 0xe2, 0xf4, 0xb1, 0x94, 0x0f, 0x6d,
2659
0xcf, 0xaf, 0xb4, 0x7e, 0x5a, 0xbb, 0xbf, 0x6a,
2660
0xc9, 0xaf, 0x0f, 0x7d, 0x50, 0xdb, 0x9c, 0xa6,
2661
0x14, 0xdb, 0xb5, 0xbe, 0xbb, 0x2c, 0xf5, 0xfa,
2662
0x31, 0xbf, 0x7b, 0xcd, 0x28, 0xdb, 0xaf, 0xa2,
2663
0x31, 0xbb, 0x13, 0xb2, 0x79, 0xdb, 0xc4, 0x09,
2664
0x31, 0xbe, 0xc1, 0x42, 0xa9, 0xfc, 0x74, 0x42,
2665
0x44, 0x57, 0x31, 0x48, 0x3d, 0x51, 0x32, 0x69,
2666
0xc4, 0x6b, 0xa4, 0xa6, 0x18, 0x25, 0x13, 0x09,
2667
0x6f, 0x74, 0xf1, 0x69, 0x56, 0xdb, 0xfc, 0xc9,
2668
0xbb, 0x0f, 0xec, 0x83, 0xdb, 0x53, 0xdc, 0x09,
2669
0xb9, 0x3c, 0xd4, 0x9e, 0x51, 0x93, 0xc1, 0x42,
2670
0x54, 0xdb, 0xb0, 0xb2, 0xbb, 0x10, 0xfc, 0x09,
2671
0x40, 0x4c, 0x5d, 0x09, 0x70, 0x58, 0xae, 0xea,
2672
0xbe, 0x1e, 0xfe, 0x6e, 0x60, 0xaf, 0x26, 0xb3,
2673
0xeb, 0x36, 0xa3, 0xe4, 0x58, 0x63, 0xc2, 0xea,
2674
0x47, 0x23, 0xc2, 0xdd, 0x64, 0xaf, 0x20, 0xea,
2675
0xfb, 0xbd, 0x0c, 0xb9, 0x60, 0xaf, 0x26, 0xdd,
2676
0xb9, 0xb5, 0x96, 0x03, 0xdd, 0x58, 0xf2, 0xd7,
2677
0x5a, 0x52, 0x0f, 0x52, 0x58, 0x89, 0xf9, 0x77,
2678
0x9d, 0x07, 0x0f, 0x54, 0x63, 0x03, 0xa3, 0xd1,
2679
0x63, 0x13, 0xa3, 0xc1, 0x63, 0xaf, 0x20, 0xe4,
2680
0x58, 0x41, 0xac, 0xe4, 0x63, 0xd9, 0x11, 0x17,
2681
0x58, 0xf4, 0xea, 0xf2, 0xf7, 0x07, 0x0f, 0x54,
2682
0x5a, 0x40, 0xa1, 0xd7, 0xcf, 0x80, 0x98, 0x26,
2683
0x9d, 0x7e, 0x19, 0xd5, 0xcf, 0x86, 0xa3, 0xd7,
2684
0xcf, 0x80, 0x98, 0x67, 0x79, 0xd6, 0xb9, 0xd5,
2685
0xcf, 0x86, 0xa0, 0xd6, 0x64, 0x05, 0x0f, 0x52,
2686
0xa3, 0x38, 0x17, 0xfb, 0xf6, 0x29, 0xa7, 0x7d,
2687
0xe6, 0x05, 0x0f, 0x52, 0x56, 0x3a, 0x94, 0xe4,
2688
0x58, 0x33, 0x9d, 0x0b, 0xd5, 0x3a, 0xa0, 0xdb,
2689
0x19, 0x9c, 0x79, 0x65, 0x5a, 0x14, 0x79, 0x60,
2690
0x01, 0x90, 0x03, 0x28, 0xce, 0x12, 0xdd, 0x7c,
2691
0x72, 0x7c, 0x63, 0x0f, 0x4a, 0x68, 0x5b, 0x29,
2692
0x9b, 0x38, 0x82, 0x7c, 0x83, 0x46, 0x0f, 0xf7,
2693
0x74, 0xaf, 0x26, 0xd9, 0x67, 0x02, 0xa1, 0xd3,
2694
0x61, 0x3a, 0xf1, 0xd3, 0x61, 0x05, 0xa1, 0x7d,
2695
0xe0, 0x38, 0x5d, 0x5b, 0x35, 0x9e, 0xa3, 0x7d,
2696
0xe6, 0x3a, 0x0f, 0x7d, 0x07, 0xaf, 0x20, 0x09,
2697
0x67, 0xac, 0x73, 0x46, 0x54, 0xaf, 0x26, 0xd0
2699
uint32_t request1_len = sizeof(request1);
2701
uint8_t request2[] = {
2702
0x05, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
2703
0x18, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2704
0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00,
2705
0xcf, 0x80, 0x98, 0x6d, 0xfe, 0xb0, 0x90, 0xd1,
2706
0xcf, 0x86, 0x0f, 0x52, 0x2c, 0x23, 0x66, 0x28,
2707
0x27, 0x30, 0x48, 0x55, 0x42, 0x6a, 0x48, 0x4b,
2708
0x68, 0x22, 0x2e, 0x23, 0x64, 0x33, 0x2c, 0x2d,
2709
0x5c, 0x51, 0x48, 0x55, 0x24, 0x67, 0x6c, 0x4c,
2710
0x45, 0x71, 0x35, 0x72, 0x5a, 0x48, 0x5e, 0x35,
2711
0x61, 0x78, 0x35, 0x42, 0x2c, 0x7a, 0x75, 0x61,
2712
0x5b, 0x4e, 0x76, 0x30, 0x26, 0x2f, 0x2a, 0x34,
2713
0x48, 0x29, 0x25, 0x6e, 0x5c, 0x3a, 0x6c, 0x3e,
2714
0x79, 0x4e, 0x2a, 0x21, 0x6f, 0x6f, 0x34, 0x46,
2715
0x43, 0x26, 0x5b, 0x35, 0x78, 0x27, 0x69, 0x23,
2716
0x72, 0x21, 0x69, 0x56, 0x6a, 0x7d, 0x4b, 0x5e,
2717
0x65, 0x37, 0x60, 0x44, 0x7c, 0x5d, 0x5b, 0x72,
2718
0x7d, 0x73, 0x7b, 0x47, 0x57, 0x21, 0x41, 0x38,
2719
0x76, 0x38, 0x76, 0x5c, 0x58, 0x32, 0x4a, 0x37,
2720
0x2f, 0x40, 0x4b, 0x4c, 0x3d, 0x41, 0x33, 0x56,
2721
0x73, 0x38, 0x61, 0x71, 0x24, 0x49, 0x4c, 0x4a,
2722
0x44, 0x2e, 0x3a, 0x3f, 0x74, 0x54, 0x4c, 0x65,
2723
0x54, 0x2d, 0x3b, 0x28, 0x41, 0x45, 0x49, 0x2c,
2724
0x6e, 0x48, 0x44, 0x43, 0x37, 0x3d, 0x7b, 0x6d,
2725
0x2b, 0x4b, 0x32, 0x5a, 0x31, 0x61, 0x6e, 0x2b,
2726
0x27, 0x50, 0x6b, 0x66, 0x76, 0x4e, 0x55, 0x35,
2727
0x2b, 0x72, 0x2d, 0x5e, 0x42, 0x3e, 0x5a, 0x5d,
2728
0x36, 0x45, 0x32, 0x3a, 0x58, 0x78, 0x78, 0x3e,
2729
0x60, 0x6c, 0x5d, 0x63, 0x41, 0x7c, 0x52, 0x21,
2730
0x75, 0x6a, 0x5a, 0x70, 0x55, 0x45, 0x76, 0x58,
2731
0x33, 0x40, 0x38, 0x39, 0x21, 0x37, 0x7d, 0x77,
2732
0x21, 0x70, 0x2b, 0x72, 0x29, 0x6a, 0x31, 0x5f,
2733
0x38, 0x4a, 0x66, 0x65, 0x62, 0x2c, 0x39, 0x52,
2734
0x5f, 0x2a, 0x2b, 0x63, 0x4f, 0x76, 0x43, 0x25,
2735
0x6a, 0x50, 0x37, 0x52, 0x5e, 0x23, 0x3c, 0x42,
2736
0x28, 0x75, 0x75, 0x42, 0x25, 0x23, 0x28, 0x56,
2737
0x6c, 0x46, 0x5c, 0x5e, 0x6b, 0x7d, 0x48, 0x24,
2738
0x77, 0x6c, 0x70, 0x62, 0x2e, 0x28, 0x7d, 0x6b,
2739
0x69, 0x4a, 0x75, 0x3d, 0x5d, 0x56, 0x21, 0x49,
2740
0x56, 0x47, 0x64, 0x2b, 0x4c, 0x52, 0x43, 0x60,
2741
0x77, 0x49, 0x46, 0x46, 0x33, 0x2c, 0x4b, 0x4b,
2742
0x3d, 0x63, 0x5d, 0x33, 0x78, 0x76, 0x51, 0x56,
2743
0x77, 0x3c, 0x72, 0x74, 0x52, 0x27, 0x40, 0x6c,
2744
0x42, 0x79, 0x49, 0x24, 0x62, 0x5e, 0x26, 0x31,
2745
0x5c, 0x22, 0x2b, 0x4c, 0x64, 0x49, 0x52, 0x45,
2746
0x47, 0x49, 0x3a, 0x2a, 0x51, 0x71, 0x22, 0x22,
2747
0x70, 0x24, 0x34, 0x67, 0x4b, 0x6d, 0x58, 0x29,
2748
0x63, 0x26, 0x7b, 0x6f, 0x38, 0x78, 0x25, 0x62,
2749
0x4d, 0x3a, 0x7d, 0x40, 0x23, 0x57, 0x67, 0x33,
2750
0x38, 0x31, 0x4e, 0x54, 0x3c, 0x4b, 0x48, 0x69,
2751
0x3c, 0x39, 0x31, 0x2b, 0x26, 0x70, 0x44, 0x66,
2752
0x4a, 0x37, 0x2b, 0x75, 0x36, 0x45, 0x59, 0x34,
2753
0x3e, 0x3e, 0x29, 0x70, 0x71, 0x5a, 0x55, 0x49,
2754
0x3e, 0x4b, 0x68, 0x4e, 0x75, 0x70, 0x3c, 0x5c,
2755
0x50, 0x58, 0x28, 0x75, 0x3c, 0x2a, 0x41, 0x70,
2756
0x2f, 0x2b, 0x37, 0x26, 0x75, 0x71, 0x55, 0x22,
2757
0x3a, 0x44, 0x30, 0x48, 0x5d, 0x2f, 0x6c, 0x44,
2758
0x28, 0x4b, 0x34, 0x45, 0x21, 0x60, 0x44, 0x36,
2759
0x7b, 0x32, 0x39, 0x5f, 0x6d, 0x3f, 0x68, 0x73,
2760
0x25, 0x45, 0x56, 0x7c, 0x78, 0x7a, 0x49, 0x6a,
2761
0x46, 0x3d, 0x2d, 0x33, 0x6c, 0x6f, 0x23, 0x77,
2762
0x38, 0x33, 0x36, 0x74, 0x7b, 0x57, 0x4b, 0x6d,
2763
0x27, 0x75, 0x24, 0x6e, 0x43, 0x61, 0x4d, 0x44,
2764
0x6d, 0x27, 0x48, 0x58, 0x5e, 0x7b, 0x26, 0x6a,
2765
0x50, 0x7c, 0x51, 0x23, 0x3c, 0x4f, 0x37, 0x4c,
2766
0x47, 0x3e, 0x45, 0x56, 0x22, 0x33, 0x7c, 0x66,
2767
0x35, 0x54, 0x7a, 0x6e, 0x5a, 0x24, 0x70, 0x62,
2768
0x29, 0x3f, 0x69, 0x79, 0x24, 0x43, 0x41, 0x24,
2769
0x65, 0x25, 0x62, 0x4f, 0x73, 0x3e, 0x2b, 0x36,
2770
0x46, 0x69, 0x27, 0x55, 0x2a, 0x6e, 0x24, 0x6c,
2771
0x7d, 0x64, 0x7c, 0x61, 0x26, 0x67, 0x2a, 0x53,
2772
0x73, 0x60, 0x28, 0x2d, 0x6b, 0x44, 0x54, 0x61,
2773
0x34, 0x53, 0x22, 0x59, 0x6d, 0x73, 0x56, 0x55,
2774
0x25, 0x2c, 0x38, 0x4a, 0x3b, 0x4e, 0x78, 0x46,
2775
0x54, 0x6e, 0x6d, 0x4f, 0x47, 0x4f, 0x4f, 0x5a,
2776
0x67, 0x77, 0x39, 0x66, 0x28, 0x29, 0x4e, 0x43,
2777
0x55, 0x6e, 0x60, 0x59, 0x28, 0x3b, 0x65, 0x62,
2778
0x61, 0x5a, 0x29, 0x6e, 0x79, 0x60, 0x41, 0x53,
2779
0x2f, 0x5d, 0x44, 0x36, 0x7b, 0x3e, 0x7c, 0x2b,
2780
0x77, 0x36, 0x70, 0x3f, 0x40, 0x55, 0x48, 0x67,
2781
0x4b, 0x4d, 0x5d, 0x51, 0x79, 0x76, 0x48, 0x4a,
2782
0x2d, 0x21, 0x60, 0x40, 0x46, 0x55, 0x7a, 0x60,
2783
0x22, 0x25, 0x3f, 0x4b, 0x54, 0x6a, 0x6a, 0x3c,
2784
0x77, 0x22, 0x5b, 0x43, 0x67, 0x58, 0x71, 0x22,
2785
0x79, 0x4b, 0x32, 0x61, 0x44, 0x4d, 0x6f, 0x42,
2786
0x33, 0x2d, 0x53, 0x35, 0x3d, 0x6f, 0x57, 0x48,
2787
0x33, 0x3b, 0x5a, 0x53, 0x3f, 0x4e, 0x3f, 0x6b,
2788
0x4c, 0x27, 0x26, 0x3b, 0x73, 0x49, 0x22, 0x55,
2789
0x79, 0x2f, 0x47, 0x2f, 0x55, 0x5a, 0x7a, 0x71,
2790
0x6c, 0x31, 0x43, 0x40, 0x56, 0x7b, 0x21, 0x7a,
2791
0x6d, 0x4c, 0x43, 0x5e, 0x38, 0x47, 0x29, 0x38,
2792
0x62, 0x49, 0x45, 0x78, 0x70, 0x2b, 0x2e, 0x65,
2793
0x47, 0x71, 0x58, 0x79, 0x39, 0x67, 0x7d, 0x6d,
2794
0x6a, 0x67, 0x4a, 0x71, 0x27, 0x35, 0x2a, 0x4c,
2795
0x3e, 0x58, 0x55, 0x30, 0x4d, 0x75, 0x77, 0x48,
2796
0x5f, 0x4b, 0x59, 0x34, 0x65, 0x68, 0x57, 0x59,
2797
0x63, 0x23, 0x47, 0x38, 0x47, 0x5e, 0x56, 0x28,
2798
0x79, 0x58, 0x3e, 0x39, 0x66, 0x77, 0x67, 0x33,
2799
0x29, 0x61, 0x24, 0x7d, 0x37, 0x44, 0x37, 0x67,
2800
0x3a, 0x58, 0x76, 0x21, 0x51, 0x59, 0x61, 0x73,
2801
0x66, 0x75, 0x71, 0x53, 0x4d, 0x24, 0x2d, 0x4b,
2802
0x29, 0x30, 0x32, 0x26, 0x59, 0x64, 0x27, 0x55,
2803
0x2c, 0x5a, 0x4c, 0x3c, 0x6c, 0x53, 0x56, 0x4b,
2804
0x3e, 0x55, 0x2e, 0x44, 0x38, 0x6b, 0x47, 0x76,
2805
0x2d, 0x2c, 0x3f, 0x4d, 0x22, 0x7b, 0x6d, 0x61,
2806
0x34, 0x6b, 0x50, 0x73, 0x28, 0x6d, 0x41, 0x71,
2807
0x21, 0x76, 0x52, 0x2a, 0x6d, 0x53, 0x2a, 0x74,
2808
0x28, 0x27, 0x62, 0x2a, 0x66, 0x25, 0x6e, 0x5e,
2809
0x37, 0x4f, 0x27, 0x72, 0x28, 0x47, 0x63, 0x6e,
2810
0x5a, 0x6a, 0x41, 0x35, 0x3a, 0x42, 0x3f, 0x27,
2811
0x75, 0x3e, 0x26, 0x3e, 0x6b, 0x55, 0x59, 0x60,
2812
0x24, 0x70, 0x49, 0x3c, 0x4e, 0x2c, 0x39, 0x7a,
2813
0x36, 0x6c, 0x27, 0x3e, 0x6a, 0x4a, 0x59, 0x5a,
2814
0x3e, 0x21, 0x73, 0x4e, 0x59, 0x6e, 0x3d, 0x32,
2815
0x27, 0x45, 0x49, 0x58, 0x7d, 0x37, 0x39, 0x77,
2816
0x28, 0x51, 0x79, 0x54, 0x2b, 0x78, 0x46, 0x5a,
2817
0x21, 0x75, 0x33, 0x21, 0x63, 0x5a, 0x7b, 0x3e,
2818
0x33, 0x4f, 0x67, 0x75, 0x3a, 0x50, 0x48, 0x60,
2819
0x26, 0x64, 0x76, 0x5c, 0x42, 0x5c, 0x72, 0x38,
2820
0x6c, 0x52, 0x21, 0x2b, 0x25, 0x6b, 0x7c, 0x6b,
2821
0x2d, 0x5e, 0x63, 0x2a, 0x4c, 0x26, 0x5b, 0x4c,
2822
0x58, 0x52, 0x51, 0x55, 0x31, 0x79, 0x6c, 0x53,
2823
0x62, 0x3a, 0x36, 0x46, 0x7a, 0x29, 0x27, 0x78,
2824
0x1a, 0xbf, 0x49, 0x74, 0x68, 0x24, 0x51, 0x44,
2825
0x5b, 0x3e, 0x34, 0x44, 0x29, 0x5e, 0x4f, 0x2a,
2826
0xe9, 0x3f, 0xf8, 0xff, 0xff, 0x52, 0x7d, 0x47,
2827
0x67, 0x40, 0x27, 0x5e, 0x47, 0x46, 0x6d, 0x72,
2828
0x5d, 0x49, 0x26, 0x45, 0x33, 0x6b, 0x4d, 0x4a,
2829
0x6f, 0x62, 0x60, 0x45, 0x62, 0x27, 0x27, 0x7d,
2830
0x6a, 0x41, 0x2c, 0x6c, 0x5b, 0x2a, 0x2b, 0x36,
2831
0x29, 0x58, 0x7a, 0x4c, 0x6e, 0x2d, 0x74, 0x5c,
2832
0x38, 0x22, 0x5f, 0x49, 0x63, 0x43, 0x5b, 0x67
2834
uint32_t request2_len = sizeof(request2);
2840
DetectEngineCtx *de_ctx = NULL;
2841
DetectEngineThreadCtx *det_ctx = NULL;
2846
char *sig1 = "alert tcp any any -> any any "
2847
"(dce_iface:3919286a-b10c-11d0-9ba8-00c04fd92ef4; "
2849
char *sig2 = "alert tcp any any -> any any (dce_stub_data; "
2850
"content:|2d 5e 63 2a 4c|; sid:2;)";
2854
memset(&tv, 0, sizeof(ThreadVars));
2855
memset(&f, 0, sizeof(Flow));
2856
memset(&ssn, 0, sizeof(TcpSession));
2858
for (i = 0; i < 4; i++) {
2859
memset(&p[i], 0, sizeof(Packet));
2860
p[i].src.family = AF_INET;
2861
p[i].dst.family = AF_INET;
2862
p[i].payload = NULL;
2863
p[i].payload_len = 0;
2864
p[i].proto = IPPROTO_TCP;
2866
p[i].flowflags |= FLOW_PKT_TOSERVER;
2867
p[i].flowflags |= FLOW_PKT_ESTABLISHED;
2869
p[1].flowflags |= FLOW_PKT_TOCLIENT;
2871
FLOW_INITIALIZE(&f);
2872
f.protoctx = (void *)&ssn;
2873
f.src.family = AF_INET;
2874
f.dst.family = AF_INET;
2875
f.alproto = ALPROTO_DCERPC;
2877
StreamTcpInitConfig(TRUE);
2878
FlowL7DataPtrInit(&f);
2880
de_ctx = DetectEngineCtxInit();
2883
de_ctx->flags |= DE_QUIET;
2885
de_ctx->sig_list = SigInit(de_ctx, sig1);
2886
s = de_ctx->sig_list;
2890
s->next = SigInit(de_ctx, sig2);
2895
SigGroupBuild(de_ctx);
2896
DetectEngineThreadCtxInit(&tv, (void *)de_ctx, (void *)&det_ctx);
2898
r = AppLayerParse(&f, ALPROTO_DCERPC, STREAM_TOSERVER, bind, bind_len);
2900
printf("toserver chunk 1 returned %" PRId32 ", expected 0: ", r);
2904
/* detection phase */
2905
SigMatchSignatures(&tv, de_ctx, det_ctx, &p[0]);
2906
if ((PacketAlertCheck(&p[0], 1))) {
2907
printf("sid 1 matched but shouldn't have for packet 0: ");
2910
if ((PacketAlertCheck(&p[0], 2))) {
2911
printf("sid 2 matched but shouldn't have for packet 0: ");
2915
r = AppLayerParse(&f, ALPROTO_DCERPC, STREAM_TOCLIENT, bind_ack, bind_ack_len);
2917
printf("toserver chunk 1 returned %" PRId32 ", expected 0: ", r);
2921
/* detection phase */
2922
SigMatchSignatures(&tv, de_ctx, det_ctx, &p[1]);
2923
if ((PacketAlertCheck(&p[1], 1))) {
2924
printf("sid 1 matched but shouldn't have for packet 1: ");
2927
if ((PacketAlertCheck(&p[1], 2))) {
2928
printf("sid 2 matched but shouldn't have for packet 1: ");
2932
r = AppLayerParse(&f, ALPROTO_DCERPC, STREAM_TOSERVER, request1, request1_len);
2934
printf("toserver chunk 1 returned %" PRId32 ", expected 0: ", r);
2938
/* detection phase */
2939
SigMatchSignatures(&tv, de_ctx, det_ctx, &p[2]);
2940
if ((PacketAlertCheck(&p[2], 1))) {
2941
printf("sid 1 matched but shouldn't have for packet 2: ");
2944
if ((PacketAlertCheck(&p[2], 2))) {
2945
printf("sid 2 matched but shouldn't have for packet 2: ");
2949
r = AppLayerParse(&f, ALPROTO_DCERPC, STREAM_TOSERVER, request2, request2_len);
2951
printf("toserver chunk 1 returned %" PRId32 ", expected 0: ", r);
2955
/* detection phase */
2956
SigMatchSignatures(&tv, de_ctx, det_ctx, &p[3]);
2957
if ((PacketAlertCheck(&p[3], 1))) {
2958
printf("sid 1 matched but shouldn't have for packet 3: ");
2961
if (!(PacketAlertCheck(&p[3], 2))) {
2962
printf("sid 2 didn't match but should have for packet 3: ");
2969
if (de_ctx != NULL) {
2970
SigGroupCleanup(de_ctx);
2971
SigCleanSignatures(de_ctx);
2973
DetectEngineThreadCtxDeinit(&tv, (void *)det_ctx);
2974
DetectEngineCtxFree(de_ctx);
2977
FlowL7DataPtrFree(&f);
2978
StreamTcpFreeConfig(TRUE);
2984
* \test Test the working of detection engien with respect to dce keywords.
2986
int DcePayloadTest04(void)
2990
0x05, 0x00, 0x0b, 0x03, 0x10, 0x00, 0x00, 0x00,
2991
0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2992
0xd0, 0x16, 0xd0, 0x16, 0x00, 0x00, 0x00, 0x00,
2993
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
2994
0x6a, 0x28, 0x19, 0x39, 0x0c, 0xb1, 0xd0, 0x11,
2995
0x9b, 0xa8, 0x00, 0xc0, 0x4f, 0xd9, 0x2e, 0xf5,
2996
0x00, 0x00, 0x00, 0x00, 0x04, 0x5d, 0x88, 0x8a,
2997
0xeb, 0x1c, 0xc9, 0x11, 0x9f, 0xe8, 0x08, 0x00,
2998
0x2b, 0x10, 0x48, 0x60, 0x02, 0x00, 0x00, 0x00
3000
uint32_t bind_len = sizeof(bind);
3002
uint8_t bind_ack[] = {
3003
0x05, 0x00, 0x0c, 0x03, 0x10, 0x00, 0x00, 0x00,
3004
0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
3005
0xb8, 0x10, 0xb8, 0x10, 0x48, 0x1a, 0x00, 0x00,
3006
0x0c, 0x00, 0x5c, 0x50, 0x49, 0x50, 0x45, 0x5c,
3007
0x6c, 0x73, 0x61, 0x73, 0x73, 0x00, 0x00, 0x00,
3008
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
3009
0x04, 0x5d, 0x88, 0x8a, 0xeb, 0x1c, 0xc9, 0x11,
3010
0x9f, 0xe8, 0x08, 0x00, 0x2b, 0x10, 0x48, 0x60,
3011
0x02, 0x00, 0x00, 0x00
3013
uint32_t bind_ack_len = sizeof(bind_ack);
3015
uint8_t request1[] = {
3016
0x05, 0x00, 0x00, 0x01, 0x10, 0x00, 0x00, 0x00,
3017
0x18, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
3018
0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00,
3019
0xad, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
3020
0xad, 0x0d, 0x00, 0x00, 0x91, 0xfc, 0x27, 0x40,
3021
0x4a, 0x97, 0x4a, 0x98, 0x4b, 0x41, 0x3f, 0x48,
3022
0x99, 0x90, 0xf8, 0x27, 0xfd, 0x3f, 0x27, 0x37,
3023
0x40, 0xd6, 0x27, 0xfc, 0x3f, 0x9f, 0x4f, 0xfd,
3024
0x42, 0x47, 0x47, 0x49, 0x3f, 0xf9, 0x9b, 0xd6,
3025
0x48, 0x37, 0x27, 0x46, 0x93, 0x49, 0xfd, 0x93,
3026
0x91, 0xfd, 0x93, 0x90, 0x92, 0x96, 0xf5, 0x92,
3027
0x4e, 0x91, 0x98, 0x46, 0x4f, 0x4b, 0x46, 0xf5,
3028
0xf5, 0xfd, 0x40, 0xf9, 0x9b, 0x40, 0x9f, 0x93,
3029
0x4e, 0xf8, 0x40, 0x40, 0x4e, 0xf5, 0x4b, 0x98,
3030
0xf5, 0x91, 0xd6, 0x42, 0x99, 0x96, 0x27, 0x49,
3031
0x48, 0x47, 0x4f, 0x46, 0x99, 0x4b, 0x92, 0x92,
3032
0x90, 0x47, 0x46, 0x4e, 0x43, 0x9b, 0x43, 0x42,
3033
0x3f, 0x4b, 0x27, 0x97, 0x93, 0xf9, 0x42, 0x9b,
3034
0x46, 0x9b, 0x4b, 0x98, 0x41, 0x98, 0x37, 0x41,
3035
0x9f, 0x98, 0x4e, 0x93, 0x48, 0x46, 0x46, 0x9f,
3036
0x97, 0x9b, 0x42, 0x37, 0x90, 0x46, 0xf9, 0x97,
3037
0x91, 0xf5, 0x4e, 0x97, 0x4e, 0x99, 0xf8, 0x99,
3038
0x41, 0xf5, 0x41, 0x9f, 0x49, 0xfd, 0x92, 0x96,
3039
0x3f, 0x3f, 0x42, 0x27, 0x27, 0x93, 0x47, 0x49,
3040
0x91, 0x27, 0x27, 0x40, 0x42, 0x99, 0x9f, 0xfc,
3041
0x97, 0x47, 0x99, 0x4a, 0xf9, 0x3f, 0x48, 0x91,
3042
0x47, 0x97, 0x91, 0x42, 0x4b, 0x9b, 0x4a, 0x48,
3043
0x9f, 0x43, 0x43, 0x40, 0x99, 0xf9, 0x48, 0x4e,
3044
0x92, 0x93, 0x92, 0x41, 0x46, 0x4b, 0x4a, 0x4a,
3045
0x49, 0x96, 0x4a, 0x4f, 0xf5, 0x42, 0x47, 0x98,
3046
0x9b, 0xf5, 0x91, 0xf9, 0xd6, 0x9b, 0x48, 0x4e,
3047
0x9f, 0x91, 0xd6, 0x93, 0x4b, 0x37, 0x3f, 0x43,
3048
0xf5, 0x41, 0x41, 0xf5, 0x37, 0x4f, 0x43, 0x92,
3049
0x97, 0x27, 0x93, 0x92, 0x46, 0x47, 0x4b, 0x96,
3050
0x41, 0x90, 0x90, 0x3f, 0x96, 0x27, 0x41, 0xd6,
3051
0xd6, 0xd6, 0xf9, 0xf8, 0x47, 0x27, 0x46, 0x37,
3052
0x41, 0x90, 0x91, 0xfc, 0x46, 0x41, 0x43, 0x97,
3053
0x9f, 0x4a, 0x49, 0x92, 0x41, 0x91, 0x41, 0x92,
3054
0x42, 0x4a, 0x3f, 0x93, 0x99, 0x9b, 0x9f, 0x4e,
3055
0x47, 0x93, 0xd6, 0x37, 0x37, 0x40, 0x98, 0xfd,
3056
0x41, 0x42, 0x97, 0x4e, 0x4e, 0x98, 0x9f, 0x4e,
3057
0x48, 0x3f, 0x48, 0x42, 0x96, 0x9f, 0x99, 0x4f,
3058
0x4e, 0x42, 0x97, 0xf9, 0x3f, 0x37, 0x27, 0x46,
3059
0x41, 0xf9, 0x92, 0x96, 0x41, 0x93, 0x91, 0x4b,
3060
0x96, 0x4f, 0x43, 0xfd, 0xf5, 0x9f, 0x43, 0x27,
3061
0x99, 0xd6, 0xf5, 0x4e, 0xfd, 0x97, 0x4b, 0x47,
3062
0x47, 0x92, 0x98, 0x4f, 0x47, 0x49, 0x37, 0x97,
3063
0x3f, 0x4e, 0x40, 0x46, 0x4e, 0x9f, 0x4e, 0x4e,
3064
0xfc, 0x41, 0x47, 0xf8, 0x37, 0x9b, 0x41, 0x4e,
3065
0x96, 0x99, 0x46, 0x99, 0x46, 0xf9, 0x4e, 0x4f,
3066
0x48, 0x97, 0x97, 0x93, 0xd6, 0x9b, 0x41, 0x40,
3067
0x97, 0x97, 0x4f, 0x92, 0x91, 0xd6, 0x96, 0x40,
3068
0x4f, 0x4b, 0x91, 0x46, 0x27, 0x92, 0x3f, 0xf5,
3069
0xfc, 0x3f, 0x91, 0x97, 0xf8, 0x43, 0x4e, 0xfd,
3070
0x9b, 0x27, 0xfd, 0x9b, 0xf5, 0x27, 0x47, 0x42,
3071
0x46, 0x93, 0x37, 0x93, 0x91, 0x91, 0x91, 0xf8,
3072
0x4f, 0x92, 0x4f, 0xf8, 0x93, 0xf5, 0x49, 0x91,
3073
0x4b, 0x3f, 0xfc, 0x37, 0x4f, 0x46, 0x98, 0x97,
3074
0x9f, 0x40, 0xfd, 0x9f, 0x98, 0xfd, 0x4e, 0x97,
3075
0x4f, 0x47, 0x91, 0x27, 0x4a, 0x90, 0x96, 0x40,
3076
0x98, 0x97, 0x41, 0x3f, 0xd6, 0xfd, 0x41, 0xfd,
3077
0x42, 0x97, 0x4b, 0x9b, 0x46, 0x4e, 0xfc, 0x96,
3078
0xf9, 0x37, 0x4b, 0x96, 0x9f, 0x9b, 0x42, 0x9f,
3079
0x93, 0x40, 0x42, 0x43, 0xf5, 0x93, 0x48, 0x3f,
3080
0x4b, 0xfd, 0x9f, 0x4b, 0x41, 0x4a, 0x90, 0x9b,
3081
0x46, 0x97, 0x98, 0x96, 0x9b, 0x98, 0x92, 0xd6,
3082
0x4e, 0x4a, 0x27, 0x90, 0x96, 0x99, 0x91, 0x46,
3083
0x49, 0x41, 0x4b, 0x90, 0x43, 0x91, 0xd6, 0x48,
3084
0x42, 0x90, 0x4f, 0x96, 0x43, 0x9b, 0xf9, 0x9b,
3085
0x9f, 0x9f, 0x27, 0x47, 0x4b, 0xf5, 0x43, 0x99,
3086
0x99, 0x91, 0x4e, 0x41, 0x42, 0x46, 0x97, 0x46,
3087
0x47, 0xf9, 0xf5, 0x48, 0x4a, 0xf8, 0x4e, 0xd6,
3088
0x43, 0x4a, 0x27, 0x9b, 0x42, 0x90, 0x46, 0x46,
3089
0x3f, 0x99, 0x96, 0x9b, 0x91, 0x9f, 0xf5, 0x48,
3090
0x43, 0x9f, 0x4a, 0x99, 0x96, 0xfd, 0x92, 0x49,
3091
0x46, 0x91, 0x40, 0xfd, 0x4a, 0x48, 0x4f, 0x90,
3092
0x91, 0x98, 0x48, 0x4b, 0x9f, 0x42, 0x27, 0x93,
3093
0x47, 0xf8, 0x4f, 0x48, 0x3f, 0x90, 0x47, 0x41,
3094
0xf5, 0xfc, 0x27, 0xf8, 0x97, 0x4a, 0x49, 0x37,
3095
0x40, 0x4f, 0x40, 0x37, 0x41, 0x27, 0x96, 0x37,
3096
0xfc, 0x42, 0xd6, 0x4b, 0x48, 0x37, 0x42, 0xf5,
3097
0x27, 0xf9, 0xd6, 0x48, 0x9b, 0xfd, 0x40, 0x96,
3098
0x4e, 0x43, 0xf8, 0x90, 0x40, 0x40, 0x49, 0x3f,
3099
0xfc, 0x4a, 0x42, 0x47, 0xf8, 0x49, 0x42, 0x97,
3100
0x4f, 0x91, 0xfd, 0x4b, 0x46, 0x4b, 0xfc, 0x48,
3101
0x49, 0x96, 0x4b, 0x96, 0x43, 0x9f, 0x90, 0x37,
3102
0xd6, 0x4a, 0xd6, 0x3f, 0xd6, 0x90, 0x49, 0x27,
3103
0x4e, 0x96, 0x96, 0xf8, 0x49, 0x96, 0xf8, 0x37,
3104
0x90, 0x4e, 0x4b, 0x4f, 0x99, 0xf8, 0x6a, 0x52,
3105
0x59, 0xd9, 0xee, 0xd9, 0x74, 0x24, 0xf4, 0x5b,
3106
0x81, 0x73, 0x13, 0x30, 0x50, 0xf0, 0x82, 0x83,
3107
0xeb, 0xfc, 0xe2, 0xf4, 0xb1, 0x94, 0x0f, 0x6d,
3108
0xcf, 0xaf, 0xb4, 0x7e, 0x5a, 0xbb, 0xbf, 0x6a,
3109
0xc9, 0xaf, 0x0f, 0x7d, 0x50, 0xdb, 0x9c, 0xa6,
3110
0x14, 0xdb, 0xb5, 0xbe, 0xbb, 0x2c, 0xf5, 0xfa,
3111
0x31, 0xbf, 0x7b, 0xcd, 0x28, 0xdb, 0xaf, 0xa2,
3112
0x31, 0xbb, 0x13, 0xb2, 0x79, 0xdb, 0xc4, 0x09,
3113
0x31, 0xbe, 0xc1, 0x42, 0xa9, 0xfc, 0x74, 0x42,
3114
0x44, 0x57, 0x31, 0x48, 0x3d, 0x51, 0x32, 0x69,
3115
0xc4, 0x6b, 0xa4, 0xa6, 0x18, 0x25, 0x13, 0x09,
3116
0x6f, 0x74, 0xf1, 0x69, 0x56, 0xdb, 0xfc, 0xc9,
3117
0xbb, 0x0f, 0xec, 0x83, 0xdb, 0x53, 0xdc, 0x09,
3118
0xb9, 0x3c, 0xd4, 0x9e, 0x51, 0x93, 0xc1, 0x42,
3119
0x54, 0xdb, 0xb0, 0xb2, 0xbb, 0x10, 0xfc, 0x09,
3120
0x40, 0x4c, 0x5d, 0x09, 0x70, 0x58, 0xae, 0xea,
3121
0xbe, 0x1e, 0xfe, 0x6e, 0x60, 0xaf, 0x26, 0xb3,
3122
0xeb, 0x36, 0xa3, 0xe4, 0x58, 0x63, 0xc2, 0xea,
3123
0x47, 0x23, 0xc2, 0xdd, 0x64, 0xaf, 0x20, 0xea,
3124
0xfb, 0xbd, 0x0c, 0xb9, 0x60, 0xaf, 0x26, 0xdd,
3125
0xb9, 0xb5, 0x96, 0x03, 0xdd, 0x58, 0xf2, 0xd7,
3126
0x5a, 0x52, 0x0f, 0x52, 0x58, 0x89, 0xf9, 0x77,
3127
0x9d, 0x07, 0x0f, 0x54, 0x63, 0x03, 0xa3, 0xd1,
3128
0x63, 0x13, 0xa3, 0xc1, 0x63, 0xaf, 0x20, 0xe4,
3129
0x58, 0x41, 0xac, 0xe4, 0x63, 0xd9, 0x11, 0x17,
3130
0x58, 0xf4, 0xea, 0xf2, 0xf7, 0x07, 0x0f, 0x54,
3131
0x5a, 0x40, 0xa1, 0xd7, 0xcf, 0x80, 0x98, 0x26,
3132
0x9d, 0x7e, 0x19, 0xd5, 0xcf, 0x86, 0xa3, 0xd7,
3133
0xcf, 0x80, 0x98, 0x67, 0x79, 0xd6, 0xb9, 0xd5,
3134
0xcf, 0x86, 0xa0, 0xd6, 0x64, 0x05, 0x0f, 0x52,
3135
0xa3, 0x38, 0x17, 0xfb, 0xf6, 0x29, 0xa7, 0x7d,
3136
0xe6, 0x05, 0x0f, 0x52, 0x56, 0x3a, 0x94, 0xe4,
3137
0x58, 0x33, 0x9d, 0x0b, 0xd5, 0x3a, 0xa0, 0xdb,
3138
0x19, 0x9c, 0x79, 0x65, 0x5a, 0x14, 0x79, 0x60,
3139
0x01, 0x90, 0x03, 0x28, 0xce, 0x12, 0xdd, 0x7c,
3140
0x72, 0x7c, 0x63, 0x0f, 0x4a, 0x68, 0x5b, 0x29,
3141
0x9b, 0x38, 0x82, 0x7c, 0x83, 0x46, 0x0f, 0xf7,
3142
0x74, 0xaf, 0x26, 0xd9, 0x67, 0x02, 0xa1, 0xd3,
3143
0x61, 0x3a, 0xf1, 0xd3, 0x61, 0x05, 0xa1, 0x7d,
3144
0xe0, 0x38, 0x5d, 0x5b, 0x35, 0x9e, 0xa3, 0x7d,
3145
0xe6, 0x3a, 0x0f, 0x7d, 0x07, 0xaf, 0x20, 0x09,
3146
0x67, 0xac, 0x73, 0x46, 0x54, 0xaf, 0x26, 0xd0
3148
uint32_t request1_len = sizeof(request1);
3150
uint8_t request2[] = {
3151
0x05, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
3152
0x18, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
3153
0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00,
3154
0xcf, 0x80, 0x98, 0x6d, 0xfe, 0xb0, 0x90, 0xd1,
3155
0xcf, 0x86, 0x0f, 0x52, 0x2c, 0x23, 0x66, 0x28,
3156
0x27, 0x30, 0x48, 0x55, 0x42, 0x6a, 0x48, 0x4b,
3157
0x68, 0x22, 0x2e, 0x23, 0x64, 0x33, 0x2c, 0x2d,
3158
0x5c, 0x51, 0x48, 0x55, 0x24, 0x67, 0x6c, 0x4c,
3159
0x45, 0x71, 0x35, 0x72, 0x5a, 0x48, 0x5e, 0x35,
3160
0x61, 0x78, 0x35, 0x42, 0x2c, 0x7a, 0x75, 0x61,
3161
0x5b, 0x4e, 0x76, 0x30, 0x26, 0x2f, 0x2a, 0x34,
3162
0x48, 0x29, 0x25, 0x6e, 0x5c, 0x3a, 0x6c, 0x3e,
3163
0x79, 0x4e, 0x2a, 0x21, 0x6f, 0x6f, 0x34, 0x46,
3164
0x43, 0x26, 0x5b, 0x35, 0x78, 0x27, 0x69, 0x23,
3165
0x72, 0x21, 0x69, 0x56, 0x6a, 0x7d, 0x4b, 0x5e,
3166
0x65, 0x37, 0x60, 0x44, 0x7c, 0x5d, 0x5b, 0x72,
3167
0x7d, 0x73, 0x7b, 0x47, 0x57, 0x21, 0x41, 0x38,
3168
0x76, 0x38, 0x76, 0x5c, 0x58, 0x32, 0x4a, 0x37,
3169
0x2f, 0x40, 0x4b, 0x4c, 0x3d, 0x41, 0x33, 0x56,
3170
0x73, 0x38, 0x61, 0x71, 0x24, 0x49, 0x4c, 0x4a,
3171
0x44, 0x2e, 0x3a, 0x3f, 0x74, 0x54, 0x4c, 0x65,
3172
0x54, 0x2d, 0x3b, 0x28, 0x41, 0x45, 0x49, 0x2c,
3173
0x6e, 0x48, 0x44, 0x43, 0x37, 0x3d, 0x7b, 0x6d,
3174
0x2b, 0x4b, 0x32, 0x5a, 0x31, 0x61, 0x6e, 0x2b,
3175
0x27, 0x50, 0x6b, 0x66, 0x76, 0x4e, 0x55, 0x35,
3176
0x2b, 0x72, 0x2d, 0x5e, 0x42, 0x3e, 0x5a, 0x5d,
3177
0x36, 0x45, 0x32, 0x3a, 0x58, 0x78, 0x78, 0x3e,
3178
0x60, 0x6c, 0x5d, 0x63, 0x41, 0x7c, 0x52, 0x21,
3179
0x75, 0x6a, 0x5a, 0x70, 0x55, 0x45, 0x76, 0x58,
3180
0x33, 0x40, 0x38, 0x39, 0x21, 0x37, 0x7d, 0x77,
3181
0x21, 0x70, 0x2b, 0x72, 0x29, 0x6a, 0x31, 0x5f,
3182
0x38, 0x4a, 0x66, 0x65, 0x62, 0x2c, 0x39, 0x52,
3183
0x5f, 0x2a, 0x2b, 0x63, 0x4f, 0x76, 0x43, 0x25,
3184
0x6a, 0x50, 0x37, 0x52, 0x5e, 0x23, 0x3c, 0x42,
3185
0x28, 0x75, 0x75, 0x42, 0x25, 0x23, 0x28, 0x56,
3186
0x6c, 0x46, 0x5c, 0x5e, 0x6b, 0x7d, 0x48, 0x24,
3187
0x77, 0x6c, 0x70, 0x62, 0x2e, 0x28, 0x7d, 0x6b,
3188
0x69, 0x4a, 0x75, 0x3d, 0x5d, 0x56, 0x21, 0x49,
3189
0x56, 0x47, 0x64, 0x2b, 0x4c, 0x52, 0x43, 0x60,
3190
0x77, 0x49, 0x46, 0x46, 0x33, 0x2c, 0x4b, 0x4b,
3191
0x3d, 0x63, 0x5d, 0x33, 0x78, 0x76, 0x51, 0x56,
3192
0x77, 0x3c, 0x72, 0x74, 0x52, 0x27, 0x40, 0x6c,
3193
0x42, 0x79, 0x49, 0x24, 0x62, 0x5e, 0x26, 0x31,
3194
0x5c, 0x22, 0x2b, 0x4c, 0x64, 0x49, 0x52, 0x45,
3195
0x47, 0x49, 0x3a, 0x2a, 0x51, 0x71, 0x22, 0x22,
3196
0x70, 0x24, 0x34, 0x67, 0x4b, 0x6d, 0x58, 0x29,
3197
0x63, 0x26, 0x7b, 0x6f, 0x38, 0x78, 0x25, 0x62,
3198
0x4d, 0x3a, 0x7d, 0x40, 0x23, 0x57, 0x67, 0x33,
3199
0x38, 0x31, 0x4e, 0x54, 0x3c, 0x4b, 0x48, 0x69,
3200
0x3c, 0x39, 0x31, 0x2b, 0x26, 0x70, 0x44, 0x66,
3201
0x4a, 0x37, 0x2b, 0x75, 0x36, 0x45, 0x59, 0x34,
3202
0x3e, 0x3e, 0x29, 0x70, 0x71, 0x5a, 0x55, 0x49,
3203
0x3e, 0x4b, 0x68, 0x4e, 0x75, 0x70, 0x3c, 0x5c,
3204
0x50, 0x58, 0x28, 0x75, 0x3c, 0x2a, 0x41, 0x70,
3205
0x2f, 0x2b, 0x37, 0x26, 0x75, 0x71, 0x55, 0x22,
3206
0x3a, 0x44, 0x30, 0x48, 0x5d, 0x2f, 0x6c, 0x44,
3207
0x28, 0x4b, 0x34, 0x45, 0x21, 0x60, 0x44, 0x36,
3208
0x7b, 0x32, 0x39, 0x5f, 0x6d, 0x3f, 0x68, 0x73,
3209
0x25, 0x45, 0x56, 0x7c, 0x78, 0x7a, 0x49, 0x6a,
3210
0x46, 0x3d, 0x2d, 0x33, 0x6c, 0x6f, 0x23, 0x77,
3211
0x38, 0x33, 0x36, 0x74, 0x7b, 0x57, 0x4b, 0x6d,
3212
0x27, 0x75, 0x24, 0x6e, 0x43, 0x61, 0x4d, 0x44,
3213
0x6d, 0x27, 0x48, 0x58, 0x5e, 0x7b, 0x26, 0x6a,
3214
0x50, 0x7c, 0x51, 0x23, 0x3c, 0x4f, 0x37, 0x4c,
3215
0x47, 0x3e, 0x45, 0x56, 0x22, 0x33, 0x7c, 0x66,
3216
0x35, 0x54, 0x7a, 0x6e, 0x5a, 0x24, 0x70, 0x62,
3217
0x29, 0x3f, 0x69, 0x79, 0x24, 0x43, 0x41, 0x24,
3218
0x65, 0x25, 0x62, 0x4f, 0x73, 0x3e, 0x2b, 0x36,
3219
0x46, 0x69, 0x27, 0x55, 0x2a, 0x6e, 0x24, 0x6c,
3220
0x7d, 0x64, 0x7c, 0x61, 0x26, 0x67, 0x2a, 0x53,
3221
0x73, 0x60, 0x28, 0x2d, 0x6b, 0x44, 0x54, 0x61,
3222
0x34, 0x53, 0x22, 0x59, 0x6d, 0x73, 0x56, 0x55,
3223
0x25, 0x2c, 0x38, 0x4a, 0x3b, 0x4e, 0x78, 0x46,
3224
0x54, 0x6e, 0x6d, 0x4f, 0x47, 0x4f, 0x4f, 0x5a,
3225
0x67, 0x77, 0x39, 0x66, 0x28, 0x29, 0x4e, 0x43,
3226
0x55, 0x6e, 0x60, 0x59, 0x28, 0x3b, 0x65, 0x62,
3227
0x61, 0x5a, 0x29, 0x6e, 0x79, 0x60, 0x41, 0x53,
3228
0x2f, 0x5d, 0x44, 0x36, 0x7b, 0x3e, 0x7c, 0x2b,
3229
0x77, 0x36, 0x70, 0x3f, 0x40, 0x55, 0x48, 0x67,
3230
0x4b, 0x4d, 0x5d, 0x51, 0x79, 0x76, 0x48, 0x4a,
3231
0x2d, 0x21, 0x60, 0x40, 0x46, 0x55, 0x7a, 0x60,
3232
0x22, 0x25, 0x3f, 0x4b, 0x54, 0x6a, 0x6a, 0x3c,
3233
0x77, 0x22, 0x5b, 0x43, 0x67, 0x58, 0x71, 0x22,
3234
0x79, 0x4b, 0x32, 0x61, 0x44, 0x4d, 0x6f, 0x42,
3235
0x33, 0x2d, 0x53, 0x35, 0x3d, 0x6f, 0x57, 0x48,
3236
0x33, 0x3b, 0x5a, 0x53, 0x3f, 0x4e, 0x3f, 0x6b,
3237
0x4c, 0x27, 0x26, 0x3b, 0x73, 0x49, 0x22, 0x55,
3238
0x79, 0x2f, 0x47, 0x2f, 0x55, 0x5a, 0x7a, 0x71,
3239
0x6c, 0x31, 0x43, 0x40, 0x56, 0x7b, 0x21, 0x7a,
3240
0x6d, 0x4c, 0x43, 0x5e, 0x38, 0x47, 0x29, 0x38,
3241
0x62, 0x49, 0x45, 0x78, 0x70, 0x2b, 0x2e, 0x65,
3242
0x47, 0x71, 0x58, 0x79, 0x39, 0x67, 0x7d, 0x6d,
3243
0x6a, 0x67, 0x4a, 0x71, 0x27, 0x35, 0x2a, 0x4c,
3244
0x3e, 0x58, 0x55, 0x30, 0x4d, 0x75, 0x77, 0x48,
3245
0x5f, 0x4b, 0x59, 0x34, 0x65, 0x68, 0x57, 0x59,
3246
0x63, 0x23, 0x47, 0x38, 0x47, 0x5e, 0x56, 0x28,
3247
0x79, 0x58, 0x3e, 0x39, 0x66, 0x77, 0x67, 0x33,
3248
0x29, 0x61, 0x24, 0x7d, 0x37, 0x44, 0x37, 0x67,
3249
0x3a, 0x58, 0x76, 0x21, 0x51, 0x59, 0x61, 0x73,
3250
0x66, 0x75, 0x71, 0x53, 0x4d, 0x24, 0x2d, 0x4b,
3251
0x29, 0x30, 0x32, 0x26, 0x59, 0x64, 0x27, 0x55,
3252
0x2c, 0x5a, 0x4c, 0x3c, 0x6c, 0x53, 0x56, 0x4b,
3253
0x3e, 0x55, 0x2e, 0x44, 0x38, 0x6b, 0x47, 0x76,
3254
0x2d, 0x2c, 0x3f, 0x4d, 0x22, 0x7b, 0x6d, 0x61,
3255
0x34, 0x6b, 0x50, 0x73, 0x28, 0x6d, 0x41, 0x71,
3256
0x21, 0x76, 0x52, 0x2a, 0x6d, 0x53, 0x2a, 0x74,
3257
0x28, 0x27, 0x62, 0x2a, 0x66, 0x25, 0x6e, 0x5e,
3258
0x37, 0x4f, 0x27, 0x72, 0x28, 0x47, 0x63, 0x6e,
3259
0x5a, 0x6a, 0x41, 0x35, 0x3a, 0x42, 0x3f, 0x27,
3260
0x75, 0x3e, 0x26, 0x3e, 0x6b, 0x55, 0x59, 0x60,
3261
0x24, 0x70, 0x49, 0x3c, 0x4e, 0x2c, 0x39, 0x7a,
3262
0x36, 0x6c, 0x27, 0x3e, 0x6a, 0x4a, 0x59, 0x5a,
3263
0x3e, 0x21, 0x73, 0x4e, 0x59, 0x6e, 0x3d, 0x32,
3264
0x27, 0x45, 0x49, 0x58, 0x7d, 0x37, 0x39, 0x77,
3265
0x28, 0x51, 0x79, 0x54, 0x2b, 0x78, 0x46, 0x5a,
3266
0x21, 0x75, 0x33, 0x21, 0x63, 0x5a, 0x7b, 0x3e,
3267
0x33, 0x4f, 0x67, 0x75, 0x3a, 0x50, 0x48, 0x60,
3268
0x26, 0x64, 0x76, 0x5c, 0x42, 0x5c, 0x72, 0x38,
3269
0x6c, 0x52, 0x21, 0x2b, 0x25, 0x6b, 0x7c, 0x6b,
3270
0x2d, 0x5e, 0x63, 0x2a, 0x4c, 0x26, 0x5b, 0x4c,
3271
0x58, 0x52, 0x51, 0x55, 0x31, 0x79, 0x6c, 0x53,
3272
0x62, 0x3a, 0x36, 0x46, 0x7a, 0x29, 0x27, 0x78,
3273
0x1a, 0xbf, 0x49, 0x74, 0x68, 0x24, 0x51, 0x44,
3274
0x5b, 0x3e, 0x34, 0x44, 0x29, 0x5e, 0x4f, 0x2a,
3275
0xe9, 0x3f, 0xf8, 0xff, 0xff, 0x52, 0x7d, 0x47,
3276
0x67, 0x40, 0x27, 0x5e, 0x47, 0x46, 0x6d, 0x72,
3277
0x5d, 0x49, 0x26, 0x45, 0x33, 0x6b, 0x4d, 0x4a,
3278
0x6f, 0x62, 0x60, 0x45, 0x62, 0x27, 0x27, 0x7d,
3279
0x6a, 0x41, 0x2c, 0x6c, 0x5b, 0x2a, 0x2b, 0x36,
3280
0x29, 0x58, 0x7a, 0x4c, 0x6e, 0x2d, 0x74, 0x5c,
3281
0x38, 0x22, 0x5f, 0x49, 0x63, 0x43, 0x5b, 0x67
3283
uint32_t request2_len = sizeof(request2);
3289
DetectEngineCtx *de_ctx = NULL;
3290
DetectEngineThreadCtx *det_ctx = NULL;
3295
char *sig1 = "alert tcp any any -> any any "
3296
"(dce_iface:3919286a-b10c-11d0-9ba8-00c04fd92ef5; "
3297
"content:|91 27 27 40|; sid:1;)";
3298
char *sig2 = "alert tcp any any -> any any (dce_stub_data; "
3299
"content:|2d 5e 63 2a 4c|; sid:2;)";
3303
memset(&tv, 0, sizeof(ThreadVars));
3304
memset(&f, 0, sizeof(Flow));
3305
memset(&ssn, 0, sizeof(TcpSession));
3307
for (i = 0; i < 4; i++) {
3308
memset(&p[i], 0, sizeof(Packet));
3309
p[i].src.family = AF_INET;
3310
p[i].dst.family = AF_INET;
3311
p[i].payload = NULL;
3312
p[i].payload_len = 0;
3313
p[i].proto = IPPROTO_TCP;
3315
p[i].flowflags |= FLOW_PKT_TOSERVER;
3316
p[i].flowflags |= FLOW_PKT_ESTABLISHED;
3318
p[1].flowflags |= FLOW_PKT_TOCLIENT;
3320
FLOW_INITIALIZE(&f);
3321
f.protoctx = (void *)&ssn;
3322
f.src.family = AF_INET;
3323
f.dst.family = AF_INET;
3324
f.alproto = ALPROTO_DCERPC;
3326
StreamTcpInitConfig(TRUE);
3327
FlowL7DataPtrInit(&f);
3329
de_ctx = DetectEngineCtxInit();
3332
de_ctx->flags |= DE_QUIET;
3334
de_ctx->sig_list = SigInit(de_ctx, sig1);
3335
s = de_ctx->sig_list;
3339
s->next = SigInit(de_ctx, sig2);
3344
SigGroupBuild(de_ctx);
3345
DetectEngineThreadCtxInit(&tv, (void *)de_ctx, (void *)&det_ctx);
3347
r = AppLayerParse(&f, ALPROTO_DCERPC, STREAM_TOSERVER, bind, bind_len);
3349
printf("toserver chunk 1 returned %" PRId32 ", expected 0: ", r);
3353
/* detection phase */
3354
SigMatchSignatures(&tv, de_ctx, det_ctx, &p[0]);
3355
if ((PacketAlertCheck(&p[0], 1))) {
3356
printf("sid 1 matched but shouldn't have for packet 0: ");
3359
if ((PacketAlertCheck(&p[0], 2))) {
3360
printf("sid 2 matched but shouldn't have for packet 0: ");
3364
r = AppLayerParse(&f, ALPROTO_DCERPC, STREAM_TOCLIENT, bind_ack, bind_ack_len);
3366
printf("toserver chunk 1 returned %" PRId32 ", expected 0: ", r);
3370
/* detection phase */
3371
SigMatchSignatures(&tv, de_ctx, det_ctx, &p[1]);
3372
if ((PacketAlertCheck(&p[1], 1))) {
3373
printf("sid 1 matched but shouldn't have for packet 1: ");
3376
if ((PacketAlertCheck(&p[1], 2))) {
3377
printf("sid 2 matched but shouldn't have for packet 1: ");
3381
r = AppLayerParse(&f, ALPROTO_DCERPC, STREAM_TOSERVER, request1, request1_len);
3383
printf("toserver chunk 1 returned %" PRId32 ", expected 0: ", r);
3387
/* detection phase */
3388
SigMatchSignatures(&tv, de_ctx, det_ctx, &p[2]);
3389
if (!(PacketAlertCheck(&p[2], 1))) {
3390
printf("sid 1 didn't match but should have for packet 2: ");
3393
if ((PacketAlertCheck(&p[2], 2))) {
3394
printf("sid 2 matched but shouldn't have for packet 2: ");
3398
r = AppLayerParse(&f, ALPROTO_DCERPC, STREAM_TOSERVER, request2, request2_len);
3400
printf("toserver chunk 1 returned %" PRId32 ", expected 0: ", r);
3404
/* detection phase */
3405
SigMatchSignatures(&tv, de_ctx, det_ctx, &p[3]);
3406
if ((PacketAlertCheck(&p[3], 1))) {
3407
printf("sid 1 matched but shouldn't have for packet 3: ");
3410
if (!(PacketAlertCheck(&p[3], 2))) {
3411
printf("sid 2 didn't match but should have for packet 3: ");
3418
if (de_ctx != NULL) {
3419
SigGroupCleanup(de_ctx);
3420
SigCleanSignatures(de_ctx);
3422
DetectEngineThreadCtxDeinit(&tv, (void *)det_ctx);
3423
DetectEngineCtxFree(de_ctx);
3426
FlowL7DataPtrFree(&f);
3427
StreamTcpFreeConfig(TRUE);
3433
* \test Test the working of detection engien with respect to dce keywords.
3435
int DcePayloadTest05(void)
3439
0x05, 0x00, 0x0b, 0x03, 0x10, 0x00, 0x00, 0x00,
3440
0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
3441
0xd0, 0x16, 0xd0, 0x16, 0x00, 0x00, 0x00, 0x00,
3442
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
3443
0x6a, 0x28, 0x19, 0x39, 0x0c, 0xb1, 0xd0, 0x11,
3444
0x9b, 0xa8, 0x00, 0xc0, 0x4f, 0xd9, 0x2e, 0xf5,
3445
0x00, 0x00, 0x00, 0x00, 0x04, 0x5d, 0x88, 0x8a,
3446
0xeb, 0x1c, 0xc9, 0x11, 0x9f, 0xe8, 0x08, 0x00,
3447
0x2b, 0x10, 0x48, 0x60, 0x02, 0x00, 0x00, 0x00
3449
uint32_t bind_len = sizeof(bind);
3451
uint8_t bind_ack[] = {
3452
0x05, 0x00, 0x0c, 0x03, 0x10, 0x00, 0x00, 0x00,
3453
0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
3454
0xb8, 0x10, 0xb8, 0x10, 0x48, 0x1a, 0x00, 0x00,
3455
0x0c, 0x00, 0x5c, 0x50, 0x49, 0x50, 0x45, 0x5c,
3456
0x6c, 0x73, 0x61, 0x73, 0x73, 0x00, 0x00, 0x00,
3457
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
3458
0x04, 0x5d, 0x88, 0x8a, 0xeb, 0x1c, 0xc9, 0x11,
3459
0x9f, 0xe8, 0x08, 0x00, 0x2b, 0x10, 0x48, 0x60,
3460
0x02, 0x00, 0x00, 0x00
3462
uint32_t bind_ack_len = sizeof(bind_ack);
3464
uint8_t request1[] = {
3465
0x05, 0x00, 0x00, 0x01, 0x10, 0x00, 0x00, 0x00,
3466
0x18, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
3467
0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00,
3468
0xad, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
3469
0xad, 0x0d, 0x00, 0x00, 0x91, 0xfc, 0x27, 0x40,
3470
0x4a, 0x97, 0x4a, 0x98, 0x4b, 0x41, 0x3f, 0x48,
3471
0x99, 0x90, 0xf8, 0x27, 0xfd, 0x3f, 0x27, 0x37,
3472
0x40, 0xd6, 0x27, 0xfc, 0x3f, 0x9f, 0x4f, 0xfd,
3473
0x42, 0x47, 0x47, 0x49, 0x3f, 0xf9, 0x9b, 0xd6,
3474
0x48, 0x37, 0x27, 0x46, 0x93, 0x49, 0xfd, 0x93,
3475
0x91, 0xfd, 0x93, 0x90, 0x92, 0x96, 0xf5, 0x92,
3476
0x4e, 0x91, 0x98, 0x46, 0x4f, 0x4b, 0x46, 0xf5,
3477
0xf5, 0xfd, 0x40, 0xf9, 0x9b, 0x40, 0x9f, 0x93,
3478
0x4e, 0xf8, 0x40, 0x40, 0x4e, 0xf5, 0x4b, 0x98,
3479
0xf5, 0x91, 0xd6, 0x42, 0x99, 0x96, 0x27, 0x49,
3480
0x48, 0x47, 0x4f, 0x46, 0x99, 0x4b, 0x92, 0x92,
3481
0x90, 0x47, 0x46, 0x4e, 0x43, 0x9b, 0x43, 0x42,
3482
0x3f, 0x4b, 0x27, 0x97, 0x93, 0xf9, 0x42, 0x9b,
3483
0x46, 0x9b, 0x4b, 0x98, 0x41, 0x98, 0x37, 0x41,
3484
0x9f, 0x98, 0x4e, 0x93, 0x48, 0x46, 0x46, 0x9f,
3485
0x97, 0x9b, 0x42, 0x37, 0x90, 0x46, 0xf9, 0x97,
3486
0x91, 0xf5, 0x4e, 0x97, 0x4e, 0x99, 0xf8, 0x99,
3487
0x41, 0xf5, 0x41, 0x9f, 0x49, 0xfd, 0x92, 0x96,
3488
0x3f, 0x3f, 0x42, 0x27, 0x27, 0x93, 0x47, 0x49,
3489
0x91, 0x27, 0x27, 0x40, 0x42, 0x99, 0x9f, 0xfc,
3490
0x97, 0x47, 0x99, 0x4a, 0xf9, 0x3f, 0x48, 0x91,
3491
0x47, 0x97, 0x91, 0x42, 0x4b, 0x9b, 0x4a, 0x48,
3492
0x9f, 0x43, 0x43, 0x40, 0x99, 0xf9, 0x48, 0x4e,
3493
0x92, 0x93, 0x92, 0x41, 0x46, 0x4b, 0x4a, 0x4a,
3494
0x49, 0x96, 0x4a, 0x4f, 0xf5, 0x42, 0x47, 0x98,
3495
0x9b, 0xf5, 0x91, 0xf9, 0xd6, 0x9b, 0x48, 0x4e,
3496
0x9f, 0x91, 0xd6, 0x93, 0x4b, 0x37, 0x3f, 0x43,
3497
0xf5, 0x41, 0x41, 0xf5, 0x37, 0x4f, 0x43, 0x92,
3498
0x97, 0x27, 0x93, 0x92, 0x46, 0x47, 0x4b, 0x96,
3499
0x41, 0x90, 0x90, 0x3f, 0x96, 0x27, 0x41, 0xd6,
3500
0xd6, 0xd6, 0xf9, 0xf8, 0x47, 0x27, 0x46, 0x37,
3501
0x41, 0x90, 0x91, 0xfc, 0x46, 0x41, 0x43, 0x97,
3502
0x9f, 0x4a, 0x49, 0x92, 0x41, 0x91, 0x41, 0x92,
3503
0x42, 0x4a, 0x3f, 0x93, 0x99, 0x9b, 0x9f, 0x4e,
3504
0x47, 0x93, 0xd6, 0x37, 0x37, 0x40, 0x98, 0xfd,
3505
0x41, 0x42, 0x97, 0x4e, 0x4e, 0x98, 0x9f, 0x4e,
3506
0x48, 0x3f, 0x48, 0x42, 0x96, 0x9f, 0x99, 0x4f,
3507
0x4e, 0x42, 0x97, 0xf9, 0x3f, 0x37, 0x27, 0x46,
3508
0x41, 0xf9, 0x92, 0x96, 0x41, 0x93, 0x91, 0x4b,
3509
0x96, 0x4f, 0x43, 0xfd, 0xf5, 0x9f, 0x43, 0x27,
3510
0x99, 0xd6, 0xf5, 0x4e, 0xfd, 0x97, 0x4b, 0x47,
3511
0x47, 0x92, 0x98, 0x4f, 0x47, 0x49, 0x37, 0x97,
3512
0x3f, 0x4e, 0x40, 0x46, 0x4e, 0x9f, 0x4e, 0x4e,
3513
0xfc, 0x41, 0x47, 0xf8, 0x37, 0x9b, 0x41, 0x4e,
3514
0x96, 0x99, 0x46, 0x99, 0x46, 0xf9, 0x4e, 0x4f,
3515
0x48, 0x97, 0x97, 0x93, 0xd6, 0x9b, 0x41, 0x40,
3516
0x97, 0x97, 0x4f, 0x92, 0x91, 0xd6, 0x96, 0x40,
3517
0x4f, 0x4b, 0x91, 0x46, 0x27, 0x92, 0x3f, 0xf5,
3518
0xfc, 0x3f, 0x91, 0x97, 0xf8, 0x43, 0x4e, 0xfd,
3519
0x9b, 0x27, 0xfd, 0x9b, 0xf5, 0x27, 0x47, 0x42,
3520
0x46, 0x93, 0x37, 0x93, 0x91, 0x91, 0x91, 0xf8,
3521
0x4f, 0x92, 0x4f, 0xf8, 0x93, 0xf5, 0x49, 0x91,
3522
0x4b, 0x3f, 0xfc, 0x37, 0x4f, 0x46, 0x98, 0x97,
3523
0x9f, 0x40, 0xfd, 0x9f, 0x98, 0xfd, 0x4e, 0x97,
3524
0x4f, 0x47, 0x91, 0x27, 0x4a, 0x90, 0x96, 0x40,
3525
0x98, 0x97, 0x41, 0x3f, 0xd6, 0xfd, 0x41, 0xfd,
3526
0x42, 0x97, 0x4b, 0x9b, 0x46, 0x4e, 0xfc, 0x96,
3527
0xf9, 0x37, 0x4b, 0x96, 0x9f, 0x9b, 0x42, 0x9f,
3528
0x93, 0x40, 0x42, 0x43, 0xf5, 0x93, 0x48, 0x3f,
3529
0x4b, 0xfd, 0x9f, 0x4b, 0x41, 0x4a, 0x90, 0x9b,
3530
0x46, 0x97, 0x98, 0x96, 0x9b, 0x98, 0x92, 0xd6,
3531
0x4e, 0x4a, 0x27, 0x90, 0x96, 0x99, 0x91, 0x46,
3532
0x49, 0x41, 0x4b, 0x90, 0x43, 0x91, 0xd6, 0x48,
3533
0x42, 0x90, 0x4f, 0x96, 0x43, 0x9b, 0xf9, 0x9b,
3534
0x9f, 0x9f, 0x27, 0x47, 0x4b, 0xf5, 0x43, 0x99,
3535
0x99, 0x91, 0x4e, 0x41, 0x42, 0x46, 0x97, 0x46,
3536
0x47, 0xf9, 0xf5, 0x48, 0x4a, 0xf8, 0x4e, 0xd6,
3537
0x43, 0x4a, 0x27, 0x9b, 0x42, 0x90, 0x46, 0x46,
3538
0x3f, 0x99, 0x96, 0x9b, 0x91, 0x9f, 0xf5, 0x48,
3539
0x43, 0x9f, 0x4a, 0x99, 0x96, 0xfd, 0x92, 0x49,
3540
0x46, 0x91, 0x40, 0xfd, 0x4a, 0x48, 0x4f, 0x90,
3541
0x91, 0x98, 0x48, 0x4b, 0x9f, 0x42, 0x27, 0x93,
3542
0x47, 0xf8, 0x4f, 0x48, 0x3f, 0x90, 0x47, 0x41,
3543
0xf5, 0xfc, 0x27, 0xf8, 0x97, 0x4a, 0x49, 0x37,
3544
0x40, 0x4f, 0x40, 0x37, 0x41, 0x27, 0x96, 0x37,
3545
0xfc, 0x42, 0xd6, 0x4b, 0x48, 0x37, 0x42, 0xf5,
3546
0x27, 0xf9, 0xd6, 0x48, 0x9b, 0xfd, 0x40, 0x96,
3547
0x4e, 0x43, 0xf8, 0x90, 0x40, 0x40, 0x49, 0x3f,
3548
0xfc, 0x4a, 0x42, 0x47, 0xf8, 0x49, 0x42, 0x97,
3549
0x4f, 0x91, 0xfd, 0x4b, 0x46, 0x4b, 0xfc, 0x48,
3550
0x49, 0x96, 0x4b, 0x96, 0x43, 0x9f, 0x90, 0x37,
3551
0xd6, 0x4a, 0xd6, 0x3f, 0xd6, 0x90, 0x49, 0x27,
3552
0x4e, 0x96, 0x96, 0xf8, 0x49, 0x96, 0xf8, 0x37,
3553
0x90, 0x4e, 0x4b, 0x4f, 0x99, 0xf8, 0x6a, 0x52,
3554
0x59, 0xd9, 0xee, 0xd9, 0x74, 0x24, 0xf4, 0x5b,
3555
0x81, 0x73, 0x13, 0x30, 0x50, 0xf0, 0x82, 0x83,
3556
0xeb, 0xfc, 0xe2, 0xf4, 0xb1, 0x94, 0x0f, 0x6d,
3557
0xcf, 0xaf, 0xb4, 0x7e, 0x5a, 0xbb, 0xbf, 0x6a,
3558
0xc9, 0xaf, 0x0f, 0x7d, 0x50, 0xdb, 0x9c, 0xa6,
3559
0x14, 0xdb, 0xb5, 0xbe, 0xbb, 0x2c, 0xf5, 0xfa,
3560
0x31, 0xbf, 0x7b, 0xcd, 0x28, 0xdb, 0xaf, 0xa2,
3561
0x31, 0xbb, 0x13, 0xb2, 0x79, 0xdb, 0xc4, 0x09,
3562
0x31, 0xbe, 0xc1, 0x42, 0xa9, 0xfc, 0x74, 0x42,
3563
0x44, 0x57, 0x31, 0x48, 0x3d, 0x51, 0x32, 0x69,
3564
0xc4, 0x6b, 0xa4, 0xa6, 0x18, 0x25, 0x13, 0x09,
3565
0x6f, 0x74, 0xf1, 0x69, 0x56, 0xdb, 0xfc, 0xc9,
3566
0xbb, 0x0f, 0xec, 0x83, 0xdb, 0x53, 0xdc, 0x09,
3567
0xb9, 0x3c, 0xd4, 0x9e, 0x51, 0x93, 0xc1, 0x42,
3568
0x54, 0xdb, 0xb0, 0xb2, 0xbb, 0x10, 0xfc, 0x09,
3569
0x40, 0x4c, 0x5d, 0x09, 0x70, 0x58, 0xae, 0xea,
3570
0xbe, 0x1e, 0xfe, 0x6e, 0x60, 0xaf, 0x26, 0xb3,
3571
0xeb, 0x36, 0xa3, 0xe4, 0x58, 0x63, 0xc2, 0xea,
3572
0x47, 0x23, 0xc2, 0xdd, 0x64, 0xaf, 0x20, 0xea,
3573
0xfb, 0xbd, 0x0c, 0xb9, 0x60, 0xaf, 0x26, 0xdd,
3574
0xb9, 0xb5, 0x96, 0x03, 0xdd, 0x58, 0xf2, 0xd7,
3575
0x5a, 0x52, 0x0f, 0x52, 0x58, 0x89, 0xf9, 0x77,
3576
0x9d, 0x07, 0x0f, 0x54, 0x63, 0x03, 0xa3, 0xd1,
3577
0x63, 0x13, 0xa3, 0xc1, 0x63, 0xaf, 0x20, 0xe4,
3578
0x58, 0x41, 0xac, 0xe4, 0x63, 0xd9, 0x11, 0x17,
3579
0x58, 0xf4, 0xea, 0xf2, 0xf7, 0x07, 0x0f, 0x54,
3580
0x5a, 0x40, 0xa1, 0xd7, 0xcf, 0x80, 0x98, 0x26,
3581
0x9d, 0x7e, 0x19, 0xd5, 0xcf, 0x86, 0xa3, 0xd7,
3582
0xcf, 0x80, 0x98, 0x67, 0x79, 0xd6, 0xb9, 0xd5,
3583
0xcf, 0x86, 0xa0, 0xd6, 0x64, 0x05, 0x0f, 0x52,
3584
0xa3, 0x38, 0x17, 0xfb, 0xf6, 0x29, 0xa7, 0x7d,
3585
0xe6, 0x05, 0x0f, 0x52, 0x56, 0x3a, 0x94, 0xe4,
3586
0x58, 0x33, 0x9d, 0x0b, 0xd5, 0x3a, 0xa0, 0xdb,
3587
0x19, 0x9c, 0x79, 0x65, 0x5a, 0x14, 0x79, 0x60,
3588
0x01, 0x90, 0x03, 0x28, 0xce, 0x12, 0xdd, 0x7c,
3589
0x72, 0x7c, 0x63, 0x0f, 0x4a, 0x68, 0x5b, 0x29,
3590
0x9b, 0x38, 0x82, 0x7c, 0x83, 0x46, 0x0f, 0xf7,
3591
0x74, 0xaf, 0x26, 0xd9, 0x67, 0x02, 0xa1, 0xd3,
3592
0x61, 0x3a, 0xf1, 0xd3, 0x61, 0x05, 0xa1, 0x7d,
3593
0xe0, 0x38, 0x5d, 0x5b, 0x35, 0x9e, 0xa3, 0x7d,
3594
0xe6, 0x3a, 0x0f, 0x7d, 0x07, 0xaf, 0x20, 0x09,
3595
0x67, 0xac, 0x73, 0x46, 0x54, 0xaf, 0x26, 0xd0
3597
uint32_t request1_len = sizeof(request1);
3599
uint8_t request2[] = {
3600
0x05, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
3601
0x18, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
3602
0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00,
3603
0xcf, 0x80, 0x98, 0x6d, 0xfe, 0xb0, 0x90, 0xd1,
3604
0xcf, 0x86, 0x0f, 0x52, 0x2c, 0x23, 0x66, 0x28,
3605
0x27, 0x30, 0x48, 0x55, 0x42, 0x6a, 0x48, 0x4b,
3606
0x68, 0x22, 0x2e, 0x23, 0x64, 0x33, 0x2c, 0x2d,
3607
0x5c, 0x51, 0x48, 0x55, 0x24, 0x67, 0x6c, 0x4c,
3608
0x45, 0x71, 0x35, 0x72, 0x5a, 0x48, 0x5e, 0x35,
3609
0x61, 0x78, 0x35, 0x42, 0x2c, 0x7a, 0x75, 0x61,
3610
0x5b, 0x4e, 0x76, 0x30, 0x26, 0x2f, 0x2a, 0x34,
3611
0x48, 0x29, 0x25, 0x6e, 0x5c, 0x3a, 0x6c, 0x3e,
3612
0x79, 0x4e, 0x2a, 0x21, 0x6f, 0x6f, 0x34, 0x46,
3613
0x43, 0x26, 0x5b, 0x35, 0x78, 0x27, 0x69, 0x23,
3614
0x72, 0x21, 0x69, 0x56, 0x6a, 0x7d, 0x4b, 0x5e,
3615
0x65, 0x37, 0x60, 0x44, 0x7c, 0x5d, 0x5b, 0x72,
3616
0x7d, 0x73, 0x7b, 0x47, 0x57, 0x21, 0x41, 0x38,
3617
0x76, 0x38, 0x76, 0x5c, 0x58, 0x32, 0x4a, 0x37,
3618
0x2f, 0x40, 0x4b, 0x4c, 0x3d, 0x41, 0x33, 0x56,
3619
0x73, 0x38, 0x61, 0x71, 0x24, 0x49, 0x4c, 0x4a,
3620
0x44, 0x2e, 0x3a, 0x3f, 0x74, 0x54, 0x4c, 0x65,
3621
0x54, 0x2d, 0x3b, 0x28, 0x41, 0x45, 0x49, 0x2c,
3622
0x6e, 0x48, 0x44, 0x43, 0x37, 0x3d, 0x7b, 0x6d,
3623
0x2b, 0x4b, 0x32, 0x5a, 0x31, 0x61, 0x6e, 0x2b,
3624
0x27, 0x50, 0x6b, 0x66, 0x76, 0x4e, 0x55, 0x35,
3625
0x2b, 0x72, 0x2d, 0x5e, 0x42, 0x3e, 0x5a, 0x5d,
3626
0x36, 0x45, 0x32, 0x3a, 0x58, 0x78, 0x78, 0x3e,
3627
0x60, 0x6c, 0x5d, 0x63, 0x41, 0x7c, 0x52, 0x21,
3628
0x75, 0x6a, 0x5a, 0x70, 0x55, 0x45, 0x76, 0x58,
3629
0x33, 0x40, 0x38, 0x39, 0x21, 0x37, 0x7d, 0x77,
3630
0x21, 0x70, 0x2b, 0x72, 0x29, 0x6a, 0x31, 0x5f,
3631
0x38, 0x4a, 0x66, 0x65, 0x62, 0x2c, 0x39, 0x52,
3632
0x5f, 0x2a, 0x2b, 0x63, 0x4f, 0x76, 0x43, 0x25,
3633
0x6a, 0x50, 0x37, 0x52, 0x5e, 0x23, 0x3c, 0x42,
3634
0x28, 0x75, 0x75, 0x42, 0x25, 0x23, 0x28, 0x56,
3635
0x6c, 0x46, 0x5c, 0x5e, 0x6b, 0x7d, 0x48, 0x24,
3636
0x77, 0x6c, 0x70, 0x62, 0x2e, 0x28, 0x7d, 0x6b,
3637
0x69, 0x4a, 0x75, 0x3d, 0x5d, 0x56, 0x21, 0x49,
3638
0x56, 0x47, 0x64, 0x2b, 0x4c, 0x52, 0x43, 0x60,
3639
0x77, 0x49, 0x46, 0x46, 0x33, 0x2c, 0x4b, 0x4b,
3640
0x3d, 0x63, 0x5d, 0x33, 0x78, 0x76, 0x51, 0x56,
3641
0x77, 0x3c, 0x72, 0x74, 0x52, 0x27, 0x40, 0x6c,
3642
0x42, 0x79, 0x49, 0x24, 0x62, 0x5e, 0x26, 0x31,
3643
0x5c, 0x22, 0x2b, 0x4c, 0x64, 0x49, 0x52, 0x45,
3644
0x47, 0x49, 0x3a, 0x2a, 0x51, 0x71, 0x22, 0x22,
3645
0x70, 0x24, 0x34, 0x67, 0x4b, 0x6d, 0x58, 0x29,
3646
0x63, 0x26, 0x7b, 0x6f, 0x38, 0x78, 0x25, 0x62,
3647
0x4d, 0x3a, 0x7d, 0x40, 0x23, 0x57, 0x67, 0x33,
3648
0x38, 0x31, 0x4e, 0x54, 0x3c, 0x4b, 0x48, 0x69,
3649
0x3c, 0x39, 0x31, 0x2b, 0x26, 0x70, 0x44, 0x66,
3650
0x4a, 0x37, 0x2b, 0x75, 0x36, 0x45, 0x59, 0x34,
3651
0x3e, 0x3e, 0x29, 0x70, 0x71, 0x5a, 0x55, 0x49,
3652
0x3e, 0x4b, 0x68, 0x4e, 0x75, 0x70, 0x3c, 0x5c,
3653
0x50, 0x58, 0x28, 0x75, 0x3c, 0x2a, 0x41, 0x70,
3654
0x2f, 0x2b, 0x37, 0x26, 0x75, 0x71, 0x55, 0x22,
3655
0x3a, 0x44, 0x30, 0x48, 0x5d, 0x2f, 0x6c, 0x44,
3656
0x28, 0x4b, 0x34, 0x45, 0x21, 0x60, 0x44, 0x36,
3657
0x7b, 0x32, 0x39, 0x5f, 0x6d, 0x3f, 0x68, 0x73,
3658
0x25, 0x45, 0x56, 0x7c, 0x78, 0x7a, 0x49, 0x6a,
3659
0x46, 0x3d, 0x2d, 0x33, 0x6c, 0x6f, 0x23, 0x77,
3660
0x38, 0x33, 0x36, 0x74, 0x7b, 0x57, 0x4b, 0x6d,
3661
0x27, 0x75, 0x24, 0x6e, 0x43, 0x61, 0x4d, 0x44,
3662
0x6d, 0x27, 0x48, 0x58, 0x5e, 0x7b, 0x26, 0x6a,
3663
0x50, 0x7c, 0x51, 0x23, 0x3c, 0x4f, 0x37, 0x4c,
3664
0x47, 0x3e, 0x45, 0x56, 0x22, 0x33, 0x7c, 0x66,
3665
0x35, 0x54, 0x7a, 0x6e, 0x5a, 0x24, 0x70, 0x62,
3666
0x29, 0x3f, 0x69, 0x79, 0x24, 0x43, 0x41, 0x24,
3667
0x65, 0x25, 0x62, 0x4f, 0x73, 0x3e, 0x2b, 0x36,
3668
0x46, 0x69, 0x27, 0x55, 0x2a, 0x6e, 0x24, 0x6c,
3669
0x7d, 0x64, 0x7c, 0x61, 0x26, 0x67, 0x2a, 0x53,
3670
0x73, 0x60, 0x28, 0x2d, 0x6b, 0x44, 0x54, 0x61,
3671
0x34, 0x53, 0x22, 0x59, 0x6d, 0x73, 0x56, 0x55,
3672
0x25, 0x2c, 0x38, 0x4a, 0x3b, 0x4e, 0x78, 0x46,
3673
0x54, 0x6e, 0x6d, 0x4f, 0x47, 0x4f, 0x4f, 0x5a,
3674
0x67, 0x77, 0x39, 0x66, 0x28, 0x29, 0x4e, 0x43,
3675
0x55, 0x6e, 0x60, 0x59, 0x28, 0x3b, 0x65, 0x62,
3676
0x61, 0x5a, 0x29, 0x6e, 0x79, 0x60, 0x41, 0x53,
3677
0x2f, 0x5d, 0x44, 0x36, 0x7b, 0x3e, 0x7c, 0x2b,
3678
0x77, 0x36, 0x70, 0x3f, 0x40, 0x55, 0x48, 0x67,
3679
0x4b, 0x4d, 0x5d, 0x51, 0x79, 0x76, 0x48, 0x4a,
3680
0x2d, 0x21, 0x60, 0x40, 0x46, 0x55, 0x7a, 0x60,
3681
0x22, 0x25, 0x3f, 0x4b, 0x54, 0x6a, 0x6a, 0x3c,
3682
0x77, 0x22, 0x5b, 0x43, 0x67, 0x58, 0x71, 0x22,
3683
0x79, 0x4b, 0x32, 0x61, 0x44, 0x4d, 0x6f, 0x42,
3684
0x33, 0x2d, 0x53, 0x35, 0x3d, 0x6f, 0x57, 0x48,
3685
0x33, 0x3b, 0x5a, 0x53, 0x3f, 0x4e, 0x3f, 0x6b,
3686
0x4c, 0x27, 0x26, 0x3b, 0x73, 0x49, 0x22, 0x55,
3687
0x79, 0x2f, 0x47, 0x2f, 0x55, 0x5a, 0x7a, 0x71,
3688
0x6c, 0x31, 0x43, 0x40, 0x56, 0x7b, 0x21, 0x7a,
3689
0x6d, 0x4c, 0x43, 0x5e, 0x38, 0x47, 0x29, 0x38,
3690
0x62, 0x49, 0x45, 0x78, 0x70, 0x2b, 0x2e, 0x65,
3691
0x47, 0x71, 0x58, 0x79, 0x39, 0x67, 0x7d, 0x6d,
3692
0x6a, 0x67, 0x4a, 0x71, 0x27, 0x35, 0x2a, 0x4c,
3693
0x3e, 0x58, 0x55, 0x30, 0x4d, 0x75, 0x77, 0x48,
3694
0x5f, 0x4b, 0x59, 0x34, 0x65, 0x68, 0x57, 0x59,
3695
0x63, 0x23, 0x47, 0x38, 0x47, 0x5e, 0x56, 0x28,
3696
0x79, 0x58, 0x3e, 0x39, 0x66, 0x77, 0x67, 0x33,
3697
0x29, 0x61, 0x24, 0x7d, 0x37, 0x44, 0x37, 0x67,
3698
0x3a, 0x58, 0x76, 0x21, 0x51, 0x59, 0x61, 0x73,
3699
0x66, 0x75, 0x71, 0x53, 0x4d, 0x24, 0x2d, 0x4b,
3700
0x29, 0x30, 0x32, 0x26, 0x59, 0x64, 0x27, 0x55,
3701
0x2c, 0x5a, 0x4c, 0x3c, 0x6c, 0x53, 0x56, 0x4b,
3702
0x3e, 0x55, 0x2e, 0x44, 0x38, 0x6b, 0x47, 0x76,
3703
0x2d, 0x2c, 0x3f, 0x4d, 0x22, 0x7b, 0x6d, 0x61,
3704
0x34, 0x6b, 0x50, 0x73, 0x28, 0x6d, 0x41, 0x71,
3705
0x21, 0x76, 0x52, 0x2a, 0x6d, 0x53, 0x2a, 0x74,
3706
0x28, 0x27, 0x62, 0x2a, 0x66, 0x25, 0x6e, 0x5e,
3707
0x37, 0x4f, 0x27, 0x72, 0x28, 0x47, 0x63, 0x6e,
3708
0x5a, 0x6a, 0x41, 0x35, 0x3a, 0x42, 0x3f, 0x27,
3709
0x75, 0x3e, 0x26, 0x3e, 0x6b, 0x55, 0x59, 0x60,
3710
0x24, 0x70, 0x49, 0x3c, 0x4e, 0x2c, 0x39, 0x7a,
3711
0x36, 0x6c, 0x27, 0x3e, 0x6a, 0x4a, 0x59, 0x5a,
3712
0x3e, 0x21, 0x73, 0x4e, 0x59, 0x6e, 0x3d, 0x32,
3713
0x27, 0x45, 0x49, 0x58, 0x7d, 0x37, 0x39, 0x77,
3714
0x28, 0x51, 0x79, 0x54, 0x2b, 0x78, 0x46, 0x5a,
3715
0x21, 0x75, 0x33, 0x21, 0x63, 0x5a, 0x7b, 0x3e,
3716
0x33, 0x4f, 0x67, 0x75, 0x3a, 0x50, 0x48, 0x60,
3717
0x26, 0x64, 0x76, 0x5c, 0x42, 0x5c, 0x72, 0x38,
3718
0x6c, 0x52, 0x21, 0x2b, 0x25, 0x6b, 0x7c, 0x6b,
3719
0x2d, 0x5e, 0x63, 0x2a, 0x4c, 0x26, 0x5b, 0x4c,
3720
0x58, 0x52, 0x51, 0x55, 0x31, 0x79, 0x6c, 0x53,
3721
0x62, 0x3a, 0x36, 0x46, 0x7a, 0x29, 0x27, 0x78,
3722
0x1a, 0xbf, 0x49, 0x74, 0x68, 0x24, 0x51, 0x44,
3723
0x5b, 0x3e, 0x34, 0x44, 0x29, 0x5e, 0x4f, 0x2a,
3724
0xe9, 0x3f, 0xf8, 0xff, 0xff, 0x52, 0x7d, 0x47,
3725
0x67, 0x40, 0x27, 0x5e, 0x47, 0x46, 0x6d, 0x72,
3726
0x5d, 0x49, 0x26, 0x45, 0x33, 0x6b, 0x4d, 0x4a,
3727
0x6f, 0x62, 0x60, 0x45, 0x62, 0x27, 0x27, 0x7d,
3728
0x6a, 0x41, 0x2c, 0x6c, 0x5b, 0x2a, 0x2b, 0x36,
3729
0x29, 0x58, 0x7a, 0x4c, 0x6e, 0x2d, 0x74, 0x5c,
3730
0x38, 0x22, 0x5f, 0x49, 0x63, 0x43, 0x5b, 0x67
3732
uint32_t request2_len = sizeof(request2);
3737
DetectEngineCtx *de_ctx = NULL;
3738
DetectEngineThreadCtx *det_ctx = NULL;
3743
char *sig1 = "alert tcp any any -> any any "
3744
"(dce_iface:3919286a-b10c-11d0-9ba8-00c04fd92ef4; "
3745
"content:|91 27 27 40|; sid:1;)";
3746
char *sig2 = "alert tcp any any -> any any (dce_stub_data; "
3747
"content:|2d 5e 63 2a 4c|; sid:2;)";
3751
memset(&tv, 0, sizeof(ThreadVars));
3752
memset(&f, 0, sizeof(Flow));
3753
memset(&ssn, 0, sizeof(TcpSession));
3755
for (i = 0; i < 4; i++) {
3756
memset(&p[i], 0, sizeof(Packet));
3757
p[i].src.family = AF_INET;
3758
p[i].dst.family = AF_INET;
3759
p[i].payload = NULL;
3760
p[i].payload_len = 0;
3761
p[i].proto = IPPROTO_TCP;
3763
p[i].flowflags |= FLOW_PKT_TOSERVER;
3764
p[i].flowflags |= FLOW_PKT_ESTABLISHED;
3766
p[1].flowflags |= FLOW_PKT_TOCLIENT;
3768
FLOW_INITIALIZE(&f);
3769
f.protoctx = (void *)&ssn;
3770
f.src.family = AF_INET;
3771
f.dst.family = AF_INET;
3772
f.alproto = ALPROTO_DCERPC;
3774
StreamTcpInitConfig(TRUE);
3775
FlowL7DataPtrInit(&f);
3777
de_ctx = DetectEngineCtxInit();
3780
de_ctx->flags |= DE_QUIET;
3782
de_ctx->sig_list = SigInit(de_ctx, sig1);
3783
s = de_ctx->sig_list;
3787
s->next = SigInit(de_ctx, sig2);
3792
SigGroupBuild(de_ctx);
3793
DetectEngineThreadCtxInit(&tv, (void *)de_ctx, (void *)&det_ctx);
3795
r = AppLayerParse(&f, ALPROTO_DCERPC, STREAM_TOSERVER, bind, bind_len);
3797
printf("toserver chunk 1 returned %" PRId32 ", expected 0: ", r);
3801
/* detection phase */
3802
SigMatchSignatures(&tv, de_ctx, det_ctx, &p[0]);
3803
if ((PacketAlertCheck(&p[0], 1))) {
3804
printf("sid 1 matched but shouldn't have for packet 0: ");
3807
if ((PacketAlertCheck(&p[0], 2))) {
3808
printf("sid 2 matched but shouldn't have for packet 0: ");
3812
r = AppLayerParse(&f, ALPROTO_DCERPC, STREAM_TOCLIENT, bind_ack, bind_ack_len);
3814
printf("toserver chunk 1 returned %" PRId32 ", expected 0: ", r);
3818
/* detection phase */
3819
SigMatchSignatures(&tv, de_ctx, det_ctx, &p[1]);
3820
if ((PacketAlertCheck(&p[1], 1))) {
3821
printf("sid 1 matched but shouldn't have for packet 1: ");
3824
if ((PacketAlertCheck(&p[1], 2))) {
3825
printf("sid 2 matched but shouldn't have for packet 1: ");
3829
r = AppLayerParse(&f, ALPROTO_DCERPC, STREAM_TOSERVER, request1, request1_len);
3831
printf("toserver chunk 1 returned %" PRId32 ", expected 0: ", r);
3835
/* detection phase */
3836
SigMatchSignatures(&tv, de_ctx, det_ctx, &p[2]);
3837
if ((PacketAlertCheck(&p[2], 1))) {
3838
printf("sid 1 matched but shouldn't have for packet 2: ");
3841
if ((PacketAlertCheck(&p[2], 2))) {
3842
printf("sid 2 matched but shouldn't have for packet 2: ");
3846
r = AppLayerParse(&f, ALPROTO_DCERPC, STREAM_TOSERVER, request2, request2_len);
3848
printf("toserver chunk 1 returned %" PRId32 ", expected 0: ", r);
3852
/* detection phase */
3853
SigMatchSignatures(&tv, de_ctx, det_ctx, &p[3]);
3854
if ((PacketAlertCheck(&p[3], 1))) {
3855
printf("sid 2 matched but shouldn't have for packet 3: ");
3858
if (!(PacketAlertCheck(&p[3], 2))) {
3859
printf("sid 2 didn't match but should have for packet 3: ");
3866
if (de_ctx != NULL) {
3867
SigGroupCleanup(de_ctx);
3868
SigCleanSignatures(de_ctx);
3870
DetectEngineThreadCtxDeinit(&tv, (void *)det_ctx);
3871
DetectEngineCtxFree(de_ctx);
3874
FlowL7DataPtrFree(&f);
3875
StreamTcpFreeConfig(TRUE);
3881
* \test Test the working of detection engien with respect to dce keywords.
3883
int DcePayloadTest06(void)
3887
0x05, 0x00, 0x0b, 0x03, 0x10, 0x00, 0x00, 0x00,
3888
0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
3889
0xd0, 0x16, 0xd0, 0x16, 0x00, 0x00, 0x00, 0x00,
3890
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
3891
0x6a, 0x28, 0x19, 0x39, 0x0c, 0xb1, 0xd0, 0x11,
3892
0x9b, 0xa8, 0x00, 0xc0, 0x4f, 0xd9, 0x2e, 0xf5,
3893
0x00, 0x00, 0x00, 0x00, 0x04, 0x5d, 0x88, 0x8a,
3894
0xeb, 0x1c, 0xc9, 0x11, 0x9f, 0xe8, 0x08, 0x00,
3895
0x2b, 0x10, 0x48, 0x60, 0x02, 0x00, 0x00, 0x00
3897
uint32_t bind_len = sizeof(bind);
3899
uint8_t bind_ack[] = {
3900
0x05, 0x00, 0x0c, 0x03, 0x10, 0x00, 0x00, 0x00,
3901
0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
3902
0xb8, 0x10, 0xb8, 0x10, 0x48, 0x1a, 0x00, 0x00,
3903
0x0c, 0x00, 0x5c, 0x50, 0x49, 0x50, 0x45, 0x5c,
3904
0x6c, 0x73, 0x61, 0x73, 0x73, 0x00, 0x00, 0x00,
3905
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
3906
0x04, 0x5d, 0x88, 0x8a, 0xeb, 0x1c, 0xc9, 0x11,
3907
0x9f, 0xe8, 0x08, 0x00, 0x2b, 0x10, 0x48, 0x60,
3908
0x02, 0x00, 0x00, 0x00
3910
uint32_t bind_ack_len = sizeof(bind_ack);
3912
uint8_t request1[] = {
3913
0x05, 0x00, 0x00, 0x01, 0x10, 0x00, 0x00, 0x00,
3914
0x18, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
3915
0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00,
3916
0xad, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
3917
0xad, 0x0d, 0x00, 0x00, 0x91, 0xfc, 0x27, 0x40,
3918
0x4a, 0x97, 0x4a, 0x98, 0x4b, 0x41, 0x3f, 0x48,
3919
0x99, 0x90, 0xf8, 0x27, 0xfd, 0x3f, 0x27, 0x37,
3920
0x40, 0xd6, 0x27, 0xfc, 0x3f, 0x9f, 0x4f, 0xfd,
3921
0x42, 0x47, 0x47, 0x49, 0x3f, 0xf9, 0x9b, 0xd6,
3922
0x48, 0x37, 0x27, 0x46, 0x93, 0x49, 0xfd, 0x93,
3923
0x91, 0xfd, 0x93, 0x90, 0x92, 0x96, 0xf5, 0x92,
3924
0x4e, 0x91, 0x98, 0x46, 0x4f, 0x4b, 0x46, 0xf5,
3925
0xf5, 0xfd, 0x40, 0xf9, 0x9b, 0x40, 0x9f, 0x93,
3926
0x4e, 0xf8, 0x40, 0x40, 0x4e, 0xf5, 0x4b, 0x98,
3927
0xf5, 0x91, 0xd6, 0x42, 0x99, 0x96, 0x27, 0x49,
3928
0x48, 0x47, 0x4f, 0x46, 0x99, 0x4b, 0x92, 0x92,
3929
0x90, 0x47, 0x46, 0x4e, 0x43, 0x9b, 0x43, 0x42,
3930
0x3f, 0x4b, 0x27, 0x97, 0x93, 0xf9, 0x42, 0x9b,
3931
0x46, 0x9b, 0x4b, 0x98, 0x41, 0x98, 0x37, 0x41,
3932
0x9f, 0x98, 0x4e, 0x93, 0x48, 0x46, 0x46, 0x9f,
3933
0x97, 0x9b, 0x42, 0x37, 0x90, 0x46, 0xf9, 0x97,
3934
0x91, 0xf5, 0x4e, 0x97, 0x4e, 0x99, 0xf8, 0x99,
3935
0x41, 0xf5, 0x41, 0x9f, 0x49, 0xfd, 0x92, 0x96,
3936
0x3f, 0x3f, 0x42, 0x27, 0x27, 0x93, 0x47, 0x49,
3937
0x91, 0x27, 0x27, 0x40, 0x42, 0x99, 0x9f, 0xfc,
3938
0x97, 0x47, 0x99, 0x4a, 0xf9, 0x3f, 0x48, 0x91,
3939
0x47, 0x97, 0x91, 0x42, 0x4b, 0x9b, 0x4a, 0x48,
3940
0x9f, 0x43, 0x43, 0x40, 0x99, 0xf9, 0x48, 0x4e,
3941
0x92, 0x93, 0x92, 0x41, 0x46, 0x4b, 0x4a, 0x4a,
3942
0x49, 0x96, 0x4a, 0x4f, 0xf5, 0x42, 0x47, 0x98,
3943
0x9b, 0xf5, 0x91, 0xf9, 0xd6, 0x9b, 0x48, 0x4e,
3944
0x9f, 0x91, 0xd6, 0x93, 0x4b, 0x37, 0x3f, 0x43,
3945
0xf5, 0x41, 0x41, 0xf5, 0x37, 0x4f, 0x43, 0x92,
3946
0x97, 0x27, 0x93, 0x92, 0x46, 0x47, 0x4b, 0x96,
3947
0x41, 0x90, 0x90, 0x3f, 0x96, 0x27, 0x41, 0xd6,
3948
0xd6, 0xd6, 0xf9, 0xf8, 0x47, 0x27, 0x46, 0x37,
3949
0x41, 0x90, 0x91, 0xfc, 0x46, 0x41, 0x43, 0x97,
3950
0x9f, 0x4a, 0x49, 0x92, 0x41, 0x91, 0x41, 0x92,
3951
0x42, 0x4a, 0x3f, 0x93, 0x99, 0x9b, 0x9f, 0x4e,
3952
0x47, 0x93, 0xd6, 0x37, 0x37, 0x40, 0x98, 0xfd,
3953
0x41, 0x42, 0x97, 0x4e, 0x4e, 0x98, 0x9f, 0x4e,
3954
0x48, 0x3f, 0x48, 0x42, 0x96, 0x9f, 0x99, 0x4f,
3955
0x4e, 0x42, 0x97, 0xf9, 0x3f, 0x37, 0x27, 0x46,
3956
0x41, 0xf9, 0x92, 0x96, 0x41, 0x93, 0x91, 0x4b,
3957
0x96, 0x4f, 0x43, 0xfd, 0xf5, 0x9f, 0x43, 0x27,
3958
0x99, 0xd6, 0xf5, 0x4e, 0xfd, 0x97, 0x4b, 0x47,
3959
0x47, 0x92, 0x98, 0x4f, 0x47, 0x49, 0x37, 0x97,
3960
0x3f, 0x4e, 0x40, 0x46, 0x4e, 0x9f, 0x4e, 0x4e,
3961
0xfc, 0x41, 0x47, 0xf8, 0x37, 0x9b, 0x41, 0x4e,
3962
0x96, 0x99, 0x46, 0x99, 0x46, 0xf9, 0x4e, 0x4f,
3963
0x48, 0x97, 0x97, 0x93, 0xd6, 0x9b, 0x41, 0x40,
3964
0x97, 0x97, 0x4f, 0x92, 0x91, 0xd6, 0x96, 0x40,
3965
0x4f, 0x4b, 0x91, 0x46, 0x27, 0x92, 0x3f, 0xf5,
3966
0xfc, 0x3f, 0x91, 0x97, 0xf8, 0x43, 0x4e, 0xfd,
3967
0x9b, 0x27, 0xfd, 0x9b, 0xf5, 0x27, 0x47, 0x42,
3968
0x46, 0x93, 0x37, 0x93, 0x91, 0x91, 0x91, 0xf8,
3969
0x4f, 0x92, 0x4f, 0xf8, 0x93, 0xf5, 0x49, 0x91,
3970
0x4b, 0x3f, 0xfc, 0x37, 0x4f, 0x46, 0x98, 0x97,
3971
0x9f, 0x40, 0xfd, 0x9f, 0x98, 0xfd, 0x4e, 0x97,
3972
0x4f, 0x47, 0x91, 0x27, 0x4a, 0x90, 0x96, 0x40,
3973
0x98, 0x97, 0x41, 0x3f, 0xd6, 0xfd, 0x41, 0xfd,
3974
0x42, 0x97, 0x4b, 0x9b, 0x46, 0x4e, 0xfc, 0x96,
3975
0xf9, 0x37, 0x4b, 0x96, 0x9f, 0x9b, 0x42, 0x9f,
3976
0x93, 0x40, 0x42, 0x43, 0xf5, 0x93, 0x48, 0x3f,
3977
0x4b, 0xfd, 0x9f, 0x4b, 0x41, 0x4a, 0x90, 0x9b,
3978
0x46, 0x97, 0x98, 0x96, 0x9b, 0x98, 0x92, 0xd6,
3979
0x4e, 0x4a, 0x27, 0x90, 0x96, 0x99, 0x91, 0x46,
3980
0x49, 0x41, 0x4b, 0x90, 0x43, 0x91, 0xd6, 0x48,
3981
0x42, 0x90, 0x4f, 0x96, 0x43, 0x9b, 0xf9, 0x9b,
3982
0x9f, 0x9f, 0x27, 0x47, 0x4b, 0xf5, 0x43, 0x99,
3983
0x99, 0x91, 0x4e, 0x41, 0x42, 0x46, 0x97, 0x46,
3984
0x47, 0xf9, 0xf5, 0x48, 0x4a, 0xf8, 0x4e, 0xd6,
3985
0x43, 0x4a, 0x27, 0x9b, 0x42, 0x90, 0x46, 0x46,
3986
0x3f, 0x99, 0x96, 0x9b, 0x91, 0x9f, 0xf5, 0x48,
3987
0x43, 0x9f, 0x4a, 0x99, 0x96, 0xfd, 0x92, 0x49,
3988
0x46, 0x91, 0x40, 0xfd, 0x4a, 0x48, 0x4f, 0x90,
3989
0x91, 0x98, 0x48, 0x4b, 0x9f, 0x42, 0x27, 0x93,
3990
0x47, 0xf8, 0x4f, 0x48, 0x3f, 0x90, 0x47, 0x41,
3991
0xf5, 0xfc, 0x27, 0xf8, 0x97, 0x4a, 0x49, 0x37,
3992
0x40, 0x4f, 0x40, 0x37, 0x41, 0x27, 0x96, 0x37,
3993
0xfc, 0x42, 0xd6, 0x4b, 0x48, 0x37, 0x42, 0xf5,
3994
0x27, 0xf9, 0xd6, 0x48, 0x9b, 0xfd, 0x40, 0x96,
3995
0x4e, 0x43, 0xf8, 0x90, 0x40, 0x40, 0x49, 0x3f,
3996
0xfc, 0x4a, 0x42, 0x47, 0xf8, 0x49, 0x42, 0x97,
3997
0x4f, 0x91, 0xfd, 0x4b, 0x46, 0x4b, 0xfc, 0x48,
3998
0x49, 0x96, 0x4b, 0x96, 0x43, 0x9f, 0x90, 0x37,
3999
0xd6, 0x4a, 0xd6, 0x3f, 0xd6, 0x90, 0x49, 0x27,
4000
0x4e, 0x96, 0x96, 0xf8, 0x49, 0x96, 0xf8, 0x37,
4001
0x90, 0x4e, 0x4b, 0x4f, 0x99, 0xf8, 0x6a, 0x52,
4002
0x59, 0xd9, 0xee, 0xd9, 0x74, 0x24, 0xf4, 0x5b,
4003
0x81, 0x73, 0x13, 0x30, 0x50, 0xf0, 0x82, 0x83,
4004
0xeb, 0xfc, 0xe2, 0xf4, 0xb1, 0x94, 0x0f, 0x6d,
4005
0xcf, 0xaf, 0xb4, 0x7e, 0x5a, 0xbb, 0xbf, 0x6a,
4006
0xc9, 0xaf, 0x0f, 0x7d, 0x50, 0xdb, 0x9c, 0xa6,
4007
0x14, 0xdb, 0xb5, 0xbe, 0xbb, 0x2c, 0xf5, 0xfa,
4008
0x31, 0xbf, 0x7b, 0xcd, 0x28, 0xdb, 0xaf, 0xa2,
4009
0x31, 0xbb, 0x13, 0xb2, 0x79, 0xdb, 0xc4, 0x09,
4010
0x31, 0xbe, 0xc1, 0x42, 0xa9, 0xfc, 0x74, 0x42,
4011
0x44, 0x57, 0x31, 0x48, 0x3d, 0x51, 0x32, 0x69,
4012
0xc4, 0x6b, 0xa4, 0xa6, 0x18, 0x25, 0x13, 0x09,
4013
0x6f, 0x74, 0xf1, 0x69, 0x56, 0xdb, 0xfc, 0xc9,
4014
0xbb, 0x0f, 0xec, 0x83, 0xdb, 0x53, 0xdc, 0x09,
4015
0xb9, 0x3c, 0xd4, 0x9e, 0x51, 0x93, 0xc1, 0x42,
4016
0x54, 0xdb, 0xb0, 0xb2, 0xbb, 0x10, 0xfc, 0x09,
4017
0x40, 0x4c, 0x5d, 0x09, 0x70, 0x58, 0xae, 0xea,
4018
0xbe, 0x1e, 0xfe, 0x6e, 0x60, 0xaf, 0x26, 0xb3,
4019
0xeb, 0x36, 0xa3, 0xe4, 0x58, 0x63, 0xc2, 0xea,
4020
0x47, 0x23, 0xc2, 0xdd, 0x64, 0xaf, 0x20, 0xea,
4021
0xfb, 0xbd, 0x0c, 0xb9, 0x60, 0xaf, 0x26, 0xdd,
4022
0xb9, 0xb5, 0x96, 0x03, 0xdd, 0x58, 0xf2, 0xd7,
4023
0x5a, 0x52, 0x0f, 0x52, 0x58, 0x89, 0xf9, 0x77,
4024
0x9d, 0x07, 0x0f, 0x54, 0x63, 0x03, 0xa3, 0xd1,
4025
0x63, 0x13, 0xa3, 0xc1, 0x63, 0xaf, 0x20, 0xe4,
4026
0x58, 0x41, 0xac, 0xe4, 0x63, 0xd9, 0x11, 0x17,
4027
0x58, 0xf4, 0xea, 0xf2, 0xf7, 0x07, 0x0f, 0x54,
4028
0x5a, 0x40, 0xa1, 0xd7, 0xcf, 0x80, 0x98, 0x26,
4029
0x9d, 0x7e, 0x19, 0xd5, 0xcf, 0x86, 0xa3, 0xd7,
4030
0xcf, 0x80, 0x98, 0x67, 0x79, 0xd6, 0xb9, 0xd5,
4031
0xcf, 0x86, 0xa0, 0xd6, 0x64, 0x05, 0x0f, 0x52,
4032
0xa3, 0x38, 0x17, 0xfb, 0xf6, 0x29, 0xa7, 0x7d,
4033
0xe6, 0x05, 0x0f, 0x52, 0x56, 0x3a, 0x94, 0xe4,
4034
0x58, 0x33, 0x9d, 0x0b, 0xd5, 0x3a, 0xa0, 0xdb,
4035
0x19, 0x9c, 0x79, 0x65, 0x5a, 0x14, 0x79, 0x60,
4036
0x01, 0x90, 0x03, 0x28, 0xce, 0x12, 0xdd, 0x7c,
4037
0x72, 0x7c, 0x63, 0x0f, 0x4a, 0x68, 0x5b, 0x29,
4038
0x9b, 0x38, 0x82, 0x7c, 0x83, 0x46, 0x0f, 0xf7,
4039
0x74, 0xaf, 0x26, 0xd9, 0x67, 0x02, 0xa1, 0xd3,
4040
0x61, 0x3a, 0xf1, 0xd3, 0x61, 0x05, 0xa1, 0x7d,
4041
0xe0, 0x38, 0x5d, 0x5b, 0x35, 0x9e, 0xa3, 0x7d,
4042
0xe6, 0x3a, 0x0f, 0x7d, 0x07, 0xaf, 0x20, 0x09,
4043
0x67, 0xac, 0x73, 0x46, 0x54, 0xaf, 0x26, 0xd0
4045
uint32_t request1_len = sizeof(request1);
4047
uint8_t request2[] = {
4048
0x05, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
4049
0x18, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
4050
0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00,
4051
0xcf, 0x80, 0x98, 0x6d, 0xfe, 0xb0, 0x90, 0xd1,
4052
0xcf, 0x86, 0x0f, 0x52, 0x2c, 0x23, 0x66, 0x28,
4053
0x27, 0x30, 0x48, 0x55, 0x42, 0x6a, 0x48, 0x4b,
4054
0x68, 0x22, 0x2e, 0x23, 0x64, 0x33, 0x2c, 0x2d,
4055
0x5c, 0x51, 0x48, 0x55, 0x24, 0x67, 0x6c, 0x4c,
4056
0x45, 0x71, 0x35, 0x72, 0x5a, 0x48, 0x5e, 0x35,
4057
0x61, 0x78, 0x35, 0x42, 0x2c, 0x7a, 0x75, 0x61,
4058
0x5b, 0x4e, 0x76, 0x30, 0x26, 0x2f, 0x2a, 0x34,
4059
0x48, 0x29, 0x25, 0x6e, 0x5c, 0x3a, 0x6c, 0x3e,
4060
0x79, 0x4e, 0x2a, 0x21, 0x6f, 0x6f, 0x34, 0x46,
4061
0x43, 0x26, 0x5b, 0x35, 0x78, 0x27, 0x69, 0x23,
4062
0x72, 0x21, 0x69, 0x56, 0x6a, 0x7d, 0x4b, 0x5e,
4063
0x65, 0x37, 0x60, 0x44, 0x7c, 0x5d, 0x5b, 0x72,
4064
0x7d, 0x73, 0x7b, 0x47, 0x57, 0x21, 0x41, 0x38,
4065
0x76, 0x38, 0x76, 0x5c, 0x58, 0x32, 0x4a, 0x37,
4066
0x2f, 0x40, 0x4b, 0x4c, 0x3d, 0x41, 0x33, 0x56,
4067
0x73, 0x38, 0x61, 0x71, 0x24, 0x49, 0x4c, 0x4a,
4068
0x44, 0x2e, 0x3a, 0x3f, 0x74, 0x54, 0x4c, 0x65,
4069
0x54, 0x2d, 0x3b, 0x28, 0x41, 0x45, 0x49, 0x2c,
4070
0x6e, 0x48, 0x44, 0x43, 0x37, 0x3d, 0x7b, 0x6d,
4071
0x2b, 0x4b, 0x32, 0x5a, 0x31, 0x61, 0x6e, 0x2b,
4072
0x27, 0x50, 0x6b, 0x66, 0x76, 0x4e, 0x55, 0x35,
4073
0x2b, 0x72, 0x2d, 0x5e, 0x42, 0x3e, 0x5a, 0x5d,
4074
0x36, 0x45, 0x32, 0x3a, 0x58, 0x78, 0x78, 0x3e,
4075
0x60, 0x6c, 0x5d, 0x63, 0x41, 0x7c, 0x52, 0x21,
4076
0x75, 0x6a, 0x5a, 0x70, 0x55, 0x45, 0x76, 0x58,
4077
0x33, 0x40, 0x38, 0x39, 0x21, 0x37, 0x7d, 0x77,
4078
0x21, 0x70, 0x2b, 0x72, 0x29, 0x6a, 0x31, 0x5f,
4079
0x38, 0x4a, 0x66, 0x65, 0x62, 0x2c, 0x39, 0x52,
4080
0x5f, 0x2a, 0x2b, 0x63, 0x4f, 0x76, 0x43, 0x25,
4081
0x6a, 0x50, 0x37, 0x52, 0x5e, 0x23, 0x3c, 0x42,
4082
0x28, 0x75, 0x75, 0x42, 0x25, 0x23, 0x28, 0x56,
4083
0x6c, 0x46, 0x5c, 0x5e, 0x6b, 0x7d, 0x48, 0x24,
4084
0x77, 0x6c, 0x70, 0x62, 0x2e, 0x28, 0x7d, 0x6b,
4085
0x69, 0x4a, 0x75, 0x3d, 0x5d, 0x56, 0x21, 0x49,
4086
0x56, 0x47, 0x64, 0x2b, 0x4c, 0x52, 0x43, 0x60,
4087
0x77, 0x49, 0x46, 0x46, 0x33, 0x2c, 0x4b, 0x4b,
4088
0x3d, 0x63, 0x5d, 0x33, 0x78, 0x76, 0x51, 0x56,
4089
0x77, 0x3c, 0x72, 0x74, 0x52, 0x27, 0x40, 0x6c,
4090
0x42, 0x79, 0x49, 0x24, 0x62, 0x5e, 0x26, 0x31,
4091
0x5c, 0x22, 0x2b, 0x4c, 0x64, 0x49, 0x52, 0x45,
4092
0x47, 0x49, 0x3a, 0x2a, 0x51, 0x71, 0x22, 0x22,
4093
0x70, 0x24, 0x34, 0x67, 0x4b, 0x6d, 0x58, 0x29,
4094
0x63, 0x26, 0x7b, 0x6f, 0x38, 0x78, 0x25, 0x62,
4095
0x4d, 0x3a, 0x7d, 0x40, 0x23, 0x57, 0x67, 0x33,
4096
0x38, 0x31, 0x4e, 0x54, 0x3c, 0x4b, 0x48, 0x69,
4097
0x3c, 0x39, 0x31, 0x2b, 0x26, 0x70, 0x44, 0x66,
4098
0x4a, 0x37, 0x2b, 0x75, 0x36, 0x45, 0x59, 0x34,
4099
0x3e, 0x3e, 0x29, 0x70, 0x71, 0x5a, 0x55, 0x49,
4100
0x3e, 0x4b, 0x68, 0x4e, 0x75, 0x70, 0x3c, 0x5c,
4101
0x50, 0x58, 0x28, 0x75, 0x3c, 0x2a, 0x41, 0x70,
4102
0x2f, 0x2b, 0x37, 0x26, 0x75, 0x71, 0x55, 0x22,
4103
0x3a, 0x44, 0x30, 0x48, 0x5d, 0x2f, 0x6c, 0x44,
4104
0x28, 0x4b, 0x34, 0x45, 0x21, 0x60, 0x44, 0x36,
4105
0x7b, 0x32, 0x39, 0x5f, 0x6d, 0x3f, 0x68, 0x73,
4106
0x25, 0x45, 0x56, 0x7c, 0x78, 0x7a, 0x49, 0x6a,
4107
0x46, 0x3d, 0x2d, 0x33, 0x6c, 0x6f, 0x23, 0x77,
4108
0x38, 0x33, 0x36, 0x74, 0x7b, 0x57, 0x4b, 0x6d,
4109
0x27, 0x75, 0x24, 0x6e, 0x43, 0x61, 0x4d, 0x44,
4110
0x6d, 0x27, 0x48, 0x58, 0x5e, 0x7b, 0x26, 0x6a,
4111
0x50, 0x7c, 0x51, 0x23, 0x3c, 0x4f, 0x37, 0x4c,
4112
0x47, 0x3e, 0x45, 0x56, 0x22, 0x33, 0x7c, 0x66,
4113
0x35, 0x54, 0x7a, 0x6e, 0x5a, 0x24, 0x70, 0x62,
4114
0x29, 0x3f, 0x69, 0x79, 0x24, 0x43, 0x41, 0x24,
4115
0x65, 0x25, 0x62, 0x4f, 0x73, 0x3e, 0x2b, 0x36,
4116
0x46, 0x69, 0x27, 0x55, 0x2a, 0x6e, 0x24, 0x6c,
4117
0x7d, 0x64, 0x7c, 0x61, 0x26, 0x67, 0x2a, 0x53,
4118
0x73, 0x60, 0x28, 0x2d, 0x6b, 0x44, 0x54, 0x61,
4119
0x34, 0x53, 0x22, 0x59, 0x6d, 0x73, 0x56, 0x55,
4120
0x25, 0x2c, 0x38, 0x4a, 0x3b, 0x4e, 0x78, 0x46,
4121
0x54, 0x6e, 0x6d, 0x4f, 0x47, 0x4f, 0x4f, 0x5a,
4122
0x67, 0x77, 0x39, 0x66, 0x28, 0x29, 0x4e, 0x43,
4123
0x55, 0x6e, 0x60, 0x59, 0x28, 0x3b, 0x65, 0x62,
4124
0x61, 0x5a, 0x29, 0x6e, 0x79, 0x60, 0x41, 0x53,
4125
0x2f, 0x5d, 0x44, 0x36, 0x7b, 0x3e, 0x7c, 0x2b,
4126
0x77, 0x36, 0x70, 0x3f, 0x40, 0x55, 0x48, 0x67,
4127
0x4b, 0x4d, 0x5d, 0x51, 0x79, 0x76, 0x48, 0x4a,
4128
0x2d, 0x21, 0x60, 0x40, 0x46, 0x55, 0x7a, 0x60,
4129
0x22, 0x25, 0x3f, 0x4b, 0x54, 0x6a, 0x6a, 0x3c,
4130
0x77, 0x22, 0x5b, 0x43, 0x67, 0x58, 0x71, 0x22,
4131
0x79, 0x4b, 0x32, 0x61, 0x44, 0x4d, 0x6f, 0x42,
4132
0x33, 0x2d, 0x53, 0x35, 0x3d, 0x6f, 0x57, 0x48,
4133
0x33, 0x3b, 0x5a, 0x53, 0x3f, 0x4e, 0x3f, 0x6b,
4134
0x4c, 0x27, 0x26, 0x3b, 0x73, 0x49, 0x22, 0x55,
4135
0x79, 0x2f, 0x47, 0x2f, 0x55, 0x5a, 0x7a, 0x71,
4136
0x6c, 0x31, 0x43, 0x40, 0x56, 0x7b, 0x21, 0x7a,
4137
0x6d, 0x4c, 0x43, 0x5e, 0x38, 0x47, 0x29, 0x38,
4138
0x62, 0x49, 0x45, 0x78, 0x70, 0x2b, 0x2e, 0x65,
4139
0x47, 0x71, 0x58, 0x79, 0x39, 0x67, 0x7d, 0x6d,
4140
0x6a, 0x67, 0x4a, 0x71, 0x27, 0x35, 0x2a, 0x4c,
4141
0x3e, 0x58, 0x55, 0x30, 0x4d, 0x75, 0x77, 0x48,
4142
0x5f, 0x4b, 0x59, 0x34, 0x65, 0x68, 0x57, 0x59,
4143
0x63, 0x23, 0x47, 0x38, 0x47, 0x5e, 0x56, 0x28,
4144
0x79, 0x58, 0x3e, 0x39, 0x66, 0x77, 0x67, 0x33,
4145
0x29, 0x61, 0x24, 0x7d, 0x37, 0x44, 0x37, 0x67,
4146
0x3a, 0x58, 0x76, 0x21, 0x51, 0x59, 0x61, 0x73,
4147
0x66, 0x75, 0x71, 0x53, 0x4d, 0x24, 0x2d, 0x4b,
4148
0x29, 0x30, 0x32, 0x26, 0x59, 0x64, 0x27, 0x55,
4149
0x2c, 0x5a, 0x4c, 0x3c, 0x6c, 0x53, 0x56, 0x4b,
4150
0x3e, 0x55, 0x2e, 0x44, 0x38, 0x6b, 0x47, 0x76,
4151
0x2d, 0x2c, 0x3f, 0x4d, 0x22, 0x7b, 0x6d, 0x61,
4152
0x34, 0x6b, 0x50, 0x73, 0x28, 0x6d, 0x41, 0x71,
4153
0x21, 0x76, 0x52, 0x2a, 0x6d, 0x53, 0x2a, 0x74,
4154
0x28, 0x27, 0x62, 0x2a, 0x66, 0x25, 0x6e, 0x5e,
4155
0x37, 0x4f, 0x27, 0x72, 0x28, 0x47, 0x63, 0x6e,
4156
0x5a, 0x6a, 0x41, 0x35, 0x3a, 0x42, 0x3f, 0x27,
4157
0x75, 0x3e, 0x26, 0x3e, 0x6b, 0x55, 0x59, 0x60,
4158
0x24, 0x70, 0x49, 0x3c, 0x4e, 0x2c, 0x39, 0x7a,
4159
0x36, 0x6c, 0x27, 0x3e, 0x6a, 0x4a, 0x59, 0x5a,
4160
0x3e, 0x21, 0x73, 0x4e, 0x59, 0x6e, 0x3d, 0x32,
4161
0x27, 0x45, 0x49, 0x58, 0x7d, 0x37, 0x39, 0x77,
4162
0x28, 0x51, 0x79, 0x54, 0x2b, 0x78, 0x46, 0x5a,
4163
0x21, 0x75, 0x33, 0x21, 0x63, 0x5a, 0x7b, 0x3e,
4164
0x33, 0x4f, 0x67, 0x75, 0x3a, 0x50, 0x48, 0x60,
4165
0x26, 0x64, 0x76, 0x5c, 0x42, 0x5c, 0x72, 0x38,
4166
0x6c, 0x52, 0x21, 0x2b, 0x25, 0x6b, 0x7c, 0x6b,
4167
0x2d, 0x5e, 0x63, 0x2a, 0x4c, 0x26, 0x5b, 0x4c,
4168
0x58, 0x52, 0x51, 0x55, 0x31, 0x79, 0x6c, 0x53,
4169
0x62, 0x3a, 0x36, 0x46, 0x7a, 0x29, 0x27, 0x78,
4170
0x1a, 0xbf, 0x49, 0x74, 0x68, 0x24, 0x51, 0x44,
4171
0x5b, 0x3e, 0x34, 0x44, 0x29, 0x5e, 0x4f, 0x2a,
4172
0xe9, 0x3f, 0xf8, 0xff, 0xff, 0x52, 0x7d, 0x47,
4173
0x67, 0x40, 0x27, 0x5e, 0x47, 0x46, 0x6d, 0x72,
4174
0x5d, 0x49, 0x26, 0x45, 0x33, 0x6b, 0x4d, 0x4a,
4175
0x6f, 0x62, 0x60, 0x45, 0x62, 0x27, 0x27, 0x7d,
4176
0x6a, 0x41, 0x2c, 0x6c, 0x5b, 0x2a, 0x2b, 0x36,
4177
0x29, 0x58, 0x7a, 0x4c, 0x6e, 0x2d, 0x74, 0x5c,
4178
0x38, 0x22, 0x5f, 0x49, 0x63, 0x43, 0x5b, 0x67
4180
uint32_t request2_len = sizeof(request2);
4186
DetectEngineCtx *de_ctx = NULL;
4187
DetectEngineThreadCtx *det_ctx = NULL;
4192
char *sig1 = "alert tcp any any -> any any "
4193
"(dce_iface:3919286a-b10c-11d0-9ba8-00c04fd92ef5; "
4194
"content:|91 27 27 30|; sid:1;)";
4195
char *sig2 = "alert tcp any any -> any any (dce_stub_data; "
4196
"content:|2d 5e 63 2a 4c|; sid:2;)";
4200
memset(&tv, 0, sizeof(ThreadVars));
4201
memset(&f, 0, sizeof(Flow));
4202
memset(&ssn, 0, sizeof(TcpSession));
4204
for (i = 0; i < 4; i++) {
4205
memset(&p[i], 0, sizeof(Packet));
4206
p[i].src.family = AF_INET;
4207
p[i].dst.family = AF_INET;
4208
p[i].payload = NULL;
4209
p[i].payload_len = 0;
4210
p[i].proto = IPPROTO_TCP;
4212
p[i].flowflags |= FLOW_PKT_TOSERVER;
4213
p[i].flowflags |= FLOW_PKT_ESTABLISHED;
4215
p[1].flowflags |= FLOW_PKT_TOCLIENT;
4217
FLOW_INITIALIZE(&f);
4218
f.protoctx = (void *)&ssn;
4219
f.src.family = AF_INET;
4220
f.dst.family = AF_INET;
4221
f.alproto = ALPROTO_DCERPC;
4223
StreamTcpInitConfig(TRUE);
4224
FlowL7DataPtrInit(&f);
4226
de_ctx = DetectEngineCtxInit();
4229
de_ctx->flags |= DE_QUIET;
4231
de_ctx->sig_list = SigInit(de_ctx, sig1);
4232
s = de_ctx->sig_list;
4236
s->next = SigInit(de_ctx, sig2);
4241
SigGroupBuild(de_ctx);
4242
DetectEngineThreadCtxInit(&tv, (void *)de_ctx, (void *)&det_ctx);
4244
r = AppLayerParse(&f, ALPROTO_DCERPC, STREAM_TOSERVER, bind, bind_len);
4246
printf("toserver chunk 1 returned %" PRId32 ", expected 0: ", r);
4250
/* detection phase */
4251
SigMatchSignatures(&tv, de_ctx, det_ctx, &p[0]);
4252
if ((PacketAlertCheck(&p[0], 1))) {
4253
printf("sid 1 matched but shouldn't have for packet 0: ");
4256
if ((PacketAlertCheck(&p[0], 2))) {
4257
printf("sid 2 matched but shouldn't have for packet 0: ");
4261
r = AppLayerParse(&f, ALPROTO_DCERPC, STREAM_TOCLIENT, bind_ack, bind_ack_len);
4263
printf("toserver chunk 1 returned %" PRId32 ", expected 0: ", r);
4267
/* detection phase */
4268
SigMatchSignatures(&tv, de_ctx, det_ctx, &p[1]);
4269
if ((PacketAlertCheck(&p[1], 1))) {
4270
printf("sid 1 matched but shouldn't have for packet 1: ");
4273
if ((PacketAlertCheck(&p[1], 2))) {
4274
printf("sid 2 matched but shouldn't have for packet 1: ");
4278
r = AppLayerParse(&f, ALPROTO_DCERPC, STREAM_TOSERVER, request1, request1_len);
4280
printf("toserver chunk 1 returned %" PRId32 ", expected 0: ", r);
4284
/* detection phase */
4285
SigMatchSignatures(&tv, de_ctx, det_ctx, &p[2]);
4286
if ((PacketAlertCheck(&p[2], 1))) {
4287
printf("sid 1 matched but shouldn't have for packet 2: ");
4290
if ((PacketAlertCheck(&p[2], 2))) {
4291
printf("sid 2 matched but shouldn't have for packet 2: ");
4295
r = AppLayerParse(&f, ALPROTO_DCERPC, STREAM_TOSERVER, request2, request2_len);
4297
printf("toserver chunk 1 returned %" PRId32 ", expected 0: ", r);
4301
/* detection phase */
4302
SigMatchSignatures(&tv, de_ctx, det_ctx, &p[3]);
4303
if ((PacketAlertCheck(&p[3], 1))) {
4304
printf("sid 1 matched but shouldn't have for packet 3: ");
4307
if (!(PacketAlertCheck(&p[3], 2))) {
4308
printf("sid 2 didn't match but should have for packet 3: ");
4315
if (de_ctx != NULL) {
4316
SigGroupCleanup(de_ctx);
4317
SigCleanSignatures(de_ctx);
4319
DetectEngineThreadCtxDeinit(&tv, (void *)det_ctx);
4320
DetectEngineCtxFree(de_ctx);
4323
FlowL7DataPtrFree(&f);
4324
StreamTcpFreeConfig(TRUE);
4330
* \test Test the working of detection engien with respect to dce keywords.
4332
int DcePayloadTest07(void)
4336
0x05, 0x00, 0x0b, 0x03, 0x10, 0x00, 0x00, 0x00,
4337
0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
4338
0xd0, 0x16, 0xd0, 0x16, 0x00, 0x00, 0x00, 0x00,
4339
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
4340
0x6a, 0x28, 0x19, 0x39, 0x0c, 0xb1, 0xd0, 0x11,
4341
0x9b, 0xa8, 0x00, 0xc0, 0x4f, 0xd9, 0x2e, 0xf5,
4342
0x00, 0x00, 0x00, 0x00, 0x04, 0x5d, 0x88, 0x8a,
4343
0xeb, 0x1c, 0xc9, 0x11, 0x9f, 0xe8, 0x08, 0x00,
4344
0x2b, 0x10, 0x48, 0x60, 0x02, 0x00, 0x00, 0x00
4346
uint32_t bind_len = sizeof(bind);
4348
uint8_t bind_ack[] = {
4349
0x05, 0x00, 0x0c, 0x03, 0x10, 0x00, 0x00, 0x00,
4350
0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
4351
0xb8, 0x10, 0xb8, 0x10, 0x48, 0x1a, 0x00, 0x00,
4352
0x0c, 0x00, 0x5c, 0x50, 0x49, 0x50, 0x45, 0x5c,
4353
0x6c, 0x73, 0x61, 0x73, 0x73, 0x00, 0x00, 0x00,
4354
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
4355
0x04, 0x5d, 0x88, 0x8a, 0xeb, 0x1c, 0xc9, 0x11,
4356
0x9f, 0xe8, 0x08, 0x00, 0x2b, 0x10, 0x48, 0x60,
4357
0x02, 0x00, 0x00, 0x00
4359
uint32_t bind_ack_len = sizeof(bind_ack);
4361
uint8_t request1[] = {
4362
0x05, 0x00, 0x00, 0x01, 0x10, 0x00, 0x00, 0x00,
4363
0x18, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
4364
0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00,
4365
0xad, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
4366
0xad, 0x0d, 0x00, 0x00, 0x91, 0xfc, 0x27, 0x40,
4367
0x4a, 0x97, 0x4a, 0x98, 0x4b, 0x41, 0x3f, 0x48,
4368
0x99, 0x90, 0xf8, 0x27, 0xfd, 0x3f, 0x27, 0x37,
4369
0x40, 0xd6, 0x27, 0xfc, 0x3f, 0x9f, 0x4f, 0xfd,
4370
0x42, 0x47, 0x47, 0x49, 0x3f, 0xf9, 0x9b, 0xd6,
4371
0x48, 0x37, 0x27, 0x46, 0x93, 0x49, 0xfd, 0x93,
4372
0x91, 0xfd, 0x93, 0x90, 0x92, 0x96, 0xf5, 0x92,
4373
0x4e, 0x91, 0x98, 0x46, 0x4f, 0x4b, 0x46, 0xf5,
4374
0xf5, 0xfd, 0x40, 0xf9, 0x9b, 0x40, 0x9f, 0x93,
4375
0x4e, 0xf8, 0x40, 0x40, 0x4e, 0xf5, 0x4b, 0x98,
4376
0xf5, 0x91, 0xd6, 0x42, 0x99, 0x96, 0x27, 0x49,
4377
0x48, 0x47, 0x4f, 0x46, 0x99, 0x4b, 0x92, 0x92,
4378
0x90, 0x47, 0x46, 0x4e, 0x43, 0x9b, 0x43, 0x42,
4379
0x3f, 0x4b, 0x27, 0x97, 0x93, 0xf9, 0x42, 0x9b,
4380
0x46, 0x9b, 0x4b, 0x98, 0x41, 0x98, 0x37, 0x41,
4381
0x9f, 0x98, 0x4e, 0x93, 0x48, 0x46, 0x46, 0x9f,
4382
0x97, 0x9b, 0x42, 0x37, 0x90, 0x46, 0xf9, 0x97,
4383
0x91, 0xf5, 0x4e, 0x97, 0x4e, 0x99, 0xf8, 0x99,
4384
0x41, 0xf5, 0x41, 0x9f, 0x49, 0xfd, 0x92, 0x96,
4385
0x3f, 0x3f, 0x42, 0x27, 0x27, 0x93, 0x47, 0x49,
4386
0x91, 0x27, 0x27, 0x40, 0x42, 0x99, 0x9f, 0xfc,
4387
0x97, 0x47, 0x99, 0x4a, 0xf9, 0x3f, 0x48, 0x91,
4388
0x47, 0x97, 0x91, 0x42, 0x4b, 0x9b, 0x4a, 0x48,
4389
0x9f, 0x43, 0x43, 0x40, 0x99, 0xf9, 0x48, 0x4e,
4390
0x92, 0x93, 0x92, 0x41, 0x46, 0x4b, 0x4a, 0x4a,
4391
0x49, 0x96, 0x4a, 0x4f, 0xf5, 0x42, 0x47, 0x98,
4392
0x9b, 0xf5, 0x91, 0xf9, 0xd6, 0x9b, 0x48, 0x4e,
4393
0x9f, 0x91, 0xd6, 0x93, 0x4b, 0x37, 0x3f, 0x43,
4394
0xf5, 0x41, 0x41, 0xf5, 0x37, 0x4f, 0x43, 0x92,
4395
0x97, 0x27, 0x93, 0x92, 0x46, 0x47, 0x4b, 0x96,
4396
0x41, 0x90, 0x90, 0x3f, 0x96, 0x27, 0x41, 0xd6,
4397
0xd6, 0xd6, 0xf9, 0xf8, 0x47, 0x27, 0x46, 0x37,
4398
0x41, 0x90, 0x91, 0xfc, 0x46, 0x41, 0x43, 0x97,
4399
0x9f, 0x4a, 0x49, 0x92, 0x41, 0x91, 0x41, 0x92,
4400
0x42, 0x4a, 0x3f, 0x93, 0x99, 0x9b, 0x9f, 0x4e,
4401
0x47, 0x93, 0xd6, 0x37, 0x37, 0x40, 0x98, 0xfd,
4402
0x41, 0x42, 0x97, 0x4e, 0x4e, 0x98, 0x9f, 0x4e,
4403
0x48, 0x3f, 0x48, 0x42, 0x96, 0x9f, 0x99, 0x4f,
4404
0x4e, 0x42, 0x97, 0xf9, 0x3f, 0x37, 0x27, 0x46,
4405
0x41, 0xf9, 0x92, 0x96, 0x41, 0x93, 0x91, 0x4b,
4406
0x96, 0x4f, 0x43, 0xfd, 0xf5, 0x9f, 0x43, 0x27,
4407
0x99, 0xd6, 0xf5, 0x4e, 0xfd, 0x97, 0x4b, 0x47,
4408
0x47, 0x92, 0x98, 0x4f, 0x47, 0x49, 0x37, 0x97,
4409
0x3f, 0x4e, 0x40, 0x46, 0x4e, 0x9f, 0x4e, 0x4e,
4410
0xfc, 0x41, 0x47, 0xf8, 0x37, 0x9b, 0x41, 0x4e,
4411
0x96, 0x99, 0x46, 0x99, 0x46, 0xf9, 0x4e, 0x4f,
4412
0x48, 0x97, 0x97, 0x93, 0xd6, 0x9b, 0x41, 0x40,
4413
0x97, 0x97, 0x4f, 0x92, 0x91, 0xd6, 0x96, 0x40,
4414
0x4f, 0x4b, 0x91, 0x46, 0x27, 0x92, 0x3f, 0xf5,
4415
0xfc, 0x3f, 0x91, 0x97, 0xf8, 0x43, 0x4e, 0xfd,
4416
0x9b, 0x27, 0xfd, 0x9b, 0xf5, 0x27, 0x47, 0x42,
4417
0x46, 0x93, 0x37, 0x93, 0x91, 0x91, 0x91, 0xf8,
4418
0x4f, 0x92, 0x4f, 0xf8, 0x93, 0xf5, 0x49, 0x91,
4419
0x4b, 0x3f, 0xfc, 0x37, 0x4f, 0x46, 0x98, 0x97,
4420
0x9f, 0x40, 0xfd, 0x9f, 0x98, 0xfd, 0x4e, 0x97,
4421
0x4f, 0x47, 0x91, 0x27, 0x4a, 0x90, 0x96, 0x40,
4422
0x98, 0x97, 0x41, 0x3f, 0xd6, 0xfd, 0x41, 0xfd,
4423
0x42, 0x97, 0x4b, 0x9b, 0x46, 0x4e, 0xfc, 0x96,
4424
0xf9, 0x37, 0x4b, 0x96, 0x9f, 0x9b, 0x42, 0x9f,
4425
0x93, 0x40, 0x42, 0x43, 0xf5, 0x93, 0x48, 0x3f,
4426
0x4b, 0xfd, 0x9f, 0x4b, 0x41, 0x4a, 0x90, 0x9b,
4427
0x46, 0x97, 0x98, 0x96, 0x9b, 0x98, 0x92, 0xd6,
4428
0x4e, 0x4a, 0x27, 0x90, 0x96, 0x99, 0x91, 0x46,
4429
0x49, 0x41, 0x4b, 0x90, 0x43, 0x91, 0xd6, 0x48,
4430
0x42, 0x90, 0x4f, 0x96, 0x43, 0x9b, 0xf9, 0x9b,
4431
0x9f, 0x9f, 0x27, 0x47, 0x4b, 0xf5, 0x43, 0x99,
4432
0x99, 0x91, 0x4e, 0x41, 0x42, 0x46, 0x97, 0x46,
4433
0x47, 0xf9, 0xf5, 0x48, 0x4a, 0xf8, 0x4e, 0xd6,
4434
0x43, 0x4a, 0x27, 0x9b, 0x42, 0x90, 0x46, 0x46,
4435
0x3f, 0x99, 0x96, 0x9b, 0x91, 0x9f, 0xf5, 0x48,
4436
0x43, 0x9f, 0x4a, 0x99, 0x96, 0xfd, 0x92, 0x49,
4437
0x46, 0x91, 0x40, 0xfd, 0x4a, 0x48, 0x4f, 0x90,
4438
0x91, 0x98, 0x48, 0x4b, 0x9f, 0x42, 0x27, 0x93,
4439
0x47, 0xf8, 0x4f, 0x48, 0x3f, 0x90, 0x47, 0x41,
4440
0xf5, 0xfc, 0x27, 0xf8, 0x97, 0x4a, 0x49, 0x37,
4441
0x40, 0x4f, 0x40, 0x37, 0x41, 0x27, 0x96, 0x37,
4442
0xfc, 0x42, 0xd6, 0x4b, 0x48, 0x37, 0x42, 0xf5,
4443
0x27, 0xf9, 0xd6, 0x48, 0x9b, 0xfd, 0x40, 0x96,
4444
0x4e, 0x43, 0xf8, 0x90, 0x40, 0x40, 0x49, 0x3f,
4445
0xfc, 0x4a, 0x42, 0x47, 0xf8, 0x49, 0x42, 0x97,
4446
0x4f, 0x91, 0xfd, 0x4b, 0x46, 0x4b, 0xfc, 0x48,
4447
0x49, 0x96, 0x4b, 0x96, 0x43, 0x9f, 0x90, 0x37,
4448
0xd6, 0x4a, 0xd6, 0x3f, 0xd6, 0x90, 0x49, 0x27,
4449
0x4e, 0x96, 0x96, 0xf8, 0x49, 0x96, 0xf8, 0x37,
4450
0x90, 0x4e, 0x4b, 0x4f, 0x99, 0xf8, 0x6a, 0x52,
4451
0x59, 0xd9, 0xee, 0xd9, 0x74, 0x24, 0xf4, 0x5b,
4452
0x81, 0x73, 0x13, 0x30, 0x50, 0xf0, 0x82, 0x83,
4453
0xeb, 0xfc, 0xe2, 0xf4, 0xb1, 0x94, 0x0f, 0x6d,
4454
0xcf, 0xaf, 0xb4, 0x7e, 0x5a, 0xbb, 0xbf, 0x6a,
4455
0xc9, 0xaf, 0x0f, 0x7d, 0x50, 0xdb, 0x9c, 0xa6,
4456
0x14, 0xdb, 0xb5, 0xbe, 0xbb, 0x2c, 0xf5, 0xfa,
4457
0x31, 0xbf, 0x7b, 0xcd, 0x28, 0xdb, 0xaf, 0xa2,
4458
0x31, 0xbb, 0x13, 0xb2, 0x79, 0xdb, 0xc4, 0x09,
4459
0x31, 0xbe, 0xc1, 0x42, 0xa9, 0xfc, 0x74, 0x42,
4460
0x44, 0x57, 0x31, 0x48, 0x3d, 0x51, 0x32, 0x69,
4461
0xc4, 0x6b, 0xa4, 0xa6, 0x18, 0x25, 0x13, 0x09,
4462
0x6f, 0x74, 0xf1, 0x69, 0x56, 0xdb, 0xfc, 0xc9,
4463
0xbb, 0x0f, 0xec, 0x83, 0xdb, 0x53, 0xdc, 0x09,
4464
0xb9, 0x3c, 0xd4, 0x9e, 0x51, 0x93, 0xc1, 0x42,
4465
0x54, 0xdb, 0xb0, 0xb2, 0xbb, 0x10, 0xfc, 0x09,
4466
0x40, 0x4c, 0x5d, 0x09, 0x70, 0x58, 0xae, 0xea,
4467
0xbe, 0x1e, 0xfe, 0x6e, 0x60, 0xaf, 0x26, 0xb3,
4468
0xeb, 0x36, 0xa3, 0xe4, 0x58, 0x63, 0xc2, 0xea,
4469
0x47, 0x23, 0xc2, 0xdd, 0x64, 0xaf, 0x20, 0xea,
4470
0xfb, 0xbd, 0x0c, 0xb9, 0x60, 0xaf, 0x26, 0xdd,
4471
0xb9, 0xb5, 0x96, 0x03, 0xdd, 0x58, 0xf2, 0xd7,
4472
0x5a, 0x52, 0x0f, 0x52, 0x58, 0x89, 0xf9, 0x77,
4473
0x9d, 0x07, 0x0f, 0x54, 0x63, 0x03, 0xa3, 0xd1,
4474
0x63, 0x13, 0xa3, 0xc1, 0x63, 0xaf, 0x20, 0xe4,
4475
0x58, 0x41, 0xac, 0xe4, 0x63, 0xd9, 0x11, 0x17,
4476
0x58, 0xf4, 0xea, 0xf2, 0xf7, 0x07, 0x0f, 0x54,
4477
0x5a, 0x40, 0xa1, 0xd7, 0xcf, 0x80, 0x98, 0x26,
4478
0x9d, 0x7e, 0x19, 0xd5, 0xcf, 0x86, 0xa3, 0xd7,
4479
0xcf, 0x80, 0x98, 0x67, 0x79, 0xd6, 0xb9, 0xd5,
4480
0xcf, 0x86, 0xa0, 0xd6, 0x64, 0x05, 0x0f, 0x52,
4481
0xa3, 0x38, 0x17, 0xfb, 0xf6, 0x29, 0xa7, 0x7d,
4482
0xe6, 0x05, 0x0f, 0x52, 0x56, 0x3a, 0x94, 0xe4,
4483
0x58, 0x33, 0x9d, 0x0b, 0xd5, 0x3a, 0xa0, 0xdb,
4484
0x19, 0x9c, 0x79, 0x65, 0x5a, 0x14, 0x79, 0x60,
4485
0x01, 0x90, 0x03, 0x28, 0xce, 0x12, 0xdd, 0x7c,
4486
0x72, 0x7c, 0x63, 0x0f, 0x4a, 0x68, 0x5b, 0x29,
4487
0x9b, 0x38, 0x82, 0x7c, 0x83, 0x46, 0x0f, 0xf7,
4488
0x74, 0xaf, 0x26, 0xd9, 0x67, 0x02, 0xa1, 0xd3,
4489
0x61, 0x3a, 0xf1, 0xd3, 0x61, 0x05, 0xa1, 0x7d,
4490
0xe0, 0x38, 0x5d, 0x5b, 0x35, 0x9e, 0xa3, 0x7d,
4491
0xe6, 0x3a, 0x0f, 0x7d, 0x07, 0xaf, 0x20, 0x09,
4492
0x67, 0xac, 0x73, 0x46, 0x54, 0xaf, 0x26, 0xd0
4494
uint32_t request1_len = sizeof(request1);
4496
uint8_t request2[] = {
4497
0x05, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
4498
0x18, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
4499
0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00,
4500
0xcf, 0x80, 0x98, 0x6d, 0xfe, 0xb0, 0x90, 0xd1,
4501
0xcf, 0x86, 0x0f, 0x52, 0x2c, 0x23, 0x66, 0x28,
4502
0x27, 0x30, 0x48, 0x55, 0x42, 0x6a, 0x48, 0x4b,
4503
0x68, 0x22, 0x2e, 0x23, 0x64, 0x33, 0x2c, 0x2d,
4504
0x5c, 0x51, 0x48, 0x55, 0x24, 0x67, 0x6c, 0x4c,
4505
0x45, 0x71, 0x35, 0x72, 0x5a, 0x48, 0x5e, 0x35,
4506
0x61, 0x78, 0x35, 0x42, 0x2c, 0x7a, 0x75, 0x61,
4507
0x5b, 0x4e, 0x76, 0x30, 0x26, 0x2f, 0x2a, 0x34,
4508
0x48, 0x29, 0x25, 0x6e, 0x5c, 0x3a, 0x6c, 0x3e,
4509
0x79, 0x4e, 0x2a, 0x21, 0x6f, 0x6f, 0x34, 0x46,
4510
0x43, 0x26, 0x5b, 0x35, 0x78, 0x27, 0x69, 0x23,
4511
0x72, 0x21, 0x69, 0x56, 0x6a, 0x7d, 0x4b, 0x5e,
4512
0x65, 0x37, 0x60, 0x44, 0x7c, 0x5d, 0x5b, 0x72,
4513
0x7d, 0x73, 0x7b, 0x47, 0x57, 0x21, 0x41, 0x38,
4514
0x76, 0x38, 0x76, 0x5c, 0x58, 0x32, 0x4a, 0x37,
4515
0x2f, 0x40, 0x4b, 0x4c, 0x3d, 0x41, 0x33, 0x56,
4516
0x73, 0x38, 0x61, 0x71, 0x24, 0x49, 0x4c, 0x4a,
4517
0x44, 0x2e, 0x3a, 0x3f, 0x74, 0x54, 0x4c, 0x65,
4518
0x54, 0x2d, 0x3b, 0x28, 0x41, 0x45, 0x49, 0x2c,
4519
0x6e, 0x48, 0x44, 0x43, 0x37, 0x3d, 0x7b, 0x6d,
4520
0x2b, 0x4b, 0x32, 0x5a, 0x31, 0x61, 0x6e, 0x2b,
4521
0x27, 0x50, 0x6b, 0x66, 0x76, 0x4e, 0x55, 0x35,
4522
0x2b, 0x72, 0x2d, 0x5e, 0x42, 0x3e, 0x5a, 0x5d,
4523
0x36, 0x45, 0x32, 0x3a, 0x58, 0x78, 0x78, 0x3e,
4524
0x60, 0x6c, 0x5d, 0x63, 0x41, 0x7c, 0x52, 0x21,
4525
0x75, 0x6a, 0x5a, 0x70, 0x55, 0x45, 0x76, 0x58,
4526
0x33, 0x40, 0x38, 0x39, 0x21, 0x37, 0x7d, 0x77,
4527
0x21, 0x70, 0x2b, 0x72, 0x29, 0x6a, 0x31, 0x5f,
4528
0x38, 0x4a, 0x66, 0x65, 0x62, 0x2c, 0x39, 0x52,
4529
0x5f, 0x2a, 0x2b, 0x63, 0x4f, 0x76, 0x43, 0x25,
4530
0x6a, 0x50, 0x37, 0x52, 0x5e, 0x23, 0x3c, 0x42,
4531
0x28, 0x75, 0x75, 0x42, 0x25, 0x23, 0x28, 0x56,
4532
0x6c, 0x46, 0x5c, 0x5e, 0x6b, 0x7d, 0x48, 0x24,
4533
0x77, 0x6c, 0x70, 0x62, 0x2e, 0x28, 0x7d, 0x6b,
4534
0x69, 0x4a, 0x75, 0x3d, 0x5d, 0x56, 0x21, 0x49,
4535
0x56, 0x47, 0x64, 0x2b, 0x4c, 0x52, 0x43, 0x60,
4536
0x77, 0x49, 0x46, 0x46, 0x33, 0x2c, 0x4b, 0x4b,
4537
0x3d, 0x63, 0x5d, 0x33, 0x78, 0x76, 0x51, 0x56,
4538
0x77, 0x3c, 0x72, 0x74, 0x52, 0x27, 0x40, 0x6c,
4539
0x42, 0x79, 0x49, 0x24, 0x62, 0x5e, 0x26, 0x31,
4540
0x5c, 0x22, 0x2b, 0x4c, 0x64, 0x49, 0x52, 0x45,
4541
0x47, 0x49, 0x3a, 0x2a, 0x51, 0x71, 0x22, 0x22,
4542
0x70, 0x24, 0x34, 0x67, 0x4b, 0x6d, 0x58, 0x29,
4543
0x63, 0x26, 0x7b, 0x6f, 0x38, 0x78, 0x25, 0x62,
4544
0x4d, 0x3a, 0x7d, 0x40, 0x23, 0x57, 0x67, 0x33,
4545
0x38, 0x31, 0x4e, 0x54, 0x3c, 0x4b, 0x48, 0x69,
4546
0x3c, 0x39, 0x31, 0x2b, 0x26, 0x70, 0x44, 0x66,
4547
0x4a, 0x37, 0x2b, 0x75, 0x36, 0x45, 0x59, 0x34,
4548
0x3e, 0x3e, 0x29, 0x70, 0x71, 0x5a, 0x55, 0x49,
4549
0x3e, 0x4b, 0x68, 0x4e, 0x75, 0x70, 0x3c, 0x5c,
4550
0x50, 0x58, 0x28, 0x75, 0x3c, 0x2a, 0x41, 0x70,
4551
0x2f, 0x2b, 0x37, 0x26, 0x75, 0x71, 0x55, 0x22,
4552
0x3a, 0x44, 0x30, 0x48, 0x5d, 0x2f, 0x6c, 0x44,
4553
0x28, 0x4b, 0x34, 0x45, 0x21, 0x60, 0x44, 0x36,
4554
0x7b, 0x32, 0x39, 0x5f, 0x6d, 0x3f, 0x68, 0x73,
4555
0x25, 0x45, 0x56, 0x7c, 0x78, 0x7a, 0x49, 0x6a,
4556
0x46, 0x3d, 0x2d, 0x33, 0x6c, 0x6f, 0x23, 0x77,
4557
0x38, 0x33, 0x36, 0x74, 0x7b, 0x57, 0x4b, 0x6d,
4558
0x27, 0x75, 0x24, 0x6e, 0x43, 0x61, 0x4d, 0x44,
4559
0x6d, 0x27, 0x48, 0x58, 0x5e, 0x7b, 0x26, 0x6a,
4560
0x50, 0x7c, 0x51, 0x23, 0x3c, 0x4f, 0x37, 0x4c,
4561
0x47, 0x3e, 0x45, 0x56, 0x22, 0x33, 0x7c, 0x66,
4562
0x35, 0x54, 0x7a, 0x6e, 0x5a, 0x24, 0x70, 0x62,
4563
0x29, 0x3f, 0x69, 0x79, 0x24, 0x43, 0x41, 0x24,
4564
0x65, 0x25, 0x62, 0x4f, 0x73, 0x3e, 0x2b, 0x36,
4565
0x46, 0x69, 0x27, 0x55, 0x2a, 0x6e, 0x24, 0x6c,
4566
0x7d, 0x64, 0x7c, 0x61, 0x26, 0x67, 0x2a, 0x53,
4567
0x73, 0x60, 0x28, 0x2d, 0x6b, 0x44, 0x54, 0x61,
4568
0x34, 0x53, 0x22, 0x59, 0x6d, 0x73, 0x56, 0x55,
4569
0x25, 0x2c, 0x38, 0x4a, 0x3b, 0x4e, 0x78, 0x46,
4570
0x54, 0x6e, 0x6d, 0x4f, 0x47, 0x4f, 0x4f, 0x5a,
4571
0x67, 0x77, 0x39, 0x66, 0x28, 0x29, 0x4e, 0x43,
4572
0x55, 0x6e, 0x60, 0x59, 0x28, 0x3b, 0x65, 0x62,
4573
0x61, 0x5a, 0x29, 0x6e, 0x79, 0x60, 0x41, 0x53,
4574
0x2f, 0x5d, 0x44, 0x36, 0x7b, 0x3e, 0x7c, 0x2b,
4575
0x77, 0x36, 0x70, 0x3f, 0x40, 0x55, 0x48, 0x67,
4576
0x4b, 0x4d, 0x5d, 0x51, 0x79, 0x76, 0x48, 0x4a,
4577
0x2d, 0x21, 0x60, 0x40, 0x46, 0x55, 0x7a, 0x60,
4578
0x22, 0x25, 0x3f, 0x4b, 0x54, 0x6a, 0x6a, 0x3c,
4579
0x77, 0x22, 0x5b, 0x43, 0x67, 0x58, 0x71, 0x22,
4580
0x79, 0x4b, 0x32, 0x61, 0x44, 0x4d, 0x6f, 0x42,
4581
0x33, 0x2d, 0x53, 0x35, 0x3d, 0x6f, 0x57, 0x48,
4582
0x33, 0x3b, 0x5a, 0x53, 0x3f, 0x4e, 0x3f, 0x6b,
4583
0x4c, 0x27, 0x26, 0x3b, 0x73, 0x49, 0x22, 0x55,
4584
0x79, 0x2f, 0x47, 0x2f, 0x55, 0x5a, 0x7a, 0x71,
4585
0x6c, 0x31, 0x43, 0x40, 0x56, 0x7b, 0x21, 0x7a,
4586
0x6d, 0x4c, 0x43, 0x5e, 0x38, 0x47, 0x29, 0x38,
4587
0x62, 0x49, 0x45, 0x78, 0x70, 0x2b, 0x2e, 0x65,
4588
0x47, 0x71, 0x58, 0x79, 0x39, 0x67, 0x7d, 0x6d,
4589
0x6a, 0x67, 0x4a, 0x71, 0x27, 0x35, 0x2a, 0x4c,
4590
0x3e, 0x58, 0x55, 0x30, 0x4d, 0x75, 0x77, 0x48,
4591
0x5f, 0x4b, 0x59, 0x34, 0x65, 0x68, 0x57, 0x59,
4592
0x63, 0x23, 0x47, 0x38, 0x47, 0x5e, 0x56, 0x28,
4593
0x79, 0x58, 0x3e, 0x39, 0x66, 0x77, 0x67, 0x33,
4594
0x29, 0x61, 0x24, 0x7d, 0x37, 0x44, 0x37, 0x67,
4595
0x3a, 0x58, 0x76, 0x21, 0x51, 0x59, 0x61, 0x73,
4596
0x66, 0x75, 0x71, 0x53, 0x4d, 0x24, 0x2d, 0x4b,
4597
0x29, 0x30, 0x32, 0x26, 0x59, 0x64, 0x27, 0x55,
4598
0x2c, 0x5a, 0x4c, 0x3c, 0x6c, 0x53, 0x56, 0x4b,
4599
0x3e, 0x55, 0x2e, 0x44, 0x38, 0x6b, 0x47, 0x76,
4600
0x2d, 0x2c, 0x3f, 0x4d, 0x22, 0x7b, 0x6d, 0x61,
4601
0x34, 0x6b, 0x50, 0x73, 0x28, 0x6d, 0x41, 0x71,
4602
0x21, 0x76, 0x52, 0x2a, 0x6d, 0x53, 0x2a, 0x74,
4603
0x28, 0x27, 0x62, 0x2a, 0x66, 0x25, 0x6e, 0x5e,
4604
0x37, 0x4f, 0x27, 0x72, 0x28, 0x47, 0x63, 0x6e,
4605
0x5a, 0x6a, 0x41, 0x35, 0x3a, 0x42, 0x3f, 0x27,
4606
0x75, 0x3e, 0x26, 0x3e, 0x6b, 0x55, 0x59, 0x60,
4607
0x24, 0x70, 0x49, 0x3c, 0x4e, 0x2c, 0x39, 0x7a,
4608
0x36, 0x6c, 0x27, 0x3e, 0x6a, 0x4a, 0x59, 0x5a,
4609
0x3e, 0x21, 0x73, 0x4e, 0x59, 0x6e, 0x3d, 0x32,
4610
0x27, 0x45, 0x49, 0x58, 0x7d, 0x37, 0x39, 0x77,
4611
0x28, 0x51, 0x79, 0x54, 0x2b, 0x78, 0x46, 0x5a,
4612
0x21, 0x75, 0x33, 0x21, 0x63, 0x5a, 0x7b, 0x3e,
4613
0x33, 0x4f, 0x67, 0x75, 0x3a, 0x50, 0x48, 0x60,
4614
0x26, 0x64, 0x76, 0x5c, 0x42, 0x5c, 0x72, 0x38,
4615
0x6c, 0x52, 0x21, 0x2b, 0x25, 0x6b, 0x7c, 0x6b,
4616
0x2d, 0x5e, 0x63, 0x2a, 0x4c, 0x26, 0x5b, 0x4c,
4617
0x58, 0x52, 0x51, 0x55, 0x31, 0x79, 0x6c, 0x53,
4618
0x62, 0x3a, 0x36, 0x46, 0x7a, 0x29, 0x27, 0x78,
4619
0x1a, 0xbf, 0x49, 0x74, 0x68, 0x24, 0x51, 0x44,
4620
0x5b, 0x3e, 0x34, 0x44, 0x29, 0x5e, 0x4f, 0x2a,
4621
0xe9, 0x3f, 0xf8, 0xff, 0xff, 0x52, 0x7d, 0x47,
4622
0x67, 0x40, 0x27, 0x5e, 0x47, 0x46, 0x6d, 0x72,
4623
0x5d, 0x49, 0x26, 0x45, 0x33, 0x6b, 0x4d, 0x4a,
4624
0x6f, 0x62, 0x60, 0x45, 0x62, 0x27, 0x27, 0x7d,
4625
0x6a, 0x41, 0x2c, 0x6c, 0x5b, 0x2a, 0x2b, 0x36,
4626
0x29, 0x58, 0x7a, 0x4c, 0x6e, 0x2d, 0x74, 0x5c,
4627
0x38, 0x22, 0x5f, 0x49, 0x63, 0x43, 0x5b, 0x67
4629
uint32_t request2_len = sizeof(request2);
4634
DetectEngineCtx *de_ctx = NULL;
4635
DetectEngineThreadCtx *det_ctx = NULL;
4640
char *sig1 = "alert tcp any any -> any any "
4641
"(dce_iface:3919286a-b10c-11d0-9ba8-00c04fd92ef5; "
4642
"content:|91 27 27 30|; sid:1;)";
4643
char *sig2 = "alert tcp any any -> any any (dce_stub_data; "
4644
"content:|2d 5e 63 35 25|; sid:2;)";
4648
memset(&tv, 0, sizeof(ThreadVars));
4649
memset(&f, 0, sizeof(Flow));
4650
memset(&ssn, 0, sizeof(TcpSession));
4652
for (i = 0; i < 4; i++) {
4653
memset(&p[i], 0, sizeof(Packet));
4654
p[i].src.family = AF_INET;
4655
p[i].dst.family = AF_INET;
4656
p[i].payload = NULL;
4657
p[i].payload_len = 0;
4658
p[i].proto = IPPROTO_TCP;
4660
p[i].flowflags |= FLOW_PKT_TOSERVER;
4661
p[i].flowflags |= FLOW_PKT_ESTABLISHED;
4663
p[1].flowflags |= FLOW_PKT_TOCLIENT;
4665
FLOW_INITIALIZE(&f);
4666
f.protoctx = (void *)&ssn;
4667
f.src.family = AF_INET;
4668
f.dst.family = AF_INET;
4669
f.alproto = ALPROTO_DCERPC;
4671
StreamTcpInitConfig(TRUE);
4672
FlowL7DataPtrInit(&f);
4674
de_ctx = DetectEngineCtxInit();
4677
de_ctx->flags |= DE_QUIET;
4679
de_ctx->sig_list = SigInit(de_ctx, sig1);
4680
s = de_ctx->sig_list;
4684
s->next = SigInit(de_ctx, sig2);
4689
SigGroupBuild(de_ctx);
4690
DetectEngineThreadCtxInit(&tv, (void *)de_ctx, (void *)&det_ctx);
4692
r = AppLayerParse(&f, ALPROTO_DCERPC, STREAM_TOSERVER, bind, bind_len);
4694
printf("toserver chunk 1 returned %" PRId32 ", expected 0: ", r);
4698
/* detection phase */
4699
SigMatchSignatures(&tv, de_ctx, det_ctx, &p[0]);
4700
if ((PacketAlertCheck(&p[0], 1))) {
4701
printf("sid 1 matched but shouldn't have for packet 0: ");
4704
if ((PacketAlertCheck(&p[0], 2))) {
4705
printf("sid 2 matched but shouldn't have for packet 0: ");
4709
r = AppLayerParse(&f, ALPROTO_DCERPC, STREAM_TOCLIENT, bind_ack, bind_ack_len);
4711
printf("toserver chunk 1 returned %" PRId32 ", expected 0: ", r);
4715
/* detection phase */
4716
SigMatchSignatures(&tv, de_ctx, det_ctx, &p[1]);
4717
if ((PacketAlertCheck(&p[1], 1))) {
4718
printf("sid 1 matched but shouldn't have for packet 1: ");
4721
if ((PacketAlertCheck(&p[1], 2))) {
4722
printf("sid 2 matched but shouldn't have for packet 1: ");
4726
r = AppLayerParse(&f, ALPROTO_DCERPC, STREAM_TOSERVER, request1, request1_len);
4728
printf("toserver chunk 1 returned %" PRId32 ", expected 0: ", r);
4732
/* detection phase */
4733
SigMatchSignatures(&tv, de_ctx, det_ctx, &p[2]);
4734
if ((PacketAlertCheck(&p[2], 1))) {
4735
printf("sid 1 matched but shouldn't have for packet 2: ");
4738
if ((PacketAlertCheck(&p[2], 2))) {
4739
printf("sid 2 matched but shouldn't have for packet 2: ");
4743
r = AppLayerParse(&f, ALPROTO_DCERPC, STREAM_TOSERVER, request2, request2_len);
4745
printf("toserver chunk 1 returned %" PRId32 ", expected 0: ", r);
4749
/* detection phase */
4750
SigMatchSignatures(&tv, de_ctx, det_ctx, &p[3]);
4751
if ((PacketAlertCheck(&p[3], 1))) {
4752
printf("sid 1 matched but shouldn't have for packet 3: ");
4755
if ((PacketAlertCheck(&p[3], 2))) {
4756
printf("sid 2 matched but shouldn't have for packet 3: ");
4763
if (de_ctx != NULL) {
4764
SigGroupCleanup(de_ctx);
4765
SigCleanSignatures(de_ctx);
4767
DetectEngineThreadCtxDeinit(&tv, (void *)det_ctx);
4768
DetectEngineCtxFree(de_ctx);
4771
FlowL7DataPtrFree(&f);
4772
StreamTcpFreeConfig(TRUE);
4778
* \test Positive test, to test the working of distance and within.
4780
int DcePayloadTest08(void)
4784
uint8_t request1[] = {
4785
0x05, 0x00, 0x00, 0x01, 0x10, 0x00, 0x00, 0x00,
4786
0x18, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
4787
0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00,
4788
0xad, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
4789
0xad, 0x0d, 0x00, 0x00, 0x91, 0xfc, 0x27, 0x40,
4790
0x4a, 0x97, 0x4a, 0x98, 0x4b, 0x41, 0x3f, 0x48,
4791
0x99, 0x90, 0xf8, 0x27, 0xfd, 0x3f, 0x27, 0x37,
4792
0x40, 0xd6, 0x27, 0xfc, 0x3f, 0x9f, 0x4f, 0xfd,
4793
0x42, 0x47, 0x47, 0x49, 0x3f, 0xf9, 0x9b, 0xd6,
4794
0x48, 0x37, 0x27, 0x46, 0x93, 0x49, 0xfd, 0x93,
4795
0x91, 0xfd, 0x93, 0x90, 0x92, 0x96, 0xf5, 0x92,
4796
0x4e, 0x91, 0x98, 0x46, 0x4f, 0x4b, 0x46, 0xf5,
4797
0xf5, 0xfd, 0x40, 0xf9, 0x9b, 0x40, 0x9f, 0x93,
4798
0x4e, 0xf8, 0x40, 0x40, 0x4e, 0xf5, 0x4b, 0x98,
4799
0xf5, 0x91, 0xd6, 0x42, 0x99, 0x96, 0x27, 0x49,
4800
0x48, 0x47, 0x4f, 0x46, 0x99, 0x4b, 0x92, 0x92,
4801
0x90, 0x47, 0x46, 0x4e, 0x43, 0x9b, 0x43, 0x42,
4802
0x3f, 0x4b, 0x27, 0x97, 0x93, 0xf9, 0x42, 0x9b,
4803
0x46, 0x9b, 0x4b, 0x98, 0x41, 0x98, 0x37, 0x41,
4804
0x9f, 0x98, 0x4e, 0x93, 0x48, 0x46, 0x46, 0x9f,
4805
0x97, 0x9b, 0x42, 0x37, 0x90, 0x46, 0xf9, 0x97,
4806
0x91, 0xf5, 0x4e, 0x97, 0x4e, 0x99, 0xf8, 0x99,
4807
0x41, 0xf5, 0x41, 0x9f, 0x49, 0xfd, 0x92, 0x96,
4808
0x3f, 0x3f, 0x42, 0x27, 0x27, 0x93, 0x47, 0x49,
4809
0x91, 0x27, 0x27, 0x40, 0x42, 0x99, 0x9f, 0xfc,
4810
0x97, 0x47, 0x99, 0x4a, 0xf9, 0x3f, 0x48, 0x91,
4811
0x47, 0x97, 0x91, 0x42, 0x4b, 0x9b, 0x4a, 0x48,
4812
0x9f, 0x43, 0x43, 0x40, 0x99, 0xf9, 0x48, 0x4e,
4813
0x92, 0x93, 0x92, 0x41, 0x46, 0x4b, 0x4a, 0x4a,
4814
0x49, 0x96, 0x4a, 0x4f, 0xf5, 0x42, 0x47, 0x98,
4815
0x9b, 0xf5, 0x91, 0xf9, 0xd6, 0x9b, 0x48, 0x4e,
4816
0x9f, 0x91, 0xd6, 0x93, 0x4b, 0x37, 0x3f, 0x43,
4817
0xf5, 0x41, 0x41, 0xf5, 0x37, 0x4f, 0x43, 0x92,
4818
0x97, 0x27, 0x93, 0x92, 0x46, 0x47, 0x4b, 0x96,
4819
0x41, 0x90, 0x90, 0x3f, 0x96, 0x27, 0x41, 0xd6,
4820
0xd6, 0xd6, 0xf9, 0xf8, 0x47, 0x27, 0x46, 0x37,
4821
0x41, 0x90, 0x91, 0xfc, 0x46, 0x41, 0x43, 0x97,
4822
0x9f, 0x4a, 0x49, 0x92, 0x41, 0x91, 0x41, 0x92,
4823
0x42, 0x4a, 0x3f, 0x93, 0x99, 0x9b, 0x9f, 0x4e,
4824
0x47, 0x93, 0xd6, 0x37, 0x37, 0x40, 0x98, 0xfd,
4825
0x41, 0x42, 0x97, 0x4e, 0x4e, 0x98, 0x9f, 0x4e,
4826
0x48, 0x3f, 0x48, 0x42, 0x96, 0x9f, 0x99, 0x4f,
4827
0x4e, 0x42, 0x97, 0xf9, 0x3f, 0x37, 0x27, 0x46,
4828
0x41, 0xf9, 0x92, 0x96, 0x41, 0x93, 0x91, 0x4b,
4829
0x96, 0x4f, 0x43, 0xfd, 0xf5, 0x9f, 0x43, 0x27,
4830
0x99, 0xd6, 0xf5, 0x4e, 0xfd, 0x97, 0x4b, 0x47,
4831
0x47, 0x92, 0x98, 0x4f, 0x47, 0x49, 0x37, 0x97,
4832
0x3f, 0x4e, 0x40, 0x46, 0x4e, 0x9f, 0x4e, 0x4e,
4833
0xfc, 0x41, 0x47, 0xf8, 0x37, 0x9b, 0x41, 0x4e,
4834
0x96, 0x99, 0x46, 0x99, 0x46, 0xf9, 0x4e, 0x4f,
4835
0x48, 0x97, 0x97, 0x93, 0xd6, 0x9b, 0x41, 0x40,
4836
0x97, 0x97, 0x4f, 0x92, 0x91, 0xd6, 0x96, 0x40,
4837
0x4f, 0x4b, 0x91, 0x46, 0x27, 0x92, 0x3f, 0xf5,
4838
0xfc, 0x3f, 0x91, 0x97, 0xf8, 0x43, 0x4e, 0xfd,
4839
0x9b, 0x27, 0xfd, 0x9b, 0xf5, 0x27, 0x47, 0x42,
4840
0x46, 0x93, 0x37, 0x93, 0x91, 0x91, 0x91, 0xf8,
4841
0x4f, 0x92, 0x4f, 0xf8, 0x93, 0xf5, 0x49, 0x91,
4842
0x4b, 0x3f, 0xfc, 0x37, 0x4f, 0x46, 0x98, 0x97,
4843
0x9f, 0x40, 0xfd, 0x9f, 0x98, 0xfd, 0x4e, 0x97,
4844
0x4f, 0x47, 0x91, 0x27, 0x4a, 0x90, 0x96, 0x40,
4845
0x98, 0x97, 0x41, 0x3f, 0xd6, 0xfd, 0x41, 0xfd,
4846
0x42, 0x97, 0x4b, 0x9b, 0x46, 0x4e, 0xfc, 0x96,
4847
0xf9, 0x37, 0x4b, 0x96, 0x9f, 0x9b, 0x42, 0x9f,
4848
0x93, 0x40, 0x42, 0x43, 0xf5, 0x93, 0x48, 0x3f,
4849
0x4b, 0xfd, 0x9f, 0x4b, 0x41, 0x4a, 0x90, 0x9b,
4850
0x46, 0x97, 0x98, 0x96, 0x9b, 0x98, 0x92, 0xd6,
4851
0x4e, 0x4a, 0x27, 0x90, 0x96, 0x99, 0x91, 0x46,
4852
0x49, 0x41, 0x4b, 0x90, 0x43, 0x91, 0xd6, 0x48,
4853
0x42, 0x90, 0x4f, 0x96, 0x43, 0x9b, 0xf9, 0x9b,
4854
0x9f, 0x9f, 0x27, 0x47, 0x4b, 0xf5, 0x43, 0x99,
4855
0x99, 0x91, 0x4e, 0x41, 0x42, 0x46, 0x97, 0x46,
4856
0x47, 0xf9, 0xf5, 0x48, 0x4a, 0xf8, 0x4e, 0xd6,
4857
0x43, 0x4a, 0x27, 0x9b, 0x42, 0x90, 0x46, 0x46,
4858
0x3f, 0x99, 0x96, 0x9b, 0x91, 0x9f, 0xf5, 0x48,
4859
0x43, 0x9f, 0x4a, 0x99, 0x96, 0xfd, 0x92, 0x49,
4860
0x46, 0x91, 0x40, 0xfd, 0x4a, 0x48, 0x4f, 0x90,
4861
0x91, 0x98, 0x48, 0x4b, 0x9f, 0x42, 0x27, 0x93,
4862
0x47, 0xf8, 0x4f, 0x48, 0x3f, 0x90, 0x47, 0x41,
4863
0xf5, 0xfc, 0x27, 0xf8, 0x97, 0x4a, 0x49, 0x37,
4864
0x40, 0x4f, 0x40, 0x37, 0x41, 0x27, 0x96, 0x37,
4865
0xfc, 0x42, 0xd6, 0x4b, 0x48, 0x37, 0x42, 0xf5,
4866
0x27, 0xf9, 0xd6, 0x48, 0x9b, 0xfd, 0x40, 0x96,
4867
0x4e, 0x43, 0xf8, 0x90, 0x40, 0x40, 0x49, 0x3f,
4868
0xfc, 0x4a, 0x42, 0x47, 0xf8, 0x49, 0x42, 0x97,
4869
0x4f, 0x91, 0xfd, 0x4b, 0x46, 0x4b, 0xfc, 0x48,
4870
0x49, 0x96, 0x4b, 0x96, 0x43, 0x9f, 0x90, 0x37,
4871
0xd6, 0x4a, 0xd6, 0x3f, 0xd6, 0x90, 0x49, 0x27,
4872
0x4e, 0x96, 0x96, 0xf8, 0x49, 0x96, 0xf8, 0x37,
4873
0x90, 0x4e, 0x4b, 0x4f, 0x99, 0xf8, 0x6a, 0x52,
4874
0x59, 0xd9, 0xee, 0xd9, 0x74, 0x24, 0xf4, 0x5b,
4875
0x81, 0x73, 0x13, 0x30, 0x50, 0xf0, 0x82, 0x83,
4876
0xeb, 0xfc, 0xe2, 0xf4, 0xb1, 0x94, 0x0f, 0x6d,
4877
0xcf, 0xaf, 0xb4, 0x7e, 0x5a, 0xbb, 0xbf, 0x6a,
4878
0xc9, 0xaf, 0x0f, 0x7d, 0x50, 0xdb, 0x9c, 0xa6,
4879
0x14, 0xdb, 0xb5, 0xbe, 0xbb, 0x2c, 0xf5, 0xfa,
4880
0x31, 0xbf, 0x7b, 0xcd, 0x28, 0xdb, 0xaf, 0xa2,
4881
0x31, 0xbb, 0x13, 0xb2, 0x79, 0xdb, 0xc4, 0x09,
4882
0x31, 0xbe, 0xc1, 0x42, 0xa9, 0xfc, 0x74, 0x42,
4883
0x44, 0x57, 0x31, 0x48, 0x3d, 0x51, 0x32, 0x69,
4884
0xc4, 0x6b, 0xa4, 0xa6, 0x18, 0x25, 0x13, 0x09,
4885
0x6f, 0x74, 0xf1, 0x69, 0x56, 0xdb, 0xfc, 0xc9,
4886
0xbb, 0x0f, 0xec, 0x83, 0xdb, 0x53, 0xdc, 0x09,
4887
0xb9, 0x3c, 0xd4, 0x9e, 0x51, 0x93, 0xc1, 0x42,
4888
0x54, 0xdb, 0xb0, 0xb2, 0xbb, 0x10, 0xfc, 0x09,
4889
0x40, 0x4c, 0x5d, 0x09, 0x70, 0x58, 0xae, 0xea,
4890
0xbe, 0x1e, 0xfe, 0x6e, 0x60, 0xaf, 0x26, 0xb3,
4891
0xeb, 0x36, 0xa3, 0xe4, 0x58, 0x63, 0xc2, 0xea,
4892
0x47, 0x23, 0xc2, 0xdd, 0x64, 0xaf, 0x20, 0xea,
4893
0xfb, 0xbd, 0x0c, 0xb9, 0x60, 0xaf, 0x26, 0xdd,
4894
0xb9, 0xb5, 0x96, 0x03, 0xdd, 0x58, 0xf2, 0xd7,
4895
0x5a, 0x52, 0x0f, 0x52, 0x58, 0x89, 0xf9, 0x77,
4896
0x9d, 0x07, 0x0f, 0x54, 0x63, 0x03, 0xa3, 0xd1,
4897
0x63, 0x13, 0xa3, 0xc1, 0x63, 0xaf, 0x20, 0xe4,
4898
0x58, 0x41, 0xac, 0xe4, 0x63, 0xd9, 0x11, 0x17,
4899
0x58, 0xf4, 0xea, 0xf2, 0xf7, 0x07, 0x0f, 0x54,
4900
0x5a, 0x40, 0xa1, 0xd7, 0xcf, 0x80, 0x98, 0x26,
4901
0x9d, 0x7e, 0x19, 0xd5, 0xcf, 0x86, 0xa3, 0xd7,
4902
0xcf, 0x80, 0x98, 0x67, 0x79, 0xd6, 0xb9, 0xd5,
4903
0xcf, 0x86, 0xa0, 0xd6, 0x64, 0x05, 0x0f, 0x52,
4904
0xa3, 0x38, 0x17, 0xfb, 0xf6, 0x29, 0xa7, 0x7d,
4905
0xe6, 0x05, 0x0f, 0x52, 0x56, 0x3a, 0x94, 0xe4,
4906
0x58, 0x33, 0x9d, 0x0b, 0xd5, 0x3a, 0xa0, 0xdb,
4907
0x19, 0x9c, 0x79, 0x65, 0x5a, 0x14, 0x79, 0x60,
4908
0x01, 0x90, 0x03, 0x28, 0xce, 0x12, 0xdd, 0x7c,
4909
0x72, 0x7c, 0x63, 0x0f, 0x4a, 0x68, 0x5b, 0x29,
4910
0x9b, 0x38, 0x82, 0x7c, 0x83, 0x46, 0x0f, 0xf7,
4911
0x74, 0xaf, 0x26, 0xd9, 0x67, 0x02, 0xa1, 0xd3,
4912
0x61, 0x3a, 0xf1, 0xd3, 0x61, 0x05, 0xa1, 0x7d,
4913
0xe0, 0x38, 0x5d, 0x5b, 0x35, 0x9e, 0xa3, 0x7d,
4914
0xe6, 0x3a, 0x0f, 0x7d, 0x07, 0xaf, 0x20, 0x09,
4915
0x67, 0xac, 0x73, 0x46, 0x54, 0xaf, 0x26, 0xd0
4917
uint32_t request1_len = sizeof(request1);
4922
DetectEngineCtx *de_ctx = NULL;
4923
DetectEngineThreadCtx *det_ctx = NULL;
4928
char *sig1 = "alert tcp any any -> any any "
4929
"(dce_stub_data; content:|5d 5b 35|; content:|9e a3|; "
4930
"distance:0; within:2; sid:1;)";
4934
memset(&tv, 0, sizeof(ThreadVars));
4935
memset(&f, 0, sizeof(Flow));
4936
memset(&ssn, 0, sizeof(TcpSession));
4938
for (i = 0; i < 1; i++) {
4939
memset(&p[i], 0, sizeof(Packet));
4940
p[i].src.family = AF_INET;
4941
p[i].dst.family = AF_INET;
4942
p[i].payload = NULL;
4943
p[i].payload_len = 0;
4944
p[i].proto = IPPROTO_TCP;
4946
p[i].flowflags |= FLOW_PKT_TOSERVER;
4947
p[i].flowflags |= FLOW_PKT_ESTABLISHED;
4950
FLOW_INITIALIZE(&f);
4951
f.protoctx = (void *)&ssn;
4952
f.src.family = AF_INET;
4953
f.dst.family = AF_INET;
4954
f.alproto = ALPROTO_DCERPC;
4956
StreamTcpInitConfig(TRUE);
4957
FlowL7DataPtrInit(&f);
4959
de_ctx = DetectEngineCtxInit();
4962
de_ctx->flags |= DE_QUIET;
4964
de_ctx->sig_list = SigInit(de_ctx, sig1);
4965
s = de_ctx->sig_list;
4969
SigGroupBuild(de_ctx);
4970
DetectEngineThreadCtxInit(&tv, (void *)de_ctx, (void *)&det_ctx);
4972
r = AppLayerParse(&f, ALPROTO_DCERPC, STREAM_TOSERVER, request1, request1_len);
4974
printf("toserver chunk 1 returned %" PRId32 ", expected 0: ", r);
4978
/* detection phase */
4979
SigMatchSignatures(&tv, de_ctx, det_ctx, &p[0]);
4980
if (!(PacketAlertCheck(&p[0], 1))) {
4981
printf("sid 1 didn't match but should have for packet 0: ");
4988
if (de_ctx != NULL) {
4989
SigGroupCleanup(de_ctx);
4990
SigCleanSignatures(de_ctx);
4992
DetectEngineThreadCtxDeinit(&tv, (void *)det_ctx);
4993
DetectEngineCtxFree(de_ctx);
4996
FlowL7DataPtrFree(&f);
4997
StreamTcpFreeConfig(TRUE);
5003
* \test Positive test, to test the working of distance and within.
5005
int DcePayloadTest09(void)
5009
uint8_t request1[] = {
5010
0x05, 0x00, 0x00, 0x01, 0x10, 0x00, 0x00, 0x00,
5011
0x18, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
5012
0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00,
5013
0xad, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
5014
0xad, 0x0d, 0x00, 0x00, 0x91, 0xfc, 0x27, 0x40,
5015
0x4a, 0x97, 0x4a, 0x98, 0x4b, 0x41, 0x3f, 0x48,
5016
0x99, 0x90, 0xf8, 0x27, 0xfd, 0x3f, 0x27, 0x37,
5017
0x40, 0xd6, 0x27, 0xfc, 0x3f, 0x9f, 0x4f, 0xfd,
5018
0x42, 0x47, 0x47, 0x49, 0x3f, 0xf9, 0x9b, 0xd6,
5019
0x48, 0x37, 0x27, 0x46, 0x93, 0x49, 0xfd, 0x93,
5020
0x91, 0xfd, 0x93, 0x90, 0x92, 0x96, 0xf5, 0x92,
5021
0x4e, 0x91, 0x98, 0x46, 0x4f, 0x4b, 0x46, 0xf5,
5022
0xf5, 0xfd, 0x40, 0xf9, 0x9b, 0x40, 0x9f, 0x93,
5023
0x4e, 0xf8, 0x40, 0x40, 0x4e, 0xf5, 0x4b, 0x98,
5024
0xf5, 0x91, 0xd6, 0x42, 0x99, 0x96, 0x27, 0x49,
5025
0x48, 0x47, 0x4f, 0x46, 0x99, 0x4b, 0x92, 0x92,
5026
0x90, 0x47, 0x46, 0x4e, 0x43, 0x9b, 0x43, 0x42,
5027
0x3f, 0x4b, 0x27, 0x97, 0x93, 0xf9, 0x42, 0x9b,
5028
0x46, 0x9b, 0x4b, 0x98, 0x41, 0x98, 0x37, 0x41,
5029
0x9f, 0x98, 0x4e, 0x93, 0x48, 0x46, 0x46, 0x9f,
5030
0x97, 0x9b, 0x42, 0x37, 0x90, 0x46, 0xf9, 0x97,
5031
0x91, 0xf5, 0x4e, 0x97, 0x4e, 0x99, 0xf8, 0x99,
5032
0x41, 0xf5, 0x41, 0x9f, 0x49, 0xfd, 0x92, 0x96,
5033
0x3f, 0x3f, 0x42, 0x27, 0x27, 0x93, 0x47, 0x49,
5034
0x91, 0x27, 0x27, 0x40, 0x42, 0x99, 0x9f, 0xfc,
5035
0x97, 0x47, 0x99, 0x4a, 0xf9, 0x3f, 0x48, 0x91,
5036
0x47, 0x97, 0x91, 0x42, 0x4b, 0x9b, 0x4a, 0x48,
5037
0x9f, 0x43, 0x43, 0x40, 0x99, 0xf9, 0x48, 0x4e,
5038
0x92, 0x93, 0x92, 0x41, 0x46, 0x4b, 0x4a, 0x4a,
5039
0x49, 0x96, 0x4a, 0x4f, 0xf5, 0x42, 0x47, 0x98,
5040
0x9b, 0xf5, 0x91, 0xf9, 0xd6, 0x9b, 0x48, 0x4e,
5041
0x9f, 0x91, 0xd6, 0x93, 0x4b, 0x37, 0x3f, 0x43,
5042
0xf5, 0x41, 0x41, 0xf5, 0x37, 0x4f, 0x43, 0x92,
5043
0x97, 0x27, 0x93, 0x92, 0x46, 0x47, 0x4b, 0x96,
5044
0x41, 0x90, 0x90, 0x3f, 0x96, 0x27, 0x41, 0xd6,
5045
0xd6, 0xd6, 0xf9, 0xf8, 0x47, 0x27, 0x46, 0x37,
5046
0x41, 0x90, 0x91, 0xfc, 0x46, 0x41, 0x43, 0x97,
5047
0x9f, 0x4a, 0x49, 0x92, 0x41, 0x91, 0x41, 0x92,
5048
0x42, 0x4a, 0x3f, 0x93, 0x99, 0x9b, 0x9f, 0x4e,
5049
0x47, 0x93, 0xd6, 0x37, 0x37, 0x40, 0x98, 0xfd,
5050
0x41, 0x42, 0x97, 0x4e, 0x4e, 0x98, 0x9f, 0x4e,
5051
0x48, 0x3f, 0x48, 0x42, 0x96, 0x9f, 0x99, 0x4f,
5052
0x4e, 0x42, 0x97, 0xf9, 0x3f, 0x37, 0x27, 0x46,
5053
0x41, 0xf9, 0x92, 0x96, 0x41, 0x93, 0x91, 0x4b,
5054
0x96, 0x4f, 0x43, 0xfd, 0xf5, 0x9f, 0x43, 0x27,
5055
0x99, 0xd6, 0xf5, 0x4e, 0xfd, 0x97, 0x4b, 0x47,
5056
0x47, 0x92, 0x98, 0x4f, 0x47, 0x49, 0x37, 0x97,
5057
0x3f, 0x4e, 0x40, 0x46, 0x4e, 0x9f, 0x4e, 0x4e,
5058
0xfc, 0x41, 0x47, 0xf8, 0x37, 0x9b, 0x41, 0x4e,
5059
0x96, 0x99, 0x46, 0x99, 0x46, 0xf9, 0x4e, 0x4f,
5060
0x48, 0x97, 0x97, 0x93, 0xd6, 0x9b, 0x41, 0x40,
5061
0x97, 0x97, 0x4f, 0x92, 0x91, 0xd6, 0x96, 0x40,
5062
0x4f, 0x4b, 0x91, 0x46, 0x27, 0x92, 0x3f, 0xf5,
5063
0xfc, 0x3f, 0x91, 0x97, 0xf8, 0x43, 0x4e, 0xfd,
5064
0x9b, 0x27, 0xfd, 0x9b, 0xf5, 0x27, 0x47, 0x42,
5065
0x46, 0x93, 0x37, 0x93, 0x91, 0x91, 0x91, 0xf8,
5066
0x4f, 0x92, 0x4f, 0xf8, 0x93, 0xf5, 0x49, 0x91,
5067
0x4b, 0x3f, 0xfc, 0x37, 0x4f, 0x46, 0x98, 0x97,
5068
0x9f, 0x40, 0xfd, 0x9f, 0x98, 0xfd, 0x4e, 0x97,
5069
0x4f, 0x47, 0x91, 0x27, 0x4a, 0x90, 0x96, 0x40,
5070
0x98, 0x97, 0x41, 0x3f, 0xd6, 0xfd, 0x41, 0xfd,
5071
0x42, 0x97, 0x4b, 0x9b, 0x46, 0x4e, 0xfc, 0x96,
5072
0xf9, 0x37, 0x4b, 0x96, 0x9f, 0x9b, 0x42, 0x9f,
5073
0x93, 0x40, 0x42, 0x43, 0xf5, 0x93, 0x48, 0x3f,
5074
0x4b, 0xfd, 0x9f, 0x4b, 0x41, 0x4a, 0x90, 0x9b,
5075
0x46, 0x97, 0x98, 0x96, 0x9b, 0x98, 0x92, 0xd6,
5076
0x4e, 0x4a, 0x27, 0x90, 0x96, 0x99, 0x91, 0x46,
5077
0x49, 0x41, 0x4b, 0x90, 0x43, 0x91, 0xd6, 0x48,
5078
0x42, 0x90, 0x4f, 0x96, 0x43, 0x9b, 0xf9, 0x9b,
5079
0x9f, 0x9f, 0x27, 0x47, 0x4b, 0xf5, 0x43, 0x99,
5080
0x99, 0x91, 0x4e, 0x41, 0x42, 0x46, 0x97, 0x46,
5081
0x47, 0xf9, 0xf5, 0x48, 0x4a, 0xf8, 0x4e, 0xd6,
5082
0x43, 0x4a, 0x27, 0x9b, 0x42, 0x90, 0x46, 0x46,
5083
0x3f, 0x99, 0x96, 0x9b, 0x91, 0x9f, 0xf5, 0x48,
5084
0x43, 0x9f, 0x4a, 0x99, 0x96, 0xfd, 0x92, 0x49,
5085
0x46, 0x91, 0x40, 0xfd, 0x4a, 0x48, 0x4f, 0x90,
5086
0x91, 0x98, 0x48, 0x4b, 0x9f, 0x42, 0x27, 0x93,
5087
0x47, 0xf8, 0x4f, 0x48, 0x3f, 0x90, 0x47, 0x41,
5088
0xf5, 0xfc, 0x27, 0xf8, 0x97, 0x4a, 0x49, 0x37,
5089
0x40, 0x4f, 0x40, 0x37, 0x41, 0x27, 0x96, 0x37,
5090
0xfc, 0x42, 0xd6, 0x4b, 0x48, 0x37, 0x42, 0xf5,
5091
0x27, 0xf9, 0xd6, 0x48, 0x9b, 0xfd, 0x40, 0x96,
5092
0x4e, 0x43, 0xf8, 0x90, 0x40, 0x40, 0x49, 0x3f,
5093
0xfc, 0x4a, 0x42, 0x47, 0xf8, 0x49, 0x42, 0x97,
5094
0x4f, 0x91, 0xfd, 0x4b, 0x46, 0x4b, 0xfc, 0x48,
5095
0x49, 0x96, 0x4b, 0x96, 0x43, 0x9f, 0x90, 0x37,
5096
0xd6, 0x4a, 0xd6, 0x3f, 0xd6, 0x90, 0x49, 0x27,
5097
0x4e, 0x96, 0x96, 0xf8, 0x49, 0x96, 0xf8, 0x37,
5098
0x90, 0x4e, 0x4b, 0x4f, 0x99, 0xf8, 0x6a, 0x52,
5099
0x59, 0xd9, 0xee, 0xd9, 0x74, 0x24, 0xf4, 0x5b,
5100
0x81, 0x73, 0x13, 0x30, 0x50, 0xf0, 0x82, 0x83,
5101
0xeb, 0xfc, 0xe2, 0xf4, 0xb1, 0x94, 0x0f, 0x6d,
5102
0xcf, 0xaf, 0xb4, 0x7e, 0x5a, 0xbb, 0xbf, 0x6a,
5103
0xc9, 0xaf, 0x0f, 0x7d, 0x50, 0xdb, 0x9c, 0xa6,
5104
0x14, 0xdb, 0xb5, 0xbe, 0xbb, 0x2c, 0xf5, 0xfa,
5105
0x31, 0xbf, 0x7b, 0xcd, 0x28, 0xdb, 0xaf, 0xa2,
5106
0x31, 0xbb, 0x13, 0xb2, 0x79, 0xdb, 0xc4, 0x09,
5107
0x31, 0xbe, 0xc1, 0x42, 0xa9, 0xfc, 0x74, 0x42,
5108
0x44, 0x57, 0x31, 0x48, 0x3d, 0x51, 0x32, 0x69,
5109
0xc4, 0x6b, 0xa4, 0xa6, 0x18, 0x25, 0x13, 0x09,
5110
0x6f, 0x74, 0xf1, 0x69, 0x56, 0xdb, 0xfc, 0xc9,
5111
0xbb, 0x0f, 0xec, 0x83, 0xdb, 0x53, 0xdc, 0x09,
5112
0xb9, 0x3c, 0xd4, 0x9e, 0x51, 0x93, 0xc1, 0x42,
5113
0x54, 0xdb, 0xb0, 0xb2, 0xbb, 0x10, 0xfc, 0x09,
5114
0x40, 0x4c, 0x5d, 0x09, 0x70, 0x58, 0xae, 0xea,
5115
0xbe, 0x1e, 0xfe, 0x6e, 0x60, 0xaf, 0x26, 0xb3,
5116
0xeb, 0x36, 0xa3, 0xe4, 0x58, 0x63, 0xc2, 0xea,
5117
0x47, 0x23, 0xc2, 0xdd, 0x64, 0xaf, 0x20, 0xea,
5118
0xfb, 0xbd, 0x0c, 0xb9, 0x60, 0xaf, 0x26, 0xdd,
5119
0xb9, 0xb5, 0x96, 0x03, 0xdd, 0x58, 0xf2, 0xd7,
5120
0x5a, 0x52, 0x0f, 0x52, 0x58, 0x89, 0xf9, 0x77,
5121
0x9d, 0x07, 0x0f, 0x54, 0x63, 0x03, 0xa3, 0xd1,
5122
0x63, 0x13, 0xa3, 0xc1, 0x63, 0xaf, 0x20, 0xe4,
5123
0x58, 0x41, 0xac, 0xe4, 0x63, 0xd9, 0x11, 0x17,
5124
0x58, 0xf4, 0xea, 0xf2, 0xf7, 0x07, 0x0f, 0x54,
5125
0x5a, 0x40, 0xa1, 0xd7, 0xcf, 0x80, 0x98, 0x26,
5126
0x9d, 0x7e, 0x19, 0xd5, 0xcf, 0x86, 0xa3, 0xd7,
5127
0xcf, 0x80, 0x98, 0x67, 0x79, 0xd6, 0xb9, 0xd5,
5128
0xcf, 0x86, 0xa0, 0xd6, 0x64, 0x05, 0x0f, 0x52,
5129
0xa3, 0x38, 0x17, 0xfb, 0xf6, 0x29, 0xa7, 0x7d,
5130
0xe6, 0x05, 0x0f, 0x52, 0x56, 0x3a, 0x94, 0xe4,
5131
0x58, 0x33, 0x9d, 0x0b, 0xd5, 0x3a, 0xa0, 0xdb,
5132
0x19, 0x9c, 0x79, 0x65, 0x5a, 0x14, 0x79, 0x60,
5133
0x01, 0x90, 0x03, 0x28, 0xce, 0x12, 0xdd, 0x7c,
5134
0x72, 0x7c, 0x63, 0x0f, 0x4a, 0x68, 0x5b, 0x29,
5135
0x9b, 0x38, 0x5d, 0x5b, 0x35, 0x46, 0x9e, 0xa3,
5136
0x74, 0xaf, 0x26, 0xd9, 0x67, 0x02, 0xa1, 0xd3,
5137
0x61, 0x3a, 0xf1, 0xd3, 0x61, 0x05, 0xa1, 0x7d,
5138
0xe0, 0x38, 0x5d, 0x5b, 0x35, 0x9e, 0xa3, 0x7d,
5139
0xe6, 0x3a, 0x0f, 0x7d, 0x07, 0xaf, 0x20, 0x09,
5140
0x67, 0xac, 0x73, 0x46, 0x54, 0xaf, 0x26, 0xd0
5142
uint32_t request1_len = sizeof(request1);
5147
DetectEngineCtx *de_ctx = NULL;
5148
DetectEngineThreadCtx *det_ctx = NULL;
5153
char *sig1 = "alert tcp any any -> any any "
5154
"(dce_stub_data; content:|5d 5b 35|; content:|9e a3|; "
5155
"distance:0; within:2; sid:1;)";
5159
memset(&tv, 0, sizeof(ThreadVars));
5160
memset(&f, 0, sizeof(Flow));
5161
memset(&ssn, 0, sizeof(TcpSession));
5163
for (i = 0; i < 1; i++) {
5164
memset(&p[i], 0, sizeof(Packet));
5165
p[i].src.family = AF_INET;
5166
p[i].dst.family = AF_INET;
5167
p[i].payload = NULL;
5168
p[i].payload_len = 0;
5169
p[i].proto = IPPROTO_TCP;
5171
p[i].flowflags |= FLOW_PKT_TOSERVER;
5172
p[i].flowflags |= FLOW_PKT_ESTABLISHED;
5175
FLOW_INITIALIZE(&f);
5176
f.protoctx = (void *)&ssn;
5177
f.src.family = AF_INET;
5178
f.dst.family = AF_INET;
5179
f.alproto = ALPROTO_DCERPC;
5181
StreamTcpInitConfig(TRUE);
5182
FlowL7DataPtrInit(&f);
5184
de_ctx = DetectEngineCtxInit();
5187
de_ctx->flags |= DE_QUIET;
5189
de_ctx->sig_list = SigInit(de_ctx, sig1);
5190
s = de_ctx->sig_list;
5194
SigGroupBuild(de_ctx);
5195
DetectEngineThreadCtxInit(&tv, (void *)de_ctx, (void *)&det_ctx);
5197
r = AppLayerParse(&f, ALPROTO_DCERPC, STREAM_TOSERVER, request1, request1_len);
5199
printf("toserver chunk 1 returned %" PRId32 ", expected 0: ", r);
5203
/* detection phase */
5204
SigMatchSignatures(&tv, de_ctx, det_ctx, &p[0]);
5205
if (!(PacketAlertCheck(&p[0], 1))) {
5206
printf("sid 1 didn't match but should have for packet 0: ");
5213
if (de_ctx != NULL) {
5214
SigGroupCleanup(de_ctx);
5215
SigCleanSignatures(de_ctx);
5217
DetectEngineThreadCtxDeinit(&tv, (void *)det_ctx);
5218
DetectEngineCtxFree(de_ctx);
5221
FlowL7DataPtrFree(&f);
5222
StreamTcpFreeConfig(TRUE);
5228
* \test Positive test, to test the working of distance and within.
5230
int DcePayloadTest10(void)
5234
uint8_t request1[] = {
5235
0x05, 0x00, 0x00, 0x01, 0x10, 0x00, 0x00, 0x00,
5236
0x18, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
5237
0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00,
5238
0xad, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
5239
0xad, 0x0d, 0x00, 0x00, 0x91, 0xfc, 0x27, 0x40,
5240
0x4a, 0x97, 0x4a, 0x98, 0x4b, 0x41, 0x3f, 0x48,
5241
0x99, 0x90, 0xf8, 0x27, 0xfd, 0x3f, 0x27, 0x37,
5242
0x40, 0xd6, 0x27, 0xfc, 0x3f, 0x9f, 0x4f, 0xfd,
5243
0x42, 0x47, 0x47, 0x49, 0x3f, 0xf9, 0x9b, 0xd6,
5244
0x48, 0x37, 0x27, 0x46, 0x93, 0x49, 0xfd, 0x93,
5245
0x91, 0xfd, 0x93, 0x90, 0x92, 0x96, 0xf5, 0x92,
5246
0x4e, 0x91, 0x98, 0x46, 0x4f, 0x4b, 0x46, 0xf5,
5247
0xf5, 0xfd, 0x40, 0xf9, 0x9b, 0x40, 0x9f, 0x93,
5248
0x4e, 0xf8, 0x40, 0x40, 0x4e, 0xf5, 0x4b, 0x98,
5249
0xf5, 0x91, 0xd6, 0x42, 0x99, 0x96, 0x27, 0x49,
5250
0x48, 0x47, 0x4f, 0x46, 0x99, 0x4b, 0x92, 0x92,
5251
0x90, 0x47, 0x46, 0x4e, 0x43, 0x9b, 0x43, 0x42,
5252
0x3f, 0x4b, 0x27, 0x97, 0x93, 0xf9, 0x42, 0x9b,
5253
0x46, 0x9b, 0x4b, 0x98, 0x41, 0x98, 0x37, 0x41,
5254
0x9f, 0x98, 0x4e, 0x93, 0x48, 0x46, 0x46, 0x9f,
5255
0x97, 0x9b, 0x42, 0x37, 0x90, 0x46, 0xf9, 0x97,
5256
0x91, 0xf5, 0x4e, 0x97, 0x4e, 0x99, 0xf8, 0x99,
5257
0x41, 0xf5, 0x41, 0x9f, 0x49, 0xfd, 0x92, 0x96,
5258
0x3f, 0x3f, 0x42, 0x27, 0x27, 0x93, 0x47, 0x49,
5259
0x91, 0x27, 0x27, 0x40, 0x42, 0x99, 0x9f, 0xfc,
5260
0x97, 0x47, 0x99, 0x4a, 0xf9, 0x3f, 0x48, 0x91,
5261
0x47, 0x97, 0x91, 0x42, 0x4b, 0x9b, 0x4a, 0x48,
5262
0x9f, 0x43, 0x43, 0x40, 0x99, 0xf9, 0x48, 0x4e,
5263
0x92, 0x93, 0x92, 0x41, 0x46, 0x4b, 0x4a, 0x4a,
5264
0x49, 0x96, 0x4a, 0x4f, 0xf5, 0x42, 0x47, 0x98,
5265
0x9b, 0xf5, 0x91, 0xf9, 0xd6, 0x9b, 0x48, 0x4e,
5266
0x9f, 0x91, 0xd6, 0x93, 0x4b, 0x37, 0x3f, 0x43,
5267
0xf5, 0x41, 0x41, 0xf5, 0x37, 0x4f, 0x43, 0x92,
5268
0x97, 0x27, 0x93, 0x92, 0x46, 0x47, 0x4b, 0x96,
5269
0x41, 0x90, 0x90, 0x3f, 0x96, 0x27, 0x41, 0xd6,
5270
0xd6, 0xd6, 0xf9, 0xf8, 0x47, 0x27, 0x46, 0x37,
5271
0x41, 0x90, 0x91, 0xfc, 0x46, 0x41, 0x43, 0x97,
5272
0x9f, 0x4a, 0x49, 0x92, 0x41, 0x91, 0x41, 0x92,
5273
0x42, 0x4a, 0x3f, 0x93, 0x99, 0x9b, 0x9f, 0x4e,
5274
0x47, 0x93, 0xd6, 0x37, 0x37, 0x40, 0x98, 0xfd,
5275
0x41, 0x42, 0x97, 0x4e, 0x4e, 0x98, 0x9f, 0x4e,
5276
0x48, 0x3f, 0x48, 0x42, 0x96, 0x9f, 0x99, 0x4f,
5277
0x4e, 0x42, 0x97, 0xf9, 0x3f, 0x37, 0x27, 0x46,
5278
0x41, 0xf9, 0x92, 0x96, 0x41, 0x93, 0x91, 0x4b,
5279
0x96, 0x4f, 0x43, 0xfd, 0xf5, 0x9f, 0x43, 0x27,
5280
0x99, 0xd6, 0xf5, 0x4e, 0xfd, 0x97, 0x4b, 0x47,
5281
0x47, 0x92, 0x98, 0x4f, 0x47, 0x49, 0x37, 0x97,
5282
0x3f, 0x4e, 0x40, 0x46, 0x4e, 0x9f, 0x4e, 0x4e,
5283
0xfc, 0x41, 0x47, 0xf8, 0x37, 0x9b, 0x41, 0x4e,
5284
0x96, 0x99, 0x46, 0x99, 0x46, 0xf9, 0x4e, 0x4f,
5285
0x48, 0x97, 0x97, 0x93, 0xd6, 0x9b, 0x41, 0x40,
5286
0x97, 0x97, 0x4f, 0x92, 0x91, 0xd6, 0x96, 0x40,
5287
0x4f, 0x4b, 0x91, 0x46, 0x27, 0x92, 0x3f, 0xf5,
5288
0xfc, 0x3f, 0x91, 0x97, 0xf8, 0x43, 0x4e, 0xfd,
5289
0x9b, 0x27, 0xfd, 0x9b, 0xf5, 0x27, 0x47, 0x42,
5290
0x46, 0x93, 0x37, 0x93, 0x91, 0x91, 0x91, 0xf8,
5291
0x4f, 0x92, 0x4f, 0xf8, 0x93, 0xf5, 0x49, 0x91,
5292
0x4b, 0x3f, 0xfc, 0x37, 0x4f, 0x46, 0x98, 0x97,
5293
0x9f, 0x40, 0xfd, 0x9f, 0x98, 0xfd, 0x4e, 0x97,
5294
0x4f, 0x47, 0x91, 0x27, 0x4a, 0x90, 0x96, 0x40,
5295
0x98, 0x97, 0x41, 0x3f, 0xd6, 0xfd, 0x41, 0xfd,
5296
0x42, 0x97, 0x4b, 0x9b, 0x46, 0x4e, 0xfc, 0x96,
5297
0xf9, 0x37, 0x4b, 0x96, 0x9f, 0x9b, 0x42, 0x9f,
5298
0x93, 0x40, 0x42, 0x43, 0xf5, 0x93, 0x48, 0x3f,
5299
0x4b, 0xfd, 0x9f, 0x4b, 0x41, 0x4a, 0x90, 0x9b,
5300
0x46, 0x97, 0x98, 0x96, 0x9b, 0x98, 0x92, 0xd6,
5301
0x4e, 0x4a, 0x27, 0x90, 0x96, 0x99, 0x91, 0x46,
5302
0x49, 0x41, 0x4b, 0x90, 0x43, 0x91, 0xd6, 0x48,
5303
0x42, 0x90, 0x4f, 0x96, 0x43, 0x9b, 0xf9, 0x9b,
5304
0x9f, 0x9f, 0x27, 0x47, 0x4b, 0xf5, 0x43, 0x99,
5305
0x99, 0x91, 0x4e, 0x41, 0x42, 0x46, 0x97, 0x46,
5306
0x47, 0xf9, 0xf5, 0x48, 0x4a, 0xf8, 0x4e, 0xd6,
5307
0x43, 0x4a, 0x27, 0x9b, 0x42, 0x90, 0x46, 0x46,
5308
0x3f, 0x99, 0x96, 0x9b, 0x91, 0x9f, 0xf5, 0x48,
5309
0x43, 0x9f, 0x4a, 0x99, 0x96, 0xfd, 0x92, 0x49,
5310
0x46, 0x91, 0x40, 0xfd, 0x4a, 0x48, 0x4f, 0x90,
5311
0x91, 0x98, 0x48, 0x4b, 0x9f, 0x42, 0x27, 0x93,
5312
0x47, 0xf8, 0x4f, 0x48, 0x3f, 0x90, 0x47, 0x41,
5313
0xf5, 0xfc, 0x27, 0xf8, 0x97, 0x4a, 0x49, 0x37,
5314
0x40, 0x4f, 0x40, 0x37, 0x41, 0x27, 0x96, 0x37,
5315
0xfc, 0x42, 0xd6, 0x4b, 0x48, 0x37, 0x42, 0xf5,
5316
0x27, 0xf9, 0xd6, 0x48, 0x9b, 0xfd, 0x40, 0x96,
5317
0x4e, 0x43, 0xf8, 0x90, 0x40, 0x40, 0x49, 0x3f,
5318
0xfc, 0x4a, 0x42, 0x47, 0xf8, 0x49, 0x42, 0x97,
5319
0x4f, 0x91, 0xfd, 0x4b, 0x46, 0x4b, 0xfc, 0x48,
5320
0x49, 0x96, 0x4b, 0x96, 0x43, 0x9f, 0x90, 0x37,
5321
0xd6, 0x4a, 0xd6, 0x3f, 0xd6, 0x90, 0x49, 0x27,
5322
0x4e, 0x96, 0x96, 0xf8, 0x49, 0x96, 0xf8, 0x37,
5323
0x90, 0x4e, 0x4b, 0x4f, 0x99, 0xf8, 0x6a, 0x52,
5324
0x59, 0xd9, 0xee, 0xd9, 0x74, 0x24, 0xf4, 0x5b,
5325
0x81, 0x73, 0x13, 0x30, 0x50, 0xf0, 0x82, 0x83,
5326
0xeb, 0xfc, 0xe2, 0xf4, 0xb1, 0x94, 0x0f, 0x6d,
5327
0xcf, 0xaf, 0xb4, 0x7e, 0x5a, 0xbb, 0xbf, 0x6a,
5328
0xc9, 0xaf, 0x0f, 0x7d, 0x50, 0xdb, 0x9c, 0xa6,
5329
0x14, 0xdb, 0xb5, 0xbe, 0xbb, 0x2c, 0xf5, 0xfa,
5330
0x31, 0xbf, 0x7b, 0xcd, 0x28, 0xdb, 0xaf, 0xa2,
5331
0x31, 0xbb, 0x13, 0xb2, 0x79, 0xdb, 0xc4, 0x09,
5332
0x31, 0xbe, 0xc1, 0x42, 0xa9, 0xfc, 0x74, 0x42,
5333
0x44, 0x57, 0x31, 0x48, 0x3d, 0x51, 0x32, 0x69,
5334
0xc4, 0x6b, 0xa4, 0xa6, 0x18, 0x25, 0x13, 0x09,
5335
0x6f, 0x74, 0xf1, 0x69, 0x56, 0xdb, 0xfc, 0xc9,
5336
0xbb, 0x0f, 0xec, 0x83, 0xdb, 0x53, 0xdc, 0x09,
5337
0xb9, 0x3c, 0xd4, 0x9e, 0x51, 0x93, 0xc1, 0x42,
5338
0x54, 0xdb, 0xb0, 0xb2, 0xbb, 0x10, 0xfc, 0x09,
5339
0x40, 0x4c, 0x5d, 0x09, 0x70, 0x58, 0xae, 0xea,
5340
0xbe, 0x1e, 0xfe, 0x6e, 0x60, 0xaf, 0x26, 0xb3,
5341
0xeb, 0x36, 0xa3, 0xe4, 0x58, 0x63, 0xc2, 0xea,
5342
0x47, 0x23, 0xc2, 0xdd, 0x64, 0xaf, 0x20, 0xea,
5343
0xfb, 0xbd, 0x0c, 0xb9, 0x60, 0xaf, 0x26, 0xdd,
5344
0xb9, 0xb5, 0x96, 0x03, 0xdd, 0x58, 0xf2, 0xd7,
5345
0x5a, 0x52, 0x0f, 0x52, 0x58, 0x89, 0xf9, 0x77,
5346
0x9d, 0x07, 0x0f, 0x54, 0x63, 0x03, 0xa3, 0xd1,
5347
0x63, 0x13, 0xa3, 0xc1, 0x63, 0xaf, 0x20, 0xe4,
5348
0x58, 0x41, 0xac, 0xe4, 0x63, 0xd9, 0x11, 0x17,
5349
0x58, 0xf4, 0xea, 0xf2, 0xf7, 0x07, 0x0f, 0x54,
5350
0x5a, 0x40, 0xa1, 0xd7, 0xcf, 0x80, 0x98, 0x26,
5351
0x9d, 0x7e, 0x19, 0xd5, 0xcf, 0x86, 0xa3, 0xd7,
5352
0xcf, 0x80, 0x98, 0x67, 0x79, 0xd6, 0xb9, 0xd5,
5353
0xcf, 0x86, 0xa0, 0xd6, 0x64, 0x05, 0x0f, 0x52,
5354
0xa3, 0x38, 0x17, 0xfb, 0xf6, 0x29, 0xa7, 0x7d,
5355
0xe6, 0x05, 0x0f, 0x52, 0x56, 0x3a, 0x94, 0xe4,
5356
0x58, 0x33, 0x9d, 0x0b, 0xd5, 0x3a, 0xa0, 0xdb,
5357
0x19, 0x9c, 0x79, 0x65, 0x5a, 0x14, 0x79, 0x60,
5358
0x01, 0x90, 0x03, 0x28, 0xce, 0x12, 0xdd, 0x7c,
5359
0x72, 0x7c, 0x63, 0x0f, 0x4a, 0x68, 0x5b, 0x29,
5360
0x9b, 0x38, 0x5d, 0x5b, 0x35, 0x46, 0x9e, 0xa3,
5361
0x74, 0xaf, 0x26, 0xd9, 0x67, 0x02, 0xa1, 0xd3,
5362
0x61, 0x3a, 0xf1, 0xd3, 0x61, 0x05, 0xa1, 0x7d,
5363
0xe0, 0x38, 0x5d, 0x5b, 0x35, 0x9e, 0xa3, 0x7d,
5364
0xe6, 0x3a, 0x0f, 0x7d, 0x07, 0xaf, 0x20, 0x09,
5365
0x67, 0xac, 0x73, 0x46, 0x54, 0xaf, 0x26, 0xd0
5367
uint32_t request1_len = sizeof(request1);
5372
DetectEngineCtx *de_ctx = NULL;
5373
DetectEngineThreadCtx *det_ctx = NULL;
5378
char *sig1 = "alert tcp any any -> any any "
5379
"(dce_stub_data; content:|ad 0d|; content:|ad 0d 00|; "
5380
"distance:-10; within:3; sid:1;)";
5384
memset(&tv, 0, sizeof(ThreadVars));
5385
memset(&f, 0, sizeof(Flow));
5386
memset(&ssn, 0, sizeof(TcpSession));
5388
for (i = 0; i < 1; i++) {
5389
memset(&p[i], 0, sizeof(Packet));
5390
p[i].src.family = AF_INET;
5391
p[i].dst.family = AF_INET;
5392
p[i].payload = NULL;
5393
p[i].payload_len = 0;
5394
p[i].proto = IPPROTO_TCP;
5396
p[i].flowflags |= FLOW_PKT_TOSERVER;
5397
p[i].flowflags |= FLOW_PKT_ESTABLISHED;
5400
FLOW_INITIALIZE(&f);
5401
f.protoctx = (void *)&ssn;
5402
f.src.family = AF_INET;
5403
f.dst.family = AF_INET;
5404
f.alproto = ALPROTO_DCERPC;
5406
StreamTcpInitConfig(TRUE);
5407
FlowL7DataPtrInit(&f);
5409
de_ctx = DetectEngineCtxInit();
5412
de_ctx->flags |= DE_QUIET;
5414
de_ctx->sig_list = SigInit(de_ctx, sig1);
5415
s = de_ctx->sig_list;
5419
SigGroupBuild(de_ctx);
5420
DetectEngineThreadCtxInit(&tv, (void *)de_ctx, (void *)&det_ctx);
5422
r = AppLayerParse(&f, ALPROTO_DCERPC, STREAM_TOSERVER, request1, request1_len);
5424
printf("toserver chunk 1 returned %" PRId32 ", expected 0: ", r);
5428
/* detection phase */
5429
SigMatchSignatures(&tv, de_ctx, det_ctx, &p[0]);
5430
if (!(PacketAlertCheck(&p[0], 1))) {
5431
printf("sid 1 didn't match but should have for packet 0: ");
5438
if (de_ctx != NULL) {
5439
SigGroupCleanup(de_ctx);
5440
SigCleanSignatures(de_ctx);
5442
DetectEngineThreadCtxDeinit(&tv, (void *)det_ctx);
5443
DetectEngineCtxFree(de_ctx);
5446
FlowL7DataPtrFree(&f);
5447
StreamTcpFreeConfig(TRUE);
5453
* \test Postive test to check the working of disance and within across frags.
5455
int DcePayloadTest11(void)
5459
uint8_t request1[] = {
5460
0x05, 0x00, 0x00, 0x01, 0x10, 0x00, 0x00, 0x00,
5461
0x18, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
5462
0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00,
5463
0xad, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
5464
0xad, 0x0d, 0x00, 0x00, 0x91, 0xfc, 0x27, 0x40,
5465
0x4a, 0x97, 0x4a, 0x98, 0x4b, 0x41, 0x3f, 0x48,
5466
0x99, 0x90, 0xf8, 0x27, 0xfd, 0x3f, 0x27, 0x37,
5467
0x40, 0xd6, 0x27, 0xfc, 0x3f, 0x9f, 0x4f, 0xfd,
5468
0x42, 0x47, 0x47, 0x49, 0x3f, 0xf9, 0x9b, 0xd6,
5469
0x48, 0x37, 0x27, 0x46, 0x93, 0x49, 0xfd, 0x93,
5470
0x91, 0xfd, 0x93, 0x90, 0x92, 0x96, 0xf5, 0x92,
5471
0x4e, 0x91, 0x98, 0x46, 0x4f, 0x4b, 0x46, 0xf5,
5472
0xf5, 0xfd, 0x40, 0xf9, 0x9b, 0x40, 0x9f, 0x93,
5473
0x4e, 0xf8, 0x40, 0x40, 0x4e, 0xf5, 0x4b, 0x98,
5474
0xf5, 0x91, 0xd6, 0x42, 0x99, 0x96, 0x27, 0x49,
5475
0x48, 0x47, 0x4f, 0x46, 0x99, 0x4b, 0x92, 0x92,
5476
0x90, 0x47, 0x46, 0x4e, 0x43, 0x9b, 0x43, 0x42,
5477
0x3f, 0x4b, 0x27, 0x97, 0x93, 0xf9, 0x42, 0x9b,
5478
0x46, 0x9b, 0x4b, 0x98, 0x41, 0x98, 0x37, 0x41,
5479
0x9f, 0x98, 0x4e, 0x93, 0x48, 0x46, 0x46, 0x9f,
5480
0x97, 0x9b, 0x42, 0x37, 0x90, 0x46, 0xf9, 0x97,
5481
0x91, 0xf5, 0x4e, 0x97, 0x4e, 0x99, 0xf8, 0x99,
5482
0x41, 0xf5, 0x41, 0x9f, 0x49, 0xfd, 0x92, 0x96,
5483
0x3f, 0x3f, 0x42, 0x27, 0x27, 0x93, 0x47, 0x49,
5484
0x91, 0x27, 0x27, 0x40, 0x42, 0x99, 0x9f, 0xfc,
5485
0x97, 0x47, 0x99, 0x4a, 0xf9, 0x3f, 0x48, 0x91,
5486
0x47, 0x97, 0x91, 0x42, 0x4b, 0x9b, 0x4a, 0x48,
5487
0x9f, 0x43, 0x43, 0x40, 0x99, 0xf9, 0x48, 0x4e,
5488
0x92, 0x93, 0x92, 0x41, 0x46, 0x4b, 0x4a, 0x4a,
5489
0x49, 0x96, 0x4a, 0x4f, 0xf5, 0x42, 0x47, 0x98,
5490
0x9b, 0xf5, 0x91, 0xf9, 0xd6, 0x9b, 0x48, 0x4e,
5491
0x9f, 0x91, 0xd6, 0x93, 0x4b, 0x37, 0x3f, 0x43,
5492
0xf5, 0x41, 0x41, 0xf5, 0x37, 0x4f, 0x43, 0x92,
5493
0x97, 0x27, 0x93, 0x92, 0x46, 0x47, 0x4b, 0x96,
5494
0x41, 0x90, 0x90, 0x3f, 0x96, 0x27, 0x41, 0xd6,
5495
0xd6, 0xd6, 0xf9, 0xf8, 0x47, 0x27, 0x46, 0x37,
5496
0x41, 0x90, 0x91, 0xfc, 0x46, 0x41, 0x43, 0x97,
5497
0x9f, 0x4a, 0x49, 0x92, 0x41, 0x91, 0x41, 0x92,
5498
0x42, 0x4a, 0x3f, 0x93, 0x99, 0x9b, 0x9f, 0x4e,
5499
0x47, 0x93, 0xd6, 0x37, 0x37, 0x40, 0x98, 0xfd,
5500
0x41, 0x42, 0x97, 0x4e, 0x4e, 0x98, 0x9f, 0x4e,
5501
0x48, 0x3f, 0x48, 0x42, 0x96, 0x9f, 0x99, 0x4f,
5502
0x4e, 0x42, 0x97, 0xf9, 0x3f, 0x37, 0x27, 0x46,
5503
0x41, 0xf9, 0x92, 0x96, 0x41, 0x93, 0x91, 0x4b,
5504
0x96, 0x4f, 0x43, 0xfd, 0xf5, 0x9f, 0x43, 0x27,
5505
0x99, 0xd6, 0xf5, 0x4e, 0xfd, 0x97, 0x4b, 0x47,
5506
0x47, 0x92, 0x98, 0x4f, 0x47, 0x49, 0x37, 0x97,
5507
0x3f, 0x4e, 0x40, 0x46, 0x4e, 0x9f, 0x4e, 0x4e,
5508
0xfc, 0x41, 0x47, 0xf8, 0x37, 0x9b, 0x41, 0x4e,
5509
0x96, 0x99, 0x46, 0x99, 0x46, 0xf9, 0x4e, 0x4f,
5510
0x48, 0x97, 0x97, 0x93, 0xd6, 0x9b, 0x41, 0x40,
5511
0x97, 0x97, 0x4f, 0x92, 0x91, 0xd6, 0x96, 0x40,
5512
0x4f, 0x4b, 0x91, 0x46, 0x27, 0x92, 0x3f, 0xf5,
5513
0xfc, 0x3f, 0x91, 0x97, 0xf8, 0x43, 0x4e, 0xfd,
5514
0x9b, 0x27, 0xfd, 0x9b, 0xf5, 0x27, 0x47, 0x42,
5515
0x46, 0x93, 0x37, 0x93, 0x91, 0x91, 0x91, 0xf8,
5516
0x4f, 0x92, 0x4f, 0xf8, 0x93, 0xf5, 0x49, 0x91,
5517
0x4b, 0x3f, 0xfc, 0x37, 0x4f, 0x46, 0x98, 0x97,
5518
0x9f, 0x40, 0xfd, 0x9f, 0x98, 0xfd, 0x4e, 0x97,
5519
0x4f, 0x47, 0x91, 0x27, 0x4a, 0x90, 0x96, 0x40,
5520
0x98, 0x97, 0x41, 0x3f, 0xd6, 0xfd, 0x41, 0xfd,
5521
0x42, 0x97, 0x4b, 0x9b, 0x46, 0x4e, 0xfc, 0x96,
5522
0xf9, 0x37, 0x4b, 0x96, 0x9f, 0x9b, 0x42, 0x9f,
5523
0x93, 0x40, 0x42, 0x43, 0xf5, 0x93, 0x48, 0x3f,
5524
0x4b, 0xfd, 0x9f, 0x4b, 0x41, 0x4a, 0x90, 0x9b,
5525
0x46, 0x97, 0x98, 0x96, 0x9b, 0x98, 0x92, 0xd6,
5526
0x4e, 0x4a, 0x27, 0x90, 0x96, 0x99, 0x91, 0x46,
5527
0x49, 0x41, 0x4b, 0x90, 0x43, 0x91, 0xd6, 0x48,
5528
0x42, 0x90, 0x4f, 0x96, 0x43, 0x9b, 0xf9, 0x9b,
5529
0x9f, 0x9f, 0x27, 0x47, 0x4b, 0xf5, 0x43, 0x99,
5530
0x99, 0x91, 0x4e, 0x41, 0x42, 0x46, 0x97, 0x46,
5531
0x47, 0xf9, 0xf5, 0x48, 0x4a, 0xf8, 0x4e, 0xd6,
5532
0x43, 0x4a, 0x27, 0x9b, 0x42, 0x90, 0x46, 0x46,
5533
0x3f, 0x99, 0x96, 0x9b, 0x91, 0x9f, 0xf5, 0x48,
5534
0x43, 0x9f, 0x4a, 0x99, 0x96, 0xfd, 0x92, 0x49,
5535
0x46, 0x91, 0x40, 0xfd, 0x4a, 0x48, 0x4f, 0x90,
5536
0x91, 0x98, 0x48, 0x4b, 0x9f, 0x42, 0x27, 0x93,
5537
0x47, 0xf8, 0x4f, 0x48, 0x3f, 0x90, 0x47, 0x41,
5538
0xf5, 0xfc, 0x27, 0xf8, 0x97, 0x4a, 0x49, 0x37,
5539
0x40, 0x4f, 0x40, 0x37, 0x41, 0x27, 0x96, 0x37,
5540
0xfc, 0x42, 0xd6, 0x4b, 0x48, 0x37, 0x42, 0xf5,
5541
0x27, 0xf9, 0xd6, 0x48, 0x9b, 0xfd, 0x40, 0x96,
5542
0x4e, 0x43, 0xf8, 0x90, 0x40, 0x40, 0x49, 0x3f,
5543
0xfc, 0x4a, 0x42, 0x47, 0xf8, 0x49, 0x42, 0x97,
5544
0x4f, 0x91, 0xfd, 0x4b, 0x46, 0x4b, 0xfc, 0x48,
5545
0x49, 0x96, 0x4b, 0x96, 0x43, 0x9f, 0x90, 0x37,
5546
0xd6, 0x4a, 0xd6, 0x3f, 0xd6, 0x90, 0x49, 0x27,
5547
0x4e, 0x96, 0x96, 0xf8, 0x49, 0x96, 0xf8, 0x37,
5548
0x90, 0x4e, 0x4b, 0x4f, 0x99, 0xf8, 0x6a, 0x52,
5549
0x59, 0xd9, 0xee, 0xd9, 0x74, 0x24, 0xf4, 0x5b,
5550
0x81, 0x73, 0x13, 0x30, 0x50, 0xf0, 0x82, 0x83,
5551
0xeb, 0xfc, 0xe2, 0xf4, 0xb1, 0x94, 0x0f, 0x6d,
5552
0xcf, 0xaf, 0xb4, 0x7e, 0x5a, 0xbb, 0xbf, 0x6a,
5553
0xc9, 0xaf, 0x0f, 0x7d, 0x50, 0xdb, 0x9c, 0xa6,
5554
0x14, 0xdb, 0xb5, 0xbe, 0xbb, 0x2c, 0xf5, 0xfa,
5555
0x31, 0xbf, 0x7b, 0xcd, 0x28, 0xdb, 0xaf, 0xa2,
5556
0x31, 0xbb, 0x13, 0xb2, 0x79, 0xdb, 0xc4, 0x09,
5557
0x31, 0xbe, 0xc1, 0x42, 0xa9, 0xfc, 0x74, 0x42,
5558
0x44, 0x57, 0x31, 0x48, 0x3d, 0x51, 0x32, 0x69,
5559
0xc4, 0x6b, 0xa4, 0xa6, 0x18, 0x25, 0x13, 0x09,
5560
0x6f, 0x74, 0xf1, 0x69, 0x56, 0xdb, 0xfc, 0xc9,
5561
0xbb, 0x0f, 0xec, 0x83, 0xdb, 0x53, 0xdc, 0x09,
5562
0xb9, 0x3c, 0xd4, 0x9e, 0x51, 0x93, 0xc1, 0x42,
5563
0x54, 0xdb, 0xb0, 0xb2, 0xbb, 0x10, 0xfc, 0x09,
5564
0x40, 0x4c, 0x5d, 0x09, 0x70, 0x58, 0xae, 0xea,
5565
0xbe, 0x1e, 0xfe, 0x6e, 0x60, 0xaf, 0x26, 0xb3,
5566
0xeb, 0x36, 0xa3, 0xe4, 0x58, 0x63, 0xc2, 0xea,
5567
0x47, 0x23, 0xc2, 0xdd, 0x64, 0xaf, 0x20, 0xea,
5568
0xfb, 0xbd, 0x0c, 0xb9, 0x60, 0xaf, 0x26, 0xdd,
5569
0xb9, 0xb5, 0x96, 0x03, 0xdd, 0x58, 0xf2, 0xd7,
5570
0x5a, 0x52, 0x0f, 0x52, 0x58, 0x89, 0xf9, 0x77,
5571
0x9d, 0x07, 0x0f, 0x54, 0x63, 0x03, 0xa3, 0xd1,
5572
0x63, 0x13, 0xa3, 0xc1, 0x63, 0xaf, 0x20, 0xe4,
5573
0x58, 0x41, 0xac, 0xe4, 0x63, 0xd9, 0x11, 0x17,
5574
0x58, 0xf4, 0xea, 0xf2, 0xf7, 0x07, 0x0f, 0x54,
5575
0x5a, 0x40, 0xa1, 0xd7, 0xcf, 0x80, 0x98, 0x26,
5576
0x9d, 0x7e, 0x19, 0xd5, 0xcf, 0x86, 0xa3, 0xd7,
5577
0xcf, 0x80, 0x98, 0x67, 0x79, 0xd6, 0xb9, 0xd5,
5578
0xcf, 0x86, 0xa0, 0xd6, 0x64, 0x05, 0x0f, 0x52,
5579
0xa3, 0x38, 0x17, 0xfb, 0xf6, 0x29, 0xa7, 0x7d,
5580
0xe6, 0x05, 0x0f, 0x52, 0x56, 0x3a, 0x94, 0xe4,
5581
0x58, 0x33, 0x9d, 0x0b, 0xd5, 0x3a, 0xa0, 0xdb,
5582
0x19, 0x9c, 0x79, 0x65, 0x5a, 0x14, 0x79, 0x60,
5583
0x01, 0x90, 0x03, 0x28, 0xce, 0x12, 0xdd, 0x7c,
5584
0x72, 0x7c, 0x63, 0x0f, 0x4a, 0x68, 0x5b, 0x29,
5585
0x9b, 0x38, 0x82, 0x7c, 0x83, 0x46, 0x0f, 0xf7,
5586
0x74, 0xaf, 0x26, 0xd9, 0x67, 0x02, 0xa1, 0xd3,
5587
0x61, 0x3a, 0xf1, 0xd3, 0x61, 0x05, 0xa1, 0x7d,
5588
0xe0, 0x38, 0x5d, 0x5b, 0x35, 0x9e, 0xa3, 0x7d,
5589
0xe6, 0x3a, 0x0f, 0x7d, 0x07, 0xaf, 0x20, 0x09,
5590
0x67, 0xac, 0x73, 0x46, 0x54, 0xaf, 0x26, 0xd0
5592
uint32_t request1_len = sizeof(request1);
5594
uint8_t request2[] = {
5595
0x05, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
5596
0x18, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
5597
0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00,
5598
0xcf, 0x80, 0x98, 0x6d, 0xfe, 0xb0, 0x90, 0xd1,
5599
0xcf, 0x86, 0x0f, 0x52, 0x2c, 0x23, 0x66, 0x28,
5600
0x27, 0x30, 0x48, 0x55, 0x42, 0x6a, 0x48, 0x4b,
5601
0x68, 0x22, 0x2e, 0x23, 0x64, 0x33, 0x2c, 0x2d,
5602
0x5c, 0x51, 0x48, 0x55, 0x24, 0x67, 0x6c, 0x4c,
5603
0x45, 0x71, 0x35, 0x72, 0x5a, 0x48, 0x5e, 0x35,
5604
0x61, 0x78, 0x35, 0x42, 0x2c, 0x7a, 0x75, 0x61,
5605
0x5b, 0x4e, 0x76, 0x30, 0x26, 0x2f, 0x2a, 0x34,
5606
0x48, 0x29, 0x25, 0x6e, 0x5c, 0x3a, 0x6c, 0x3e,
5607
0x79, 0x4e, 0x2a, 0x21, 0x6f, 0x6f, 0x34, 0x46,
5608
0x43, 0x26, 0x5b, 0x35, 0x78, 0x27, 0x69, 0x23,
5609
0x72, 0x21, 0x69, 0x56, 0x6a, 0x7d, 0x4b, 0x5e,
5610
0x65, 0x37, 0x60, 0x44, 0x7c, 0x5d, 0x5b, 0x72,
5611
0x7d, 0x73, 0x7b, 0x47, 0x57, 0x21, 0x41, 0x38,
5612
0x76, 0x38, 0x76, 0x5c, 0x58, 0x32, 0x4a, 0x37,
5613
0x2f, 0x40, 0x4b, 0x4c, 0x3d, 0x41, 0x33, 0x56,
5614
0x73, 0x38, 0x61, 0x71, 0x24, 0x49, 0x4c, 0x4a,
5615
0x44, 0x2e, 0x3a, 0x3f, 0x74, 0x54, 0x4c, 0x65,
5616
0x54, 0x2d, 0x3b, 0x28, 0x41, 0x45, 0x49, 0x2c,
5617
0x6e, 0x48, 0x44, 0x43, 0x37, 0x3d, 0x7b, 0x6d,
5618
0x2b, 0x4b, 0x32, 0x5a, 0x31, 0x61, 0x6e, 0x2b,
5619
0x27, 0x50, 0x6b, 0x66, 0x76, 0x4e, 0x55, 0x35,
5620
0x2b, 0x72, 0x2d, 0x5e, 0x42, 0x3e, 0x5a, 0x5d,
5621
0x36, 0x45, 0x32, 0x3a, 0x58, 0x78, 0x78, 0x3e,
5622
0x60, 0x6c, 0x5d, 0x63, 0x41, 0x7c, 0x52, 0x21,
5623
0x75, 0x6a, 0x5a, 0x70, 0x55, 0x45, 0x76, 0x58,
5624
0x33, 0x40, 0x38, 0x39, 0x21, 0x37, 0x7d, 0x77,
5625
0x21, 0x70, 0x2b, 0x72, 0x29, 0x6a, 0x31, 0x5f,
5626
0x38, 0x4a, 0x66, 0x65, 0x62, 0x2c, 0x39, 0x52,
5627
0x5f, 0x2a, 0x2b, 0x63, 0x4f, 0x76, 0x43, 0x25,
5628
0x6a, 0x50, 0x37, 0x52, 0x5e, 0x23, 0x3c, 0x42,
5629
0x28, 0x75, 0x75, 0x42, 0x25, 0x23, 0x28, 0x56,
5630
0x6c, 0x46, 0x5c, 0x5e, 0x6b, 0x7d, 0x48, 0x24,
5631
0x77, 0x6c, 0x70, 0x62, 0x2e, 0x28, 0x7d, 0x6b,
5632
0x69, 0x4a, 0x75, 0x3d, 0x5d, 0x56, 0x21, 0x49,
5633
0x56, 0x47, 0x64, 0x2b, 0x4c, 0x52, 0x43, 0x60,
5634
0x77, 0x49, 0x46, 0x46, 0x33, 0x2c, 0x4b, 0x4b,
5635
0x3d, 0x63, 0x5d, 0x33, 0x78, 0x76, 0x51, 0x56,
5636
0x77, 0x3c, 0x72, 0x74, 0x52, 0x27, 0x40, 0x6c,
5637
0x42, 0x79, 0x49, 0x24, 0x62, 0x5e, 0x26, 0x31,
5638
0x5c, 0x22, 0x2b, 0x4c, 0x64, 0x49, 0x52, 0x45,
5639
0x47, 0x49, 0x3a, 0x2a, 0x51, 0x71, 0x22, 0x22,
5640
0x70, 0x24, 0x34, 0x67, 0x4b, 0x6d, 0x58, 0x29,
5641
0x63, 0x26, 0x7b, 0x6f, 0x38, 0x78, 0x25, 0x62,
5642
0x4d, 0x3a, 0x7d, 0x40, 0x23, 0x57, 0x67, 0x33,
5643
0x38, 0x31, 0x4e, 0x54, 0x3c, 0x4b, 0x48, 0x69,
5644
0x3c, 0x39, 0x31, 0x2b, 0x26, 0x70, 0x44, 0x66,
5645
0x4a, 0x37, 0x2b, 0x75, 0x36, 0x45, 0x59, 0x34,
5646
0x3e, 0x3e, 0x29, 0x70, 0x71, 0x5a, 0x55, 0x49,
5647
0x3e, 0x4b, 0x68, 0x4e, 0x75, 0x70, 0x3c, 0x5c,
5648
0x50, 0x58, 0x28, 0x75, 0x3c, 0x2a, 0x41, 0x70,
5649
0x2f, 0x2b, 0x37, 0x26, 0x75, 0x71, 0x55, 0x22,
5650
0x3a, 0x44, 0x30, 0x48, 0x5d, 0x2f, 0x6c, 0x44,
5651
0x28, 0x4b, 0x34, 0x45, 0x21, 0x60, 0x44, 0x36,
5652
0x7b, 0x32, 0x39, 0x5f, 0x6d, 0x3f, 0x68, 0x73,
5653
0x25, 0x45, 0x56, 0x7c, 0x78, 0x7a, 0x49, 0x6a,
5654
0x46, 0x3d, 0x2d, 0x33, 0x6c, 0x6f, 0x23, 0x77,
5655
0x38, 0x33, 0x36, 0x74, 0x7b, 0x57, 0x4b, 0x6d,
5656
0x27, 0x75, 0x24, 0x6e, 0x43, 0x61, 0x4d, 0x44,
5657
0x6d, 0x27, 0x48, 0x58, 0x5e, 0x7b, 0x26, 0x6a,
5658
0x50, 0x7c, 0x51, 0x23, 0x3c, 0x4f, 0x37, 0x4c,
5659
0x47, 0x3e, 0x45, 0x56, 0x22, 0x33, 0x7c, 0x66,
5660
0x35, 0x54, 0x7a, 0x6e, 0x5a, 0x24, 0x70, 0x62,
5661
0x29, 0x3f, 0x69, 0x79, 0x24, 0x43, 0x41, 0x24,
5662
0x65, 0x25, 0x62, 0x4f, 0x73, 0x3e, 0x2b, 0x36,
5663
0x46, 0x69, 0x27, 0x55, 0x2a, 0x6e, 0x24, 0x6c,
5664
0x7d, 0x64, 0x7c, 0x61, 0x26, 0x67, 0x2a, 0x53,
5665
0x73, 0x60, 0x28, 0x2d, 0x6b, 0x44, 0x54, 0x61,
5666
0x34, 0x53, 0x22, 0x59, 0x6d, 0x73, 0x56, 0x55,
5667
0x25, 0x2c, 0x38, 0x4a, 0x3b, 0x4e, 0x78, 0x46,
5668
0x54, 0x6e, 0x6d, 0x4f, 0x47, 0x4f, 0x4f, 0x5a,
5669
0x67, 0x77, 0x39, 0x66, 0x28, 0x29, 0x4e, 0x43,
5670
0x55, 0x6e, 0x60, 0x59, 0x28, 0x3b, 0x65, 0x62,
5671
0x61, 0x5a, 0x29, 0x6e, 0x79, 0x60, 0x41, 0x53,
5672
0x2f, 0x5d, 0x44, 0x36, 0x7b, 0x3e, 0x7c, 0x2b,
5673
0x77, 0x36, 0x70, 0x3f, 0x40, 0x55, 0x48, 0x67,
5674
0x4b, 0x4d, 0x5d, 0x51, 0x79, 0x76, 0x48, 0x4a,
5675
0x2d, 0x21, 0x60, 0x40, 0x46, 0x55, 0x7a, 0x60,
5676
0x22, 0x25, 0x3f, 0x4b, 0x54, 0x6a, 0x6a, 0x3c,
5677
0x77, 0x22, 0x5b, 0x43, 0x67, 0x58, 0x71, 0x22,
5678
0x79, 0x4b, 0x32, 0x61, 0x44, 0x4d, 0x6f, 0x42,
5679
0x33, 0x2d, 0x53, 0x35, 0x3d, 0x6f, 0x57, 0x48,
5680
0x33, 0x3b, 0x5a, 0x53, 0x3f, 0x4e, 0x3f, 0x6b,
5681
0x4c, 0x27, 0x26, 0x3b, 0x73, 0x49, 0x22, 0x55,
5682
0x79, 0x2f, 0x47, 0x2f, 0x55, 0x5a, 0x7a, 0x71,
5683
0x6c, 0x31, 0x43, 0x40, 0x56, 0x7b, 0x21, 0x7a,
5684
0x6d, 0x4c, 0x43, 0x5e, 0x38, 0x47, 0x29, 0x38,
5685
0x62, 0x49, 0x45, 0x78, 0x70, 0x2b, 0x2e, 0x65,
5686
0x47, 0x71, 0x58, 0x79, 0x39, 0x67, 0x7d, 0x6d,
5687
0x6a, 0x67, 0x4a, 0x71, 0x27, 0x35, 0x2a, 0x4c,
5688
0x3e, 0x58, 0x55, 0x30, 0x4d, 0x75, 0x77, 0x48,
5689
0x5f, 0x4b, 0x59, 0x34, 0x65, 0x68, 0x57, 0x59,
5690
0x63, 0x23, 0x47, 0x38, 0x47, 0x5e, 0x56, 0x28,
5691
0x79, 0x58, 0x3e, 0x39, 0x66, 0x77, 0x67, 0x33,
5692
0x29, 0x61, 0x24, 0x7d, 0x37, 0x44, 0x37, 0x67,
5693
0x3a, 0x58, 0x76, 0x21, 0x51, 0x59, 0x61, 0x73,
5694
0x66, 0x75, 0x71, 0x53, 0x4d, 0x24, 0x2d, 0x4b,
5695
0x29, 0x30, 0x32, 0x26, 0x59, 0x64, 0x27, 0x55,
5696
0x2c, 0x5a, 0x4c, 0x3c, 0x6c, 0x53, 0x56, 0x4b,
5697
0x3e, 0x55, 0x2e, 0x44, 0x38, 0x6b, 0x47, 0x76,
5698
0x2d, 0x2c, 0x3f, 0x4d, 0x22, 0x7b, 0x6d, 0x61,
5699
0x34, 0x6b, 0x50, 0x73, 0x28, 0x6d, 0x41, 0x71,
5700
0x21, 0x76, 0x52, 0x2a, 0x6d, 0x53, 0x2a, 0x74,
5701
0x28, 0x27, 0x62, 0x2a, 0x66, 0x25, 0x6e, 0x5e,
5702
0x37, 0x4f, 0x27, 0x72, 0x28, 0x47, 0x63, 0x6e,
5703
0x5a, 0x6a, 0x41, 0x35, 0x3a, 0x42, 0x3f, 0x27,
5704
0x75, 0x3e, 0x26, 0x3e, 0x6b, 0x55, 0x59, 0x60,
5705
0x24, 0x70, 0x49, 0x3c, 0x4e, 0x2c, 0x39, 0x7a,
5706
0x36, 0x6c, 0x27, 0x3e, 0x6a, 0x4a, 0x59, 0x5a,
5707
0x3e, 0x21, 0x73, 0x4e, 0x59, 0x6e, 0x3d, 0x32,
5708
0x27, 0x45, 0x49, 0x58, 0x7d, 0x37, 0x39, 0x77,
5709
0x28, 0x51, 0x79, 0x54, 0x2b, 0x78, 0x46, 0x5a,
5710
0x21, 0x75, 0x33, 0x21, 0x63, 0x5a, 0x7b, 0x3e,
5711
0x33, 0x4f, 0x67, 0x75, 0x3a, 0x50, 0x48, 0x60,
5712
0x26, 0x64, 0x76, 0x5c, 0x42, 0x5c, 0x72, 0x38,
5713
0x6c, 0x52, 0x21, 0x2b, 0x25, 0x6b, 0x7c, 0x6b,
5714
0x2d, 0x5e, 0x63, 0x2a, 0x4c, 0x26, 0x5b, 0x4c,
5715
0x58, 0x52, 0x51, 0x55, 0x31, 0x79, 0x6c, 0x53,
5716
0x62, 0x3a, 0x36, 0x46, 0x7a, 0x29, 0x27, 0x78,
5717
0x1a, 0xbf, 0x49, 0x74, 0x68, 0x24, 0x51, 0x44,
5718
0x5b, 0x3e, 0x34, 0x44, 0x29, 0x5e, 0x4f, 0x2a,
5719
0xe9, 0x3f, 0xf8, 0xff, 0xff, 0x52, 0x7d, 0x47,
5720
0x67, 0x40, 0x27, 0x5e, 0x47, 0x46, 0x6d, 0x72,
5721
0x5d, 0x49, 0x26, 0x45, 0x33, 0x6b, 0x4d, 0x4a,
5722
0x6f, 0x62, 0x60, 0x45, 0x62, 0x27, 0x27, 0x7d,
5723
0x6a, 0x41, 0x2c, 0x6c, 0x5b, 0x2a, 0x2b, 0x36,
5724
0x29, 0x58, 0x7a, 0x4c, 0x6e, 0x2d, 0x74, 0x5c,
5725
0x38, 0x22, 0x5f, 0x49, 0x63, 0x43, 0x5b, 0x67
5727
uint32_t request2_len = sizeof(request2);
5732
DetectEngineCtx *de_ctx = NULL;
5733
DetectEngineThreadCtx *det_ctx = NULL;
5738
char *sig1 = "alert tcp any any -> any any "
5739
"(dce_stub_data; content:|af, 26, d0|; content:|80 98 6d|; "
5740
"distance:1; within:3; sid:1;)";
5744
memset(&tv, 0, sizeof(ThreadVars));
5745
memset(&f, 0, sizeof(Flow));
5746
memset(&ssn, 0, sizeof(TcpSession));
5748
for (i = 0; i < 2; i++) {
5749
memset(&p[i], 0, sizeof(Packet));
5750
p[i].src.family = AF_INET;
5751
p[i].dst.family = AF_INET;
5752
p[i].payload = NULL;
5753
p[i].payload_len = 0;
5754
p[i].proto = IPPROTO_TCP;
5756
p[i].flowflags |= FLOW_PKT_TOSERVER;
5757
p[i].flowflags |= FLOW_PKT_ESTABLISHED;
5760
FLOW_INITIALIZE(&f);
5761
f.protoctx = (void *)&ssn;
5762
f.src.family = AF_INET;
5763
f.dst.family = AF_INET;
5764
f.alproto = ALPROTO_DCERPC;
5766
StreamTcpInitConfig(TRUE);
5767
FlowL7DataPtrInit(&f);
5769
de_ctx = DetectEngineCtxInit();
5772
de_ctx->flags |= DE_QUIET;
5774
de_ctx->sig_list = SigInit(de_ctx, sig1);
5775
s = de_ctx->sig_list;
5779
SigGroupBuild(de_ctx);
5780
DetectEngineThreadCtxInit(&tv, (void *)de_ctx, (void *)&det_ctx);
5782
r = AppLayerParse(&f, ALPROTO_DCERPC, STREAM_TOSERVER, request1, request1_len);
5784
printf("toserver chunk 1 returned %" PRId32 ", expected 0: ", r);
5788
/* detection phase */
5789
SigMatchSignatures(&tv, de_ctx, det_ctx, &p[0]);
5790
if ((PacketAlertCheck(&p[0], 1))) {
5791
printf("sid 1 matched but shouldn't have for packet 0: ");
5795
r = AppLayerParse(&f, ALPROTO_DCERPC, STREAM_TOSERVER, request2, request2_len);
5797
printf("toserver chunk 1 returned %" PRId32 ", expected 0: ", r);
5801
/* detection phase */
5802
SigMatchSignatures(&tv, de_ctx, det_ctx, &p[1]);
5803
if (!(PacketAlertCheck(&p[1], 1))) {
5804
printf("sid 1 didn't match but should have for pacekt 1: ");
5811
if (de_ctx != NULL) {
5812
SigGroupCleanup(de_ctx);
5813
SigCleanSignatures(de_ctx);
5815
DetectEngineThreadCtxDeinit(&tv, (void *)det_ctx);
5816
DetectEngineCtxFree(de_ctx);
5819
FlowL7DataPtrFree(&f);
5820
StreamTcpFreeConfig(TRUE);
5826
* \test Negative test the working of contents on stub data with invalid
5829
int DcePayloadTest12(void)
5833
uint8_t request1[] = {
5834
0x05, 0x00, 0x00, 0x01, 0x10, 0x00, 0x00, 0x00,
5835
0x18, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
5836
0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00,
5837
0xad, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
5838
0xad, 0x0d, 0x00, 0x00, 0x91, 0xfc, 0x27, 0x40,
5839
0x4a, 0x97, 0x4a, 0x98, 0x4b, 0x41, 0x3f, 0x48,
5840
0x99, 0x90, 0xf8, 0x27, 0xfd, 0x3f, 0x27, 0x37,
5841
0x40, 0xd6, 0x27, 0xfc, 0x3f, 0x9f, 0x4f, 0xfd,
5842
0x42, 0x47, 0x47, 0x49, 0x3f, 0xf9, 0x9b, 0xd6,
5843
0x48, 0x37, 0x27, 0x46, 0x93, 0x49, 0xfd, 0x93,
5844
0x91, 0xfd, 0x93, 0x90, 0x92, 0x96, 0xf5, 0x92,
5845
0x4e, 0x91, 0x98, 0x46, 0x4f, 0x4b, 0x46, 0xf5,
5846
0xf5, 0xfd, 0x40, 0xf9, 0x9b, 0x40, 0x9f, 0x93,
5847
0x4e, 0xf8, 0x40, 0x40, 0x4e, 0xf5, 0x4b, 0x98,
5848
0xf5, 0x91, 0xd6, 0x42, 0x99, 0x96, 0x27, 0x49,
5849
0x48, 0x47, 0x4f, 0x46, 0x99, 0x4b, 0x92, 0x92,
5850
0x90, 0x47, 0x46, 0x4e, 0x43, 0x9b, 0x43, 0x42,
5851
0x3f, 0x4b, 0x27, 0x97, 0x93, 0xf9, 0x42, 0x9b,
5852
0x46, 0x9b, 0x4b, 0x98, 0x41, 0x98, 0x37, 0x41,
5853
0x9f, 0x98, 0x4e, 0x93, 0x48, 0x46, 0x46, 0x9f,
5854
0x97, 0x9b, 0x42, 0x37, 0x90, 0x46, 0xf9, 0x97,
5855
0x91, 0xf5, 0x4e, 0x97, 0x4e, 0x99, 0xf8, 0x99,
5856
0x41, 0xf5, 0x41, 0x9f, 0x49, 0xfd, 0x92, 0x96,
5857
0x3f, 0x3f, 0x42, 0x27, 0x27, 0x93, 0x47, 0x49,
5858
0x91, 0x27, 0x27, 0x40, 0x42, 0x99, 0x9f, 0xfc,
5859
0x97, 0x47, 0x99, 0x4a, 0xf9, 0x3f, 0x48, 0x91,
5860
0x47, 0x97, 0x91, 0x42, 0x4b, 0x9b, 0x4a, 0x48,
5861
0x9f, 0x43, 0x43, 0x40, 0x99, 0xf9, 0x48, 0x4e,
5862
0x92, 0x93, 0x92, 0x41, 0x46, 0x4b, 0x4a, 0x4a,
5863
0x49, 0x96, 0x4a, 0x4f, 0xf5, 0x42, 0x47, 0x98,
5864
0x9b, 0xf5, 0x91, 0xf9, 0xd6, 0x9b, 0x48, 0x4e,
5865
0x9f, 0x91, 0xd6, 0x93, 0x4b, 0x37, 0x3f, 0x43,
5866
0xf5, 0x41, 0x41, 0xf5, 0x37, 0x4f, 0x43, 0x92,
5867
0x97, 0x27, 0x93, 0x92, 0x46, 0x47, 0x4b, 0x96,
5868
0x41, 0x90, 0x90, 0x3f, 0x96, 0x27, 0x41, 0xd6,
5869
0xd6, 0xd6, 0xf9, 0xf8, 0x47, 0x27, 0x46, 0x37,
5870
0x41, 0x90, 0x91, 0xfc, 0x46, 0x41, 0x43, 0x97,
5871
0x9f, 0x4a, 0x49, 0x92, 0x41, 0x91, 0x41, 0x92,
5872
0x42, 0x4a, 0x3f, 0x93, 0x99, 0x9b, 0x9f, 0x4e,
5873
0x47, 0x93, 0xd6, 0x37, 0x37, 0x40, 0x98, 0xfd,
5874
0x41, 0x42, 0x97, 0x4e, 0x4e, 0x98, 0x9f, 0x4e,
5875
0x48, 0x3f, 0x48, 0x42, 0x96, 0x9f, 0x99, 0x4f,
5876
0x4e, 0x42, 0x97, 0xf9, 0x3f, 0x37, 0x27, 0x46,
5877
0x41, 0xf9, 0x92, 0x96, 0x41, 0x93, 0x91, 0x4b,
5878
0x96, 0x4f, 0x43, 0xfd, 0xf5, 0x9f, 0x43, 0x27,
5879
0x99, 0xd6, 0xf5, 0x4e, 0xfd, 0x97, 0x4b, 0x47,
5880
0x47, 0x92, 0x98, 0x4f, 0x47, 0x49, 0x37, 0x97,
5881
0x3f, 0x4e, 0x40, 0x46, 0x4e, 0x9f, 0x4e, 0x4e,
5882
0xfc, 0x41, 0x47, 0xf8, 0x37, 0x9b, 0x41, 0x4e,
5883
0x96, 0x99, 0x46, 0x99, 0x46, 0xf9, 0x4e, 0x4f,
5884
0x48, 0x97, 0x97, 0x93, 0xd6, 0x9b, 0x41, 0x40,
5885
0x97, 0x97, 0x4f, 0x92, 0x91, 0xd6, 0x96, 0x40,
5886
0x4f, 0x4b, 0x91, 0x46, 0x27, 0x92, 0x3f, 0xf5,
5887
0xfc, 0x3f, 0x91, 0x97, 0xf8, 0x43, 0x4e, 0xfd,
5888
0x9b, 0x27, 0xfd, 0x9b, 0xf5, 0x27, 0x47, 0x42,
5889
0x46, 0x93, 0x37, 0x93, 0x91, 0x91, 0x91, 0xf8,
5890
0x4f, 0x92, 0x4f, 0xf8, 0x93, 0xf5, 0x49, 0x91,
5891
0x4b, 0x3f, 0xfc, 0x37, 0x4f, 0x46, 0x98, 0x97,
5892
0x9f, 0x40, 0xfd, 0x9f, 0x98, 0xfd, 0x4e, 0x97,
5893
0x4f, 0x47, 0x91, 0x27, 0x4a, 0x90, 0x96, 0x40,
5894
0x98, 0x97, 0x41, 0x3f, 0xd6, 0xfd, 0x41, 0xfd,
5895
0x42, 0x97, 0x4b, 0x9b, 0x46, 0x4e, 0xfc, 0x96,
5896
0xf9, 0x37, 0x4b, 0x96, 0x9f, 0x9b, 0x42, 0x9f,
5897
0x93, 0x40, 0x42, 0x43, 0xf5, 0x93, 0x48, 0x3f,
5898
0x4b, 0xfd, 0x9f, 0x4b, 0x41, 0x4a, 0x90, 0x9b,
5899
0x46, 0x97, 0x98, 0x96, 0x9b, 0x98, 0x92, 0xd6,
5900
0x4e, 0x4a, 0x27, 0x90, 0x96, 0x99, 0x91, 0x46,
5901
0x49, 0x41, 0x4b, 0x90, 0x43, 0x91, 0xd6, 0x48,
5902
0x42, 0x90, 0x4f, 0x96, 0x43, 0x9b, 0xf9, 0x9b,
5903
0x9f, 0x9f, 0x27, 0x47, 0x4b, 0xf5, 0x43, 0x99,
5904
0x99, 0x91, 0x4e, 0x41, 0x42, 0x46, 0x97, 0x46,
5905
0x47, 0xf9, 0xf5, 0x48, 0x4a, 0xf8, 0x4e, 0xd6,
5906
0x43, 0x4a, 0x27, 0x9b, 0x42, 0x90, 0x46, 0x46,
5907
0x3f, 0x99, 0x96, 0x9b, 0x91, 0x9f, 0xf5, 0x48,
5908
0x43, 0x9f, 0x4a, 0x99, 0x96, 0xfd, 0x92, 0x49,
5909
0x46, 0x91, 0x40, 0xfd, 0x4a, 0x48, 0x4f, 0x90,
5910
0x91, 0x98, 0x48, 0x4b, 0x9f, 0x42, 0x27, 0x93,
5911
0x47, 0xf8, 0x4f, 0x48, 0x3f, 0x90, 0x47, 0x41,
5912
0xf5, 0xfc, 0x27, 0xf8, 0x97, 0x4a, 0x49, 0x37,
5913
0x40, 0x4f, 0x40, 0x37, 0x41, 0x27, 0x96, 0x37,
5914
0xfc, 0x42, 0xd6, 0x4b, 0x48, 0x37, 0x42, 0xf5,
5915
0x27, 0xf9, 0xd6, 0x48, 0x9b, 0xfd, 0x40, 0x96,
5916
0x4e, 0x43, 0xf8, 0x90, 0x40, 0x40, 0x49, 0x3f,
5917
0xfc, 0x4a, 0x42, 0x47, 0xf8, 0x49, 0x42, 0x97,
5918
0x4f, 0x91, 0xfd, 0x4b, 0x46, 0x4b, 0xfc, 0x48,
5919
0x49, 0x96, 0x4b, 0x96, 0x43, 0x9f, 0x90, 0x37,
5920
0xd6, 0x4a, 0xd6, 0x3f, 0xd6, 0x90, 0x49, 0x27,
5921
0x4e, 0x96, 0x96, 0xf8, 0x49, 0x96, 0xf8, 0x37,
5922
0x90, 0x4e, 0x4b, 0x4f, 0x99, 0xf8, 0x6a, 0x52,
5923
0x59, 0xd9, 0xee, 0xd9, 0x74, 0x24, 0xf4, 0x5b,
5924
0x81, 0x73, 0x13, 0x30, 0x50, 0xf0, 0x82, 0x83,
5925
0xeb, 0xfc, 0xe2, 0xf4, 0xb1, 0x94, 0x0f, 0x6d,
5926
0xcf, 0xaf, 0xb4, 0x7e, 0x5a, 0xbb, 0xbf, 0x6a,
5927
0xc9, 0xaf, 0x0f, 0x7d, 0x50, 0xdb, 0x9c, 0xa6,
5928
0x14, 0xdb, 0xb5, 0xbe, 0xbb, 0x2c, 0xf5, 0xfa,
5929
0x31, 0xbf, 0x7b, 0xcd, 0x28, 0xdb, 0xaf, 0xa2,
5930
0x31, 0xbb, 0x13, 0xb2, 0x79, 0xdb, 0xc4, 0x09,
5931
0x31, 0xbe, 0xc1, 0x42, 0xa9, 0xfc, 0x74, 0x42,
5932
0x44, 0x57, 0x31, 0x48, 0x3d, 0x51, 0x32, 0x69,
5933
0xc4, 0x6b, 0xa4, 0xa6, 0x18, 0x25, 0x13, 0x09,
5934
0x6f, 0x74, 0xf1, 0x69, 0x56, 0xdb, 0xfc, 0xc9,
5935
0xbb, 0x0f, 0xec, 0x83, 0xdb, 0x53, 0xdc, 0x09,
5936
0xb9, 0x3c, 0xd4, 0x9e, 0x51, 0x93, 0xc1, 0x42,
5937
0x54, 0xdb, 0xb0, 0xb2, 0xbb, 0x10, 0xfc, 0x09,
5938
0x40, 0x4c, 0x5d, 0x09, 0x70, 0x58, 0xae, 0xea,
5939
0xbe, 0x1e, 0xfe, 0x6e, 0x60, 0xaf, 0x26, 0xb3,
5940
0xeb, 0x36, 0xa3, 0xe4, 0x58, 0x63, 0xc2, 0xea,
5941
0x47, 0x23, 0xc2, 0xdd, 0x64, 0xaf, 0x20, 0xea,
5942
0xfb, 0xbd, 0x0c, 0xb9, 0x60, 0xaf, 0x26, 0xdd,
5943
0xb9, 0xb5, 0x96, 0x03, 0xdd, 0x58, 0xf2, 0xd7,
5944
0x5a, 0x52, 0x0f, 0x52, 0x58, 0x89, 0xf9, 0x77,
5945
0x9d, 0x07, 0x0f, 0x54, 0x63, 0x03, 0xa3, 0xd1,
5946
0x63, 0x13, 0xa3, 0xc1, 0x63, 0xaf, 0x20, 0xe4,
5947
0x58, 0x41, 0xac, 0xe4, 0x63, 0xd9, 0x11, 0x17,
5948
0x58, 0xf4, 0xea, 0xf2, 0xf7, 0x07, 0x0f, 0x54,
5949
0x5a, 0x40, 0xa1, 0xd7, 0xcf, 0x80, 0x98, 0x26,
5950
0x9d, 0x7e, 0x19, 0xd5, 0xcf, 0x86, 0xa3, 0xd7,
5951
0xcf, 0x80, 0x98, 0x67, 0x79, 0xd6, 0xb9, 0xd5,
5952
0xcf, 0x86, 0xa0, 0xd6, 0x64, 0x05, 0x0f, 0x52,
5953
0xa3, 0x38, 0x17, 0xfb, 0xf6, 0x29, 0xa7, 0x7d,
5954
0xe6, 0x05, 0x0f, 0x52, 0x56, 0x3a, 0x94, 0xe4,
5955
0x58, 0x33, 0x9d, 0x0b, 0xd5, 0x3a, 0xa0, 0xdb,
5956
0x19, 0x9c, 0x79, 0x65, 0x5a, 0x14, 0x79, 0x60,
5957
0x01, 0x90, 0x03, 0x28, 0xce, 0x12, 0xdd, 0x7c,
5958
0x72, 0x7c, 0x63, 0x0f, 0x4a, 0x68, 0x5b, 0x29,
5959
0x9b, 0x38, 0x82, 0x7c, 0x83, 0x46, 0x0f, 0xf7,
5960
0x74, 0xaf, 0x26, 0xd9, 0x67, 0x02, 0xa1, 0xd3,
5961
0x61, 0x3a, 0xf1, 0xd3, 0x61, 0x05, 0xa1, 0x7d,
5962
0xe0, 0x38, 0x5d, 0x5b, 0x35, 0x9e, 0xa3, 0x7d,
5963
0xe6, 0x3a, 0x0f, 0x7d, 0x07, 0xaf, 0x20, 0x09,
5964
0x67, 0xac, 0x73, 0x46, 0x54, 0xaf, 0x26, 0xd0
5966
uint32_t request1_len = sizeof(request1);
5968
uint8_t request2[] = {
5969
0x05, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
5970
0x18, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
5971
0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00,
5972
0xcf, 0x80, 0x98, 0x6d, 0xfe, 0xb0, 0x90, 0xd1,
5973
0xcf, 0x86, 0x0f, 0x52, 0x2c, 0x23, 0x66, 0x28,
5974
0x27, 0x30, 0x48, 0x55, 0x42, 0x6a, 0x48, 0x4b,
5975
0x68, 0x22, 0x2e, 0x23, 0x64, 0x33, 0x2c, 0x2d,
5976
0x5c, 0x51, 0x48, 0x55, 0x24, 0x67, 0x6c, 0x4c,
5977
0x45, 0x71, 0x35, 0x72, 0x5a, 0x48, 0x5e, 0x35,
5978
0x61, 0x78, 0x35, 0x42, 0x2c, 0x7a, 0x75, 0x61,
5979
0x5b, 0x4e, 0x76, 0x30, 0x26, 0x2f, 0x2a, 0x34,
5980
0x48, 0x29, 0x25, 0x6e, 0x5c, 0x3a, 0x6c, 0x3e,
5981
0x79, 0x4e, 0x2a, 0x21, 0x6f, 0x6f, 0x34, 0x46,
5982
0x43, 0x26, 0x5b, 0x35, 0x78, 0x27, 0x69, 0x23,
5983
0x72, 0x21, 0x69, 0x56, 0x6a, 0x7d, 0x4b, 0x5e,
5984
0x65, 0x37, 0x60, 0x44, 0x7c, 0x5d, 0x5b, 0x72,
5985
0x7d, 0x73, 0x7b, 0x47, 0x57, 0x21, 0x41, 0x38,
5986
0x76, 0x38, 0x76, 0x5c, 0x58, 0x32, 0x4a, 0x37,
5987
0x2f, 0x40, 0x4b, 0x4c, 0x3d, 0x41, 0x33, 0x56,
5988
0x73, 0x38, 0x61, 0x71, 0x24, 0x49, 0x4c, 0x4a,
5989
0x44, 0x2e, 0x3a, 0x3f, 0x74, 0x54, 0x4c, 0x65,
5990
0x54, 0x2d, 0x3b, 0x28, 0x41, 0x45, 0x49, 0x2c,
5991
0x6e, 0x48, 0x44, 0x43, 0x37, 0x3d, 0x7b, 0x6d,
5992
0x2b, 0x4b, 0x32, 0x5a, 0x31, 0x61, 0x6e, 0x2b,
5993
0x27, 0x50, 0x6b, 0x66, 0x76, 0x4e, 0x55, 0x35,
5994
0x2b, 0x72, 0x2d, 0x5e, 0x42, 0x3e, 0x5a, 0x5d,
5995
0x36, 0x45, 0x32, 0x3a, 0x58, 0x78, 0x78, 0x3e,
5996
0x60, 0x6c, 0x5d, 0x63, 0x41, 0x7c, 0x52, 0x21,
5997
0x75, 0x6a, 0x5a, 0x70, 0x55, 0x45, 0x76, 0x58,
5998
0x33, 0x40, 0x38, 0x39, 0x21, 0x37, 0x7d, 0x77,
5999
0x21, 0x70, 0x2b, 0x72, 0x29, 0x6a, 0x31, 0x5f,
6000
0x38, 0x4a, 0x66, 0x65, 0x62, 0x2c, 0x39, 0x52,
6001
0x5f, 0x2a, 0x2b, 0x63, 0x4f, 0x76, 0x43, 0x25,
6002
0x6a, 0x50, 0x37, 0x52, 0x5e, 0x23, 0x3c, 0x42,
6003
0x28, 0x75, 0x75, 0x42, 0x25, 0x23, 0x28, 0x56,
6004
0x6c, 0x46, 0x5c, 0x5e, 0x6b, 0x7d, 0x48, 0x24,
6005
0x77, 0x6c, 0x70, 0x62, 0x2e, 0x28, 0x7d, 0x6b,
6006
0x69, 0x4a, 0x75, 0x3d, 0x5d, 0x56, 0x21, 0x49,
6007
0x56, 0x47, 0x64, 0x2b, 0x4c, 0x52, 0x43, 0x60,
6008
0x77, 0x49, 0x46, 0x46, 0x33, 0x2c, 0x4b, 0x4b,
6009
0x3d, 0x63, 0x5d, 0x33, 0x78, 0x76, 0x51, 0x56,
6010
0x77, 0x3c, 0x72, 0x74, 0x52, 0x27, 0x40, 0x6c,
6011
0x42, 0x79, 0x49, 0x24, 0x62, 0x5e, 0x26, 0x31,
6012
0x5c, 0x22, 0x2b, 0x4c, 0x64, 0x49, 0x52, 0x45,
6013
0x47, 0x49, 0x3a, 0x2a, 0x51, 0x71, 0x22, 0x22,
6014
0x70, 0x24, 0x34, 0x67, 0x4b, 0x6d, 0x58, 0x29,
6015
0x63, 0x26, 0x7b, 0x6f, 0x38, 0x78, 0x25, 0x62,
6016
0x4d, 0x3a, 0x7d, 0x40, 0x23, 0x57, 0x67, 0x33,
6017
0x38, 0x31, 0x4e, 0x54, 0x3c, 0x4b, 0x48, 0x69,
6018
0x3c, 0x39, 0x31, 0x2b, 0x26, 0x70, 0x44, 0x66,
6019
0x4a, 0x37, 0x2b, 0x75, 0x36, 0x45, 0x59, 0x34,
6020
0x3e, 0x3e, 0x29, 0x70, 0x71, 0x5a, 0x55, 0x49,
6021
0x3e, 0x4b, 0x68, 0x4e, 0x75, 0x70, 0x3c, 0x5c,
6022
0x50, 0x58, 0x28, 0x75, 0x3c, 0x2a, 0x41, 0x70,
6023
0x2f, 0x2b, 0x37, 0x26, 0x75, 0x71, 0x55, 0x22,
6024
0x3a, 0x44, 0x30, 0x48, 0x5d, 0x2f, 0x6c, 0x44,
6025
0x28, 0x4b, 0x34, 0x45, 0x21, 0x60, 0x44, 0x36,
6026
0x7b, 0x32, 0x39, 0x5f, 0x6d, 0x3f, 0x68, 0x73,
6027
0x25, 0x45, 0x56, 0x7c, 0x78, 0x7a, 0x49, 0x6a,
6028
0x46, 0x3d, 0x2d, 0x33, 0x6c, 0x6f, 0x23, 0x77,
6029
0x38, 0x33, 0x36, 0x74, 0x7b, 0x57, 0x4b, 0x6d,
6030
0x27, 0x75, 0x24, 0x6e, 0x43, 0x61, 0x4d, 0x44,
6031
0x6d, 0x27, 0x48, 0x58, 0x5e, 0x7b, 0x26, 0x6a,
6032
0x50, 0x7c, 0x51, 0x23, 0x3c, 0x4f, 0x37, 0x4c,
6033
0x47, 0x3e, 0x45, 0x56, 0x22, 0x33, 0x7c, 0x66,
6034
0x35, 0x54, 0x7a, 0x6e, 0x5a, 0x24, 0x70, 0x62,
6035
0x29, 0x3f, 0x69, 0x79, 0x24, 0x43, 0x41, 0x24,
6036
0x65, 0x25, 0x62, 0x4f, 0x73, 0x3e, 0x2b, 0x36,
6037
0x46, 0x69, 0x27, 0x55, 0x2a, 0x6e, 0x24, 0x6c,
6038
0x7d, 0x64, 0x7c, 0x61, 0x26, 0x67, 0x2a, 0x53,
6039
0x73, 0x60, 0x28, 0x2d, 0x6b, 0x44, 0x54, 0x61,
6040
0x34, 0x53, 0x22, 0x59, 0x6d, 0x73, 0x56, 0x55,
6041
0x25, 0x2c, 0x38, 0x4a, 0x3b, 0x4e, 0x78, 0x46,
6042
0x54, 0x6e, 0x6d, 0x4f, 0x47, 0x4f, 0x4f, 0x5a,
6043
0x67, 0x77, 0x39, 0x66, 0x28, 0x29, 0x4e, 0x43,
6044
0x55, 0x6e, 0x60, 0x59, 0x28, 0x3b, 0x65, 0x62,
6045
0x61, 0x5a, 0x29, 0x6e, 0x79, 0x60, 0x41, 0x53,
6046
0x2f, 0x5d, 0x44, 0x36, 0x7b, 0x3e, 0x7c, 0x2b,
6047
0x77, 0x36, 0x70, 0x3f, 0x40, 0x55, 0x48, 0x67,
6048
0x4b, 0x4d, 0x5d, 0x51, 0x79, 0x76, 0x48, 0x4a,
6049
0x2d, 0x21, 0x60, 0x40, 0x46, 0x55, 0x7a, 0x60,
6050
0x22, 0x25, 0x3f, 0x4b, 0x54, 0x6a, 0x6a, 0x3c,
6051
0x77, 0x22, 0x5b, 0x43, 0x67, 0x58, 0x71, 0x22,
6052
0x79, 0x4b, 0x32, 0x61, 0x44, 0x4d, 0x6f, 0x42,
6053
0x33, 0x2d, 0x53, 0x35, 0x3d, 0x6f, 0x57, 0x48,
6054
0x33, 0x3b, 0x5a, 0x53, 0x3f, 0x4e, 0x3f, 0x6b,
6055
0x4c, 0x27, 0x26, 0x3b, 0x73, 0x49, 0x22, 0x55,
6056
0x79, 0x2f, 0x47, 0x2f, 0x55, 0x5a, 0x7a, 0x71,
6057
0x6c, 0x31, 0x43, 0x40, 0x56, 0x7b, 0x21, 0x7a,
6058
0x6d, 0x4c, 0x43, 0x5e, 0x38, 0x47, 0x29, 0x38,
6059
0x62, 0x49, 0x45, 0x78, 0x70, 0x2b, 0x2e, 0x65,
6060
0x47, 0x71, 0x58, 0x79, 0x39, 0x67, 0x7d, 0x6d,
6061
0x6a, 0x67, 0x4a, 0x71, 0x27, 0x35, 0x2a, 0x4c,
6062
0x3e, 0x58, 0x55, 0x30, 0x4d, 0x75, 0x77, 0x48,
6063
0x5f, 0x4b, 0x59, 0x34, 0x65, 0x68, 0x57, 0x59,
6064
0x63, 0x23, 0x47, 0x38, 0x47, 0x5e, 0x56, 0x28,
6065
0x79, 0x58, 0x3e, 0x39, 0x66, 0x77, 0x67, 0x33,
6066
0x29, 0x61, 0x24, 0x7d, 0x37, 0x44, 0x37, 0x67,
6067
0x3a, 0x58, 0x76, 0x21, 0x51, 0x59, 0x61, 0x73,
6068
0x66, 0x75, 0x71, 0x53, 0x4d, 0x24, 0x2d, 0x4b,
6069
0x29, 0x30, 0x32, 0x26, 0x59, 0x64, 0x27, 0x55,
6070
0x2c, 0x5a, 0x4c, 0x3c, 0x6c, 0x53, 0x56, 0x4b,
6071
0x3e, 0x55, 0x2e, 0x44, 0x38, 0x6b, 0x47, 0x76,
6072
0x2d, 0x2c, 0x3f, 0x4d, 0x22, 0x7b, 0x6d, 0x61,
6073
0x34, 0x6b, 0x50, 0x73, 0x28, 0x6d, 0x41, 0x71,
6074
0x21, 0x76, 0x52, 0x2a, 0x6d, 0x53, 0x2a, 0x74,
6075
0x28, 0x27, 0x62, 0x2a, 0x66, 0x25, 0x6e, 0x5e,
6076
0x37, 0x4f, 0x27, 0x72, 0x28, 0x47, 0x63, 0x6e,
6077
0x5a, 0x6a, 0x41, 0x35, 0x3a, 0x42, 0x3f, 0x27,
6078
0x75, 0x3e, 0x26, 0x3e, 0x6b, 0x55, 0x59, 0x60,
6079
0x24, 0x70, 0x49, 0x3c, 0x4e, 0x2c, 0x39, 0x7a,
6080
0x36, 0x6c, 0x27, 0x3e, 0x6a, 0x4a, 0x59, 0x5a,
6081
0x3e, 0x21, 0x73, 0x4e, 0x59, 0x6e, 0x3d, 0x32,
6082
0x27, 0x45, 0x49, 0x58, 0x7d, 0x37, 0x39, 0x77,
6083
0x28, 0x51, 0x79, 0x54, 0x2b, 0x78, 0x46, 0x5a,
6084
0x21, 0x75, 0x33, 0x21, 0x63, 0x5a, 0x7b, 0x3e,
6085
0x33, 0x4f, 0x67, 0x75, 0x3a, 0x50, 0x48, 0x60,
6086
0x26, 0x64, 0x76, 0x5c, 0x42, 0x5c, 0x72, 0x38,
6087
0x6c, 0x52, 0x21, 0x2b, 0x25, 0x6b, 0x7c, 0x6b,
6088
0x2d, 0x5e, 0x63, 0x2a, 0x4c, 0x26, 0x5b, 0x4c,
6089
0x58, 0x52, 0x51, 0x55, 0x31, 0x79, 0x6c, 0x53,
6090
0x62, 0x3a, 0x36, 0x46, 0x7a, 0x29, 0x27, 0x78,
6091
0x1a, 0xbf, 0x49, 0x74, 0x68, 0x24, 0x51, 0x44,
6092
0x5b, 0x3e, 0x34, 0x44, 0x29, 0x5e, 0x4f, 0x2a,
6093
0xe9, 0x3f, 0xf8, 0xff, 0xff, 0x52, 0x7d, 0x47,
6094
0x67, 0x40, 0x27, 0x5e, 0x47, 0x46, 0x6d, 0x72,
6095
0x5d, 0x49, 0x26, 0x45, 0x33, 0x6b, 0x4d, 0x4a,
6096
0x6f, 0x62, 0x60, 0x45, 0x62, 0x27, 0x27, 0x7d,
6097
0x6a, 0x41, 0x2c, 0x6c, 0x5b, 0x2a, 0x2b, 0x36,
6098
0x29, 0x58, 0x7a, 0x4c, 0x6e, 0x2d, 0x74, 0x5c,
6099
0x38, 0x22, 0x5f, 0x49, 0x63, 0x43, 0x5b, 0x67
6101
uint32_t request2_len = sizeof(request2);
6106
DetectEngineCtx *de_ctx = NULL;
6107
DetectEngineThreadCtx *det_ctx = NULL;
6112
char *sig1 = "alert tcp any any -> any any "
6113
"(dce_stub_data; content:|af, 26, d0|; content:|80 98 6d|; "
6114
"distance:2; within:3; sid:1;)";
6118
memset(&tv, 0, sizeof(ThreadVars));
6119
memset(&f, 0, sizeof(Flow));
6120
memset(&ssn, 0, sizeof(TcpSession));
6122
for (i = 0; i < 2; i++) {
6123
memset(&p[i], 0, sizeof(Packet));
6124
p[i].src.family = AF_INET;
6125
p[i].dst.family = AF_INET;
6126
p[i].payload = NULL;
6127
p[i].payload_len = 0;
6128
p[i].proto = IPPROTO_TCP;
6130
p[i].flowflags |= FLOW_PKT_TOSERVER;
6131
p[i].flowflags |= FLOW_PKT_ESTABLISHED;
6134
FLOW_INITIALIZE(&f);
6135
f.protoctx = (void *)&ssn;
6136
f.src.family = AF_INET;
6137
f.dst.family = AF_INET;
6138
f.alproto = ALPROTO_DCERPC;
6140
StreamTcpInitConfig(TRUE);
6141
FlowL7DataPtrInit(&f);
6143
de_ctx = DetectEngineCtxInit();
6146
de_ctx->flags |= DE_QUIET;
6148
de_ctx->sig_list = SigInit(de_ctx, sig1);
6149
s = de_ctx->sig_list;
6153
SigGroupBuild(de_ctx);
6154
DetectEngineThreadCtxInit(&tv, (void *)de_ctx, (void *)&det_ctx);
6156
r = AppLayerParse(&f, ALPROTO_DCERPC, STREAM_TOSERVER, request1, request1_len);
6158
printf("toserver chunk 1 returned %" PRId32 ", expected 0: ", r);
6162
/* detection phase */
6163
SigMatchSignatures(&tv, de_ctx, det_ctx, &p[0]);
6164
if ((PacketAlertCheck(&p[0], 1))) {
6165
printf("sid 1 matched but shouldn't have for packet 0: ");
6169
r = AppLayerParse(&f, ALPROTO_DCERPC, STREAM_TOSERVER, request2, request2_len);
6171
printf("toserver chunk 1 returned %" PRId32 ", expected 0: ", r);
6175
/* detection phase */
6176
SigMatchSignatures(&tv, de_ctx, det_ctx, &p[1]);
6177
if ((PacketAlertCheck(&p[1], 1))) {
6178
printf("sid 1 matched but shouldn't have for packet 1: ");
6185
if (de_ctx != NULL) {
6186
SigGroupCleanup(de_ctx);
6187
SigCleanSignatures(de_ctx);
6189
DetectEngineThreadCtxDeinit(&tv, (void *)det_ctx);
6190
DetectEngineCtxFree(de_ctx);
6193
FlowL7DataPtrFree(&f);
6194
StreamTcpFreeConfig(TRUE);
6201
* \test Test the working of detection engien with respect to dce keywords.
6203
int DcePayloadTest13(void)
6206
uint8_t request1[] = {
6207
0x05, 0x00, 0x00, 0x03, 0x10, 0x00, 0x00, 0x00,
6208
0x24, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
6209
0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
6210
0x2c, 0xfd, 0xb5, 0x00, 0x40, 0xaa, 0x01, 0x00,
6211
0x00, 0x00, 0x00, 0x02,
6213
uint32_t request1_len = sizeof(request1);
6215
uint8_t response1[] = {
6216
0x05, 0x00, 0x02, 0x03, 0x10, 0x00, 0x00, 0x00,
6217
0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
6218
0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
6219
0x00, 0x00, 0x00, 0x00, 0xf6, 0x72, 0x28, 0x9c,
6220
0xf0, 0x57, 0xd8, 0x11, 0xb0, 0x05, 0x00, 0x0c,
6221
0x29, 0x87, 0xea, 0xe9, 0x00, 0x00, 0x00, 0x00,
6223
uint32_t response1_len = sizeof(response1);
6225
uint8_t request2[] = {
6226
0x05, 0x00, 0x00, 0x03, 0x10, 0x00, 0x00, 0x00,
6227
0xa4, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
6228
0x8c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00,
6229
0x00, 0x00, 0x00, 0x00, 0xf6, 0x72, 0x28, 0x9c,
6230
0xf0, 0x57, 0xd8, 0x11, 0xb0, 0x05, 0x00, 0x0c,
6231
0x29, 0x87, 0xea, 0xe9, 0x5c, 0x00, 0x5c, 0x00,
6232
0xa8, 0xb9, 0x14, 0x00, 0x2e, 0x00, 0x00, 0x00,
6233
0x00, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00,
6234
0x53, 0x00, 0x4f, 0x00, 0x46, 0x00, 0x54, 0x00,
6235
0x57, 0x00, 0x41, 0x00, 0x52, 0x00, 0x45, 0x00,
6236
0x5c, 0x00, 0x4d, 0x00, 0x69, 0x00, 0x63, 0x00,
6237
0x72, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x6f, 0x00,
6238
0x66, 0x00, 0x74, 0x00, 0x5c, 0x00, 0x57, 0x00,
6239
0x69, 0x00, 0x6e, 0x00, 0x64, 0x00, 0x6f, 0x00,
6240
0x77, 0x00, 0x73, 0x00, 0x5c, 0x00, 0x43, 0x00,
6241
0x75, 0x00, 0x72, 0x00, 0x72, 0x00, 0x65, 0x00,
6242
0x6e, 0x00, 0x74, 0x00, 0x56, 0x00, 0x65, 0x00,
6243
0x72, 0x00, 0x73, 0x00, 0x69, 0x00, 0x6f, 0x00,
6244
0x6e, 0x00, 0x5c, 0x00, 0x52, 0x00, 0x75, 0x00,
6245
0x6e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
6246
0x03, 0x00, 0x00, 0x00,
6248
uint32_t request2_len = sizeof(request2);
6250
uint8_t response2[] = {
6251
0x05, 0x00, 0x02, 0x03, 0x10, 0x00, 0x00, 0x00,
6252
0x30, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
6253
0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
6254
0x00, 0x00, 0x00, 0x00, 0xf7, 0x72, 0x28, 0x9c,
6255
0xf0, 0x57, 0xd8, 0x11, 0xb0, 0x05, 0x00, 0x0c,
6256
0x29, 0x87, 0xea, 0xe9, 0x00, 0x00, 0x00, 0x00,
6258
uint32_t response2_len = sizeof(response2);
6260
uint8_t request3[] = {
6261
0x05, 0x00, 0x00, 0x03, 0x10, 0x00, 0x00, 0x00,
6262
0x70, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
6263
0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x00,
6264
0x00, 0x00, 0x00, 0x00, 0xf7, 0x72, 0x28, 0x9c,
6265
0xf0, 0x57, 0xd8, 0x11, 0xb0, 0x05, 0x00, 0x0c,
6266
0x29, 0x87, 0xea, 0xe9, 0x0c, 0x00, 0x0c, 0x00,
6267
0x98, 0xda, 0x14, 0x00, 0x06, 0x00, 0x00, 0x00,
6268
0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
6269
0x4f, 0x00, 0x73, 0x00, 0x61, 0x00, 0x33, 0x00,
6270
0x32, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
6271
0x18, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x54, 0x00,
6272
0x4f, 0x00, 0x53, 0x00, 0x41, 0x00, 0x33, 0x00,
6273
0x32, 0x00, 0x2e, 0x00, 0x45, 0x00, 0x58, 0x00,
6274
0x45, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00,
6276
uint32_t request3_len = sizeof(request3);
6278
uint8_t response3[] = {
6279
0x05, 0x00, 0x02, 0x03, 0x10, 0x00, 0x00, 0x00,
6280
0x1c, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
6281
0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
6282
0x00, 0x00, 0x00, 0x00,
6284
uint32_t response3_len = sizeof(response3);
6289
DetectEngineCtx *de_ctx = NULL;
6290
DetectEngineThreadCtx *det_ctx = NULL;
6295
char *sig1 = "alert tcp any any -> any any "
6296
"(dce_stub_data; sid:1;)";
6300
memset(&tv, 0, sizeof(ThreadVars));
6301
memset(&f, 0, sizeof(Flow));
6302
memset(&ssn, 0, sizeof(TcpSession));
6304
/* let the 7 and the 8th packet be dummy packets the client sends to the server */
6305
for (i = 0; i < 8; i++) {
6306
memset(&p[i], 0, sizeof(Packet));
6307
p[i].src.family = AF_INET;
6308
p[i].dst.family = AF_INET;
6309
p[i].payload = NULL;
6310
p[i].payload_len = 0;
6311
p[i].proto = IPPROTO_TCP;
6313
p[i].flowflags |= FLOW_PKT_TOSERVER;
6314
p[i].flowflags |= FLOW_PKT_ESTABLISHED;
6316
p[1].flowflags |= FLOW_PKT_TOCLIENT;
6317
p[1].flowflags &=~ FLOW_PKT_TOSERVER;
6318
p[3].flowflags |= FLOW_PKT_TOCLIENT;
6319
p[3].flowflags &=~ FLOW_PKT_TOSERVER;
6320
p[5].flowflags |= FLOW_PKT_TOCLIENT;
6321
p[5].flowflags &=~ FLOW_PKT_TOSERVER;
6323
FLOW_INITIALIZE(&f);
6324
f.protoctx = (void *)&ssn;
6325
f.src.family = AF_INET;
6326
f.dst.family = AF_INET;
6327
f.alproto = ALPROTO_DCERPC;
6329
StreamTcpInitConfig(TRUE);
6330
FlowL7DataPtrInit(&f);
6332
de_ctx = DetectEngineCtxInit();
6335
de_ctx->flags |= DE_QUIET;
6337
de_ctx->sig_list = SigInit(de_ctx, sig1);
6338
s = de_ctx->sig_list;
6342
SigGroupBuild(de_ctx);
6343
DetectEngineThreadCtxInit(&tv, (void *)de_ctx, (void *)&det_ctx);
6345
r = AppLayerParse(&f, ALPROTO_DCERPC, STREAM_TOSERVER, request1, request1_len);
6347
printf("toserver chunk 1 returned %" PRId32 ", expected 0: ", r);
6351
/* detection phase */
6352
SigMatchSignatures(&tv, de_ctx, det_ctx, &p[0]);
6353
if (!(PacketAlertCheck(&p[0], 1))) {
6354
printf("sid 1 didn't match but should have for packet 0: ");
6358
/* detection phase */
6359
SigMatchSignatures(&tv, de_ctx, det_ctx, &p[6]);
6360
if ((PacketAlertCheck(&p[6], 1))) {
6361
printf("sid 1 matched but shouldn't have for packet 6: ");
6365
r = AppLayerParse(&f, ALPROTO_DCERPC, STREAM_TOCLIENT, response1, response1_len);
6367
printf("toserver chunk 1 returned %" PRId32 ", expected 0: ", r);
6371
/* detection phase */
6372
SigMatchSignatures(&tv, de_ctx, det_ctx, &p[1]);
6373
if ((PacketAlertCheck(&p[1], 1))) {
6374
printf("sid 1 matched but shouldn't have for packet 1: ");
6378
r = AppLayerParse(&f, ALPROTO_DCERPC, STREAM_TOSERVER, request2, request2_len);
6380
printf("toserver chunk 1 returned %" PRId32 ", expected 0: ", r);
6384
/* detection phase */
6385
/* we should have a match for the sig once again for the same flow, since
6386
* the detection engine state for the flow has been reset because of a
6387
* fresh transaction */
6388
SigMatchSignatures(&tv, de_ctx, det_ctx, &p[2]);
6389
if (!(PacketAlertCheck(&p[2], 1))) {
6390
printf("sid 1 didn't match but should have for packet 2: ");
6394
/* detection phase */
6395
SigMatchSignatures(&tv, de_ctx, det_ctx, &p[7]);
6396
if ((PacketAlertCheck(&p[7], 1))) {
6397
printf("sid 1 matched but shouldn't have for packet 7: ");
6401
r = AppLayerParse(&f, ALPROTO_DCERPC, STREAM_TOCLIENT, response2, response2_len);
6403
printf("toserver chunk 1 returned %" PRId32 ", expected 0: ", r);
6407
/* detection phase */
6408
SigMatchSignatures(&tv, de_ctx, det_ctx, &p[3]);
6409
if ((PacketAlertCheck(&p[3], 1))) {
6410
printf("sid 1 matched but shouldn't have for packet 3: ");
6414
r = AppLayerParse(&f, ALPROTO_DCERPC, STREAM_TOSERVER, request3, request3_len);
6416
printf("toserver chunk 1 returned %" PRId32 ", expected 0: ", r);
6420
/* detection phase */
6421
/* we should have a match for the sig once again for the same flow, since
6422
* the detection engine state for the flow has been reset because of a
6423
* fresh transaction */
6424
SigMatchSignatures(&tv, de_ctx, det_ctx, &p[4]);
6425
if (!(PacketAlertCheck(&p[4], 1))) {
6426
printf("sid 1 didn't match but should have for packet 4: ");
6430
r = AppLayerParse(&f, ALPROTO_DCERPC, STREAM_TOCLIENT, response3, response3_len);
6432
printf("toserver chunk 1 returned %" PRId32 ", expected 0: ", r);
6436
/* detection phase */
6437
SigMatchSignatures(&tv, de_ctx, det_ctx, &p[5]);
6438
if ((PacketAlertCheck(&p[5], 1))) {
6439
printf("sid 1 matched but shouldn't have for packet 5: ");
6446
if (de_ctx != NULL) {
6447
SigGroupCleanup(de_ctx);
6448
SigCleanSignatures(de_ctx);
6450
DetectEngineThreadCtxDeinit(&tv, (void *)det_ctx);
6451
DetectEngineCtxFree(de_ctx);
6454
FlowL7DataPtrFree(&f);
6455
StreamTcpFreeConfig(TRUE);
6461
* \test Test the working of detection engien with respect to dce keywords.
6463
int DcePayloadTest14(void)
6467
uint8_t request1[] = {
6468
0x05, 0x00, 0x00, 0x03, 0x10, 0x00, 0x00, 0x00,
6469
0x68, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
6470
0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x00,
6471
0x76, 0x7e, 0x32, 0x00, 0x0f, 0x00, 0x00, 0x00,
6472
0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00,
6473
0x5c, 0x00, 0x5c, 0x00, 0x31, 0x00, 0x37, 0x00,
6474
0x31, 0x00, 0x2e, 0x00, 0x37, 0x00, 0x31, 0x00,
6475
0x2e, 0x00, 0x38, 0x00, 0x34, 0x00, 0x2e, 0x00,
6476
0x36, 0x00, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00,
6477
0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
6478
0x84, 0xf9, 0x7f, 0x01, 0x00, 0x00, 0x00, 0x00,
6479
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
6480
0x14, 0xfa, 0x7f, 0x01, 0x00, 0x00, 0x00, 0x00
6482
uint32_t request1_len = sizeof(request1);
6485
0x05, 0x00, 0x0b, 0x03, 0x10, 0x00, 0x00, 0x00,
6486
0x48, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
6487
0xb8, 0x10, 0xb8, 0x10, 0x00, 0x00, 0x00, 0x00,
6488
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
6489
0x81, 0xbb, 0x7a, 0x36, 0x44, 0x98, 0xf1, 0x35,
6490
0xad, 0x32, 0x98, 0xf0, 0x38, 0x00, 0x10, 0x03,
6491
0x02, 0x00, 0x00, 0x00, 0x04, 0x5d, 0x88, 0x8a,
6492
0xeb, 0x1c, 0xc9, 0x11, 0x9f, 0xe8, 0x08, 0x00,
6493
0x2b, 0x10, 0x48, 0x60, 0x02, 0x00, 0x00, 0x00
6495
uint32_t bind_len = sizeof(bind);
6497
uint8_t bind_ack[] = {
6498
0x05, 0x00, 0x0c, 0x03, 0x10, 0x00, 0x00, 0x00,
6499
0x44, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
6500
0xb8, 0x10, 0xb8, 0x10, 0x74, 0x73, 0x00, 0x00,
6501
0x0d, 0x00, 0x5c, 0x50, 0x49, 0x50, 0x45, 0x5c,
6502
0x6e, 0x74, 0x73, 0x76, 0x63, 0x73, 0x00, 0x00,
6503
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
6504
0x04, 0x5d, 0x88, 0x8a, 0xeb, 0x1c, 0xc9, 0x11,
6505
0x9f, 0xe8, 0x08, 0x00, 0x2b, 0x10, 0x48, 0x60,
6506
0x02, 0x00, 0x00, 0x00
6508
uint32_t bind_ack_len = sizeof(bind_ack);
6510
uint8_t request2[] = {
6511
0x05, 0x00, 0x00, 0x03, 0x10, 0x00, 0x00, 0x00,
6512
0x40, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
6513
0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00,
6514
0x64, 0x7e, 0x32, 0x00, 0x0f, 0x00, 0x00, 0x00,
6515
0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00,
6516
0x5c, 0x5c, 0x31, 0x37, 0x31, 0x2e, 0x37, 0x31,
6517
0x2e, 0x38, 0x34, 0x2e, 0x36, 0x37, 0x00, 0x8a,
6518
0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x0f, 0x00
6520
uint32_t request2_len = sizeof(request2);
6522
uint8_t response2[] = {
6523
0x05, 0x00, 0x02, 0x03, 0x10, 0x00, 0x00, 0x00,
6524
0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
6525
0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
6526
0x00, 0x00, 0x00, 0x00, 0xd2, 0xc4, 0x88, 0x14,
6527
0xef, 0x31, 0xbb, 0x4d, 0xa8, 0x13, 0xb7, 0x1b,
6528
0x47, 0x49, 0xb5, 0xd7, 0x00, 0x00, 0x00, 0x00
6530
uint32_t response2_len = sizeof(response2);
6535
DetectEngineCtx *de_ctx = NULL;
6536
DetectEngineThreadCtx *det_ctx = NULL;
6541
char *sig1 = "alert tcp any any -> any any "
6542
"(dce_stub_data; sid:1;)";
6546
memset(&tv, 0, sizeof(ThreadVars));
6547
memset(&f, 0, sizeof(Flow));
6548
memset(&ssn, 0, sizeof(TcpSession));
6550
for (i = 0; i < 6; i++) {
6551
memset(&p[i], 0, sizeof(Packet));
6552
p[i].src.family = AF_INET;
6553
p[i].dst.family = AF_INET;
6554
p[i].payload = NULL;
6555
p[i].payload_len = 0;
6556
p[i].proto = IPPROTO_TCP;
6558
p[i].flowflags |= FLOW_PKT_TOSERVER;
6559
p[i].flowflags |= FLOW_PKT_ESTABLISHED;
6561
p[3].flowflags |= FLOW_PKT_TOCLIENT;
6562
p[3].flowflags &=~ FLOW_PKT_TOSERVER;
6563
p[5].flowflags |= FLOW_PKT_TOCLIENT;
6564
p[5].flowflags &=~ FLOW_PKT_TOSERVER;
6566
FLOW_INITIALIZE(&f);
6567
f.protoctx = (void *)&ssn;
6568
f.src.family = AF_INET;
6569
f.dst.family = AF_INET;
6570
f.alproto = ALPROTO_DCERPC;
6572
StreamTcpInitConfig(TRUE);
6573
FlowL7DataPtrInit(&f);
6575
de_ctx = DetectEngineCtxInit();
6578
de_ctx->flags |= DE_QUIET;
6580
de_ctx->sig_list = SigInit(de_ctx, sig1);
6581
s = de_ctx->sig_list;
6585
SigGroupBuild(de_ctx);
6586
DetectEngineThreadCtxInit(&tv, (void *)de_ctx, (void *)&det_ctx);
6589
r = AppLayerParse(&f, ALPROTO_DCERPC, STREAM_TOSERVER, request1, request1_len);
6591
printf("toserver chunk 1 returned %" PRId32 ", expected 0: ", r);
6595
/* detection phase */
6596
SigMatchSignatures(&tv, de_ctx, det_ctx, &p[0]);
6597
if (!(PacketAlertCheck(&p[0], 1))) {
6598
printf("sid 1 didn't match but should have for packet 0: ");
6602
/* detection phase */
6603
SigMatchSignatures(&tv, de_ctx, det_ctx, &p[1]);
6604
if ((PacketAlertCheck(&p[1], 1))) {
6605
printf("sid 1 matched but shouldn't have for packet 1: ");
6610
r = AppLayerParse(&f, ALPROTO_DCERPC, STREAM_TOSERVER, bind, bind_len);
6612
printf("toserver chunk 1 returned %" PRId32 ", expected 0: ", r);
6616
/* detection phase */
6617
SigMatchSignatures(&tv, de_ctx, det_ctx, &p[2]);
6618
if ((PacketAlertCheck(&p[2], 1))) {
6619
printf("sid 1 matched but shouldn't have for packet 2: ");
6623
/* bind_ack. A new transaction initiation */
6624
r = AppLayerParse(&f, ALPROTO_DCERPC, STREAM_TOCLIENT, bind_ack, bind_ack_len);
6626
printf("toserver chunk 1 returned %" PRId32 ", expected 0: ", r);
6630
/* detection phase */
6631
SigMatchSignatures(&tv, de_ctx, det_ctx, &p[3]);
6632
if ((PacketAlertCheck(&p[3], 1))) {
6633
printf("sid 1 matched but shouldn't have for packet 3: ");
6637
/* we should have a match for the sig once again for the same flow, since
6638
* the detection engine state for the flow has been reset because of a
6639
* fresh transaction */
6640
r = AppLayerParse(&f, ALPROTO_DCERPC, STREAM_TOSERVER, request2, request2_len);
6642
printf("toserver chunk 1 returned %" PRId32 ", expected 0: ", r);
6646
/* detection phase */
6647
SigMatchSignatures(&tv, de_ctx, det_ctx, &p[4]);
6648
if (!(PacketAlertCheck(&p[4], 1))) {
6649
printf("sid 1 didn't match but should have for packet 4: ");
6654
r = AppLayerParse(&f, ALPROTO_DCERPC, STREAM_TOCLIENT, response2, response2_len);
6656
printf("toserver chunk 1 returned %" PRId32 ", expected 0: ", r);
6660
/* detection phase */
6661
SigMatchSignatures(&tv, de_ctx, det_ctx, &p[5]);
6662
if ((PacketAlertCheck(&p[5], 1))) {
6663
printf("sid 1 matched but shouldn't have for packet 5: ");
6670
if (de_ctx != NULL) {
6671
SigGroupCleanup(de_ctx);
6672
SigCleanSignatures(de_ctx);
6674
DetectEngineThreadCtxDeinit(&tv, (void *)det_ctx);
6675
DetectEngineCtxFree(de_ctx);
6678
FlowL7DataPtrFree(&f);
6679
StreamTcpFreeConfig(TRUE);
6684
#endif /* UNITTESTS */
6686
void DcePayloadRegisterTests(void)
6690
UtRegisterTest("DcePayloadTest01", DcePayloadTest01, 1);
6691
UtRegisterTest("DcePayloadTest02", DcePayloadTest02, 1);
6692
UtRegisterTest("DcePayloadTest03", DcePayloadTest03, 1);
6693
UtRegisterTest("DcePayloadTest04", DcePayloadTest04, 1);
6694
UtRegisterTest("DcePayloadTest05", DcePayloadTest05, 1);
6695
UtRegisterTest("DcePayloadTest06", DcePayloadTest06, 1);
6696
UtRegisterTest("DcePayloadTest07", DcePayloadTest07, 1);
6697
UtRegisterTest("DcePayloadTest08", DcePayloadTest08, 1);
6698
UtRegisterTest("DcePayloadTest09", DcePayloadTest09, 1);
6699
UtRegisterTest("DcePayloadTest10", DcePayloadTest10, 1);
6700
UtRegisterTest("DcePayloadTest11", DcePayloadTest11, 1);
6701
UtRegisterTest("DcePayloadTest12", DcePayloadTest12, 1);
6702
UtRegisterTest("DcePayloadTest13", DcePayloadTest13, 1);
6703
UtRegisterTest("DcePayloadTest14", DcePayloadTest14, 1);
6704
#endif /* UNITTESTS */