Python Sample Identification ETL

From truxwiki.com
Revision as of 14:22, 12 June 2020 by Sam (talk | contribs)
Jump to navigation Jump to search

This sample shows the steps needed to implement a byte identifier ETL in Python.

Sample File Format

This sample will identify a fake file format we call Acme. Acme Corporation is a known supplier of nefarious tools and explosives. Their file format begins with a five byte magic value

0000h: 88 77 66 55 00 11 22 33 44 55 66 77 88 99 AA BB
0010h: CC                                               Ì

Source Code

 1 import truxton
 2 
 3 def main():
 4 
 5   etl = truxton.etl()
 6   etl.name = "Acme Identifier"
 7   etl.description = "This ETL identifies files using the Acme method"
 8   etl.queue = "acme"
 9   etl.stage = 2
10   etl.id = 26572
11   etl.addtype(truxton.Type_Unknown)
12 
13   message = etl.getmessage()
14 
15   while message is not None:
16     if message.length >= 16:
17       if message.signature == 0x55667788:
18         file_in_truxton = message.file()
19 
20         file_in_truxton.seek(4)
21 
22         if file_in_truxton.read(1) == 0:
23           file_in_truxton.changetype(10111)
24           message.file_type = 10111
25           message.route()
26 
27     message = etl.getmessage()
28 
29 if __name__ == "__main__":
30     main()

Code Walkthrough