Обработка hashes и PE (ELF)-файлов на языке Python#

Исходные файлы для блокнота находятся по ссылке.

Скачиваем весь архив с файлами для работы в Colab:

!wget https://dfedorov.spb.ru/infosec/re/samples.zip
--2022-11-27 09:42:22--  https://dfedorov.spb.ru/infosec/re/samples.zip
Resolving dfedorov.spb.ru (dfedorov.spb.ru)... 92.53.96.244, 2a03:6f00:1::5c35:60f4
Connecting to dfedorov.spb.ru (dfedorov.spb.ru)|92.53.96.244|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 11921 (12K) [application/zip]
Saving to: ‘samples.zip’

samples.zip         100%[===================>]  11.64K  --.-KB/s    in 0s      

2022-11-27 09:42:23 (128 MB/s) - ‘samples.zip’ saved [11921/11921]
!unzip samples.zip
Archive:  samples.zip
   creating: samples/
 extracting: samples/v_01.txt        
  inflating: samples/main_03.c       
  inflating: samples/main_01.c       
  inflating: samples/task-1.exe      
  inflating: samples/test_01         
  inflating: samples/main_02.c       
  inflating: samples/all_hashes.txt  
  inflating: samples/test            
  inflating: samples/Makefile        
  inflating: samples/test_02         
  inflating: samples/test_03         
!ls samples
all_hashes.txt	main_02.c  Makefile    test	test_02  v_01.txt
main_01.c	main_03.c  task-1.exe  test_01	test_03

Определение сигнатуры файла#

В системах GNU/Linux, чтобы найти сигнатуру файла (уникальная последовательность байтов), можно использовать команду xxd, которая генерирует шестнадцатеричный дамп файла, как показано ниже:

