ReverseBox 0.49.2__tar.gz → 0.49.4__tar.gz

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.
Files changed (123) hide show
  1. {reversebox-0.49.2 → reversebox-0.49.4}/PKG-INFO +1 -1
  2. {reversebox-0.49.2 → reversebox-0.49.4}/ReverseBox.egg-info/PKG-INFO +1 -1
  3. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/compression/compression_refpack.py +9 -1
  4. reversebox-0.49.4/reversebox/hash/hash_djb2.py +38 -0
  5. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/image/decoders/compressed_decoder_encoder.py +2 -1
  6. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/image/decoders/pvrtexlib_decoder_encoder.py +2 -1
  7. {reversebox-0.49.2 → reversebox-0.49.4}/setup.py +1 -1
  8. reversebox-0.49.2/reversebox/hash/hash_djb2.py +0 -27
  9. {reversebox-0.49.2 → reversebox-0.49.4}/LICENSE +0 -0
  10. {reversebox-0.49.2 → reversebox-0.49.4}/README.md +0 -0
  11. {reversebox-0.49.2 → reversebox-0.49.4}/ReverseBox.egg-info/SOURCES.txt +0 -0
  12. {reversebox-0.49.2 → reversebox-0.49.4}/ReverseBox.egg-info/dependency_links.txt +0 -0
  13. {reversebox-0.49.2 → reversebox-0.49.4}/ReverseBox.egg-info/requires.txt +0 -0
  14. {reversebox-0.49.2 → reversebox-0.49.4}/ReverseBox.egg-info/top_level.txt +0 -0
  15. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/__init__.py +0 -0
  16. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/checksum/__init__.py +0 -0
  17. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/checksum/checksum_adler32.py +0 -0
  18. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/checksum/checksum_cocos2d_pvr.py +0 -0
  19. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/checksum/checksum_fletcher16.py +0 -0
  20. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/checksum/checksum_fletcher32.py +0 -0
  21. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/checksum/checksum_internet_ipv4_header.py +0 -0
  22. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/checksum/checksum_sum8.py +0 -0
  23. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/checksum/checksum_sum8_2s_complement.py +0 -0
  24. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/checksum/checksum_unix_sum_bsd16.py +0 -0
  25. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/checksum/checksum_unix_sum_sysv.py +0 -0
  26. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/checksum/checksum_xor8.py +0 -0
  27. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/common/__init__.py +0 -0
  28. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/common/common.py +0 -0
  29. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/common/logger.py +0 -0
  30. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/common/numpy_helper_functions.py +0 -0
  31. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/compression/__init__.py +0 -0
  32. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/compression/compression_jcalg1.py +0 -0
  33. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/compression/compression_lz4.py +0 -0
  34. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/compression/compression_lzo.py +0 -0
  35. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/compression/compression_mio0.py +0 -0
  36. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/compression/compression_re_tiyoruga_dat.py +0 -0
  37. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/compression/compression_zlib.py +0 -0
  38. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/crc/__init__.py +0 -0
  39. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/crc/crc16_arc.py +0 -0
  40. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/crc/crc16_ccitt.py +0 -0
  41. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/crc/crc16_dnp.py +0 -0
  42. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/crc/crc16_ea_crcf.py +0 -0
  43. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/crc/crc16_kermit.py +0 -0
  44. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/crc/crc16_modbus.py +0 -0
  45. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/crc/crc16_sick.py +0 -0
  46. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/crc/crc32_asobo.py +0 -0
  47. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/crc/crc32_iso_hdlc.py +0 -0
  48. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/crc/crc64_asobo.py +0 -0
  49. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/crc/crc64_go_iso.py +0 -0
  50. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/crc/crc8.py +0 -0
  51. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/crc/crc_unix_cksum.py +0 -0
  52. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/encryption/__init__.py +0 -0
  53. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/encryption/encryption_hatch_engine.py +0 -0
  54. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/encryption/encryption_rot13.py +0 -0
  55. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/encryption/encryption_xor_basic.py +0 -0
  56. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/encryption/encryption_xor_basic_key_guesser.py +0 -0
  57. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/encryption/encryption_xor_gianas_return_zda.py +0 -0
  58. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/encryption/encryption_xor_retro64_eco.py +0 -0
  59. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/hash/__init__.py +0 -0
  60. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/hash/hash_additive.py +0 -0
  61. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/hash/hash_ap.py +0 -0
  62. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/hash/hash_fnv.py +0 -0
  63. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/hash/hash_jenkins_one_at_a_time.py +0 -0
  64. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/hash/hash_md2.py +0 -0
  65. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/hash/hash_md5.py +0 -0
  66. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/hash/hash_murmur3.py +0 -0
  67. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/hash/hash_pivotal_games_dat.py +0 -0
  68. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/hash/hash_sdbm.py +0 -0
  69. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/hash/hash_sha1.py +0 -0
  70. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/hash/hash_sha2.py +0 -0
  71. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/image/__init__.py +0 -0
  72. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/image/byte_swap.py +0 -0
  73. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/image/common.py +0 -0
  74. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/image/compression/__init__.py +0 -0
  75. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/image/compression/compression_gst.py +0 -0
  76. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/image/compression/compression_lzw.py +0 -0
  77. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/image/compression/compression_packbits.py +0 -0
  78. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/image/compression/compression_rle_executioners.py +0 -0
  79. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/image/compression/compression_rle_tga.py +0 -0
  80. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/image/compression/compression_zlib.py +0 -0
  81. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/image/decoders/__init__.py +0 -0
  82. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/image/decoders/bumpmap_decoder.py +0 -0
  83. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/image/decoders/gst_decoder_encoder.py +0 -0
  84. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/image/decoders/n64_decoder.py +0 -0
  85. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/image/decoders/yuv_decoder.py +0 -0
  86. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/image/file_formats/__init__.py +0 -0
  87. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/image/file_formats/image_dds.py +0 -0
  88. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/image/image_decoder.py +0 -0
  89. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/image/image_encoder.py +0 -0
  90. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/image/image_formats.py +0 -0
  91. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/image/palettes/__init__.py +0 -0
  92. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/image/palettes/palette_random.py +0 -0
  93. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/image/palettes/palette_vga.py +0 -0
  94. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/image/pillow_wrapper.py +0 -0
  95. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/image/swizzling/__init__.py +0 -0
  96. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/image/swizzling/swizzle_3ds.py +0 -0
  97. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/image/swizzling/swizzle_bc.py +0 -0
  98. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/image/swizzling/swizzle_cmpr.py +0 -0
  99. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/image/swizzling/swizzle_gamecube.py +0 -0
  100. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/image/swizzling/swizzle_gst.py +0 -0
  101. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/image/swizzling/swizzle_morton.py +0 -0
  102. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/image/swizzling/swizzle_morton_ps4.py +0 -0
  103. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/image/swizzling/swizzle_ps2.py +0 -0
  104. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/image/swizzling/swizzle_ps2_4bit.py +0 -0
  105. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/image/swizzling/swizzle_ps2_suba.py +0 -0
  106. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/image/swizzling/swizzle_psp.py +0 -0
  107. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/image/swizzling/swizzle_psvita_dreamcast.py +0 -0
  108. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/image/swizzling/swizzle_switch.py +0 -0
  109. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/image/swizzling/swizzle_wii_u.py +0 -0
  110. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/image/swizzling/swizzle_x360.py +0 -0
  111. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/io_files/__init__.py +0 -0
  112. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/io_files/bytes_handler.py +0 -0
  113. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/io_files/bytes_helper_functions.py +0 -0
  114. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/io_files/check_file.py +0 -0
  115. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/io_files/file_handler.py +0 -0
  116. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/io_files/mod_handler.py +0 -0
  117. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/io_files/translation_text_handler.py +0 -0
  118. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/libs/DirectXTex.dll +0 -0
  119. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/libs/PVRTexLib.dll +0 -0
  120. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/libs/PVRTexLibWrapper.dll +0 -0
  121. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/libs/__init__.py +0 -0
  122. {reversebox-0.49.2 → reversebox-0.49.4}/reversebox/libs/refpack.dll +0 -0
  123. {reversebox-0.49.2 → reversebox-0.49.4}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ReverseBox
