Pinging master @l_oliveira
Is this version of SC2 dumped?
![]()
![]()
@El_israyeah its been taken off till I find out if its requiers dumping or someone on this forum needs it for reverse engineering!
I'm currently in the process of reverse engineering it.yeah its been taken off till I find out if its requiers dumping or someone on this forum needs it for reverse engineering!
Cool, so no need for me to dump it? you already it, right?I'm currently in the process of reverse engineering it.
In fact it wouldn't because each card dump is encrypted with per card keys. It will be useful after encryption is defeated so keep it safe for now. It's exactly because the encryption key is unique per card we don't know how to decrypt it and copying data from one card to another does not work.Hello everyone. as some of you may know. I've began analyzing the SoulCalibur 2 conquest cards with the intention of replicating them as well as fixing damaged ones (and maybe other things in the future)
For investigation purposes. I need as much dumps as possible. so if you own both a conquest card and a PS3 mc adapter (Sorry! current lack of information at the moment keeps me scared enough to not even try making a dumper that works from a console. so for now, let's keep it at ps3 adapter dumps)
Another detail, I'm not only after the dump, but also from some data of the card...
The...
- El_isra
- conquest card soul calibur ii soulcalibur2 system246 system256
- Replies: 42
- Forum: Namco System 246/256
I would suspect that multiple dumps would benefit the RE effort.
so what information from the card do we need to help defeat encryption?In fact it wouldn't because each card dump is encrypted with per card keys. It will be useful after encryption is defeated so keep it safe for now. It's exactly because the encryption key is unique per card we don't know how to decrypt it and copying data from one card to another does not work.
For now, not much.so what information from the card do we need to help defeat encryption?
I haven't delved too much into the games behavior when reading game data, some games expect specific responses from specific commands, maybe that's it...@El_isra, do you know why Fate/unlimited Codes can be run from a CF card, but most other games can not?
psxmemcard we will peek at thatHow do I determine the hexadecimal cut address of an hdd.img file?My script finally finished crunching through all of the HDD images so here is the byte position of the last non 0x00 or 0xFF byte for each HDD game:
![]()
the recommended drive size in the last column is just me picking the next largest standard drive size above the last used byte position.
you can check the work by opening the .img file in the HxD application and then going to the byte offset specified.
I wrote a python script that found the last non 00 byte in a file.How do I determine the hexadecimal cut address of an hdd.img file?
so far this script is working well. and I'm glad I'm taking this approach.
For instance Zoids Infinity NM00016 M9006212A, Ver.2.06J (HDD).img
size on disc reports as 288 MB and looking in HxD around that point it appears the rest of the drive is 0x00
however using this script it found that there's actually data hiding around 986.93 MB so while at first glance it might seem a 512MB drive would work, you really need 1GB plus.
it's very slow, but there's only 15 HDD games and we only need to do this one time, so I'll let this run in the background and report back once I have all of the sizes for the games.
so far I've also found that Battle Gear 3 and Battle Gear 3 tuned cannot be shrunk as they have data all the way at the end of the drive image, but at least they're 20GB and 30GB drives rather than 80GB like some other games.
also updated the script to include a status % so you know it's working and how far along it is:
Code:import os import sys def find_last_useful_byte(file_path, block_size=64 * 1024 * 1024): # 64MB try: file_size = os.path.getsize(file_path) except OSError as e: print(f"Error: {e}") return 0 with open(file_path, "rb") as f: offset = file_size total_blocks = (file_size + block_size - 1) // block_size block_num = 0 while offset > 0: block_num += 1 read_size = min(block_size, offset) offset -= read_size f.seek(offset) block = f.read(read_size) for i in reversed(range(len(block))): byte = block[i] if byte != 0x00 and byte != 0xFF: last_useful_offset = offset + i + 1 print(f"\nLast useful byte offset:") print(f" Decimal : {last_useful_offset}") print(f" Hex : 0x{last_useful_offset:X}") print(f"Size of useful data: {last_useful_offset / (1024*1024):.2f} MB") return last_useful_offset # Progress indicator percent_complete = 100.0 * (block_num / total_blocks) print(f"\rScanning: {percent_complete:.1f}% complete", end="", flush=True) print("\nNo useful data found (file is all 0x00 or 0xFF)") return 0 if __name__ == "__main__": if len(sys.argv) != 2: print("Usage: python find_last_useful_byte.py <filename>") sys.exit(1) filename = sys.argv[1] find_last_useful_byte(filename)