!xxd samples/task-1.exe
00000000: 4d5a 9000 0300 0000 0400 0000 ffff 0000  MZ..............
00000010: b800 0000 0000 0000 4000 0000 0000 0000  ........@.......
00000020: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000030: 0000 0000 0000 0000 0000 0000 d000 0000  ................
00000040: 0e1f ba0e 00b4 09cd 21b8 014c cd21 5468  ........!..L.!Th
00000050: 6973 2070 726f 6772 616d 2063 616e 6e6f  is program canno
00000060: 7420 6265 2072 756e 2069 6e20 444f 5320  t be run in DOS 
00000070: 6d6f 6465 2e0d 0d0a 2400 0000 0000 0000  mode....$.......
00000080: b94b 04c7 fd2a 6a94 fd2a 6a94 fd2a 6a94  .K...*j..*j..*j.
00000090: a642 6b95 fe2a 6a94 fd2a 6b94 ff2a 6a94  .Bk..*j..*k..*j.
000000a0: fc47 6995 fc2a 6a94 fc47 6895 fc2a 6a94  .Gi..*j..Gh..*j.
000000b0: 5269 6368 fd2a 6a94 0000 0000 0000 0000  Rich.*j.........
000000c0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000000d0: 5045 0000 4c01 0400 bbe2 835d 0000 0000  PE..L......]....
000000e0: 0000 0000 e000 0201 0b01 0e16 0002 0000  ................
000000f0: 0006 0000 0000 0000 0010 0000 0010 0000  ................
00000100: 0020 0000 0000 4000 0010 0000 0002 0000  . ....@.........
00000110: 0600 0000 0000 0000 0600 0000 0000 0000  ................
00000120: 0050 0000 0004 0000 0000 0000 0200 4081  .P............@.
00000130: 0000 1000 0010 0000 0000 1000 0010 0000  ................
00000140: 0000 0000 1000 0000 0000 0000 0000 0000  ................
00000150: e020 0000 2800 0000 0000 0000 0000 0000  . ..(...........
00000160: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000170: 0040 0000 1000 0000 1020 0000 1c00 0000  .@....... ......
00000180: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000190: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000001a0: 0000 0000 0000 0000 0020 0000 1000 0000  ......... ......
000001b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000001c0: 0000 0000 0000 0000 2e74 6578 7400 0000  .........text...
000001d0: 1f00 0000 0010 0000 0002 0000 0004 0000  ................
000001e0: 0000 0000 0000 0000 0000 0000 2000 0060  ............ ..`
000001f0: 2e72 6461 7461 0000 3a01 0000 0020 0000  .rdata..:.... ..
00000200: 0002 0000 0006 0000 0000 0000 0000 0000  ................
00000210: 0000 0000 4000 0040 2e64 6174 6100 0000  ....@..@.data...
00000220: 0500 0000 0030 0000 0002 0000 0008 0000  .....0..........
00000230: 0000 0000 0000 0000 0000 0000 4000 00c0  ............@...
00000240: 2e72 656c 6f63 0000 1000 0000 0040 0000  .reloc.......@..
00000250: 0002 0000 000a 0000 0000 0000 0000 0000  ................
00000260: 0000 0000 4000 0042 0000 0000 0000 0000  ....@..B........
00000270: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000280: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000290: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000002a0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000002b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000002c0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000002d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000002e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000002f0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000300: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000310: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000320: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000330: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000340: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000350: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000360: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000370: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000380: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000390: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000003a0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000003b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000003c0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000003d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000003e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000003f0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000400: 6a01 6800 3040 00e8 0d00 0000 6a00 e800  j.h.0@......j...
00000410: 0000 00ff 2504 2040 00ff 2500 2040 0000  ....%. @..%. @..
00000420: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000430: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000440: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000450: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000460: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000470: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000480: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000490: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000004a0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000004b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000004c0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000004d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000004e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000004f0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000500: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000510: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000520: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000530: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000540: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000550: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000560: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000570: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000580: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000590: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000005a0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000005b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000005c0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000005d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000005e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000005f0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000600: 2221 0000 1421 0000 0000 0000 0000 0000  "!...!..........
00000610: 0000 0000 bbe2 835d 0000 0000 0d00 0000  .......]........
00000620: b400 0000 2c20 0000 2c06 0000 0000 0000  ...., ..,.......
00000630: 0010 0000 1f00 0000 2e74 6578 7424 6d6e  .........text$mn
00000640: 0000 0000 0020 0000 1000 0000 2e69 6461  ..... .......ida
00000650: 7461 2435 0000 0000 1020 0000 1c00 0000  ta$5..... ......
00000660: 2e72 6461 7461 0000 2c20 0000 b400 0000  .rdata.., ......
00000670: 2e72 6461 7461 247a 7a7a 6462 6700 0000  .rdata$zzzdbg...
00000680: e020 0000 1400 0000 2e69 6461 7461 2432  . .......idata$2
00000690: 0000 0000 f420 0000 1400 0000 2e69 6461  ..... .......ida
000006a0: 7461 2433 0000 0000 0821 0000 0c00 0000  ta$3.....!......
000006b0: 2e69 6461 7461 2434 0000 0000 1421 0000  .idata$4.....!..
000006c0: 2600 0000 2e69 6461 7461 2436 0000 0000  &....idata$6....
000006d0: 0030 0000 0500 0000 2e64 6174 6100 0000  .0.......data...
000006e0: 0821 0000 0000 0000 0000 0000 2c21 0000  .!..........,!..
000006f0: 0020 0000 0000 0000 0000 0000 0000 0000  . ..............
00000700: 0000 0000 0000 0000 2221 0000 1421 0000  ........"!...!..
00000710: 0000 0000 5e01 4578 6974 5072 6f63 6573  ....^.ExitProces
00000720: 7300 ff05 5769 6e45 7865 6300 4b45 524e  s...WinExec.KERN
00000730: 454c 3332 2e64 6c6c 0000 0000 0000 0000  EL32.dll........
00000740: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000750: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000760: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000770: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000780: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000790: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000007a0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000007b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000007c0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000007d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000007e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000007f0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000800: 6361 6c63 0000 0000 0000 0000 0000 0000  calc............
00000810: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000820: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000830: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000840: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000850: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000860: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000870: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000880: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000890: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000008a0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000008b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000008c0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000008d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000008e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000008f0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000900: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000910: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000920: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000930: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000940: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000950: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000960: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000970: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000980: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000990: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000009a0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000009b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000009c0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000009d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000009e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000009f0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000a00: 0010 0000 1000 0000 0330 1530 1b30 0000  .........0.0.0..
00000a10: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000a20: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000a30: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000a40: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000a50: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000a60: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000a70: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000a80: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000a90: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000aa0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000ab0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000ac0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000ad0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000ae0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000af0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000b00: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000b10: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000b20: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000b30: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000b40: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000b50: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000b60: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000b70: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000b80: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000b90: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000ba0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000bb0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000bc0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000bd0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000be0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000bf0: 0000 0000 0000 0000 0000 0000 0000 0000  ................

Видим, что исполняемые файлы ОС Windows, также называемые PE-файлами (например, .exe, .dll, .com, .drv, .sys и т. д.), имеют подпись файла MZ или шестнадцатеричные символы 4D 5A в первых двух байтах файла.

Выполним команду для ELF-файла (подпись файла ELF):

!xxd samples/test_01
00000000: 7f45 4c46 0201 0100 0000 0000 0000 0000  .ELF............
00000010: 0300 3e00 0100 0000 8005 0000 0000 0000  ..>.............
00000020: 4000 0000 0000 0000 001a 0000 0000 0000  @...............
00000030: 0000 0000 4000 3800 0900 4000 1f00 1e00  ....@.8...@.....
00000040: 0600 0000 0500 0000 4000 0000 0000 0000  ........@.......
00000050: 4000 0000 0000 0000 4000 0000 0000 0000  @.......@.......
00000060: f801 0000 0000 0000 f801 0000 0000 0000  ................
00000070: 0800 0000 0000 0000 0300 0000 0400 0000  ................
00000080: 3802 0000 0000 0000 3802 0000 0000 0000  8.......8.......
00000090: 3802 0000 0000 0000 1c00 0000 0000 0000  8...............
000000a0: 1c00 0000 0000 0000 0100 0000 0000 0000  ................
000000b0: 0100 0000 0500 0000 0000 0000 0000 0000  ................
000000c0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000000d0: ac08 0000 0000 0000 ac08 0000 0000 0000  ................
000000e0: 0000 2000 0000 0000 0100 0000 0600 0000  .. .............
000000f0: d80d 0000 0000 0000 d80d 2000 0000 0000  .......... .....
00000100: d80d 2000 0000 0000 5802 0000 0000 0000  .. .....X.......
00000110: 6002 0000 0000 0000 0000 2000 0000 0000  `......... .....
00000120: 0200 0000 0600 0000 f00d 0000 0000 0000  ................
00000130: f00d 2000 0000 0000 f00d 2000 0000 0000  .. ....... .....
00000140: e001 0000 0000 0000 e001 0000 0000 0000  ................
00000150: 0800 0000 0000 0000 0400 0000 0400 0000  ................
00000160: 5402 0000 0000 0000 5402 0000 0000 0000  T.......T.......
00000170: 5402 0000 0000 0000 4400 0000 0000 0000  T.......D.......
00000180: 4400 0000 0000 0000 0400 0000 0000 0000  D...............
00000190: 50e5 7464 0400 0000 6407 0000 0000 0000  P.td....d.......
000001a0: 6407 0000 0000 0000 6407 0000 0000 0000  d.......d.......
000001b0: 3c00 0000 0000 0000 3c00 0000 0000 0000  <.......<.......
000001c0: 0400 0000 0000 0000 51e5 7464 0600 0000  ........Q.td....
000001d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000001e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000001f0: 0000 0000 0000 0000 1000 0000 0000 0000  ................
00000200: 52e5 7464 0400 0000 d80d 0000 0000 0000  R.td............
00000210: d80d 2000 0000 0000 d80d 2000 0000 0000  .. ....... .....
00000220: 2802 0000 0000 0000 2802 0000 0000 0000  (.......(.......
00000230: 0100 0000 0000 0000 2f6c 6962 3634 2f6c  ......../lib64/l
00000240: 642d 6c69 6e75 782d 7838 362d 3634 2e73  d-linux-x86-64.s
00000250: 6f2e 3200 0400 0000 1000 0000 0100 0000  o.2.............
00000260: 474e 5500 0000 0000 0200 0000 0600 0000  GNU.............
00000270: 2000 0000 0400 0000 1400 0000 0300 0000   ...............
00000280: 474e 5500 f2bd 5ec0 510b e9de e734 eba2  GNU...^.Q....4..
00000290: c607 d4da b969 4d56 0100 0000 0100 0000  .....iMV........
000002a0: 0100 0000 0000 0000 0000 0000 0000 0000  ................
000002b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000002c0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000002d0: 3100 0000 2000 0000 0000 0000 0000 0000  1... ...........
000002e0: 0000 0000 0000 0000 0b00 0000 1200 0000  ................
000002f0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000300: 1f00 0000 1200 0000 0000 0000 0000 0000  ................
00000310: 0000 0000 0000 0000 4d00 0000 2000 0000  ........M... ...
00000320: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000330: 5c00 0000 2000 0000 0000 0000 0000 0000  \... ...........
00000340: 0000 0000 0000 0000 7000 0000 2000 0000  ........p... ...
00000350: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000360: 1000 0000 2200 0000 0000 0000 0000 0000  ...."...........
00000370: 0000 0000 0000 0000 006c 6962 632e 736f  .........libc.so
00000380: 2e36 0070 7574 7300 5f5f 6378 615f 6669  .6.puts.__cxa_fi
00000390: 6e61 6c69 7a65 005f 5f6c 6962 635f 7374  nalize.__libc_st
000003a0: 6172 745f 6d61 696e 005f 4954 4d5f 6465  art_main._ITM_de
000003b0: 7265 6769 7374 6572 544d 436c 6f6e 6554  registerTMCloneT
000003c0: 6162 6c65 005f 5f67 6d6f 6e5f 7374 6172  able.__gmon_star
000003d0: 745f 5f00 5f4a 765f 5265 6769 7374 6572  t__._Jv_Register
000003e0: 436c 6173 7365 7300 5f49 544d 5f72 6567  Classes._ITM_reg
000003f0: 6973 7465 7254 4d43 6c6f 6e65 5461 626c  isterTMCloneTabl
00000400: 6500 474c 4942 435f 322e 322e 3500 0000  e.GLIBC_2.2.5...
00000410: 0000 0200 0200 0000 0000 0000 0200 0000  ................
00000420: 0100 0100 0100 0000 1000 0000 0000 0000  ................
00000430: 751a 6909 0000 0200 8a00 0000 0000 0000  u.i.............
00000440: d80d 2000 0000 0000 0800 0000 0000 0000  .. .............
00000450: 8006 0000 0000 0000 e00d 2000 0000 0000  .......... .....
00000460: 0800 0000 0000 0000 4006 0000 0000 0000  ........@.......
00000470: 2810 2000 0000 0000 0800 0000 0000 0000  (. .............
00000480: 2810 2000 0000 0000 d00f 2000 0000 0000  (. ....... .....
00000490: 0600 0000 0100 0000 0000 0000 0000 0000  ................
000004a0: d80f 2000 0000 0000 0600 0000 0300 0000  .. .............
000004b0: 0000 0000 0000 0000 e00f 2000 0000 0000  .......... .....
000004c0: 0600 0000 0400 0000 0000 0000 0000 0000  ................
000004d0: e80f 2000 0000 0000 0600 0000 0500 0000  .. .............
000004e0: 0000 0000 0000 0000 f00f 2000 0000 0000  .......... .....
000004f0: 0600 0000 0600 0000 0000 0000 0000 0000  ................
00000500: f80f 2000 0000 0000 0600 0000 0700 0000  .. .............
00000510: 0000 0000 0000 0000 1810 2000 0000 0000  .......... .....
00000520: 0700 0000 0200 0000 0000 0000 0000 0000  ................
00000530: 4883 ec08 488b 05a5 0a20 0048 85c0 7402  H...H.... .H..t.
00000540: ffd0 4883 c408 c300 0000 0000 0000 0000  ..H.............
00000550: ff35 b20a 2000 ff25 b40a 2000 0f1f 4000  .5.. ..%.. ...@.
00000560: ff25 b20a 2000 6800 0000 00e9 e0ff ffff  .%.. .h.........
00000570: ff25 820a 2000 6690 0000 0000 0000 0000  .%.. .f.........
00000580: 31ed 4989 d15e 4889 e248 83e4 f050 544c  1.I..^H..H...PTL
00000590: 8d05 aa01 0000 488d 0d33 0100 0048 8d3d  ......H..3...H.=
000005a0: 0c01 0000 ff15 2e0a 2000 f40f 1f44 0000  ........ ....D..
000005b0: 488d 3d79 0a20 0048 8d05 790a 2000 5548  H.=y. .H..y. .UH
000005c0: 29f8 4889 e548 83f8 0e76 1548 8b05 fe09  ).H..H...v.H....
000005d0: 2000 4885 c074 095d ffe0 660f 1f44 0000   .H..t.]..f..D..
000005e0: 5dc3 0f1f 4000 662e 0f1f 8400 0000 0000  ]...@.f.........
000005f0: 488d 3d39 0a20 0048 8d35 320a 2000 5548  H.=9. .H.52. .UH
00000600: 29fe 4889 e548 c1fe 0348 89f0 48c1 e83f  ).H..H...H..H..?
00000610: 4801 c648 d1fe 7418 488b 05d1 0920 0048  H..H..t.H.... .H
00000620: 85c0 740c 5dff e066 0f1f 8400 0000 0000  ..t.]..f........
00000630: 5dc3 0f1f 4000 662e 0f1f 8400 0000 0000  ]...@.f.........
00000640: 803d e909 2000 0075 2748 833d a709 2000  .=.. ..u'H.=.. .
00000650: 0055 4889 e574 0c48 8b3d ca09 2000 e80d  .UH..t.H.=.. ...
00000660: ffff ffe8 48ff ffff 5dc6 05c0 0920 0001  ....H...].... ..
00000670: f3c3 0f1f 4000 662e 0f1f 8400 0000 0000  ....@.f.........
00000680: 488d 3d61 0720 0048 833f 0075 0be9 5eff  H.=a. .H.?.u..^.
00000690: ffff 660f 1f44 0000 488b 0549 0920 0048  ..f..D..H..I. .H
000006a0: 85c0 74e9 5548 89e5 ffd0 5de9 40ff ffff  ..t.UH....].@...
000006b0: 5548 89e5 488d 3d99 0000 00e8 a0fe ffff  UH..H.=.........
000006c0: b800 0000 005d c366 0f1f 8400 0000 0000  .....].f........
000006d0: 4157 4156 4189 ff41 5541 544c 8d25 f606  AWAVA..AUATL.%..
000006e0: 2000 5548 8d2d f606 2000 5349 89f6 4989   .UH.-.. .SI..I.
000006f0: d54c 29e5 4883 ec08 48c1 fd03 e82f feff  .L).H...H..../..
00000700: ff48 85ed 7420 31db 0f1f 8400 0000 0000  .H..t 1.........
00000710: 4c89 ea4c 89f6 4489 ff41 ff14 dc48 83c3  L..L..D..A...H..
00000720: 0148 39dd 75ea 4883 c408 5b5d 415c 415d  .H9.u.H...[]A\A]
00000730: 415e 415f c390 662e 0f1f 8400 0000 0000  A^A_..f.........
00000740: f3c3 0000 4883 ec08 4883 c408 c300 0000  ....H...H.......
00000750: 0100 0200 4865 6c6c 6f2c 206d 616c 7761  ....Hello, malwa
00000760: 7265 2100 011b 033b 3800 0000 0600 0000  re!....;8.......
00000770: ecfd ffff 8400 0000 0cfe ffff ac00 0000  ................
00000780: 1cfe ffff 5400 0000 4cff ffff c400 0000  ....T...L.......
00000790: 6cff ffff e400 0000 dcff ffff 2c01 0000  l...........,...
000007a0: 1400 0000 0000 0000 017a 5200 0178 1001  .........zR..x..
000007b0: 1b0c 0708 9001 0710 1400 0000 1c00 0000  ................
000007c0: c0fd ffff 2b00 0000 0000 0000 0000 0000  ....+...........
000007d0: 1400 0000 0000 0000 017a 5200 0178 1001  .........zR..x..
000007e0: 1b0c 0708 9001 0000 2400 0000 1c00 0000  ........$.......
000007f0: 60fd ffff 2000 0000 000e 1046 0e18 4a0f  `... ......F..J.
00000800: 0b77 0880 003f 1a3b 2a33 2422 0000 0000  .w...?.;*3$"....
00000810: 1400 0000 4400 0000 58fd ffff 0800 0000  ....D...X.......
00000820: 0000 0000 0000 0000 1c00 0000 5c00 0000  ............\...
00000830: 80fe ffff 1700 0000 0041 0e10 8602 430d  .........A....C.
00000840: 0652 0c07 0800 0000 4400 0000 7c00 0000  .R......D...|...
00000850: 80fe ffff 6500 0000 0042 0e10 8f02 420e  ....e....B....B.
00000860: 188e 0345 0e20 8d04 420e 288c 0548 0e30  ...E. ..B.(..H.0
00000870: 8606 480e 3883 074d 0e40 720e 3841 0e30  ..H.8..M.@r.8A.0
00000880: 410e 2842 0e20 420e 1842 0e10 420e 0800  A.(B. B..B..B...
00000890: 1400 0000 c400 0000 a8fe ffff 0200 0000  ................
000008a0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000008b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000008c0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000008d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000008e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000008f0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000900: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000910: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000920: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000930: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000940: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000950: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000960: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000970: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000980: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000990: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000009a0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000009b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000009c0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000009d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000009e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000009f0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000a00: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000a10: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000a20: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000a30: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000a40: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000a50: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000a60: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000a70: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000a80: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000a90: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000aa0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000ab0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000ac0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000ad0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000ae0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000af0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000b00: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000b10: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000b20: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000b30: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000b40: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000b50: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000b60: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000b70: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000b80: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000b90: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000ba0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000bb0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000bc0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000bd0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000be0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000bf0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000c00: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000c10: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000c20: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000c30: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000c40: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000c50: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000c60: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000c70: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000c80: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000c90: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000ca0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000cb0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000cc0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000cd0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000ce0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000cf0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000d00: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000d10: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000d20: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000d30: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000d40: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000d50: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000d60: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000d70: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000d80: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000d90: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000da0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000db0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000dc0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000dd0: 0000 0000 0000 0000 8006 0000 0000 0000  ................
00000de0: 4006 0000 0000 0000 0000 0000 0000 0000  @...............
00000df0: 0100 0000 0000 0000 0100 0000 0000 0000  ................
00000e00: 0c00 0000 0000 0000 3005 0000 0000 0000  ........0.......
00000e10: 0d00 0000 0000 0000 4407 0000 0000 0000  ........D.......
00000e20: 1900 0000 0000 0000 d80d 2000 0000 0000  .......... .....
00000e30: 1b00 0000 0000 0000 0800 0000 0000 0000  ................
00000e40: 1a00 0000 0000 0000 e00d 2000 0000 0000  .......... .....
00000e50: 1c00 0000 0000 0000 0800 0000 0000 0000  ................
00000e60: f5fe ff6f 0000 0000 9802 0000 0000 0000  ...o............
00000e70: 0500 0000 0000 0000 7803 0000 0000 0000  ........x.......
00000e80: 0600 0000 0000 0000 b802 0000 0000 0000  ................
00000e90: 0a00 0000 0000 0000 9600 0000 0000 0000  ................
00000ea0: 0b00 0000 0000 0000 1800 0000 0000 0000  ................
00000eb0: 1500 0000 0000 0000 0000 0000 0000 0000  ................
00000ec0: 0300 0000 0000 0000 0010 2000 0000 0000  .......... .....
00000ed0: 0200 0000 0000 0000 1800 0000 0000 0000  ................
00000ee0: 1400 0000 0000 0000 0700 0000 0000 0000  ................
00000ef0: 1700 0000 0000 0000 1805 0000 0000 0000  ................
00000f00: 0700 0000 0000 0000 4004 0000 0000 0000  ........@.......
00000f10: 0800 0000 0000 0000 d800 0000 0000 0000  ................
00000f20: 0900 0000 0000 0000 1800 0000 0000 0000  ................
00000f30: fbff ff6f 0000 0000 0000 0008 0000 0000  ...o............
00000f40: feff ff6f 0000 0000 2004 0000 0000 0000  ...o.... .......
00000f50: ffff ff6f 0000 0000 0100 0000 0000 0000  ...o............
00000f60: f0ff ff6f 0000 0000 0e04 0000 0000 0000  ...o............
00000f70: f9ff ff6f 0000 0000 0300 0000 0000 0000  ...o............
00000f80: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000f90: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000fa0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000fb0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000fc0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000fd0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000fe0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000ff0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00001000: f00d 2000 0000 0000 0000 0000 0000 0000  .. .............
00001010: 0000 0000 0000 0000 6605 0000 0000 0000  ........f.......
00001020: 0000 0000 0000 0000 2810 2000 0000 0000  ........(. .....
00001030: 4743 433a 2028 4465 6269 616e 2036 2e33  GCC: (Debian 6.3
00001040: 2e30 2d31 382b 6465 6239 7531 2920 362e  .0-18+deb9u1) 6.
00001050: 332e 3020 3230 3137 3035 3136 0000 0000  3.0 20170516....
00001060: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00001070: 0000 0000 0000 0000 0000 0000 0300 0100  ................
00001080: 3802 0000 0000 0000 0000 0000 0000 0000  8...............
00001090: 0000 0000 0300 0200 5402 0000 0000 0000  ........T.......
000010a0: 0000 0000 0000 0000 0000 0000 0300 0300  ................
000010b0: 7402 0000 0000 0000 0000 0000 0000 0000  t...............
000010c0: 0000 0000 0300 0400 9802 0000 0000 0000  ................
000010d0: 0000 0000 0000 0000 0000 0000 0300 0500  ................
000010e0: b802 0000 0000 0000 0000 0000 0000 0000  ................
000010f0: 0000 0000 0300 0600 7803 0000 0000 0000  ........x.......
00001100: 0000 0000 0000 0000 0000 0000 0300 0700  ................
00001110: 0e04 0000 0000 0000 0000 0000 0000 0000  ................
00001120: 0000 0000 0300 0800 2004 0000 0000 0000  ........ .......
00001130: 0000 0000 0000 0000 0000 0000 0300 0900  ................
00001140: 4004 0000 0000 0000 0000 0000 0000 0000  @...............
00001150: 0000 0000 0300 0a00 1805 0000 0000 0000  ................
00001160: 0000 0000 0000 0000 0000 0000 0300 0b00  ................
00001170: 3005 0000 0000 0000 0000 0000 0000 0000  0...............
00001180: 0000 0000 0300 0c00 5005 0000 0000 0000  ........P.......
00001190: 0000 0000 0000 0000 0000 0000 0300 0d00  ................
000011a0: 7005 0000 0000 0000 0000 0000 0000 0000  p...............
000011b0: 0000 0000 0300 0e00 8005 0000 0000 0000  ................
000011c0: 0000 0000 0000 0000 0000 0000 0300 0f00  ................
000011d0: 4407 0000 0000 0000 0000 0000 0000 0000  D...............
000011e0: 0000 0000 0300 1000 5007 0000 0000 0000  ........P.......
000011f0: 0000 0000 0000 0000 0000 0000 0300 1100  ................
00001200: 6407 0000 0000 0000 0000 0000 0000 0000  d...............
00001210: 0000 0000 0300 1200 a007 0000 0000 0000  ................
00001220: 0000 0000 0000 0000 0000 0000 0300 1300  ................
00001230: d80d 2000 0000 0000 0000 0000 0000 0000  .. .............
00001240: 0000 0000 0300 1400 e00d 2000 0000 0000  .......... .....
00001250: 0000 0000 0000 0000 0000 0000 0300 1500  ................
00001260: e80d 2000 0000 0000 0000 0000 0000 0000  .. .............
00001270: 0000 0000 0300 1600 f00d 2000 0000 0000  .......... .....
00001280: 0000 0000 0000 0000 0000 0000 0300 1700  ................
00001290: d00f 2000 0000 0000 0000 0000 0000 0000  .. .............
000012a0: 0000 0000 0300 1800 0010 2000 0000 0000  .......... .....
000012b0: 0000 0000 0000 0000 0000 0000 0300 1900  ................
000012c0: 2010 2000 0000 0000 0000 0000 0000 0000   . .............
000012d0: 0000 0000 0300 1a00 3010 2000 0000 0000  ........0. .....
000012e0: 0000 0000 0000 0000 0000 0000 0300 1b00  ................
000012f0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00001300: 0100 0000 0400 f1ff 0000 0000 0000 0000  ................
00001310: 0000 0000 0000 0000 0c00 0000 0100 1500  ................
00001320: e80d 2000 0000 0000 0000 0000 0000 0000  .. .............
00001330: 1900 0000 0200 0e00 b005 0000 0000 0000  ................
00001340: 0000 0000 0000 0000 1b00 0000 0200 0e00  ................
00001350: f005 0000 0000 0000 0000 0000 0000 0000  ................
00001360: 2e00 0000 0200 0e00 4006 0000 0000 0000  ........@.......
00001370: 0000 0000 0000 0000 4400 0000 0100 1a00  ........D.......
00001380: 3010 2000 0000 0000 0100 0000 0000 0000  0. .............
00001390: 5300 0000 0100 1400 e00d 2000 0000 0000  S......... .....
000013a0: 0000 0000 0000 0000 7a00 0000 0200 0e00  ........z.......
000013b0: 8006 0000 0000 0000 0000 0000 0000 0000  ................
000013c0: 8600 0000 0100 1300 d80d 2000 0000 0000  .......... .....
000013d0: 0000 0000 0000 0000 a500 0000 0400 f1ff  ................
000013e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000013f0: 0100 0000 0400 f1ff 0000 0000 0000 0000  ................
00001400: 0000 0000 0000 0000 af00 0000 0100 1200  ................
00001410: a808 0000 0000 0000 0000 0000 0000 0000  ................
00001420: bd00 0000 0100 1500 e80d 2000 0000 0000  .......... .....
00001430: 0000 0000 0000 0000 0000 0000 0400 f1ff  ................
00001440: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00001450: c900 0000 0000 1300 e00d 2000 0000 0000  .......... .....
00001460: 0000 0000 0000 0000 da00 0000 0100 1600  ................
00001470: f00d 2000 0000 0000 0000 0000 0000 0000  .. .............
00001480: e300 0000 0000 1300 d80d 2000 0000 0000  .......... .....
00001490: 0000 0000 0000 0000 f600 0000 0000 1100  ................
000014a0: 6407 0000 0000 0000 0000 0000 0000 0000  d...............
000014b0: 0901 0000 0100 1800 0010 2000 0000 0000  .......... .....
000014c0: 0000 0000 0000 0000 1f01 0000 1200 0e00  ................
000014d0: 4007 0000 0000 0000 0200 0000 0000 0000  @...............
000014e0: 2f01 0000 2000 0000 0000 0000 0000 0000  /... ...........
000014f0: 0000 0000 0000 0000 8501 0000 2000 1900  ............ ...
00001500: 2010 2000 0000 0000 0000 0000 0000 0000   . .............
00001510: 4b01 0000 1200 0000 0000 0000 0000 0000  K...............
00001520: 0000 0000 0000 0000 5d01 0000 1000 1900  ........].......
00001530: 3010 2000 0000 0000 0000 0000 0000 0000  0. .............
00001540: 2901 0000 1200 0f00 4407 0000 0000 0000  ).......D.......
00001550: 0000 0000 0000 0000 6401 0000 1200 0000  ........d.......
00001560: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00001570: 8301 0000 1000 1900 2010 2000 0000 0000  ........ . .....
00001580: 0000 0000 0000 0000 9001 0000 2000 0000  ............ ...
00001590: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000015a0: 9f01 0000 1102 1900 2810 2000 0000 0000  ........(. .....
000015b0: 0000 0000 0000 0000 ac01 0000 1100 1000  ................
000015c0: 5007 0000 0000 0000 0400 0000 0000 0000  P...............
000015d0: bb01 0000 1200 0e00 d006 0000 0000 0000  ................
000015e0: 6500 0000 0000 0000 d500 0000 1000 1a00  e...............
000015f0: 3810 2000 0000 0000 0000 0000 0000 0000  8. .............
00001600: 8901 0000 1200 0e00 8005 0000 0000 0000  ................
00001610: 2b00 0000 0000 0000 cb01 0000 1000 1a00  +...............
00001620: 3010 2000 0000 0000 0000 0000 0000 0000  0. .............
00001630: d701 0000 1200 0e00 b006 0000 0000 0000  ................
00001640: 1700 0000 0000 0000 dc01 0000 2000 0000  ............ ...
00001650: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00001660: f001 0000 1102 1900 3010 2000 0000 0000  ........0. .....
00001670: 0000 0000 0000 0000 fc01 0000 2000 0000  ............ ...
00001680: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00001690: 1602 0000 2200 0000 0000 0000 0000 0000  ...."...........
000016a0: 0000 0000 0000 0000 c501 0000 1200 0b00  ................
000016b0: 3005 0000 0000 0000 0000 0000 0000 0000  0...............
000016c0: 0063 7274 7374 7566 662e 6300 5f5f 4a43  .crtstuff.c.__JC
000016d0: 525f 4c49 5354 5f5f 0064 6572 6567 6973  R_LIST__.deregis
000016e0: 7465 725f 746d 5f63 6c6f 6e65 7300 5f5f  ter_tm_clones.__
000016f0: 646f 5f67 6c6f 6261 6c5f 6474 6f72 735f  do_global_dtors_
00001700: 6175 7800 636f 6d70 6c65 7465 642e 3639  aux.completed.69
00001710: 3732 005f 5f64 6f5f 676c 6f62 616c 5f64  72.__do_global_d
00001720: 746f 7273 5f61 7578 5f66 696e 695f 6172  tors_aux_fini_ar
00001730: 7261 795f 656e 7472 7900 6672 616d 655f  ray_entry.frame_
00001740: 6475 6d6d 7900 5f5f 6672 616d 655f 6475  dummy.__frame_du
00001750: 6d6d 795f 696e 6974 5f61 7272 6179 5f65  mmy_init_array_e
00001760: 6e74 7279 006d 6169 6e5f 3031 2e63 005f  ntry.main_01.c._
00001770: 5f46 5241 4d45 5f45 4e44 5f5f 005f 5f4a  _FRAME_END__.__J
00001780: 4352 5f45 4e44 5f5f 005f 5f69 6e69 745f  CR_END__.__init_
00001790: 6172 7261 795f 656e 6400 5f44 594e 414d  array_end._DYNAM
000017a0: 4943 005f 5f69 6e69 745f 6172 7261 795f  IC.__init_array_
000017b0: 7374 6172 7400 5f5f 474e 555f 4548 5f46  start.__GNU_EH_F
000017c0: 5241 4d45 5f48 4452 005f 474c 4f42 414c  RAME_HDR._GLOBAL
000017d0: 5f4f 4646 5345 545f 5441 424c 455f 005f  _OFFSET_TABLE_._
000017e0: 5f6c 6962 635f 6373 755f 6669 6e69 005f  _libc_csu_fini._
000017f0: 4954 4d5f 6465 7265 6769 7374 6572 544d  ITM_deregisterTM
00001800: 436c 6f6e 6554 6162 6c65 0070 7574 7340  CloneTable.puts@
00001810: 4047 4c49 4243 5f32 2e32 2e35 005f 6564  @GLIBC_2.2.5._ed
00001820: 6174 6100 5f5f 6c69 6263 5f73 7461 7274  ata.__libc_start
00001830: 5f6d 6169 6e40 4047 4c49 4243 5f32 2e32  _main@@GLIBC_2.2
00001840: 2e35 005f 5f64 6174 615f 7374 6172 7400  .5.__data_start.
00001850: 5f5f 676d 6f6e 5f73 7461 7274 5f5f 005f  __gmon_start__._
00001860: 5f64 736f 5f68 616e 646c 6500 5f49 4f5f  _dso_handle._IO_
00001870: 7374 6469 6e5f 7573 6564 005f 5f6c 6962  stdin_used.__lib
00001880: 635f 6373 755f 696e 6974 005f 5f62 7373  c_csu_init.__bss
00001890: 5f73 7461 7274 006d 6169 6e00 5f4a 765f  _start.main._Jv_
000018a0: 5265 6769 7374 6572 436c 6173 7365 7300  RegisterClasses.
000018b0: 5f5f 544d 435f 454e 445f 5f00 5f49 544d  __TMC_END__._ITM
000018c0: 5f72 6567 6973 7465 7254 4d43 6c6f 6e65  _registerTMClone
000018d0: 5461 626c 6500 5f5f 6378 615f 6669 6e61  Table.__cxa_fina
000018e0: 6c69 7a65 4040 474c 4942 435f 322e 322e  lize@@GLIBC_2.2.
000018f0: 3500 002e 7379 6d74 6162 002e 7374 7274  5...symtab..strt
00001900: 6162 002e 7368 7374 7274 6162 002e 696e  ab..shstrtab..in
00001910: 7465 7270 002e 6e6f 7465 2e41 4249 2d74  terp..note.ABI-t
00001920: 6167 002e 6e6f 7465 2e67 6e75 2e62 7569  ag..note.gnu.bui
00001930: 6c64 2d69 6400 2e67 6e75 2e68 6173 6800  ld-id..gnu.hash.
00001940: 2e64 796e 7379 6d00 2e64 796e 7374 7200  .dynsym..dynstr.
00001950: 2e67 6e75 2e76 6572 7369 6f6e 002e 676e  .gnu.version..gn
00001960: 752e 7665 7273 696f 6e5f 7200 2e72 656c  u.version_r..rel
00001970: 612e 6479 6e00 2e72 656c 612e 706c 7400  a.dyn..rela.plt.
00001980: 2e69 6e69 7400 2e70 6c74 2e67 6f74 002e  .init..plt.got..
00001990: 7465 7874 002e 6669 6e69 002e 726f 6461  text..fini..roda
000019a0: 7461 002e 6568 5f66 7261 6d65 5f68 6472  ta..eh_frame_hdr
000019b0: 002e 6568 5f66 7261 6d65 002e 696e 6974  ..eh_frame..init
000019c0: 5f61 7272 6179 002e 6669 6e69 5f61 7272  _array..fini_arr
000019d0: 6179 002e 6a63 7200 2e64 796e 616d 6963  ay..jcr..dynamic
000019e0: 002e 676f 742e 706c 7400 2e64 6174 6100  ..got.plt..data.
000019f0: 2e62 7373 002e 636f 6d6d 656e 7400 0000  .bss..comment...
00001a00: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00001a10: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00001a20: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00001a30: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00001a40: 1b00 0000 0100 0000 0200 0000 0000 0000  ................
00001a50: 3802 0000 0000 0000 3802 0000 0000 0000  8.......8.......
00001a60: 1c00 0000 0000 0000 0000 0000 0000 0000  ................
00001a70: 0100 0000 0000 0000 0000 0000 0000 0000  ................
00001a80: 2300 0000 0700 0000 0200 0000 0000 0000  #...............
00001a90: 5402 0000 0000 0000 5402 0000 0000 0000  T.......T.......
00001aa0: 2000 0000 0000 0000 0000 0000 0000 0000   ...............
00001ab0: 0400 0000 0000 0000 0000 0000 0000 0000  ................
00001ac0: 3100 0000 0700 0000 0200 0000 0000 0000  1...............
00001ad0: 7402 0000 0000 0000 7402 0000 0000 0000  t.......t.......
00001ae0: 2400 0000 0000 0000 0000 0000 0000 0000  $...............
00001af0: 0400 0000 0000 0000 0000 0000 0000 0000  ................
00001b00: 4400 0000 f6ff ff6f 0200 0000 0000 0000  D......o........
00001b10: 9802 0000 0000 0000 9802 0000 0000 0000  ................
00001b20: 1c00 0000 0000 0000 0500 0000 0000 0000  ................
00001b30: 0800 0000 0000 0000 0000 0000 0000 0000  ................
00001b40: 4e00 0000 0b00 0000 0200 0000 0000 0000  N...............
00001b50: b802 0000 0000 0000 b802 0000 0000 0000  ................
00001b60: c000 0000 0000 0000 0600 0000 0100 0000  ................
00001b70: 0800 0000 0000 0000 1800 0000 0000 0000  ................
00001b80: 5600 0000 0300 0000 0200 0000 0000 0000  V...............
00001b90: 7803 0000 0000 0000 7803 0000 0000 0000  x.......x.......
00001ba0: 9600 0000 0000 0000 0000 0000 0000 0000  ................
00001bb0: 0100 0000 0000 0000 0000 0000 0000 0000  ................
00001bc0: 5e00 0000 ffff ff6f 0200 0000 0000 0000  ^......o........
00001bd0: 0e04 0000 0000 0000 0e04 0000 0000 0000  ................
00001be0: 1000 0000 0000 0000 0500 0000 0000 0000  ................
00001bf0: 0200 0000 0000 0000 0200 0000 0000 0000  ................
00001c00: 6b00 0000 feff ff6f 0200 0000 0000 0000  k......o........
00001c10: 2004 0000 0000 0000 2004 0000 0000 0000   ....... .......
00001c20: 2000 0000 0000 0000 0600 0000 0100 0000   ...............
00001c30: 0800 0000 0000 0000 0000 0000 0000 0000  ................
00001c40: 7a00 0000 0400 0000 0200 0000 0000 0000  z...............
00001c50: 4004 0000 0000 0000 4004 0000 0000 0000  @.......@.......
00001c60: d800 0000 0000 0000 0500 0000 0000 0000  ................
00001c70: 0800 0000 0000 0000 1800 0000 0000 0000  ................
00001c80: 8400 0000 0400 0000 4200 0000 0000 0000  ........B.......
00001c90: 1805 0000 0000 0000 1805 0000 0000 0000  ................
00001ca0: 1800 0000 0000 0000 0500 0000 1800 0000  ................
00001cb0: 0800 0000 0000 0000 1800 0000 0000 0000  ................
00001cc0: 8e00 0000 0100 0000 0600 0000 0000 0000  ................
00001cd0: 3005 0000 0000 0000 3005 0000 0000 0000  0.......0.......
00001ce0: 1700 0000 0000 0000 0000 0000 0000 0000  ................
00001cf0: 0400 0000 0000 0000 0000 0000 0000 0000  ................
00001d00: 8900 0000 0100 0000 0600 0000 0000 0000  ................
00001d10: 5005 0000 0000 0000 5005 0000 0000 0000  P.......P.......
00001d20: 2000 0000 0000 0000 0000 0000 0000 0000   ...............
00001d30: 1000 0000 0000 0000 1000 0000 0000 0000  ................
00001d40: 9400 0000 0100 0000 0600 0000 0000 0000  ................
00001d50: 7005 0000 0000 0000 7005 0000 0000 0000  p.......p.......
00001d60: 0800 0000 0000 0000 0000 0000 0000 0000  ................
00001d70: 0800 0000 0000 0000 0000 0000 0000 0000  ................
00001d80: 9d00 0000 0100 0000 0600 0000 0000 0000  ................
00001d90: 8005 0000 0000 0000 8005 0000 0000 0000  ................
00001da0: c201 0000 0000 0000 0000 0000 0000 0000  ................
00001db0: 1000 0000 0000 0000 0000 0000 0000 0000  ................
00001dc0: a300 0000 0100 0000 0600 0000 0000 0000  ................
00001dd0: 4407 0000 0000 0000 4407 0000 0000 0000  D.......D.......
00001de0: 0900 0000 0000 0000 0000 0000 0000 0000  ................
00001df0: 0400 0000 0000 0000 0000 0000 0000 0000  ................
00001e00: a900 0000 0100 0000 0200 0000 0000 0000  ................
00001e10: 5007 0000 0000 0000 5007 0000 0000 0000  P.......P.......
00001e20: 1400 0000 0000 0000 0000 0000 0000 0000  ................
00001e30: 0400 0000 0000 0000 0000 0000 0000 0000  ................
00001e40: b100 0000 0100 0000 0200 0000 0000 0000  ................
00001e50: 6407 0000 0000 0000 6407 0000 0000 0000  d.......d.......
00001e60: 3c00 0000 0000 0000 0000 0000 0000 0000  <...............
00001e70: 0400 0000 0000 0000 0000 0000 0000 0000  ................
00001e80: bf00 0000 0100 0000 0200 0000 0000 0000  ................
00001e90: a007 0000 0000 0000 a007 0000 0000 0000  ................
00001ea0: 0c01 0000 0000 0000 0000 0000 0000 0000  ................
00001eb0: 0800 0000 0000 0000 0000 0000 0000 0000  ................
00001ec0: c900 0000 0e00 0000 0300 0000 0000 0000  ................
00001ed0: d80d 2000 0000 0000 d80d 0000 0000 0000  .. .............
00001ee0: 0800 0000 0000 0000 0000 0000 0000 0000  ................
00001ef0: 0800 0000 0000 0000 0800 0000 0000 0000  ................
00001f00: d500 0000 0f00 0000 0300 0000 0000 0000  ................
00001f10: e00d 2000 0000 0000 e00d 0000 0000 0000  .. .............
00001f20: 0800 0000 0000 0000 0000 0000 0000 0000  ................
00001f30: 0800 0000 0000 0000 0800 0000 0000 0000  ................
00001f40: e100 0000 0100 0000 0300 0000 0000 0000  ................
00001f50: e80d 2000 0000 0000 e80d 0000 0000 0000  .. .............
00001f60: 0800 0000 0000 0000 0000 0000 0000 0000  ................
00001f70: 0800 0000 0000 0000 0000 0000 0000 0000  ................
00001f80: e600 0000 0600 0000 0300 0000 0000 0000  ................
00001f90: f00d 2000 0000 0000 f00d 0000 0000 0000  .. .............
00001fa0: e001 0000 0000 0000 0600 0000 0000 0000  ................
00001fb0: 0800 0000 0000 0000 1000 0000 0000 0000  ................
00001fc0: 9800 0000 0100 0000 0300 0000 0000 0000  ................
00001fd0: d00f 2000 0000 0000 d00f 0000 0000 0000  .. .............
00001fe0: 3000 0000 0000 0000 0000 0000 0000 0000  0...............
00001ff0: 0800 0000 0000 0000 0800 0000 0000 0000  ................
00002000: ef00 0000 0100 0000 0300 0000 0000 0000  ................
00002010: 0010 2000 0000 0000 0010 0000 0000 0000  .. .............
00002020: 2000 0000 0000 0000 0000 0000 0000 0000   ...............
00002030: 0800 0000 0000 0000 0800 0000 0000 0000  ................
00002040: f800 0000 0100 0000 0300 0000 0000 0000  ................
00002050: 2010 2000 0000 0000 2010 0000 0000 0000   . ..... .......
00002060: 1000 0000 0000 0000 0000 0000 0000 0000  ................
00002070: 0800 0000 0000 0000 0000 0000 0000 0000  ................
00002080: fe00 0000 0800 0000 0300 0000 0000 0000  ................
00002090: 3010 2000 0000 0000 3010 0000 0000 0000  0. .....0.......
000020a0: 0800 0000 0000 0000 0000 0000 0000 0000  ................
000020b0: 0100 0000 0000 0000 0000 0000 0000 0000  ................
000020c0: 0301 0000 0100 0000 3000 0000 0000 0000  ........0.......
000020d0: 0000 0000 0000 0000 3010 0000 0000 0000  ........0.......
000020e0: 2d00 0000 0000 0000 0000 0000 0000 0000  -...............
000020f0: 0100 0000 0000 0000 0100 0000 0000 0000  ................
00002100: 0100 0000 0200 0000 0000 0000 0000 0000  ................
00002110: 0000 0000 0000 0000 6010 0000 0000 0000  ........`.......
00002120: 6006 0000 0000 0000 1d00 0000 2f00 0000  `.........../...
00002130: 0800 0000 0000 0000 1800 0000 0000 0000  ................
00002140: 0900 0000 0300 0000 0000 0000 0000 0000  ................
00002150: 0000 0000 0000 0000 c016 0000 0000 0000  ................
00002160: 3202 0000 0000 0000 0000 0000 0000 0000  2...............
00002170: 0100 0000 0000 0000 0000 0000 0000 0000  ................
00002180: 1100 0000 0300 0000 0000 0000 0000 0000  ................
00002190: 0000 0000 0000 0000 f218 0000 0000 0000  ................
000021a0: 0c01 0000 0000 0000 0000 0000 0000 0000  ................
000021b0: 0100 0000 0000 0000 0000 0000 0000 0000  ................

В следующем примере команда file была запущена для двух разных файлов:

!apt-get install file
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following package was automatically installed and is no longer required:
  libnvidia-common-460
Use 'apt autoremove' to remove it.
The following additional packages will be installed:
  libmagic-mgc libmagic1
The following NEW packages will be installed:
  file libmagic-mgc libmagic1
0 upgraded, 3 newly installed, 0 to remove and 5 not upgraded.
Need to get 275 kB of archives.
After this operation, 5,297 kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libmagic-mgc amd64 1:5.32-2ubuntu0.4 [184 kB]
Get:2 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libmagic1 amd64 1:5.32-2ubuntu0.4 [68.6 kB]
Get:3 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 file amd64 1:5.32-2ubuntu0.4 [22.1 kB]
Fetched 275 kB in 1s (404 kB/s)
Selecting previously unselected package libmagic-mgc.
(Reading database ... 123991 files and directories currently installed.)
Preparing to unpack .../libmagic-mgc_1%3a5.32-2ubuntu0.4_amd64.deb ...
Unpacking libmagic-mgc (1:5.32-2ubuntu0.4) ...
Selecting previously unselected package libmagic1:amd64.
Preparing to unpack .../libmagic1_1%3a5.32-2ubuntu0.4_amd64.deb ...
Unpacking libmagic1:amd64 (1:5.32-2ubuntu0.4) ...
Selecting previously unselected package file.
Preparing to unpack .../file_1%3a5.32-2ubuntu0.4_amd64.deb ...
Unpacking file (1:5.32-2ubuntu0.4) ...
Setting up libmagic-mgc (1:5.32-2ubuntu0.4) ...
Setting up libmagic1:amd64 (1:5.32-2ubuntu0.4) ...
Setting up file (1:5.32-2ubuntu0.4) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
Processing triggers for libc-bin (2.27-3ubuntu1.6) ...
!file samples/task-1.exe
samples/task-1.exe: PE32 executable (GUI) Intel 80386, for MS Windows
!file samples/test_01
samples/test_01: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=f2bd5ec0510be9dee734eba2c607d4dab9694d56, not stripped

В Python модуль python-magic может использоваться для определения типа файла:

!pip3 install python-magic
Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/
Collecting python-magic
  Downloading python_magic-0.4.27-py2.py3-none-any.whl (13 kB)
Installing collected packages: python-magic
Successfully installed python-magic-0.4.27
import magic
magic.from_file("samples/test_01")
'ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=f2bd5ec0510be9dee734eba2c607d4dab9694d56, not stripped'
magic.from_file("samples/task-1.exe")
'PE32 executable (GUI) Intel 80386, for MS Windows'

Обработка хеш-суммы на Python#

В системе Linux хеш-суммы могут быть сгенерированы с использованием утилит md5sum, sha256sum и sha1sum:

!md5sum samples/task-1.exe
a82a243ff5dbf90677c64eae4f0b6a8e  samples/task-1.exe
!sha256sum samples/task-1.exe
c4b4e76d20cfb1159cd83a65c067fe56146e86ea11aa5c6228e20e5737e700b5  samples/task-1.exe
!sha1sum samples/task-1.exe
79bcef7061fc9c79e4437871f8135498f8608b8f  samples/task-1.exe

В Python можно генерировать хеш-суммы, используя модуль hashlib, как показано ниже:

import hashlib
content = open("samples/task-1.exe","rb").read()
print(hashlib.md5(content).hexdigest())
a82a243ff5dbf90677c64eae4f0b6a8e
print(hashlib.sha256(content).hexdigest())
c4b4e76d20cfb1159cd83a65c067fe56146e86ea11aa5c6228e20e5737e700b5
print(hashlib.sha1(content).hexdigest())
79bcef7061fc9c79e4437871f8135498f8608b8f

Извлечение строк#

Извлечение строк может подсказать, как функционирует программа, и рассказать об индикаторах, указывающих на подозрительный двоичный код. Например, если вредоносная программа создает файл, имя файла сохраняется в виде строки в двоичном файле. Или если вредоносная программа разрешает доменное имя, контролируемое злоумышленником, это имя впоследствии хранится в виде строки.

Чтобы извлечь строки из подозрительного двоичного файла, вы можете использовать утилиту strings в системах GNU/Linux.

Команда strings по умолчанию извлекает ASCII-строки, длина которых составляет минимум четыре символа. С помощью опции -a можно извлечь строки из целого файла.

!strings -a samples/task-1.exe
!This program cannot be run in DOS mode.
Rich
.text
`.rdata
@.data
.reloc
.text$mn
.idata$5
.rdata
.rdata$zzzdbg
.idata$2
.idata$3
.idata$4
.idata$6
.data
ExitProcess
WinExec
KERNEL32.dll
calc

В образцах вредоносных программ также используются Юникод-строки (2 байта на символ). Чтобы получить полезную информацию из двоичного файла, иногда нужно извлечь как ASCII-, так и Юникод-строки. Чтобы извлечь Юникод-строки с помощью команды strings, используйте опцию -el:

!strings -a -el samples/task-1.exe

Модуль FLOSS автоматически извлекает запутанные строки из вредоносных программ.

Исполняемые файлы ОС Windows должны соответствовать формату PE/COFF (Portable Executable/Common Object File Format – Переносимый исполняемый/стандартный формат объектного файла).

Фактическое содержимое PE-файла разделено на секции. За ними сразу же следует PE-заголовок. Эти секции представляют либо код, либо данные, они имеют in-memory-атрибуты, такие как чтение/запись. Секция, представляющая код, содержит инструкции, которые будут выполняться процессором, тогда как секция, содержащая данные, может представлять различные типы данных, такие как чтение/запись данных программы (глобальные переменные), таблицы импорта/экспорта, ресурсы и т. д. У каждой секции есть свое имя, которое передает ее назначение.

Например, секция с именем .text указывает на код и имеет атрибут read-execute; раздел с именем .data указывает на глобальные данные и имеет атрибут read-write.

Следующий скрипт Python демонстрирует использование модуля pefile для отображения секции и её характеристик:

