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,13 @@
1
+
2
+ #------------------------------------------------------------------------------
3
+ # $File: xdelta,v 1.5 2011/08/08 09:01:05 christos Exp $
4
+ # file(1) magic(5) data for xdelta Josh MacDonald <jmacd@CS.Berkeley.EDU>
5
+ #
6
+ 0 string %XDELTA% XDelta binary patch file 0.14
7
+ 0 string %XDZ000% XDelta binary patch file 0.18
8
+ 0 string %XDZ001% XDelta binary patch file 0.20
9
+ 0 string %XDZ002% XDelta binary patch file 1.0
10
+ 0 string %XDZ003% XDelta binary patch file 1.0.4
11
+ 0 string %XDZ004% XDelta binary patch file 1.1
12
+
13
+ 0 string \xD6\xC3\xC4\x00 VCDIFF binary diff
@@ -0,0 +1,106 @@
1
+
2
+ #------------------------------------------------------------------------------
3
+ # $File: xenix,v 1.15 2022/10/19 20:15:16 christos Exp $
4
+ # xenix: file(1) magic for Microsoft Xenix
5
+ #
6
+ # "Middle model" stuff, and "Xenix 8086 relocatable or 80286 small
7
+ # model" lifted from "magic.xenix", with comment "derived empirically;
8
+ # treat as folklore until proven"
9
+ #
10
+ # "small model", "large model", "huge model" stuff lifted from XXX
11
+ #
12
+ # XXX - "x.out" collides with PDP-11 archives
13
+ #
14
+ 0 string core core file (Xenix)
15
+ # URL: http://www.polarhome.com/service/man/?qf=86rel&tf=2&of=Xenix
16
+ # http://fileformats.archiveteam.org/wiki/OMF
17
+ # Reference: http://www.azillionmonkeys.com/qed/Omfg.pdf
18
+ # Update: Joerg Jenderek
19
+ # recordtype~TranslatorHEADerRecord
20
+ 0 byte 0x80
21
+ # GRR: line above is too general as it catches also Extensible storage engine DataBase,
22
+ # all lif files like forth.lif hpcc88.lif lex90b.lif ( See ./lif)
23
+ # and all compressed DEGAS low-res bitmaps like: MUNCHIE.PC1 PIDER1.PC1
24
+ # skip examples like GENA.SND Switch.Snd by looking for record length maximal 1024-3
25
+ >1 uleshort <1022
26
+ # skip examples like GAME.PICTURE Strange.Pic by looking for positive record length
27
+ >>1 uleshort >0
28
+ # skip examples like Xtable.Data FRACTAL.GEN SHR.VIEW by looking for positive string length
29
+ >>>3 ubyte >0
30
+ # skip examples like OMBRE.6 with "UUUUUU" name by looking for valid high second record type
31
+ >>>>(1.s+3) ubyte >0x6D
32
+ # skip few Atari DEGAS bitmap TPDEMO.PC2 RECIPE.PC2 with invalid "high" second record type FEh FFh
33
+ >>>>>(1.s+3) ubyte <0xF2 8086 relocatable (Microsoft)
34
+ #!:mime application/octet-stream
35
+ !:mime application/x-object
36
+ !:ext obj/o/a
37
+ # T-module name often source name like "hello.c" or "jmppm32.asm" in JMPPM32.OBJ or
38
+ # "kbhit" in KBHITS.OBJ or "CAUSEWAY_KERNAL" in CWAPI.OBJ
39
+ >>>>>>3 pstring x \b, "%s"
40
+ # data length probably lower 256 according to TrID obj_omf.trid.xml
41
+ >>>>>>1 uleshort x \b, 1st record data length %u
42
+ # checksum
43
+ #>>>>>>(3.b+4) ubyte x \b, checksum %#2.2x
44
+ # second recordtype: 96h~LNAMES 88h~COMENT 8CH~EXTDEF
45
+ # highest F1h~Library End Record
46
+ >>>>>>(1.s+3) ubyte x \b, 2nd record type %#x
47
+ >>>>>>(1.s+4) uleshort x \b, 2nd record data length %u
48
+ 0 leshort 0xff65 x.out
49
+ >2 string __.SYMDEF randomized
50
+ >0 byte x archive
51
+ 0 leshort 0x206 Microsoft a.out
52
+ >8 leshort 1 Middle model
53
+ >0x1e leshort &0x10 overlay
54
+ >0x1e leshort &0x2 separate
55
+ >0x1e leshort &0x4 pure
56
+ >0x1e leshort &0x800 segmented
57
+ >0x1e leshort &0x400 standalone
58
+ >0x1e leshort &0x8 fixed-stack
59
+ >0x1c byte &0x80 byte-swapped
60
+ >0x1c byte &0x40 word-swapped
61
+ >0x10 lelong >0 not-stripped
62
+ >0x1e leshort ^0xc000 pre-SysV
63
+ >0x1e leshort &0x4000 V2.3
64
+ >0x1e leshort &0x8000 V3.0
65
+ >0x1c byte &0x4 86
66
+ >0x1c byte &0xb 186
67
+ >0x1c byte &0x9 286
68
+ >0x1c byte &0xa 386
69
+ >0x1f byte <0x040 small model
70
+ >0x1f byte =0x048 large model
71
+ >0x1f byte =0x049 huge model
72
+ >0x1e leshort &0x1 executable
73
+ >0x1e leshort ^0x1 object file
74
+ >0x1e leshort &0x40 Large Text
75
+ >0x1e leshort &0x20 Large Data
76
+ >0x1e leshort &0x120 Huge Objects Enabled
77
+ >0x10 lelong >0 not stripped
78
+
79
+ 0 leshort 0x140 old Microsoft 8086 x.out
80
+ >0x3 byte &0x4 separate
81
+ >0x3 byte &0x2 pure
82
+ >0 byte &0x1 executable
83
+ >0 byte ^0x1 relocatable
84
+ >0x14 lelong >0 not stripped
85
+
86
+ 0 lelong 0x206 b.out
87
+ >0x1e leshort &0x10 overlay
88
+ >0x1e leshort &0x2 separate
89
+ >0x1e leshort &0x4 pure
90
+ >0x1e leshort &0x800 segmented
91
+ >0x1e leshort &0x400 standalone
92
+ >0x1e leshort &0x1 executable
93
+ >0x1e leshort ^0x1 object file
94
+ >0x1e leshort &0x4000 V2.3
95
+ >0x1e leshort &0x8000 V3.0
96
+ >0x1c byte &0x4 86
97
+ >0x1c byte &0xb 186
98
+ >0x1c byte &0x9 286
99
+ >0x1c byte &0x29 286
100
+ >0x1c byte &0xa 386
101
+ >0x1e leshort &0x4 Large Text
102
+ >0x1e leshort &0x2 Large Data
103
+ >0x1e leshort &0x102 Huge Objects Enabled
104
+
105
+ 0 leshort 0x580 XENIX 8086 relocatable or 80286 small model
106
+ # GRR: line above is too general as it catches also all 8086 relocatable (Microsoft) with 1st record data length 5 C0M.OBJ C0T.OBJ C0S.OBJ
@@ -0,0 +1,58 @@
1
+
2
+ #------------------------------------------------------------------------------
3
+ # $File: xilinx,v 1.10 2022/12/18 14:59:32 christos Exp $
4
+ # This is Aaron's attempt at a MAGIC file for Xilinx .bit files.
5
+ # Xilinx-Magic@RevRagnarok.com
6
+ # Got the info from FPGA-FAQ 0026
7
+ #
8
+ # Rewritten to use pstring/H instead of hardcoded lengths by O. Freyermuth,
9
+ # fixes at least reading of bitfiles from Spartan 2, 3, 6.
10
+ # http://www.fpga-faq.com/FAQ_Pages/0026_Tell_me_about_bit_files.htm
11
+ #
12
+ # First there is the sync header and its length
13
+ 0 beshort 0x0009
14
+ >2 belong =0x0ff00ff0
15
+ >>&0 belong =0x0ff00ff0
16
+ >>>&0 byte =0x00
17
+ >>>&1 beshort =0x0001
18
+ >>>&3 string a Xilinx BIT data
19
+ # Next is a Pascal-style string with the NCD name. We want to capture that.
20
+ >>>>&0 pstring/H x - from %s
21
+ # And then 'b'
22
+ >>>>>&1 string b
23
+ # Then the model / part number:
24
+ >>>>>>&0 pstring/H x - for %s
25
+ # Then 'c'
26
+ >>>>>>>&1 string c
27
+ # Then the build-date
28
+ >>>>>>>>&0 pstring/H x - built %s
29
+ # Then 'd'
30
+ >>>>>>>>>&1 string d
31
+ # Then the build-time
32
+ >>>>>>>>>>&0 pstring/H x \b(%s)
33
+ # Then 'e'
34
+ >>>>>>>>>>>&1 string e
35
+ # And length of data
36
+ >>>>>>>>>>>>&0 belong x - data length %#x
37
+
38
+ # Raw bitstream files
39
+ 0 long 0xffffffff
40
+ >&0 belong 0xaa995566 Xilinx RAW bitstream (.BIN)
41
+
42
+ # AXLF (xclbin) files used by AMD/Xilinx accelerators.
43
+ # The file format is defined by XRT source tree:
44
+ # https://github.com/Xilinx/XRT/blob/master/src/runtime_src/core/include/xclbin.h
45
+ # Display file size, creation date, accelerator shell name, xclbin uuid and
46
+ # number of sections.
47
+
48
+ 0 string xclbin2 AMD/Xilinx accelerator AXLF (xclbin) file
49
+ >0x130 lequad x \b, %lld bytes
50
+ >0x138 leqdate x \b, created %s
51
+ >0x160 string >0 \b, shell "%.64s"
52
+ >0x1a0 ubelong x \b, uuid %08x
53
+ >0x1a4 ubeshort x \b-%04x
54
+ >0x1a6 ubeshort x \b-%04x
55
+ >0x1a8 ubeshort x \b-%04x
56
+ >0x1aa ubelong x \b-%08x
57
+ >0x1ae ubeshort x \b%04x
58
+ >0x1c0 lelong x \b, %d sections
@@ -0,0 +1,37 @@
1
+
2
+ #------------------------------------------------------------------------------
3
+ # $File: xo65,v 1.5 2022/07/17 15:36:20 christos Exp $
4
+ # https://cc65.github.io/doc/sim65.html
5
+ # xo65 object files
6
+ # From: "Ullrich von Bassewitz" <uz@cc65.org>
7
+ #
8
+ 0 string \x55\x7A\x6E\x61 xo65 object,
9
+ >4 leshort x version %d,
10
+ >6 leshort&0x0001 =0x0001 with debug info
11
+ >6 leshort&0x0001 =0x0000 no debug info
12
+
13
+ # xo65 library files
14
+ 0 string \x6E\x61\x55\x7A xo65 library,
15
+ >4 leshort x version %d
16
+
17
+ # o65 object files
18
+ 0 string \x01\x00\x6F\x36\x35 o65
19
+ >6 leshort&0x1000 =0x0000 executable,
20
+ >6 leshort&0x1000 =0x1000 object,
21
+ >5 byte x version %d,
22
+ >6 leshort&0x8000 =0x8000 65816,
23
+ >6 leshort&0x8000 =0x0000 6502,
24
+ >6 leshort&0x2000 =0x2000 32 bit,
25
+ >6 leshort&0x2000 =0x0000 16 bit,
26
+ >6 leshort&0x4000 =0x4000 page reloc,
27
+ >6 leshort&0x4000 =0x0000 byte reloc,
28
+ >6 leshort&0x0003 =0x0000 alignment 1
29
+ >6 leshort&0x0003 =0x0001 alignment 2
30
+ >6 leshort&0x0003 =0x0002 alignment 4
31
+ >6 leshort&0x0003 =0x0003 alignment 256
32
+
33
+ # sim65 executable files
34
+ 0 string \x73\x69\x6d\x36\x35 sim65 executable,
35
+ >5 byte x version %d,
36
+ >6 leshort&0x0000 =0x0000 6502
37
+ >6 leshort&0x0001 =0x0001 65C02
@@ -0,0 +1,43 @@
1
+
2
+ #------------------------------------------------------------------------------
3
+ # $File: xwindows,v 1.13 2022/03/24 15:48:58 christos Exp $
4
+ # xwindows: file(1) magic for various X/Window system file formats.
5
+
6
+ # Compiled X Keymap
7
+ # XKM (compiled X keymap) files (including version and byte ordering)
8
+ 1 string mkx Compiled XKB Keymap: lsb,
9
+ >0 byte >0 version %d
10
+ >0 byte =0 obsolete
11
+ 0 string xkm Compiled XKB Keymap: msb,
12
+ >3 byte >0 version %d
13
+ >3 byte =0 obsolete
14
+
15
+ # xfsdump archive
16
+ 0 string xFSdump0 xfsdump archive
17
+ >8 belong x (version %d)
18
+
19
+ # Jaleo XFS files
20
+ 0 long 395726 Jaleo XFS file
21
+ >4 long x - version %d
22
+ >8 long x - [%d -
23
+ >20 long x \b%dx
24
+ >24 long x \b%dx
25
+ >28 long 1008 \bYUV422]
26
+ >28 long 1000 \bRGB24]
27
+
28
+ # Xcursor data
29
+ # X11 mouse cursor format defined in libXcursor, see
30
+ # https://www.x.org/archive/X11R6.8.1/doc/Xcursor.3.html
31
+ # https://cgit.freedesktop.org/xorg/lib/libXcursor/tree/include/X11/Xcursor/Xcursor.h
32
+ 0 string Xcur Xcursor data
33
+ !:mime image/x-xcursor
34
+ >10 leshort x version %d
35
+ >>8 leshort x \b.%d
36
+
37
+ # X bitmap https://en.wikipedia.org/wiki/X_BitMap
38
+ 0 search/2048 #define\040
39
+ >&0 regex [a-zA-Z0-9]+_width\040 xbm image
40
+ >>&0 regex [0-9]+ (%sx
41
+ >>>&0 string \n#define\040
42
+ >>>>&0 regex [a-zA-Z0-9]+_height\040
43
+ >>>>>&0 regex [0-9]+ \b%s)
@@ -0,0 +1,17 @@
1
+
2
+
3
+ #------------------------------------------------------------------------------
4
+ # $File: yara,v 1.4 2021/04/26 15:56:00 christos Exp $
5
+ # yara: file(1) magic for https://virustotal.github.io/yara/
6
+ #
7
+
8
+ 0 string YARA
9
+ >4 lelong >2047
10
+ >8 byte <20 YARA 3.x compiled rule set
11
+ # version
12
+ >>8 clear x
13
+ >>8 byte 6 created with version 3.3.0
14
+ >>8 byte 8 created with version 3.4.0
15
+ >>8 byte 11 created with version 3.5.0
16
+ >>8 default x
17
+ >>>8 byte x development version %#02x
@@ -0,0 +1,96 @@
1
+ #------------------------------------------------------------------------------
2
+ # zfs: file(1) magic for ZFS dumps
3
+ #
4
+ # From <rea-fbsd@codelabs.ru>
5
+ # ZFS dump header has the following structure (as per zfs_ioctl.h
6
+ # in FreeBSD with drr_type is set to DRR_BEGIN)
7
+ #
8
+ # enum {
9
+ # DRR_BEGIN, DRR_OBJECT, DRR_FREEOBJECTS,
10
+ # DRR_WRITE, DRR_FREE, DRR_END,
11
+ # } drr_type;
12
+ # uint32_t drr_pad;
13
+ # uint64_t drr_magic;
14
+ # uint64_t drr_version;
15
+ # uint64_t drr_creation_time;
16
+ # dmu_objset_type_t drr_type;
17
+ # uint32_t drr_pad;
18
+ # uint64_t drr_toguid;
19
+ # uint64_t drr_fromguid;
20
+ # char drr_toname[MAXNAMELEN];
21
+ #
22
+ # Backup magic is 0x00000002f5bacbac (quad word)
23
+ # The drr_type is defined as
24
+ # typedef enum dmu_objset_type {
25
+ # DMU_OST_NONE,
26
+ # DMU_OST_META,
27
+ # DMU_OST_ZFS,
28
+ # DMU_OST_ZVOL,
29
+ # DMU_OST_OTHER, /* For testing only! */
30
+ # DMU_OST_ANY, /* Be careful! */
31
+ # DMU_OST_NUMTYPES
32
+ # } dmu_objset_type_t;
33
+ #
34
+ # Almost all uint64_t fields are printed as the 32-bit ones (with high
35
+ # 32 bits zeroed), because there is no simple way to print them as the
36
+ # full 64-bit values.
37
+
38
+ # Big-endian values
39
+ 8 string \000\000\000\002\365\272\313\254 ZFS snapshot (big-endian machine),
40
+ >20 belong x version %u,
41
+ >32 belong 0 type: NONE,
42
+ >32 belong 1 type: META,
43
+ >32 belong 2 type: ZFS,
44
+ >32 belong 3 type: ZVOL,
45
+ >32 belong 4 type: OTHER,
46
+ >32 belong 5 type: ANY,
47
+ >32 belong >5 type: UNKNOWN (%u),
48
+ >40 byte x destination GUID: %02X
49
+ >41 byte x %02X
50
+ >42 byte x %02X
51
+ >43 byte x %02X
52
+ >44 byte x %02X
53
+ >45 byte x %02X
54
+ >46 byte x %02X
55
+ >47 byte x %02X,
56
+ >48 ulong >0
57
+ >>52 ulong >0
58
+ >>>48 byte x source GUID: %02X
59
+ >>>49 byte x %02X
60
+ >>>50 byte x %02X
61
+ >>>51 byte x %02X
62
+ >>>52 byte x %02X
63
+ >>>53 byte x %02X
64
+ >>>54 byte x %02X
65
+ >>>55 byte x %02X,
66
+ >56 string >\0 name: '%s'
67
+
68
+ # Little-endian values
69
+ 8 string \254\313\272\365\002\000\000\000 ZFS snapshot (little-endian machine),
70
+ >16 lelong x version %u,
71
+ >32 lelong 0 type: NONE,
72
+ >32 lelong 1 type: META,
73
+ >32 lelong 2 type: ZFS,
74
+ >32 lelong 3 type: ZVOL,
75
+ >32 lelong 4 type: OTHER,
76
+ >32 lelong 5 type: ANY,
77
+ >32 lelong >5 type: UNKNOWN (%u),
78
+ >47 byte x destination GUID: %02X
79
+ >46 byte x %02X
80
+ >45 byte x %02X
81
+ >44 byte x %02X
82
+ >43 byte x %02X
83
+ >42 byte x %02X
84
+ >41 byte x %02X
85
+ >40 byte x %02X,
86
+ >48 ulong >0
87
+ >>52 ulong >0
88
+ >>>55 byte x source GUID: %02X
89
+ >>>54 byte x %02X
90
+ >>>53 byte x %02X
91
+ >>>52 byte x %02X
92
+ >>>51 byte x %02X
93
+ >>>50 byte x %02X
94
+ >>>49 byte x %02X
95
+ >>>48 byte x %02X,
96
+ >56 string >\0 name: '%s'
@@ -0,0 +1,12 @@
1
+
2
+ #------------------------------------------------------------------------------
3
+ # $File: zilog,v 1.7 2009/09/19 16:28:13 christos Exp $
4
+ # zilog: file(1) magic for Zilog Z8000.
5
+ #
6
+ # Was it big-endian or little-endian? My Product Specification doesn't
7
+ # say.
8
+ #
9
+ 0 long 0xe807 object file (z8000 a.out)
10
+ 0 long 0xe808 pure object file (z8000 a.out)
11
+ 0 long 0xe809 separate object file (z8000 a.out)
12
+ 0 long 0xe805 overlay object file (z8000 a.out)
@@ -0,0 +1,126 @@
1
+ #------------------------------------------------------------------------------
2
+ # $File: zip,v 1.8 2021/10/24 15:53:56 christos Exp $
3
+ # zip: file(1) magic for zip files; this is not use
4
+ # Note the version of magic in archive is currently stronger, this is
5
+ # just an example until negative offsets are supported better
6
+ # Note: All fields unless otherwise noted are unsigned!
7
+
8
+ # Zip Central Directory record
9
+ 0 name zipcd
10
+ >0 string PK\001\002 Zip archive data
11
+ !:mime application/zip
12
+ # no "made by" in local file header with PK\3\4 magic
13
+ >>4 leshort x \b, made by
14
+ >>4 use zipversion
15
+ >>4 use ziphost
16
+ # inside ./archive 1.151 called "at least" zipversion "to extract"
17
+ >>6 leshort x \b, extract using at least
18
+ >>6 use zipversion
19
+ # This is DOS date like: ledate 21:00:48 19 Dec 2001 != DOS 00:00 1 Jan 2010 ~ 0000213C
20
+ >>12 ulelong x \b, last modified
21
+ >>14 lemsdosdate x \b, last modified %s
22
+ >>12 lemsdostime x %s
23
+ # uncompressed size of 1st entry; FFffFFff means real value stored in ZIP64 record
24
+ >>24 ulelong !0xFFffFFff \b, uncompressed size %u
25
+ # inside ./archive 1.151 called "compression method="zipcompression
26
+ >>10 leshort x \b, method=
27
+ >>10 use zipcompression
28
+
29
+ # URL: https://en.wikipedia.org/wiki/Zip_(file_format)
30
+ # reference: https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT (Version: 6.3.9)
31
+ # Zip known compressions
32
+ 0 name zipcompression
33
+ >0 leshort 0 \bstore
34
+ >0 leshort 1 \bShrinking
35
+ >0 leshort 6 \bImploding
36
+ >0 leshort 7 \bTokenizing
37
+ >0 leshort 8 \bdeflate
38
+ >0 leshort 9 \bdeflate64
39
+ >0 leshort 10 \bLibrary imploding
40
+ #>0 leshort 11 \bReserved by PKWARE
41
+ >0 leshort 12 \bbzip2
42
+ #>0 leshort 13 \bReserved by PKWARE
43
+ >0 leshort 14 \blzma
44
+ #>0 leshort 15 \bReserved by PKWARE
45
+ >0 leshort 16 \bCMPSC (IBM z/OS)
46
+ #>0 leshort 17 \bReserved by PKWARE
47
+ >0 leshort 18 \bIBM TERSE
48
+ >0 leshort 19 \bIBM LZ77 (z/Architecture)
49
+ >0 leshort 20 \bZstd (deprecated)
50
+ >0 leshort 93 \bZstd
51
+ >0 leshort 94 \bMP3
52
+ >0 leshort 95 \bxz
53
+ >0 leshort 96 \bJpeg
54
+ >0 leshort 97 \bWavPack
55
+ >0 leshort 98 \bPPMd
56
+ >0 leshort 99 \bAES Encrypted
57
+ >0 default x
58
+ >>0 leshort x \b[%#x]
59
+
60
+ # Zip known versions
61
+ 0 name zipversion
62
+ # The lower byte indicates the ZIP version of this file. The value/10 indicates
63
+ # the major version number, and the value mod 10 is the minor version number.
64
+ >0 ubyte/10 x v%u
65
+ >0 ubyte%10 x \b.%u
66
+ # >0 leshort 0x09 v0.9
67
+ # >0 leshort 0x0a v1.0
68
+ # >0 leshort 0x0b v1.1
69
+ # >0 leshort 0x14 v2.0
70
+ # >0 leshort 0x15 v2.1
71
+ # >0 leshort 0x19 v2.5
72
+ # >0 leshort 0x1b v2.7
73
+ # >0 leshort 0x2d v4.5
74
+ # >0 leshort 0x2e v4.6
75
+ # >0 leshort 0x32 v5.0
76
+ # >0 leshort 0x33 v5.1
77
+ # >0 leshort 0x34 v5.2
78
+ # >0 leshort 0x3d v6.1
79
+ # >0 leshort 0x3e v6.2
80
+ # >0 leshort 0x3f v6.3
81
+ # >0 default x
82
+ # >>0 leshort x v?[%#x]
83
+
84
+ # display compatible host system name of ZIP archive
85
+ 0 name ziphost
86
+ # The upper byte indicates the compatibility of the file attribute information.
87
+ # If the file is compatible with MS-DOS (v 2.04g) then this value will be zero.
88
+ #>1 ubyte 0 DOS
89
+ >1 ubyte 1 Amiga
90
+ >1 ubyte 2 OpenVMS
91
+ >1 ubyte 3 UNIX
92
+ >1 ubyte 4 VM/CMS
93
+ >1 ubyte 6 OS/2
94
+ >1 ubyte 7 Macintosh
95
+ >1 ubyte 11 MVS
96
+ >1 ubyte 13 Acorn Risc
97
+ >1 ubyte 16 BeOS
98
+ >1 ubyte 17 Tandem
99
+ # 9 untested
100
+ >1 ubyte 5 Atari ST
101
+ >1 ubyte 8 Z-System
102
+ >1 ubyte 9 CP/M
103
+ >1 ubyte 10 Windows NTFS
104
+ >1 ubyte 12 VSE
105
+ >1 ubyte 14 VFAT
106
+ >1 ubyte 15 alternate MVS
107
+ >1 ubyte 18 OS/400
108
+ >1 ubyte 19 OS X
109
+ # unused
110
+ #>1 ubyte >19 unused %#x
111
+
112
+ # Zip End Of Central Directory record
113
+ # GRR: wrong for ZIP with comment archive
114
+ -22 string PK\005\006
115
+ #>4 uleshort !0xFFff \b, %u disks
116
+ #>6 uleshort !0xFFff \b, central directory disk %u
117
+ #>8 uleshort !0xFFff \b, %u central directories on this disk
118
+ #>10 uleshort !0xFFff \b, %u central directories
119
+ #>12 ulelong !0xFFffFFff \b, %u central directory bytes
120
+ # offset of central directory
121
+ #>16 ulelong x \b, central directory offset %#x
122
+ >(16.l) use zipcd
123
+ # archive comment length n
124
+ #>>20 uleshort >0 \b, comment length %u
125
+ # archive comment
126
+ >>20 pstring/l >0 \b, %s
@@ -0,0 +1,17 @@
1
+
2
+ #------------------------------------------------------------------------------
3
+ # $File: zyxel,v 1.6 2009/09/19 16:28:13 christos Exp $
4
+ # zyxel: file(1) magic for ZyXEL modems
5
+ #
6
+ # From <rob@pe1chl.ampr.org>
7
+ # These are the /etc/magic entries to decode datafiles as used for the
8
+ # ZyXEL U-1496E DATA/FAX/VOICE modems. (This header conforms to a
9
+ # ZyXEL-defined standard)
10
+
11
+ 0 string ZyXEL\002 ZyXEL voice data
12
+ >10 byte 0 - CELP encoding
13
+ >10 byte&0x0B 1 - ADPCM2 encoding
14
+ >10 byte&0x0B 2 - ADPCM3 encoding
15
+ >10 byte&0x0B 3 - ADPCM4 encoding
16
+ >10 byte&0x0B 8 - New ADPCM3 encoding
17
+ >10 byte&0x04 4 with resync
polyfile/nes.py ADDED
@@ -0,0 +1,144 @@
1
+ import base64
2
+ from io import BytesIO
3
+
4
+ from PIL import Image, ImageDraw
5
+
6
+ from .polyfile import register_parser, InvalidMatch, Submatch
7
+
8
+
9
+ def parse_ines_header(header, parent=None):
10
+ magic = header[:4]
11
+ if magic != b'NES\x1A':
12
+ raise InvalidMatch(f"Expected \"NES\\x1A\" magic at the beginning of the file, but found {magic!r}")
13
+ parent = Submatch(
14
+ name='iNESHeader',
15
+ match_obj=header,
16
+ relative_offset=0,
17
+ length=16,
18
+ parent=parent
19
+ )
20
+ yield parent
21
+ yield Submatch(
22
+ name='iNESMagic',
23
+ match_obj="NES",
24
+ relative_offset=0,
25
+ length=4,
26
+ parent=parent
27
+ )
28
+ prg_size = header[4]
29
+ yield Submatch(
30
+ name='PRGSize',
31
+ match_obj=prg_size,
32
+ relative_offset=4,
33
+ length=1,
34
+ parent=parent
35
+ )
36
+ chr_size = header[5]
37
+ yield Submatch(
38
+ name='CHRSize',
39
+ match_obj=chr_size,
40
+ relative_offset=5,
41
+ length=1,
42
+ parent=parent
43
+ )
44
+ for i in range(6,8):
45
+ yield Submatch(
46
+ name='Flags',
47
+ display_name=f'Flags{i}',
48
+ match_obj=header[i],
49
+ relative_offset=i,
50
+ length=1,
51
+ parent=parent
52
+ )
53
+ yield Submatch(
54
+ name='PRGRAMSize',
55
+ match_obj=header[8],
56
+ relative_offset=8,
57
+ length=1,
58
+ parent=parent
59
+ )
60
+ for i in range(9,11):
61
+ yield Submatch(
62
+ name='Flags',
63
+ display_name=f'Flags{i}',
64
+ match_obj=header[i],
65
+ relative_offset=i,
66
+ length=1,
67
+ parent=parent
68
+ )
69
+ yield Submatch(
70
+ name='UnusedPadding',
71
+ match_obj=header[11:],
72
+ relative_offset=11,
73
+ length=5,
74
+ parent=parent
75
+ )
76
+
77
+
78
+ @register_parser("application/x-nes-rom")
79
+ def parse_ines(file_stream, parent):
80
+ header = file_stream.read(16)
81
+ yield from parse_ines_header(header, parent)
82
+ has_trainer = (header[6] & 0b100) != 0
83
+ if has_trainer:
84
+ yield Submatch(
85
+ name='Trainer',
86
+ match_obj=file_stream.read(512),
87
+ relative_offset=16,
88
+ length=512,
89
+ parent=parent
90
+ )
91
+ prg_size = header[4]
92
+ for i in range(prg_size):
93
+ offset = file_stream.tell()
94
+ file_stream.read(16384)
95
+ yield Submatch(
96
+ name='PRGBank',
97
+ display_name=f'PRGBank{i}',
98
+ match_obj='',
99
+ relative_offset=offset,
100
+ length=16384,
101
+ parent=parent
102
+ )
103
+ chr_size = header[5]
104
+ for i in range(chr_size):
105
+ offset = file_stream.tell()
106
+ chr_bytes = file_stream.read(8192)
107
+ chr_img = render_chr(chr_bytes)
108
+ with BytesIO() as img_data:
109
+ chr_img.save(img_data, "PNG")
110
+ yield Submatch(
111
+ name='CHRBank',
112
+ display_name=f'CHRBank{i}',
113
+ match_obj='',
114
+ relative_offset=offset,
115
+ length=8192,
116
+ parent=parent,
117
+ img_data=f"data:image/png;base64,{base64.b64encode(img_data.getvalue()).decode('utf-8')}"
118
+ )
119
+
120
+
121
+ def chr_values(chr_bytes: bytes):
122
+ for i, offset in enumerate(range(0, len(chr_bytes), 16)):
123
+ base_x = (i % 16) * 8
124
+ base_y = (i // 16) * 8
125
+ for y in range(8):
126
+ for x in range(8):
127
+ shift = 7 - x
128
+ yield base_x + x,\
129
+ base_y + y,\
130
+ ((((chr_bytes[offset + y + 8] >> shift) & 0b1)) << 1) | ((chr_bytes[offset + y] >> shift) & 0b1)
131
+
132
+
133
+ def render_chr(chr_bytes: bytes) -> Image:
134
+ img = Image.new(mode='L', size=(8*16, 8*32))
135
+ d = ImageDraw.Draw(img)
136
+ for x, y, pixel in chr_values(chr_bytes):
137
+ if pixel == 1:
138
+ pixel = 0xFF//3
139
+ elif pixel == 2:
140
+ pixel = 0xFF//3*2
141
+ elif pixel == 3:
142
+ pixel = 0xFF
143
+ d.point((x, y), pixel)
144
+ return img
polyfile/nitf.py ADDED
@@ -0,0 +1,15 @@
1
+ from pathlib import Path
2
+
3
+ from .fileutils import ExactNamedTempfile
4
+ from .magic import MagicMatcher, TestType
5
+
6
+ with ExactNamedTempfile(b"""# The default libmagic test for NITF does not associate a MIME type,
7
+ # and does not support NITF 02.10
8
+ 0 string NITF NITF
9
+ >4 string 02.10 \\ version 2.10 (ISO/IEC IS 12087-5)
10
+ >25 string >\\0 dated %.14s
11
+ !:mime application/vnd.nitf
12
+ !:ext ntf
13
+ """, name="NITFMatcher") as t:
14
+ nitf_matcher = MagicMatcher.DEFAULT_INSTANCE.add(Path(t), test_type=TestType.BINARY)[0]
15
+ assert nitf_matcher.test_type == TestType.BINARY