3
- Version: 0.49.2
3
+ Version: 0.49.4
4
4
  Summary: A set of functions useful in reverse engineering.
5
5
  Home-page: https://github.com/bartlomiejduda/ReverseBox
6
6
  Author: Bartlomiej Duda
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ReverseBox
3
- Version: 0.49.2
3
+ Version: 0.49.4
4
4
  Summary: A set of functions useful in reverse engineering.
5
5
  Home-page: https://github.com/bartlomiejduda/ReverseBox
6
6
  Author: Bartlomiej Duda
@@ -1,9 +1,10 @@
1
1
  """
2
- Copyright © 2024 Bartłomiej Duda
2
+ Copyright © 2024-2025 Bartłomiej Duda
3
3
  License: GPL-3.0 License
4
4
  """
5
5
 
6
6
  import ctypes
7
+ import faulthandler
7
8
  from ctypes import c_char
8
9
 
9
10
  from reversebox.common.common import get_dll_path
@@ -12,6 +13,13 @@ from reversebox.common.common import get_dll_path
12
13
 
13
14
 
14
15
  class RefpackHandler:
16
+ """
17
+ Compressor/Decompressor for EA Refpack algorithm
18
+ """
19
+
20
+ def __init__(self):
21
+ faulthandler.enable()
22
+
15
23
  def compress_data(self, uncompressed_data: bytes) -> bytes:
16
24
  if len(uncompressed_data) == 0:
17
25
  raise Exception("Data is empty! Nothing to compress!")
@@ -0,0 +1,38 @@
1
+ """
2
+ Copyright © 2024-2025 Bartłomiej Duda
3
+ License: GPL-3.0 License
4
+ """
5
+
6
+
7
+ # Bernstein's DJB2 hash
8
+ # used in EA BIG VIV EB archives to calculate hash from file paths
9
+ # used in VFS archives from "Room of Prey" Android games
10
+ class DJB2Handler:
11
+ def __init__(self):
12
+ pass
13
+
14
+ @staticmethod
15
+ def calculate_djb2_hash_from_string(input_string: str, hash_size: int = 8) -> int:
16
+ h = 5381
17
+ if hash_size == 8:
18
+ m = 0xFFFFFFFFFFFFFFFF
19
+ elif hash_size == 4:
20
+ m = 0xFFFFFFFF
21
+ else:
22
+ raise Exception("Not supported hash size!")
23
+ for c in input_string:
24
+ h = (((h * 33) & m) + ord(c)) & m
25
+ return h & m
26
+
27
+ @staticmethod
28
+ def calculate_djb2_hash_from_bytes(input_bytes: bytes, hash_size: int = 8) -> int:
29
+ h = 5381
30
+ if hash_size == 8:
31
+ m = 0xFFFFFFFFFFFFFFFF
32
+ elif hash_size == 4:
33
+ m = 0xFFFFFFFF
34
+ else:
35
+ raise Exception("Not supported hash size!")
36
+ for b in input_bytes:
37
+ h = (((h * 33) & m) + b) & m
38
+ return h & m
@@ -4,6 +4,7 @@ License: GPL-3.0 License
4
4
  """
5
5
 
6
6
  import ctypes
7
+ import faulthandler
7
8
  from ctypes import (
8
9
  POINTER,
9
10
  Structure,
@@ -46,7 +47,7 @@ class CompressedImageDecoderEncoder:
46
47
  """
47
48
 
48
49
  def __init__(self):
49
- pass
50
+ faulthandler.enable()
50
51
 
51
52
  def _init_dxgi_image(self, img_width: int, img_height: int, format_number: int,
52
53
  row_pitch: int, slice_pitch: int, image_data: bytes) -> DXGIImage:
@@ -4,6 +4,7 @@ License: GPL-3.0 License
4
4
  """
5
5
 
6
6
  import ctypes
7
+ import faulthandler
7
8
  from ctypes import POINTER, c_int, c_uint8, cast, create_string_buffer
8
9
 
9
10
  from reversebox.common.common import get_dll_path
@@ -87,7 +88,7 @@ class PvrTexlibImageDecoderEncoder:
87
88
  """
88
89
 
89
90
  def __init__(self):
90
- pass
91
+ faulthandler.enable()
91
92
 
92
93
  def _get_pvrtexlib_format_number(self, image_format: ImageFormats) -> int:
93
94
  """
@@ -8,7 +8,7 @@ from typing import Final
8
8
 
9
9
  import setuptools
10
10
 
11
- VERSION_NUM: Final[str] = "0.49.2"
11
+ VERSION_NUM: Final[str] = "0.49.4"
12
12
 
13
13
 
14
14
  def get_long_description() -> str:
@@ -1,27 +0,0 @@
1
- """
2
- Copyright © 2024-2025 Bartłomiej Duda
3
- License: GPL-3.0 License
4
- """
5
-
6
-
7
- # Bernstein's DJB2 hash
8
- # used in EA BIG VIV EB archives to calculate hash from file paths
9
- class DJB2Handler:
10
- def __init__(self):
11
- pass
12
-
13
- @staticmethod
14
- def calculate_djb2_hash_from_string(input_string: str) -> int:
15
- h = 5381
16
- m = 0xFFFFFFFFFFFFFFFF
17
- for c in input_string:
18
- h = (((h * 33) & m) + ord(c)) & m
19
- return h & m
20
-
21
- @staticmethod
22
- def calculate_djb2_hash_from_bytes(input_bytes: bytes) -> int:
23
- h = 5381
24
- m = 0xFFFFFFFFFFFFFFFF
25
- for b in input_bytes:
26
- h = (((h * 33) & m) + b) & m
27
- return h & m
File without changes
File without changes
File without changes