Struggling to decrypt
This commit is contained in:
parent
16a5e95777
commit
9d75699178
3 changed files with 139 additions and 10 deletions
|
|
@ -16,6 +16,61 @@
|
|||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
import os
|
||||
import gzip
|
||||
|
||||
ORDER = 'big'
|
||||
SECTOR = 2048
|
||||
|
||||
def bytes_to_int(byte):
|
||||
return int.from_bytes(byte, ORDER)
|
||||
|
||||
class IRD:
|
||||
|
||||
def is_compressed(self, fileobj):
|
||||
fileobj.seek(0)
|
||||
return fileobj.read(4) != b"3IRD"
|
||||
|
||||
def uncompress(self, filename):
|
||||
with gzip.open(filename, 'rb') as gzfile:
|
||||
with open('ird', 'wb') as outfile:
|
||||
outfile.write(gzfile.read())
|
||||
|
||||
def __init__(self, filename):
|
||||
with open(filename, 'rb') as fileobj:
|
||||
if self.is_compressed(fileobj):
|
||||
self.uncompress(filename)
|
||||
|
||||
self.size = os.stat('ird').st_size
|
||||
with open('ird', 'rb') as ird:
|
||||
self.magic_string = ird.read(4)
|
||||
self.version = bytes_to_int(ird.read(1))
|
||||
self.game_id = ird.read(9)
|
||||
self.game_name = ird.read(12)
|
||||
self.update_version = ird.read(4)
|
||||
self.game_version = ird.read(5)
|
||||
if self.version == 7:
|
||||
self.identifier = ird.read(4)
|
||||
self.header = ird.read(SECTOR*3)
|
||||
self.footer = ird.read(SECTOR)
|
||||
self.region_count = ird.read(1)
|
||||
|
||||
print(self.game_name, self.update_version, self.game_version, self.region_count)
|
||||
|
||||
ird.seek(self.size - (2 + 115 + 16 + 16))
|
||||
if self.version >= 9:
|
||||
self.pic = ird.read(115)
|
||||
self.data_one = ird.read(16)
|
||||
print(self.data_one.hex())
|
||||
self.data_two = ird.read(16)
|
||||
if self.version < 9:
|
||||
self.pic = ird.read(115)
|
||||
self.uid = ird.read(2)
|
||||
|
||||
print(self.uid)
|
||||
|
||||
if filename != 'ird':
|
||||
os.rm('ird')
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue