polyfile-weave 0.5.5__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of polyfile-weave might be problematic. Click here for more details.

Files changed (585) hide show
  1. polyfile/__init__.py +15 -0
  2. polyfile/__main__.py +394 -0
  3. polyfile/arithmetic.py +27 -0
  4. polyfile/ast.py +114 -0
  5. polyfile/debugger.py +1039 -0
  6. polyfile/expressions.py +346 -0
  7. polyfile/fileutils.py +343 -0
  8. polyfile/html.py +135 -0
  9. polyfile/http/__init__.py +1 -0
  10. polyfile/http/defacto.py +37 -0
  11. polyfile/http/deprecated.py +51 -0
  12. polyfile/http/experimental.py +67 -0
  13. polyfile/http/http_11.py +548 -0
  14. polyfile/http/matcher.py +37 -0
  15. polyfile/http/structured_headers.py +48 -0
  16. polyfile/iterators.py +72 -0
  17. polyfile/jpeg.py +24 -0
  18. polyfile/kaitai/__init__.py +0 -0
  19. polyfile/kaitai/compiler.py +156 -0
  20. polyfile/kaitai/parser.py +312 -0
  21. polyfile/kaitai/parsers/__init__.py +0 -0
  22. polyfile/kaitai/parsers/aix_utmp.py +116 -0
  23. polyfile/kaitai/parsers/allegro_dat.py +367 -0
  24. polyfile/kaitai/parsers/andes_firmware.py +64 -0
  25. polyfile/kaitai/parsers/android_bootldr_asus.py +105 -0
  26. polyfile/kaitai/parsers/android_bootldr_huawei.py +181 -0
  27. polyfile/kaitai/parsers/android_bootldr_qcom.py +217 -0
  28. polyfile/kaitai/parsers/android_dto.py +138 -0
  29. polyfile/kaitai/parsers/android_img.py +319 -0
  30. polyfile/kaitai/parsers/android_nanoapp_header.py +83 -0
  31. polyfile/kaitai/parsers/android_opengl_shaders_cache.py +151 -0
  32. polyfile/kaitai/parsers/android_sparse.py +237 -0
  33. polyfile/kaitai/parsers/android_super.py +401 -0
  34. polyfile/kaitai/parsers/apm_partition_table.py +196 -0
  35. polyfile/kaitai/parsers/apple_single_double.py +180 -0
  36. polyfile/kaitai/parsers/asn1_der.py +235 -0
  37. polyfile/kaitai/parsers/au.py +138 -0
  38. polyfile/kaitai/parsers/avantes_roh60.py +112 -0
  39. polyfile/kaitai/parsers/avi.py +296 -0
  40. polyfile/kaitai/parsers/bcd.py +111 -0
  41. polyfile/kaitai/parsers/bitcoin_transaction.py +210 -0
  42. polyfile/kaitai/parsers/blender_blend.py +334 -0
  43. polyfile/kaitai/parsers/bmp.py +780 -0
  44. polyfile/kaitai/parsers/bson.py +411 -0
  45. polyfile/kaitai/parsers/btrfs_stream.py +318 -0
  46. polyfile/kaitai/parsers/bytes_with_io.py +27 -0
  47. polyfile/kaitai/parsers/chrome_pak.py +194 -0
  48. polyfile/kaitai/parsers/code_6502.py +456 -0
  49. polyfile/kaitai/parsers/compressed_resource.py +217 -0
  50. polyfile/kaitai/parsers/cpio_old_le.py +154 -0
  51. polyfile/kaitai/parsers/cramfs.py +344 -0
  52. polyfile/kaitai/parsers/creative_voice_file.py +342 -0
  53. polyfile/kaitai/parsers/dbf.py +274 -0
  54. polyfile/kaitai/parsers/dcmp_0.py +664 -0
  55. polyfile/kaitai/parsers/dcmp_1.py +422 -0
  56. polyfile/kaitai/parsers/dcmp_2.py +312 -0
  57. polyfile/kaitai/parsers/dcmp_variable_length_integer.py +66 -0
  58. polyfile/kaitai/parsers/dex.py +1086 -0
  59. polyfile/kaitai/parsers/dicom.py +4370 -0
  60. polyfile/kaitai/parsers/dime_message.py +201 -0
  61. polyfile/kaitai/parsers/dns_packet.py +569 -0
  62. polyfile/kaitai/parsers/doom_wad.py +654 -0
  63. polyfile/kaitai/parsers/dos_datetime.py +191 -0
  64. polyfile/kaitai/parsers/dos_mz.py +172 -0
  65. polyfile/kaitai/parsers/ds_store.py +513 -0
  66. polyfile/kaitai/parsers/dtb.py +310 -0
  67. polyfile/kaitai/parsers/dune_2_pak.py +126 -0
  68. polyfile/kaitai/parsers/edid.py +472 -0
  69. polyfile/kaitai/parsers/efivar_signature_list.py +331 -0
  70. polyfile/kaitai/parsers/elf.py +2482 -0
  71. polyfile/kaitai/parsers/ethernet_frame.py +114 -0
  72. polyfile/kaitai/parsers/exif.py +723 -0
  73. polyfile/kaitai/parsers/ext2.py +537 -0
  74. polyfile/kaitai/parsers/fallout2_dat.py +187 -0
  75. polyfile/kaitai/parsers/fallout_dat.py +156 -0
  76. polyfile/kaitai/parsers/fasttracker_xm_module.py +558 -0
  77. polyfile/kaitai/parsers/ftl_dat.py +90 -0
  78. polyfile/kaitai/parsers/genmidi_op2.py +161 -0
  79. polyfile/kaitai/parsers/gettext_mo.py +541 -0
  80. polyfile/kaitai/parsers/gif.py +492 -0
  81. polyfile/kaitai/parsers/gimp_brush.py +244 -0
  82. polyfile/kaitai/parsers/glibc_utmp.py +114 -0
  83. polyfile/kaitai/parsers/gltf_binary.py +132 -0
  84. polyfile/kaitai/parsers/google_protobuf.py +151 -0
  85. polyfile/kaitai/parsers/gpt_partition_table.py +175 -0
  86. polyfile/kaitai/parsers/gran_turismo_vol.py +140 -0
  87. polyfile/kaitai/parsers/grub2_font.py +337 -0
  88. polyfile/kaitai/parsers/gzip.py +232 -0
  89. polyfile/kaitai/parsers/hashcat_restore.py +60 -0
  90. polyfile/kaitai/parsers/hccap.py +111 -0
  91. polyfile/kaitai/parsers/hccapx.py +103 -0
  92. polyfile/kaitai/parsers/heaps_pak.py +177 -0
  93. polyfile/kaitai/parsers/heroes_of_might_and_magic_agg.py +116 -0
  94. polyfile/kaitai/parsers/heroes_of_might_and_magic_bmp.py +34 -0
  95. polyfile/kaitai/parsers/icmp_packet.py +136 -0
  96. polyfile/kaitai/parsers/ico.py +129 -0
  97. polyfile/kaitai/parsers/id3v1_1.py +220 -0
  98. polyfile/kaitai/parsers/id3v2_3.py +324 -0
  99. polyfile/kaitai/parsers/id3v2_4.py +423 -0
  100. polyfile/kaitai/parsers/ines.py +282 -0
  101. polyfile/kaitai/parsers/ipv4_packet.py +158 -0
  102. polyfile/kaitai/parsers/ipv6_packet.py +55 -0
  103. polyfile/kaitai/parsers/iso9660.py +544 -0
  104. polyfile/kaitai/parsers/java_class.py +1113 -0
  105. polyfile/kaitai/parsers/jpeg.py +361 -0
  106. polyfile/kaitai/parsers/luks.py +149 -0
  107. polyfile/kaitai/parsers/lzh.py +165 -0
  108. polyfile/kaitai/parsers/mac_os_resource_snd.py +493 -0
  109. polyfile/kaitai/parsers/mach_o.py +3033 -0
  110. polyfile/kaitai/parsers/mach_o_fat.py +92 -0
  111. polyfile/kaitai/parsers/magicavoxel_vox.py +391 -0
  112. polyfile/kaitai/parsers/manifest.json +1 -0
  113. polyfile/kaitai/parsers/mbr_partition_table.py +119 -0
  114. polyfile/kaitai/parsers/mcap.py +1015 -0
  115. polyfile/kaitai/parsers/microsoft_cfb.py +293 -0
  116. polyfile/kaitai/parsers/microsoft_network_monitor_v2.py +309 -0
  117. polyfile/kaitai/parsers/microsoft_pe.py +765 -0
  118. polyfile/kaitai/parsers/mifare_classic.py +706 -0
  119. polyfile/kaitai/parsers/minecraft_nbt.py +449 -0
  120. polyfile/kaitai/parsers/monomakh_sapr_chg.py +69 -0
  121. polyfile/kaitai/parsers/mozilla_mar.py +239 -0
  122. polyfile/kaitai/parsers/mp4.py +333 -0
  123. polyfile/kaitai/parsers/msgpack.py +467 -0
  124. polyfile/kaitai/parsers/nitf.py +1189 -0
  125. polyfile/kaitai/parsers/nt_mdt_pal.py +155 -0
  126. polyfile/kaitai/parsers/ogg.py +118 -0
  127. polyfile/kaitai/parsers/openpgp_message.py +993 -0
  128. polyfile/kaitai/parsers/packet_ppi.py +515 -0
  129. polyfile/kaitai/parsers/pcap.py +344 -0
  130. polyfile/kaitai/parsers/pcf_font.py +506 -0
  131. polyfile/kaitai/parsers/pcx.py +195 -0
  132. polyfile/kaitai/parsers/pcx_dcx.py +79 -0
  133. polyfile/kaitai/parsers/phar_without_stub.py +399 -0
  134. polyfile/kaitai/parsers/php_serialized_value.py +505 -0
  135. polyfile/kaitai/parsers/png.py +721 -0
  136. polyfile/kaitai/parsers/protocol_body.py +260 -0
  137. polyfile/kaitai/parsers/psx_tim.py +104 -0
  138. polyfile/kaitai/parsers/python_pickle.py +718 -0
  139. polyfile/kaitai/parsers/python_pyc_27.py +510 -0
  140. polyfile/kaitai/parsers/quake_mdl.py +441 -0
  141. polyfile/kaitai/parsers/quake_pak.py +112 -0
  142. polyfile/kaitai/parsers/quicktime_mov.py +634 -0
  143. polyfile/kaitai/parsers/rar.py +265 -0
  144. polyfile/kaitai/parsers/regf.py +569 -0
  145. polyfile/kaitai/parsers/renderware_binary_stream.py +877 -0
  146. polyfile/kaitai/parsers/resource_fork.py +611 -0
  147. polyfile/kaitai/parsers/respack.py +57 -0
  148. polyfile/kaitai/parsers/riff.py +409 -0
  149. polyfile/kaitai/parsers/rpm.py +964 -0
  150. polyfile/kaitai/parsers/rtcp_payload.py +579 -0
  151. polyfile/kaitai/parsers/rtp_packet.py +150 -0
  152. polyfile/kaitai/parsers/rtpdump.py +115 -0
  153. polyfile/kaitai/parsers/ruby_marshal.py +423 -0
  154. polyfile/kaitai/parsers/s3m.py +493 -0
  155. polyfile/kaitai/parsers/saints_row_2_vpp_pc.py +254 -0
  156. polyfile/kaitai/parsers/shapefile_index.py +174 -0
  157. polyfile/kaitai/parsers/shapefile_main.py +893 -0
  158. polyfile/kaitai/parsers/some_ip.py +209 -0
  159. polyfile/kaitai/parsers/some_ip_container.py +37 -0
  160. polyfile/kaitai/parsers/some_ip_sd.py +86 -0
  161. polyfile/kaitai/parsers/some_ip_sd_entries.py +160 -0
  162. polyfile/kaitai/parsers/some_ip_sd_options.py +374 -0
  163. polyfile/kaitai/parsers/specpr.py +404 -0
  164. polyfile/kaitai/parsers/sqlite3.py +472 -0
  165. polyfile/kaitai/parsers/ssh_public_key.py +252 -0
  166. polyfile/kaitai/parsers/standard_midi_file.py +390 -0
  167. polyfile/kaitai/parsers/stl.py +111 -0
  168. polyfile/kaitai/parsers/sudoers_ts.py +201 -0
  169. polyfile/kaitai/parsers/swf.py +406 -0
  170. polyfile/kaitai/parsers/systemd_journal.py +361 -0
  171. polyfile/kaitai/parsers/tcp_segment.py +57 -0
  172. polyfile/kaitai/parsers/tga.py +213 -0
  173. polyfile/kaitai/parsers/tls_client_hello.py +293 -0
  174. polyfile/kaitai/parsers/tr_dos_image.py +322 -0
  175. polyfile/kaitai/parsers/tsm.py +198 -0
  176. polyfile/kaitai/parsers/ttf.py +1847 -0
  177. polyfile/kaitai/parsers/udp_datagram.py +42 -0
  178. polyfile/kaitai/parsers/uefi_te.py +236 -0
  179. polyfile/kaitai/parsers/uimage.py +198 -0
  180. polyfile/kaitai/parsers/utf8_string.py +137 -0
  181. polyfile/kaitai/parsers/vfat.py +410 -0
  182. polyfile/kaitai/parsers/vlq_base128_be.py +104 -0
  183. polyfile/kaitai/parsers/vlq_base128_le.py +129 -0
  184. polyfile/kaitai/parsers/vmware_vmdk.py +167 -0
  185. polyfile/kaitai/parsers/vp8_ivf.py +112 -0
  186. polyfile/kaitai/parsers/warcraft_2_pud.py +423 -0
  187. polyfile/kaitai/parsers/wav.py +1014 -0
  188. polyfile/kaitai/parsers/websocket.py +167 -0
  189. polyfile/kaitai/parsers/windows_evt_log.py +304 -0
  190. polyfile/kaitai/parsers/windows_lnk_file.py +467 -0
  191. polyfile/kaitai/parsers/windows_minidump.py +575 -0
  192. polyfile/kaitai/parsers/windows_resource_file.py +243 -0
  193. polyfile/kaitai/parsers/windows_shell_items.py +190 -0
  194. polyfile/kaitai/parsers/windows_systemtime.py +52 -0
  195. polyfile/kaitai/parsers/wmf.py +502 -0
  196. polyfile/kaitai/parsers/xar.py +181 -0
  197. polyfile/kaitai/parsers/xwd.py +189 -0
  198. polyfile/kaitai/parsers/zip.py +685 -0
  199. polyfile/kaitai/parsers/zisofs.py +158 -0
  200. polyfile/kaitai/parsers/zx_spectrum_tap.py +184 -0
  201. polyfile/kaitaimatcher.py +113 -0
  202. polyfile/languagematcher.py +217 -0
  203. polyfile/logger.py +135 -0
  204. polyfile/magic.py +2983 -0
  205. polyfile/magic_defs/COPYING +29 -0
  206. polyfile/magic_defs/__init__.py +0 -0
  207. polyfile/magic_defs/acorn +102 -0
  208. polyfile/magic_defs/adi +13 -0
  209. polyfile/magic_defs/adventure +122 -0
  210. polyfile/magic_defs/aes +29 -0
  211. polyfile/magic_defs/algol68 +35 -0
  212. polyfile/magic_defs/allegro +9 -0
  213. polyfile/magic_defs/alliant +18 -0
  214. polyfile/magic_defs/alpha +32 -0
  215. polyfile/magic_defs/amanda +12 -0
  216. polyfile/magic_defs/amigaos +218 -0
  217. polyfile/magic_defs/android +259 -0
  218. polyfile/magic_defs/animation +1197 -0
  219. polyfile/magic_defs/aout +46 -0
  220. polyfile/magic_defs/apache +28 -0
  221. polyfile/magic_defs/apl +7 -0
  222. polyfile/magic_defs/apple +773 -0
  223. polyfile/magic_defs/application +7 -0
  224. polyfile/magic_defs/applix +13 -0
  225. polyfile/magic_defs/apt +52 -0
  226. polyfile/magic_defs/archive +2586 -0
  227. polyfile/magic_defs/aria +38 -0
  228. polyfile/magic_defs/arm +50 -0
  229. polyfile/magic_defs/asf +132 -0
  230. polyfile/magic_defs/assembler +18 -0
  231. polyfile/magic_defs/asterix +18 -0
  232. polyfile/magic_defs/att3b +41 -0
  233. polyfile/magic_defs/audio +1291 -0
  234. polyfile/magic_defs/avm +33 -0
  235. polyfile/magic_defs/basis +18 -0
  236. polyfile/magic_defs/beetle +7 -0
  237. polyfile/magic_defs/ber +65 -0
  238. polyfile/magic_defs/bflt +14 -0
  239. polyfile/magic_defs/bhl +10 -0
  240. polyfile/magic_defs/bioinformatics +178 -0
  241. polyfile/magic_defs/biosig +154 -0
  242. polyfile/magic_defs/blackberry +8 -0
  243. polyfile/magic_defs/blcr +25 -0
  244. polyfile/magic_defs/blender +50 -0
  245. polyfile/magic_defs/blit +24 -0
  246. polyfile/magic_defs/bm +10 -0
  247. polyfile/magic_defs/bout +11 -0
  248. polyfile/magic_defs/bsdi +33 -0
  249. polyfile/magic_defs/bsi +10 -0
  250. polyfile/magic_defs/btsnoop +13 -0
  251. polyfile/magic_defs/burp +7 -0
  252. polyfile/magic_defs/bytecode +41 -0
  253. polyfile/magic_defs/c-lang +110 -0
  254. polyfile/magic_defs/c64 +531 -0
  255. polyfile/magic_defs/cad +437 -0
  256. polyfile/magic_defs/cafebabe +107 -0
  257. polyfile/magic_defs/cbor +21 -0
  258. polyfile/magic_defs/ccf +14 -0
  259. polyfile/magic_defs/cddb +12 -0
  260. polyfile/magic_defs/chord +15 -0
  261. polyfile/magic_defs/cisco +12 -0
  262. polyfile/magic_defs/citrus +12 -0
  263. polyfile/magic_defs/clarion +27 -0
  264. polyfile/magic_defs/claris +48 -0
  265. polyfile/magic_defs/clipper +65 -0
  266. polyfile/magic_defs/clojure +30 -0
  267. polyfile/magic_defs/coff +98 -0
  268. polyfile/magic_defs/commands +201 -0
  269. polyfile/magic_defs/communications +22 -0
  270. polyfile/magic_defs/compress +461 -0
  271. polyfile/magic_defs/console +1213 -0
  272. polyfile/magic_defs/convex +69 -0
  273. polyfile/magic_defs/coverage +91 -0
  274. polyfile/magic_defs/cracklib +14 -0
  275. polyfile/magic_defs/crypto +31 -0
  276. polyfile/magic_defs/csv +8 -0
  277. polyfile/magic_defs/ctags +6 -0
  278. polyfile/magic_defs/ctf +23 -0
  279. polyfile/magic_defs/cubemap +8 -0
  280. polyfile/magic_defs/cups +56 -0
  281. polyfile/magic_defs/dact +11 -0
  282. polyfile/magic_defs/database +886 -0
  283. polyfile/magic_defs/dataone +47 -0
  284. polyfile/magic_defs/dbpf +15 -0
  285. polyfile/magic_defs/der +146 -0
  286. polyfile/magic_defs/diamond +12 -0
  287. polyfile/magic_defs/dif +33 -0
  288. polyfile/magic_defs/diff +41 -0
  289. polyfile/magic_defs/digital +59 -0
  290. polyfile/magic_defs/dolby +69 -0
  291. polyfile/magic_defs/dsf +25 -0
  292. polyfile/magic_defs/dump +96 -0
  293. polyfile/magic_defs/dwarfs +45 -0
  294. polyfile/magic_defs/dyadic +61 -0
  295. polyfile/magic_defs/ebml +8 -0
  296. polyfile/magic_defs/edid +11 -0
  297. polyfile/magic_defs/editors +43 -0
  298. polyfile/magic_defs/efi +15 -0
  299. polyfile/magic_defs/elf +379 -0
  300. polyfile/magic_defs/encore +22 -0
  301. polyfile/magic_defs/epoc +62 -0
  302. polyfile/magic_defs/erlang +21 -0
  303. polyfile/magic_defs/espressif +57 -0
  304. polyfile/magic_defs/esri +28 -0
  305. polyfile/magic_defs/etf +33 -0
  306. polyfile/magic_defs/fcs +9 -0
  307. polyfile/magic_defs/filesystems +2694 -0
  308. polyfile/magic_defs/finger +16 -0
  309. polyfile/magic_defs/firmware +133 -0
  310. polyfile/magic_defs/flash +62 -0
  311. polyfile/magic_defs/flif +36 -0
  312. polyfile/magic_defs/fonts +449 -0
  313. polyfile/magic_defs/forth +82 -0
  314. polyfile/magic_defs/fortran +9 -0
  315. polyfile/magic_defs/frame +62 -0
  316. polyfile/magic_defs/freebsd +164 -0
  317. polyfile/magic_defs/fsav +128 -0
  318. polyfile/magic_defs/fusecompress +12 -0
  319. polyfile/magic_defs/games +696 -0
  320. polyfile/magic_defs/gcc +17 -0
  321. polyfile/magic_defs/gconv +10 -0
  322. polyfile/magic_defs/gentoo +85 -0
  323. polyfile/magic_defs/geo +166 -0
  324. polyfile/magic_defs/geos +20 -0
  325. polyfile/magic_defs/gimp +77 -0
  326. polyfile/magic_defs/git +13 -0
  327. polyfile/magic_defs/glibc +21 -0
  328. polyfile/magic_defs/gnome +59 -0
  329. polyfile/magic_defs/gnu +173 -0
  330. polyfile/magic_defs/gnumeric +8 -0
  331. polyfile/magic_defs/gpt +240 -0
  332. polyfile/magic_defs/gpu +28 -0
  333. polyfile/magic_defs/grace +21 -0
  334. polyfile/magic_defs/graphviz +12 -0
  335. polyfile/magic_defs/gringotts +48 -0
  336. polyfile/magic_defs/guile +13 -0
  337. polyfile/magic_defs/hardware +12 -0
  338. polyfile/magic_defs/hitachi-sh +30 -0
  339. polyfile/magic_defs/hp +433 -0
  340. polyfile/magic_defs/human68k +26 -0
  341. polyfile/magic_defs/ibm370 +52 -0
  342. polyfile/magic_defs/ibm6000 +35 -0
  343. polyfile/magic_defs/icc +214 -0
  344. polyfile/magic_defs/iff +80 -0
  345. polyfile/magic_defs/images +4210 -0
  346. polyfile/magic_defs/inform +9 -0
  347. polyfile/magic_defs/intel +310 -0
  348. polyfile/magic_defs/interleaf +9 -0
  349. polyfile/magic_defs/island +10 -0
  350. polyfile/magic_defs/ispell +63 -0
  351. polyfile/magic_defs/isz +15 -0
  352. polyfile/magic_defs/java +52 -0
  353. polyfile/magic_defs/javascript +171 -0
  354. polyfile/magic_defs/jpeg +252 -0
  355. polyfile/magic_defs/json +8 -0
  356. polyfile/magic_defs/karma +9 -0
  357. polyfile/magic_defs/kde +11 -0
  358. polyfile/magic_defs/keepass +20 -0
  359. polyfile/magic_defs/kerberos +45 -0
  360. polyfile/magic_defs/kicad +85 -0
  361. polyfile/magic_defs/kml +34 -0
  362. polyfile/magic_defs/lammps +64 -0
  363. polyfile/magic_defs/lecter +6 -0
  364. polyfile/magic_defs/lex +12 -0
  365. polyfile/magic_defs/lif +50 -0
  366. polyfile/magic_defs/linux +557 -0
  367. polyfile/magic_defs/lisp +78 -0
  368. polyfile/magic_defs/llvm +22 -0
  369. polyfile/magic_defs/locoscript +12 -0
  370. polyfile/magic_defs/lua +31 -0
  371. polyfile/magic_defs/luks +126 -0
  372. polyfile/magic_defs/m4 +11 -0
  373. polyfile/magic_defs/mach +303 -0
  374. polyfile/magic_defs/macintosh +505 -0
  375. polyfile/magic_defs/macos +7 -0
  376. polyfile/magic_defs/magic +10 -0
  377. polyfile/magic_defs/magic.mgc +0 -0
  378. polyfile/magic_defs/mail.news +132 -0
  379. polyfile/magic_defs/make +21 -0
  380. polyfile/magic_defs/map +413 -0
  381. polyfile/magic_defs/maple +109 -0
  382. polyfile/magic_defs/marc21 +30 -0
  383. polyfile/magic_defs/mathcad +8 -0
  384. polyfile/magic_defs/mathematica +188 -0
  385. polyfile/magic_defs/matroska +17 -0
  386. polyfile/magic_defs/mcrypt +52 -0
  387. polyfile/magic_defs/measure +44 -0
  388. polyfile/magic_defs/mercurial +13 -0
  389. polyfile/magic_defs/metastore +8 -0
  390. polyfile/magic_defs/meteorological +53 -0
  391. polyfile/magic_defs/microfocus +21 -0
  392. polyfile/magic_defs/mime +9 -0
  393. polyfile/magic_defs/mips +120 -0
  394. polyfile/magic_defs/mirage +8 -0
  395. polyfile/magic_defs/misctools +140 -0
  396. polyfile/magic_defs/mkid +11 -0
  397. polyfile/magic_defs/mlssa +8 -0
  398. polyfile/magic_defs/mmdf +6 -0
  399. polyfile/magic_defs/modem +92 -0
  400. polyfile/magic_defs/modulefile +9 -0
  401. polyfile/magic_defs/motorola +71 -0
  402. polyfile/magic_defs/mozilla +37 -0
  403. polyfile/magic_defs/msdos +2304 -0
  404. polyfile/magic_defs/msooxml +68 -0
  405. polyfile/magic_defs/msvc +222 -0
  406. polyfile/magic_defs/msx +309 -0
  407. polyfile/magic_defs/mup +24 -0
  408. polyfile/magic_defs/music +17 -0
  409. polyfile/magic_defs/nasa +7 -0
  410. polyfile/magic_defs/natinst +24 -0
  411. polyfile/magic_defs/ncr +49 -0
  412. polyfile/magic_defs/neko +12 -0
  413. polyfile/magic_defs/netbsd +251 -0
  414. polyfile/magic_defs/netscape +26 -0
  415. polyfile/magic_defs/netware +11 -0
  416. polyfile/magic_defs/news +13 -0
  417. polyfile/magic_defs/nifty +202 -0
  418. polyfile/magic_defs/nim-lang +29 -0
  419. polyfile/magic_defs/nitpicker +14 -0
  420. polyfile/magic_defs/numpy +9 -0
  421. polyfile/magic_defs/oasis +12 -0
  422. polyfile/magic_defs/ocaml +14 -0
  423. polyfile/magic_defs/octave +6 -0
  424. polyfile/magic_defs/ole2compounddocs +760 -0
  425. polyfile/magic_defs/olf +98 -0
  426. polyfile/magic_defs/openfst +17 -0
  427. polyfile/magic_defs/opentimestamps +16 -0
  428. polyfile/magic_defs/oric +16 -0
  429. polyfile/magic_defs/os2 +186 -0
  430. polyfile/magic_defs/os400 +39 -0
  431. polyfile/magic_defs/os9 +80 -0
  432. polyfile/magic_defs/osf1 +10 -0
  433. polyfile/magic_defs/palm +156 -0
  434. polyfile/magic_defs/parix +13 -0
  435. polyfile/magic_defs/parrot +22 -0
  436. polyfile/magic_defs/pascal +39 -0
  437. polyfile/magic_defs/pbf +11 -0
  438. polyfile/magic_defs/pbm +8 -0
  439. polyfile/magic_defs/pc88 +24 -0
  440. polyfile/magic_defs/pc98 +77 -0
  441. polyfile/magic_defs/pci_ids +116 -0
  442. polyfile/magic_defs/pcjr +8 -0
  443. polyfile/magic_defs/pdf +51 -0
  444. polyfile/magic_defs/pdp +42 -0
  445. polyfile/magic_defs/perl +100 -0
  446. polyfile/magic_defs/pgf +52 -0
  447. polyfile/magic_defs/pgp +581 -0
  448. polyfile/magic_defs/pgp-binary-keys +388 -0
  449. polyfile/magic_defs/pkgadd +7 -0
  450. polyfile/magic_defs/plan9 +25 -0
  451. polyfile/magic_defs/playdate +57 -0
  452. polyfile/magic_defs/plus5 +18 -0
  453. polyfile/magic_defs/pmem +46 -0
  454. polyfile/magic_defs/polyfile_zip +5 -0
  455. polyfile/magic_defs/polyml +23 -0
  456. polyfile/magic_defs/printer +269 -0
  457. polyfile/magic_defs/project +10 -0
  458. polyfile/magic_defs/psdbms +14 -0
  459. polyfile/magic_defs/psl +14 -0
  460. polyfile/magic_defs/pulsar +13 -0
  461. polyfile/magic_defs/puzzle +17 -0
  462. polyfile/magic_defs/pwsafe +14 -0
  463. polyfile/magic_defs/pyramid +12 -0
  464. polyfile/magic_defs/python +305 -0
  465. polyfile/magic_defs/qt +30 -0
  466. polyfile/magic_defs/revision +66 -0
  467. polyfile/magic_defs/riff +840 -0
  468. polyfile/magic_defs/rinex +44 -0
  469. polyfile/magic_defs/ringdove +45 -0
  470. polyfile/magic_defs/rpi +52 -0
  471. polyfile/magic_defs/rpm +45 -0
  472. polyfile/magic_defs/rpmsg +7 -0
  473. polyfile/magic_defs/rst +11 -0
  474. polyfile/magic_defs/rtf +94 -0
  475. polyfile/magic_defs/ruby +55 -0
  476. polyfile/magic_defs/rust +21 -0
  477. polyfile/magic_defs/sc +7 -0
  478. polyfile/magic_defs/sccs +24 -0
  479. polyfile/magic_defs/scientific +144 -0
  480. polyfile/magic_defs/securitycerts +6 -0
  481. polyfile/magic_defs/selinux +24 -0
  482. polyfile/magic_defs/sendmail +37 -0
  483. polyfile/magic_defs/sequent +42 -0
  484. polyfile/magic_defs/sereal +35 -0
  485. polyfile/magic_defs/sgi +144 -0
  486. polyfile/magic_defs/sgml +161 -0
  487. polyfile/magic_defs/sharc +23 -0
  488. polyfile/magic_defs/sinclair +40 -0
  489. polyfile/magic_defs/sisu +18 -0
  490. polyfile/magic_defs/sketch +6 -0
  491. polyfile/magic_defs/smalltalk +25 -0
  492. polyfile/magic_defs/smile +34 -0
  493. polyfile/magic_defs/sniffer +482 -0
  494. polyfile/magic_defs/softquad +40 -0
  495. polyfile/magic_defs/sosi +40 -0
  496. polyfile/magic_defs/spec +21 -0
  497. polyfile/magic_defs/spectrum +184 -0
  498. polyfile/magic_defs/sql +288 -0
  499. polyfile/magic_defs/ssh +39 -0
  500. polyfile/magic_defs/ssl +20 -0
  501. polyfile/magic_defs/statistics +45 -0
  502. polyfile/magic_defs/subtitle +38 -0
  503. polyfile/magic_defs/sun +141 -0
  504. polyfile/magic_defs/svf +5 -0
  505. polyfile/magic_defs/sylk +36 -0
  506. polyfile/magic_defs/symbos +42 -0
  507. polyfile/magic_defs/sysex +429 -0
  508. polyfile/magic_defs/tcl +29 -0
  509. polyfile/magic_defs/teapot +6 -0
  510. polyfile/magic_defs/terminfo +63 -0
  511. polyfile/magic_defs/tex +141 -0
  512. polyfile/magic_defs/tgif +7 -0
  513. polyfile/magic_defs/ti-8x +239 -0
  514. polyfile/magic_defs/timezone +42 -0
  515. polyfile/magic_defs/tplink +95 -0
  516. polyfile/magic_defs/troff +38 -0
  517. polyfile/magic_defs/tuxedo +8 -0
  518. polyfile/magic_defs/typeset +8 -0
  519. polyfile/magic_defs/uf2 +72 -0
  520. polyfile/magic_defs/unicode +15 -0
  521. polyfile/magic_defs/unisig +12 -0
  522. polyfile/magic_defs/unknown +34 -0
  523. polyfile/magic_defs/usd +21 -0
  524. polyfile/magic_defs/uterus +16 -0
  525. polyfile/magic_defs/uuencode +28 -0
  526. polyfile/magic_defs/vacuum-cleaner +54 -0
  527. polyfile/magic_defs/varied.out +46 -0
  528. polyfile/magic_defs/varied.script +21 -0
  529. polyfile/magic_defs/vax +32 -0
  530. polyfile/magic_defs/vicar +17 -0
  531. polyfile/magic_defs/virtual +307 -0
  532. polyfile/magic_defs/virtutech +12 -0
  533. polyfile/magic_defs/visx +32 -0
  534. polyfile/magic_defs/vms +30 -0
  535. polyfile/magic_defs/vmware +6 -0
  536. polyfile/magic_defs/vorbis +155 -0
  537. polyfile/magic_defs/vxl +14 -0
  538. polyfile/magic_defs/warc +16 -0
  539. polyfile/magic_defs/weak +16 -0
  540. polyfile/magic_defs/web +18 -0
  541. polyfile/magic_defs/webassembly +17 -0
  542. polyfile/magic_defs/windows +1811 -0
  543. polyfile/magic_defs/wireless +7 -0
  544. polyfile/magic_defs/wordprocessors +630 -0
  545. polyfile/magic_defs/wsdl +23 -0
  546. polyfile/magic_defs/x68000 +25 -0
  547. polyfile/magic_defs/xdelta +13 -0
  548. polyfile/magic_defs/xenix +106 -0
  549. polyfile/magic_defs/xilinx +58 -0
  550. polyfile/magic_defs/xo65 +37 -0
  551. polyfile/magic_defs/xwindows +43 -0
  552. polyfile/magic_defs/yara +17 -0
  553. polyfile/magic_defs/zfs +96 -0
  554. polyfile/magic_defs/zilog +12 -0
  555. polyfile/magic_defs/zip +126 -0
  556. polyfile/magic_defs/zyxel +17 -0
  557. polyfile/nes.py +144 -0
  558. polyfile/nitf.py +15 -0
  559. polyfile/pdf.py +1264 -0
  560. polyfile/pickles.py +45 -0
  561. polyfile/polyfile.py +409 -0
  562. polyfile/profiling.py +115 -0
  563. polyfile/repl.py +624 -0
  564. polyfile/search.py +310 -0
  565. polyfile/serialization.py +323 -0
  566. polyfile/structmatcher.py +46 -0
  567. polyfile/structs.py +281 -0
  568. polyfile/templates/download.js +162 -0
  569. polyfile/templates/hexdump.css +268 -0
  570. polyfile/templates/hexdump.js +756 -0
  571. polyfile/templates/jquery-3.4.1.min.js +2 -0
  572. polyfile/templates/template.html +119 -0
  573. polyfile/wildcards.py +62 -0
  574. polyfile/zipmatcher.py +183 -0
  575. polyfile_weave-0.5.5.dist-info/METADATA +173 -0
  576. polyfile_weave-0.5.5.dist-info/RECORD +585 -0
  577. polyfile_weave-0.5.5.dist-info/WHEEL +5 -0
  578. polyfile_weave-0.5.5.dist-info/entry_points.txt +2 -0
  579. polyfile_weave-0.5.5.dist-info/licenses/LICENSE +202 -0
  580. polyfile_weave-0.5.5.dist-info/top_level.txt +2 -0
  581. polymerge/__init__.py +1 -0
  582. polymerge/__main__.py +296 -0
  583. polymerge/cfg.py +127 -0
  584. polymerge/polymerge.py +227 -0
  585. polymerge/polytracker.py +190 -0
@@ -0,0 +1,307 @@
1
+
2
+ #------------------------------------------------------------------------------
3
+ # $File: virtual,v 1.17 2022/08/23 08:00:54 christos Exp $
4
+ # From: James Nobis <quel@quelrod.net>
5
+ # Microsoft hard disk images for:
6
+ # Virtual Server
7
+ # Virtual PC
8
+ # VirtualBox
9
+ # URL: http://fileformats.archiveteam.org/wiki/VHD_(Virtual_Hard_Disk)
10
+ # Reference: https://download.microsoft.com/download/f/f/e/ffef50a5-07dd-4cf8-aaa3-442c0673a029/
11
+ # Virtual%20Hard%20Disk%20Format%20Spec_10_18_06.doc
12
+ 0 string conectix Microsoft Disk Image, Virtual Server or Virtual PC
13
+ # alternative shorter names
14
+ #0 string conectix Microsoft Virtual Hard Disk image
15
+ #0 string conectix Microsoft Virtual HD image
16
+ !:mime application/x-virtualbox-vhd
17
+ !:ext vhd
18
+ # Features is a bit field used to indicate specific feature support
19
+ #>8 ubelong !0x00000002 \b, Features %#x
20
+ # Reserved. This bit must always be set to 1.
21
+ #>8 ubelong &0x00000002 \b, Reserved %#x
22
+ # File Format Version for the current specification 0x00010000
23
+ #>12 ubelong !0x00010000 \b, Version %#8.8x
24
+ # Data Offset only found 0x200
25
+ #>16 ubequad !0x200 \b, Data Offset %#llx
26
+ #>16 ubequad x \b, at %#llx
27
+ # Dynamic Disk Header cookie like cxsparse
28
+ #>(16.Q) string x "%-.8s"
29
+ # This field contains a Unicode string (UTF-16) of the parent hard disk filename
30
+ #>(16.Q+64) ubequad x \b, parent name %#llx
31
+ # Creator Application
32
+ # vpc~Microsoft Virtual PC, vs~Microsoft Virtual Server, vbox~VirtualBox, d2v~disk2vhd
33
+ >28 string x \b, Creator %-4.4s
34
+ # Creator Version: 0x00010000~Virtual Server 2004, 0x00050000~Virtual PC 2004
35
+ # holds the major/minor version of the application that created the image
36
+ >32 ubeshort x %x
37
+ >34 ubeshort x \b.%x
38
+ #>32 ubelong x \b, Version %#8.8x
39
+ # Creator Host OS: 0x5769326B~Windows (Wi2k), 0x4D616320~Macintosh (Mac)
40
+ >36 ubelong x (
41
+ >>36 ubelong 0x5769326B \bW2k
42
+ >>36 ubelong 0x4D616320 \bMac
43
+ >>36 default x \b0x
44
+ >>>36 ubelong x \b%8.8x
45
+ # creation Time in seconds since 1 Jan 2000 UTC~946684800 sec. since Unix Epoch
46
+ >24 bedate+946684800 x \b) %s
47
+ # Original Size
48
+ #>40 ubequad x \b, o.-Size %#llx
49
+ # Current Size is same as original size, but change when disk is expanded
50
+ #>48 ubequad x \b, Size %#llx
51
+ >48 ubequad x \b, %llu bytes
52
+ # Disk Geometry: cylinder, heads, and sectors/track for hard disk
53
+ #>56 ubeshort x \b, Cylinder %#x
54
+ >56 ubeshort x \b, CHS %u
55
+ # Heads
56
+ #>58 ubyte x \b, Heads %#x
57
+ >58 ubyte x \b/%u
58
+ # Sectors per track
59
+ #>59 ubyte x \b, Sectors %#x
60
+ >59 ubyte x \b/%u
61
+ # Disk Type: 3~Dynamic hard disk
62
+ >60 ubelong !0x3 \b, type %#x
63
+ # Checksum
64
+ #>64 ubelong x \b, cksum %#x
65
+ # universally unique identifier (UUID) to associate a parent with its differencing image
66
+ #>68 ubequad x \b, id %#16.16llx
67
+ #>76 ubequad x \b-%16.16llx
68
+ # Saved State: 1~Saved State
69
+ >84 ubyte !0 \b, State %#x
70
+ # Reserved 427 bytes with nils
71
+ #>85 ubequad !0 \b, Reserved %#16.16llx
72
+
73
+ # From: Joerg Jenderek
74
+ # URL: https://msdn.microsoft.com/en-us/library/mt740058.aspx
75
+ # Reference: https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/
76
+ # MS-VHDX/[MS-VHDX].pdf
77
+ # Note: extends the VHD format with new capabilities, such as a 16TB maximum size
78
+ # TODO: find and display values like virtual size, disk size, cluster_size, etc
79
+ # display id in GUID format
80
+ #
81
+ # VHDX_FILE_IDENTIFIER signature 0x656C696678646876
82
+ 0 string vhdxfile
83
+ # VHDX_HEADER signature. 1 header is stored at offset 64KB and the other at 128KB
84
+ >0x10000 string head Microsoft Disk Image eXtended
85
+ #>0x20000 string head \b, 2nd header
86
+ #!:mime application/x-virtualbox-vhdx
87
+ !:ext vhdx
88
+ # Creator[256] like "QEMU v3.0.0", "Microsoft Windows 6.3.9600.18512"
89
+ >>8 lestring16 x \b, by %.256s
90
+ # The Checksum field is a CRC-32C hash over the entire 4 KB structure
91
+ #>>0x10004 ulelong x \b, CRC %#x
92
+ # SequenceNumber
93
+ >>0x10008 ulequad x \b, sequence %#llx
94
+ # FileWriteGuid
95
+ #>>0x10010 ubequad x \b, file id %#llx
96
+ #>>>0x10018 ubequad x \b-%llx
97
+ # DataWriteGuid
98
+ #>>0x10020 ubequad x \b, data id %#llx
99
+ #>>>0x10028 ubequad x \b-%llx
100
+ # LogGuid. If this field is zero, then the log is empty or has no valid entries
101
+ >>0x10030 ubequad >0 \b, log id %#llx
102
+ >>>0x10038 ubequad x \b-%llx
103
+ # LogVersion. If not 0 there is a log to replay
104
+ >>0x10040 uleshort >0 \b, LogVersion %#x
105
+ # Version. This field must be set to 1
106
+ >>0x10042 uleshort !1 \b, Version %#x
107
+ # LogLength must be multiples of 1 MB
108
+ >>0x10044 ulelong/1048576 >1 \b, LogLength %u MB
109
+ # LogOffset (normally 0x100000 when log direct after header); multiples of 1 MB
110
+ >>0x10048 ulequad !0x100000 \b, LogOffset %#llx
111
+ # Log Entry Signature must be 0x65676F6C~loge
112
+ >>(0x10048.q) ulelong !0x65676F6C \b, NO Log Signature
113
+ >>(0x10048.q) ulelong =0x65676F6C \b; LOG
114
+ # Log Entry Checksum
115
+ #>>>(0x10048.q+4) ulelong x \b, Log CRC %#x
116
+ # Log Entry Length must be a multiple of 4 KB
117
+ >>>(0x10048.q+8) ulelong/1024 >4 \b, EntryLength %u KB
118
+ # Log Entry Tail must be a multiple of 4 KB
119
+ #>>>(0x10048.q+12) ulelong x \b, Tail %#x
120
+ # Log Entry SequenceNumber
121
+ #>>>(0x10048.q+16) ulequad x \b, # %#llx
122
+ # Log Entry DescriptorCount may be zero. only 4 bytes in other docs instead 8
123
+ #>>>(0x10048.q+24) ulelong x \b, DescriptorCount %#llx
124
+ # Log Entry Reserved must be set to 0
125
+ >>>(0x10048.q+28) ulelong !0 \b, Reserved %#x
126
+ # Log Entry LogGuid
127
+ #>>>(0x10048.q+32) ubequad x \b, Log id %#llx
128
+ #>>>(0x10048.q+40) ubequad x \b-%llx
129
+ # Log Entry FlushedFileOffset should VHDX size when entry is written.
130
+ #>>>(0x10048.q+48) ulequad x \b, FlushedFileOffset %llu
131
+ # Log Entry LastFileOffset
132
+ #>>>(0x10048.q+56) ulequad x \b, LastFileOffset %llu
133
+ # filling
134
+ #>>>(0x10048.q+64) ulequad >0 \b, filling %llx
135
+ # Reserved[4016]
136
+ #>>0x10050 ulequad >0 \b, Reserved %#llx
137
+ # VHDX_REGION_TABLE_HEADER Signature 0x69676572~regi at offset 192 KB and 256 KB
138
+ >0x30000 ulelong !0x69676572 \b, 1st region INVALID
139
+ >0x30000 ulelong =0x69676572 \b; region
140
+ # region Checksum. CRC-32C hash over the entire 64-KB table
141
+ #>>0x30004 ulelong x \b, CRC %#x
142
+ # The EntryCount specifies number of valid entries; Found 2; This must be =< 2047.
143
+ >>0x30008 ulelong x \b, %u entries
144
+ # reserved must be zero
145
+ #>>0x3000C ulelong !0 \b, RESERVED %#x
146
+ # Region Table Entry starts with identifier for the object. often BAT id
147
+ >>0x30010 use vhdx-id
148
+ # FileOffset
149
+ >>0x30020 ulequad x \b, at %#llx
150
+ # Length. Specifies the length of the object within the file
151
+ #>>0x30028 ulelong x \b, Length %#x
152
+ # 1 means region entry is required. if region not recognized, then REFUSE to load VHDX
153
+ >>0x3002C ulelong x \b, Required %u
154
+ # 2nd region entry often metadata id
155
+ >>0x30030 use vhdx-id
156
+ # 2nd entry FileOffset
157
+ >>0x30040 ulequad x \b, at %#llx
158
+ # 1 means region entry is required. if region not recognized, then REFUSE to load VHDX
159
+ >>0x3004C ulelong x \b, Required %u
160
+ # 2nd region
161
+ >>0x40000 ulelong !0x69676572 \b, 2nd region INVALID
162
+ # check in vhdx images for known id and show names instead hexadecimal
163
+ 0 name vhdx-id
164
+ # https://www.windowstricks.in/online-windows-guid-converter
165
+ # 2DC27766-F623-4200-9D64-115E9BFD4A08 BAT GUID
166
+ # 6677C22D23F600429D64115E9BFD4A08 BAT ID
167
+ >0 ubequad =0x6677C22D23F60042
168
+ >>8 ubequad =0x9D64115E9BFD4A08 \b, id BAT
169
+ # no BAT id
170
+ >>8 default x
171
+ >>>0 use vhdx-id-hex
172
+ # 8B7CA206-4790-4B9A-B8FE-575F050F886E Metadata region GUID
173
+ # 06A27C8B90479A4BB8FE575F050F886E Metadata region ID
174
+ >0 ubequad =0x06A27C8B90479A4B
175
+ >>8 ubequad =0xB8FE575F050F886E \b, id Metadata
176
+ # no Metadata id
177
+ >>8 default x
178
+ >>>0 use vhdx-id-hex
179
+ # 2FA54224-CD1B-4876-B211-5DBED83BF4B8 Virtual Disk Size GUID
180
+ # 2442A52F1BCD7648B2115DBED83BF4B8 Virtual Disk Size ID
181
+ # value "virtual size" can be verified by command `qemu-img info `
182
+ >0 ubequad =0x2442A52F1BCD7648
183
+ >>8 ubequad =0xB2115DBED83BF4B8 \b, id vsize
184
+ # no Virtual Disk Size ID
185
+ >>8 default x
186
+ >>>0 use vhdx-id-hex
187
+ # other ids
188
+ >0 default x
189
+ >>0 use vhdx-id-hex
190
+ # in vhdx images show id as hexadecimal
191
+ 0 name vhdx-id-hex
192
+ >0 ubequad x \b, ID %#16.16llx
193
+ >8 ubequad x \b-%16.16llx
194
+ #
195
+ # libvirt
196
+ # From: Philipp Hahn <hahn@univention.de>
197
+ 0 string LibvirtQemudSave Libvirt QEMU Suspend Image
198
+ >0x10 lelong x \b, version %u
199
+ >0x14 lelong x \b, XML length %u
200
+ >0x18 lelong 1 \b, running
201
+ >0x1c lelong 1 \b, compressed
202
+
203
+ 0 string LibvirtQemudPart Libvirt QEMU partial Suspend Image
204
+ # From: Alex Beregszaszi <alex@fsn.hu>
205
+ 0 string/b COWD VMWare3
206
+ >4 byte 3 disk image
207
+ >>32 lelong x (%d/
208
+ >>36 lelong x \b%d/
209
+ >>40 lelong x \b%d)
210
+ >4 byte 2 undoable disk image
211
+ >>32 string >\0 (%s)
212
+
213
+ 0 string/b VMDK VMware4 disk image
214
+ 0 string/b KDMV VMware4 disk image
215
+
216
+ #--------------------------------------------------------------------
217
+ # Qemu Emulator Images
218
+ # Lines written by Friedrich Schwittay (f.schwittay@yousable.de)
219
+ # Updated by Adam Buchbinder (adam.buchbinder@gmail.com)
220
+ # Made by reading sources, reading documentation, and doing trial and error
221
+ # on existing QCOW files
222
+ 0 string/b QFI\xFB QEMU QCOW Image
223
+ !:mime application/x-qemu-disk
224
+
225
+ # Uncomment the following line to display Magic (only used for debugging
226
+ # this magic number)
227
+ #>0 string/b x , Magic: %s
228
+
229
+ # There are currently 2 Versions: "1" and "2".
230
+ # https://www.gnome.org/~markmc/qcow-image-format-version-1.html
231
+ >4 belong x (v%d)
232
+
233
+ # Using the existence of the Backing File Offset to determine whether
234
+ # to read Backing File Information
235
+ >>12 belong >0 \b, has backing file (
236
+ # Note that this isn't a null-terminated string; the length is actually
237
+ # (16.L). Assuming a null-terminated string happens to work usually, but it
238
+ # may spew junk until it reaches a \0 in some cases.
239
+ >>>(12.L) string >\0 \bpath %s
240
+
241
+ # Modification time of the Backing File
242
+ # Really useful if you want to know if your backing
243
+ # file is still usable together with this image
244
+ >>>>20 bedate >0 \b, mtime %s)
245
+ >>>>20 default x \b)
246
+
247
+ # Size is stored in bytes in a big-endian u64.
248
+ >>24 bequad x \b, %lld bytes
249
+
250
+ # 1 for AES encryption, 0 for none.
251
+ >>36 belong 1 \b, AES-encrypted
252
+
253
+ # https://www.gnome.org/~markmc/qcow-image-format.html
254
+ >4 belong 2 (v2)
255
+ # Using the existence of the Backing File Offset to determine whether
256
+ # to read Backing File Information
257
+ >>8 bequad >0 \b, has backing file
258
+ # Note that this isn't a null-terminated string; the length is actually
259
+ # (16.L). Assuming a null-terminated string happens to work usually, but it
260
+ # may spew junk until it reaches a \0 in some cases. Also, since there's no
261
+ # .Q modifier, we just use the bottom four bytes as an offset. Note that if
262
+ # the file is over 4G, and the backing file path is stored after the first 4G,
263
+ # the wrong filename will be printed. (This should be (8.Q), when that syntax
264
+ # is introduced.)
265
+ >>>(12.L) string >\0 (path %s)
266
+ >>24 bequad x \b, %lld bytes
267
+ >>32 belong 1 \b, AES-encrypted
268
+
269
+ >4 belong 3 (v3)
270
+ # Using the existence of the Backing File Offset to determine whether
271
+ # to read Backing File Information
272
+ >>8 bequad >0 \b, has backing file
273
+ # Note that this isn't a null-terminated string; the length is actually
274
+ # (16.L). Assuming a null-terminated string happens to work usually, but it
275
+ # may spew junk until it reaches a \0 in some cases. Also, since there's no
276
+ # .Q modifier, we just use the bottom four bytes as an offset. Note that if
277
+ # the file is over 4G, and the backing file path is stored after the first 4G,
278
+ # the wrong filename will be printed. (This should be (8.Q), when that syntax
279
+ # is introduced.)
280
+ >>>(12.L) string >\0 (path %s)
281
+ >>24 bequad x \b, %lld bytes
282
+ >>32 belong 1 \b, AES-encrypted
283
+
284
+ >4 default x (unknown version)
285
+
286
+ 0 string/b QEVM QEMU suspend to disk image
287
+
288
+ # QEMU QED Image
289
+ # https://wiki.qemu.org/Features/QED/Specification
290
+ 0 string/b QED\0 QEMU QED Image
291
+
292
+ # VDI Image
293
+ # Sun xVM VirtualBox Disk Image
294
+ # From: Richard W.M. Jones <rich@annexia.org>
295
+ # VirtualBox Disk Image
296
+ 0x40 ulelong 0xbeda107f VirtualBox Disk Image
297
+ >0x44 uleshort >0 \b, major %u
298
+ >0x46 uleshort >0 \b, minor %u
299
+ >0 string >\0 (%s)
300
+ >368 lequad x \b, %lld bytes
301
+
302
+ 0 string/b Bochs\ Virtual\ HD\ Image Bochs disk image,
303
+ >32 string x type %s,
304
+ >48 string x subtype %s
305
+
306
+ 0 lelong 0x02468ace Bochs Sparse disk image
307
+
@@ -0,0 +1,12 @@
1
+
2
+ #------------------------------------------------------------------------------
3
+ # $File: virtutech,v 1.4 2009/09/19 16:28:13 christos Exp $
4
+ # Virtutech Compressed Random Access File Format
5
+ #
6
+ # From <gustav@virtutech.com>
7
+ 0 string \211\277\036\203 Virtutech CRAFF
8
+ >4 belong x v%d
9
+ >20 belong 0 uncompressed
10
+ >20 belong 1 bzipp2ed
11
+ >20 belong 2 gzipped
12
+ >24 belong 0 not clean
@@ -0,0 +1,32 @@
1
+
2
+ #------------------------------------------------------------------------------
3
+ # $File: visx,v 1.5 2009/09/19 16:28:13 christos Exp $
4
+ # visx: file(1) magic for Visx format files
5
+ #
6
+ 0 short 0x5555 VISX image file
7
+ >2 byte 0 (zero)
8
+ >2 byte 1 (unsigned char)
9
+ >2 byte 2 (short integer)
10
+ >2 byte 3 (float 32)
11
+ >2 byte 4 (float 64)
12
+ >2 byte 5 (signed char)
13
+ >2 byte 6 (bit-plane)
14
+ >2 byte 7 (classes)
15
+ >2 byte 8 (statistics)
16
+ >2 byte 10 (ascii text)
17
+ >2 byte 15 (image segments)
18
+ >2 byte 100 (image set)
19
+ >2 byte 101 (unsigned char vector)
20
+ >2 byte 102 (short integer vector)
21
+ >2 byte 103 (float 32 vector)
22
+ >2 byte 104 (float 64 vector)
23
+ >2 byte 105 (signed char vector)
24
+ >2 byte 106 (bit plane vector)
25
+ >2 byte 121 (feature vector)
26
+ >2 byte 122 (feature vector library)
27
+ >2 byte 124 (chain code)
28
+ >2 byte 126 (bit vector)
29
+ >2 byte 130 (graph)
30
+ >2 byte 131 (adjacency graph)
31
+ >2 byte 132 (adjacency graph library)
32
+ >2 string .VISIX (ascii text)
@@ -0,0 +1,30 @@
1
+
2
+ #------------------------------------------------------------------------------
3
+ # $File: vms,v 1.10 2017/03/17 21:35:28 christos Exp $
4
+ # vms: file(1) magic for VMS executables (experimental)
5
+ #
6
+ # VMS .exe formats, both VAX and AXP (Greg Roelofs, newt@uchicago.edu)
7
+
8
+ # GRR 950122: I'm just guessing on these, based on inspection of the headers
9
+ # of three executables each for Alpha and VAX architectures. The VAX files
10
+ # all had headers similar to this:
11
+ #
12
+ # 00000 b0 00 30 00 44 00 60 00 00 00 00 00 30 32 30 35 ..0.D.`.....0205
13
+ # 00010 01 01 00 00 ff ff ff ff ff ff ff ff 00 00 00 00 ................
14
+ #
15
+ 0 string \xb0\0\x30\0 VMS VAX executable
16
+ >44032 string PK\003\004 \b, Info-ZIP SFX archive v5.12 w/decryption
17
+ #
18
+ # The AXP files all looked like this, except that the byte at offset 0x22
19
+ # was 06 in some of them and 07 in others:
20
+ #
21
+ # 00000 03 00 00 00 00 00 00 00 ec 02 00 00 10 01 00 00 ................
22
+ # 00010 68 00 00 00 98 00 00 00 b8 00 00 00 00 00 00 00 h...............
23
+ # 00020 00 00 07 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
24
+ # 00030 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 ................
25
+ # 00040 00 00 00 00 ff ff ff ff ff ff ff ff 02 00 00 00 ................
26
+ #
27
+ # GRR this test is still too general as it catches example adressen.dbt
28
+ 0 belong 0x03000000
29
+ >8 ubelong 0xec020000 VMS Alpha executable
30
+ >>75264 string PK\003\004 \b, Info-ZIP SFX archive v5.12 w/decryption
@@ -0,0 +1,6 @@
1
+
2
+ #------------------------------------------------------------------------------
3
+ # $File: vmware,v 1.8 2017/03/17 21:35:28 christos Exp $
4
+ # VMware specific files (deducted from version 1.1 and log file entries)
5
+ # Anthon van der Neut (anthon@mnt.org)
6
+ 0 belong 0x4d52564e VMware nvram
@@ -0,0 +1,155 @@
1
+
2
+ #------------------------------------------------------------------------------
3
+ # $File: vorbis,v 1.26 2020/08/22 18:30:55 christos Exp $
4
+ # vorbis: file(1) magic for Ogg/Vorbis files
5
+ #
6
+ # From Felix von Leitner <leitner@fefe.de>
7
+ # Extended by Beni Cherniavsky <cben@crosswinds.net>
8
+ # Further extended by Greg Wooledge <greg@wooledge.org>
9
+ #
10
+ # Most (everything but the number of channels and bitrate) is commented
11
+ # out with `##' as it's not interesting to the average user. The most
12
+ # probable things advanced users would want to uncomment are probably
13
+ # the number of comments and the encoder version.
14
+ #
15
+ # FIXME: The first match has been made a search, so that it can skip
16
+ # over prepended ID3 tags. This will work for MIME type detection, but
17
+ # won't work for detecting other properties of the file (they all need
18
+ # to be made relative to the search). In any case, if the file has ID3
19
+ # tags, the ID3 information will be printed, not the Ogg information,
20
+ # so until that's fixed, this doesn't matter.
21
+ # FIXME[2]: Disable the above for now, since search assumes text mode.
22
+ #
23
+ # --- Ogg Framing ---
24
+ #0 search/1000 OggS Ogg data
25
+ 0 string OggS Ogg data
26
+ >4 byte !0 UNKNOWN REVISION %u
27
+ ##>4 byte 0 revision 0
28
+ >4 byte 0
29
+ ##>>14 lelong x (Serial %lX)
30
+ # non-Vorbis content: FLAC (Free Lossless Audio Codec, http://flac.sourceforge.net)
31
+ >>28 string \x7fFLAC \b, FLAC audio
32
+ # non-Vorbis content: Theora
33
+ !:mime audio/ogg
34
+ >>28 string \x80theora \b, Theora video
35
+ !:mime video/ogg
36
+ # non-Vorbis content: Kate
37
+ >>28 string \x80kate\0\0\0\0 \b, Kate (Karaoke and Text)
38
+ !:mime application/ogg
39
+ >>>37 ubyte x v%u
40
+ >>>38 ubyte x \b.%u,
41
+ >>>40 byte 0 utf8 encoding,
42
+ >>>40 byte !0 unknown character encoding,
43
+ >>>60 string >\0 language %s,
44
+ >>>60 string \0 no language set,
45
+ >>>76 string >\0 category %s
46
+ >>>76 string \0 no category set
47
+ # non-Vorbis content: Skeleton
48
+ >>28 string fishead\0 \b, Skeleton
49
+ !:mime video/ogg
50
+ >>>36 leshort x v%u
51
+ >>>40 leshort x \b.%u
52
+ # non-Vorbis content: Speex
53
+ >>28 string Speex\ \ \ \b, Speex audio
54
+ !:mime audio/ogg
55
+ # non-Vorbis content: OGM
56
+ >>28 string \x01video\0\0\0 \b, OGM video
57
+ !:mime video/ogg
58
+ >>>37 string/c div3 (DivX 3)
59
+ >>>37 string/c divx (DivX 4)
60
+ >>>37 string/c dx50 (DivX 5)
61
+ >>>37 string/c xvid (XviD)
62
+ # --- First vorbis packet - general header ---
63
+ >>28 string \x01vorbis \b, Vorbis audio,
64
+ !:mime audio/ogg
65
+ >>>35 lelong !0 UNKNOWN VERSION %u,
66
+ ##>>>35 lelong 0 version 0,
67
+ >>>35 lelong 0
68
+ >>>>39 ubyte 1 mono,
69
+ >>>>39 ubyte 2 stereo,
70
+ >>>>39 ubyte >2 %u channels,
71
+ >>>>40 lelong x %u Hz
72
+ # Minimal, nominal and maximal bitrates specified when encoding
73
+ >>>>48 string <\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff \b,
74
+ # The above tests if at least one of these is specified:
75
+ >>>>>52 lelong !-1
76
+ # Vorbis RC2 has a bug which puts -1000 in the min/max bitrate fields
77
+ # instead of -1.
78
+ # Vorbis 1.0 uses 0 instead of -1.
79
+ >>>>>>52 lelong !0
80
+ >>>>>>>52 lelong !-1000
81
+ >>>>>>>>52 lelong x <%u
82
+ >>>>>48 lelong !-1
83
+ >>>>>>48 lelong x ~%u
84
+ >>>>>44 lelong !-1
85
+ >>>>>>44 lelong !-1000
86
+ >>>>>>>44 lelong !0
87
+ >>>>>>>>44 lelong x >%u
88
+ >>>>>48 string <\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff bps
89
+ # -- Second vorbis header packet - the comments
90
+ # A kludge to read the vendor string. It's a counted string, not a
91
+ # zero-terminated one, so file(1) can't read it in a generic way.
92
+ # libVorbis is the only one existing currently, so I detect specifically
93
+ # it. The interesting value is the cvs date (8 digits decimal).
94
+ # Post-RC1 Ogg files have the second header packet (and thus the version)
95
+ # in a different place, so we must use an indirect offset.
96
+ >>>(84.b+85) string \x03vorbis
97
+ >>>>(84.b+96) string/c Xiphophorus\ libVorbis\ I \b, created by: Xiphophorus libVorbis I
98
+ >>>>>(84.b+120) string >00000000
99
+ # Map to beta version numbers:
100
+ >>>>>>(84.b+120) string <20000508 (<beta1, prepublic)
101
+ >>>>>>(84.b+120) string 20000508 (1.0 beta 1 or beta 2)
102
+ >>>>>>(84.b+120) string >20000508
103
+ >>>>>>>(84.b+120) string <20001031 (beta2-3)
104
+ >>>>>>(84.b+120) string 20001031 (1.0 beta 3)
105
+ >>>>>>(84.b+120) string >20001031
106
+ >>>>>>>(84.b+120) string <20010225 (beta3-4)
107
+ >>>>>>(84.b+120) string 20010225 (1.0 beta 4)
108
+ >>>>>>(84.b+120) string >20010225
109
+ >>>>>>>(84.b+120) string <20010615 (beta4-RC1)
110
+ >>>>>>(84.b+120) string 20010615 (1.0 RC1)
111
+ >>>>>>(84.b+120) string 20010813 (1.0 RC2)
112
+ >>>>>>(84.b+120) string 20010816 (RC2 - Garf tuned v1)
113
+ >>>>>>(84.b+120) string 20011014 (RC2 - Garf tuned v2)
114
+ >>>>>>(84.b+120) string 20011217 (1.0 RC3)
115
+ >>>>>>(84.b+120) string 20011231 (1.0 RC3)
116
+ # Some pre-1.0 CVS snapshots still had "Xiphphorus"...
117
+ >>>>>>(84.b+120) string >20011231 (pre-1.0 CVS)
118
+ # For the 1.0 release, Xiphophorus is replaced by Xiph.Org
119
+ >>>>(84.b+96) string/c Xiph.Org\ libVorbis\ I \b, created by: Xiph.Org libVorbis I
120
+ >>>>>(84.b+117) string >00000000
121
+ >>>>>>(84.b+117) string <20020717 (pre-1.0 CVS)
122
+ >>>>>>(84.b+117) string 20020717 (1.0)
123
+ >>>>>>(84.b+117) string 20030909 (1.0.1)
124
+ >>>>>>(84.b+117) string 20040629 (1.1.0 RC1)
125
+ >>>>>>(84.b+117) string 20050304 (1.1.2)
126
+ >>>>>>(84.b+117) string 20070622 (1.2.0)
127
+ >>>>>>(84.b+117) string 20090624 (1.2.2)
128
+ >>>>>>(84.b+117) string 20090709 (1.2.3)
129
+ >>>>>>(84.b+117) string 20100325 (1.3.1)
130
+ >>>>>>(84.b+117) string 20101101 (1.3.2)
131
+ >>>>>>(84.b+117) string 20120203 (1.3.3)
132
+ >>>>>>(84.b+117) string 20140122 (1.3.4)
133
+ >>>>>>(84.b+117) string 20150105 (1.3.5)
134
+
135
+ # non-Vorbis content: Opus https://tools.ietf.org/html/rfc7845#section-5
136
+ >>28 string OpusHead \b, Opus audio,
137
+ !:mime audio/ogg
138
+ >>>36 ubyte >0x0F UNKNOWN VERSION %u,
139
+ >>>36 ubyte&0x0F !0 version 0.%u,
140
+ >>>>46 ubyte >1
141
+ >>>>>46 ubyte !255 unknown channel mapping family %u,
142
+ >>>>>37 ubyte x %u channels
143
+ >>>>46 ubyte 0
144
+ >>>>>37 ubyte 1 mono
145
+ >>>>>37 ubyte 2 stereo
146
+ >>>>46 ubyte 1
147
+ >>>>>37 ubyte 1 mono
148
+ >>>>>37 ubyte 2 stereo
149
+ >>>>>37 ubyte 3 linear surround
150
+ >>>>>37 ubyte 4 quadraphonic
151
+ >>>>>37 ubyte 5 5.0 surround
152
+ >>>>>37 ubyte 6 5.1 surround
153
+ >>>>>37 ubyte 7 6.1 surround
154
+ >>>>>37 ubyte 8 7.1 surround
155
+ >>>>40 lelong !0 \b, %u Hz (Input Sample Rate)
@@ -0,0 +1,14 @@
1
+
2
+ #------------------------------------------------------------------------------
3
+ # $File: vxl,v 1.4 2009/09/19 16:28:13 christos Exp $
4
+ # VXL: file(1) magic for VXL binary IO data files
5
+ #
6
+ # from Ian Scott <scottim@sf.net>
7
+ #
8
+ # VXL is a collection of C++ libraries for Computer Vision.
9
+ # See the vsl chapter in the VXL Book for more info
10
+ # http://www.isbe.man.ac.uk/public_vxl_doc/books/vxl/book.html
11
+ # http:/vxl.sf.net
12
+
13
+ 2 lelong 0x472b2c4e VXL data file,
14
+ >0 leshort >0 schema version no %d
@@ -0,0 +1,16 @@
1
+
2
+ #------------------------------------------------------------------------------
3
+ # $File: warc,v 1.4 2019/04/19 00:42:27 christos Exp $
4
+ # warc: file(1) magic for WARC files
5
+
6
+ 0 string WARC/ WARC Archive
7
+ >5 string x version %.4s
8
+ !:mime application/warc
9
+
10
+ #------------------------------------------------------------------------------
11
+ # Arc File Format from Internet Archive
12
+ # see https://www.archive.org/web/researcher/ArcFileFormat.php
13
+ 0 string filedesc:// Internet Archive File
14
+ !:mime application/x-ia-arc
15
+ >11 search/256 \x0A \b
16
+ >>&0 ubyte >0 \b version %c
@@ -0,0 +1,16 @@
1
+
2
+ #------------------------------------------------------------------------------
3
+ # weak: file(1) magic for very weak magic entries, disabled by default
4
+ #
5
+ # These entries are so weak that they might interfere identification of
6
+ # other formats. Example include:
7
+ # - Only identify for 1 or 2 bytes
8
+ # - Match against very wide range of values
9
+ # - Match against generic word in some spoken languages (e.g. English)
10
+
11
+ # Summary: Computer Graphics Metafile
12
+ # Extension: .cgm
13
+ #0 beshort&0xffe0 0x0020 binary Computer Graphics Metafile
14
+ #0 beshort 0x3020 character Computer Graphics Metafile
15
+
16
+ #0 string =!! Bennet Yee's "face" format
@@ -0,0 +1,18 @@
1
+
2
+ #------------------------------------------------------------------------------
3
+ # $File: web,v 1.2 2022/10/29 16:02:37 christos Exp $
4
+
5
+ # http://www.rdfhdt.org/
6
+ # From Christoph Biedl
7
+ # http://www.rdfhdt.org/hdt-internals/
8
+ # https://github.com/rdfhdt/hdt-cpp
9
+
10
+ 0 string $HDT\x01 HDT file (binary compressed indexed RDF triples) type 1
11
+ !:mime application/vnd.hdt
12
+ !:ext hdt
13
+
14
+ 0 string [Adblock\040Plus Adblock Plus
15
+ >&1 regex [0-9.]+ %s
16
+ >1 string x rules file
17
+ >10 search/100 Version:
18
+ >>&1 regex [0-9]+ \b, version %s
@@ -0,0 +1,17 @@
1
+ #------------------------------------------------------------------------------
2
+ # $File: webassembly,v 1.4 2022/08/16 11:16:39 christos Exp $
3
+ # webassembly: file(1) magic for WebAssembly modules
4
+ #
5
+ # WebAssembly is a virtual architecture developed by a W3C Community
6
+ # Group at https://webassembly.org/. The file extension is .wasm, and
7
+ # the MIME type is application/wasm.
8
+ #
9
+ # https://webassembly.org/docs/binary-encoding/ is the main
10
+ # document describing the binary format.
11
+ # From: Pip Cet <pipcet@gmail.com> and Joel Martin
12
+
13
+ 0 string \0asm WebAssembly (wasm) binary module
14
+ >4 lelong =1 version %#x (MVP)
15
+ !:mime application/wasm
16
+ !:ext wasm
17
+ >4 lelong >1 version %#x