1
1
% extern {
2
- #include "Event.h"
3
- #include "file_analysis/File.h"
4
- #include "file_analysis/Manager.h"
2
+ #include "zeek/Event.h"
3
+ #include "zeek/file_analysis/Analyzer.h"
4
+ #include "zeek/file_analysis/File.h"
5
+ #include "zeek/file_analysis/Manager.h"
5
6
#include "events.bif.h"
6
7
#include "types.bif.h"
7
8
% }
@@ -21,32 +22,33 @@ refine flow File += {
21
22
if ( file_elf_header )
22
23
{
23
24
24
- RecordVal * dh = new RecordVal ( BifType ::Record ::Zeek ::ELFHeader ) ;
25
- dh - > Assign ( 0 , val_mgr - > GetCount ( $ { h . signature } ) ) ;
26
- dh - > Assign ( 1 , val_mgr - > GetCount ( $ { h . cpu_class } ) ) ;
27
- dh - > Assign ( 2 , val_mgr - > GetCount ( $ { h . endianness } ) ) ;
28
- dh - > Assign ( 3 , val_mgr - > GetCount ( $ { h . ver } ) ) ;
29
- dh - > Assign ( 4 , val_mgr - > GetCount ( $ { h . osabi } ) ) ;
30
- dh - > Assign ( 5 , val_mgr - > GetCount ( $ { h . abiversion } ) ) ;
31
- dh - > Assign ( 6 , new StringVal ( $ { h . unused_1 } . length ( ) , ( const char * ) ${h . unused_1 } . data ( ) ) ) ;
32
- dh - > Assign ( 7 , new StringVal ( $ { h . file_type } . length ( ) , ( const char * ) ${h . file_type } . data ( ) ) ) ;
33
- dh - > Assign ( 8 , new StringVal ( $ { h . machine } . length ( ) , ( const char * ) ${h . machine } . data ( ) ) ) ;
34
- dh - > Assign ( 9 , new StringVal ( $ { h . version } . length ( ) , ( const char * ) ${h . version } . data ( ) ) ) ;
35
- dh - > Assign ( 10 , new StringVal ( $ { h . entry } . length ( ) , ( const char * ) ${h . entry } . data ( ) ) ) ;
36
- dh - > Assign ( 11 , new StringVal ( $ { h . phoff } . length ( ) , ( const char * ) ${h . phoff } . data ( ) ) ) ;
37
- dh - > Assign ( 12 , new StringVal ( $ { h . shoff } . length ( ) , ( const char * ) ${h . shoff } . data ( ) ) ) ;
38
- dh - > Assign ( 13 , new StringVal ( $ { h . flags } . length ( ) , ( const char * ) ${h . flags } . data ( ) ) ) ;
39
- dh - > Assign ( 14 , new StringVal ( $ { h . ehsize } . length ( ) , ( const char * ) ${h . ehsize } . data ( ) ) ) ;
40
- dh - > Assign ( 15 , new StringVal ( $ { h . phentsize } . length ( ) , ( const char * ) ${h . phentsize } . data ( ) ) ) ;
41
- dh - > Assign ( 16 , new StringVal ( $ { h . phnum } . length ( ) , ( const char * ) ${h . phnum } . data ( ) ) ) ;
42
- dh - > Assign ( 17 , new StringVal ( $ { h . shentsize } . length ( ) , ( const char * ) ${h . shentsize } . data ( ) ) ) ;
43
- dh - > Assign ( 18 , new StringVal ( $ { h . shnum } . length ( ) , ( const char * ) ${h . shnum } . data ( ) ) ) ;
44
- dh - > Assign ( 19 , new StringVal ( $ { h . shstrndx } . length ( ) , ( const char * ) ${h . shstrndx } . data ( ) ) ) ;
45
- dh - > Assign ( 20 , new StringVal ( $ { h . restofdata } . length ( ) , ( const char * ) ${h . restofdata } . data ( ) ) ) ;
46
-
47
- BifEvent::generate_file_elf_header ( ( analyzer ::Analyzer * ) connection ( ) - > bro_analyzer ( ) ,
48
- connection ( ) - > bro_analyzer ( ) - > GetFile ( ) - > GetVal ( ) - > Ref ( ) ,
49
- dh ) ;
25
+ auto dh = zeek ::make_intrusive < zeek ::RecordVal > ( zeek ::BifType ::Record ::Zeek ::ELFHeader ) ;
26
+ dh - > Assign ( 0 , zeek ::val_mgr - > Count ( $ { h . signature } ) ) ;
27
+ dh - > Assign ( 1 , zeek ::val_mgr - > Count ( $ { h . cpu_class } ) ) ;
28
+ dh - > Assign ( 2 , zeek ::val_mgr - > Count ( $ { h . endianness } ) ) ;
29
+ dh - > Assign ( 3 , zeek ::val_mgr - > Count ( $ { h . ver } ) ) ;
30
+ dh - > Assign ( 4 , zeek ::val_mgr - > Count ( $ { h . osabi } ) ) ;
31
+ dh - > Assign ( 5 , zeek ::val_mgr - > Count ( $ { h . abiversion } ) ) ;
32
+ dh - > Assign ( 6 , new zeek ::StringVal ( $ { h . unused_1 } . length ( ) , ( const char * ) ${h . unused_1 } . data ( ) ) ) ;
33
+ dh - > Assign ( 7 , new zeek ::StringVal ( $ { h . file_type } . length ( ) , ( const char * ) ${h . file_type } . data ( ) ) ) ;
34
+ dh - > Assign ( 8 , new zeek ::StringVal ( $ { h . machine } . length ( ) , ( const char * ) ${h . machine } . data ( ) ) ) ;
35
+ dh - > Assign ( 9 , new zeek ::StringVal ( $ { h . version } . length ( ) , ( const char * ) ${h . version } . data ( ) ) ) ;
36
+ dh - > Assign ( 10 , new zeek ::StringVal ( $ { h . entry } . length ( ) , ( const char * ) ${h . entry } . data ( ) ) ) ;
37
+ dh - > Assign ( 11 , new zeek ::StringVal ( $ { h . phoff } . length ( ) , ( const char * ) ${h . phoff } . data ( ) ) ) ;
38
+ dh - > Assign ( 12 , new zeek ::StringVal ( $ { h . shoff } . length ( ) , ( const char * ) ${h . shoff } . data ( ) ) ) ;
39
+ dh - > Assign ( 13 , new zeek ::StringVal ( $ { h . flags } . length ( ) , ( const char * ) ${h . flags } . data ( ) ) ) ;
40
+ dh - > Assign ( 14 , new zeek ::StringVal ( $ { h . ehsize } . length ( ) , ( const char * ) ${h . ehsize } . data ( ) ) ) ;
41
+ dh - > Assign ( 15 , new zeek ::StringVal ( $ { h . phentsize } . length ( ) , ( const char * ) ${h . phentsize } . data ( ) ) ) ;
42
+ dh - > Assign ( 16 , new zeek ::StringVal ( $ { h . phnum } . length ( ) , ( const char * ) ${h . phnum } . data ( ) ) ) ;
43
+ dh - > Assign ( 17 , new zeek ::StringVal ( $ { h . shentsize } . length ( ) , ( const char * ) ${h . shentsize } . data ( ) ) ) ;
44
+ dh - > Assign ( 18 , new zeek ::StringVal ( $ { h . shnum } . length ( ) , ( const char * ) ${h . shnum } . data ( ) ) ) ;
45
+ dh - > Assign ( 19 , new zeek ::StringVal ( $ { h . shstrndx } . length ( ) , ( const char * ) ${h . shstrndx } . data ( ) ) ) ;
46
+ dh - > Assign ( 20 , new zeek ::StringVal ( $ { h . restofdata } . length ( ) , ( const char * ) ${h . restofdata } . data ( ) ) ) ;
47
+
48
+ zeek ::BifEvent ::enqueue_file_elf_header (
49
+ dynamic_cast < zeek ::analyzer ::Analyzer * > ( connection ( ) - > bro_analyzer ( ) ) ,
50
+ connection ( ) - > bro_analyzer ( ) - > GetFile ( ) - > ToVal ( ) ,
51
+ dh ) ;
50
52
}
51
53
52
54
return true ;
@@ -55,4 +57,4 @@ refine flow File += {
55
57
56
58
refine typeattr ELF_Header += & let {
57
59
proc : bool = $context . flow . proc_elf_header ( this ) ;
58
- } ;
60
+ } ;
0 commit comments