!pip3 install pefile
Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/
Collecting pefile
  Downloading pefile-2022.5.30.tar.gz (72 kB)
     |████████████████████████████████| 72 kB 989 kB/s 
?25hRequirement already satisfied: future in /usr/local/lib/python3.7/dist-packages (from pefile) (0.16.0)
Building wheels for collected packages: pefile
  Building wheel for pefile (setup.py) ... ?25l?25hdone
  Created wheel for pefile: filename=pefile-2022.5.30-py3-none-any.whl size=69377 sha256=49afb64ee6932869d6a53ca4dc3844759e3c4f3b522ed7a379324464cca68e7f
  Stored in directory: /root/.cache/pip/wheels/93/de/9a/ff00177c0bd6f71ec50ece96f4994fc075b29f6ac1484f0bed
Successfully built pefile
Installing collected packages: pefile
Successfully installed pefile-2022.5.30
import pefile

pe = pefile.PE("samples/task-1.exe")
for section in pe.sections:
    print(f"{section.Name.decode()} \
    {hex(section.VirtualAddress)} \
    {hex(section.Misc_VirtualSize)} \
    {section.SizeOfRawData}")
.text    0x1000     0x1f     512
.rdata    0x2000     0x13a     512
.data    0x3000     0x5     512
.reloc    0x4000     0x10     512

Скрипт Pescanner использует эвристику вместо сигнатур и может помочь идентифицировать упакованные двоичные файлы, даже если для них нет сигнатур.