Parsing the property list was the most annoying part. I just subtract the export's offset on the way in, and add it on the way out.Originally posted by usaar33
Inio, very nice.
I take it that you were able to get around the texture problem? (when I wrote a patcher for s3 textures using DarkBytes obfuscator as a base, I ran into huge problems with those offsets).
I replace zz functions and variables with 2-byte non-ascii values. I found that if you don't give some things unique names it causes problems. I haven't done a exhaustive search for what situations names can be set to null strings.DB's strips xx functions and zz variables.
The reason for the CSHP4+ and UTPure size differences is do to changes in the stripping program. The stripper for 4+ used an EXE. The UTPure one used a commandlet, which turned out to be easier and more powerful (I have not yet seen the code).
It's a macintosh application (written in ANSI C++). If I release I'll cross-compile to an EXE.Speaking of which, is yours an EXE or a ucc commandlet?
I based my work on this document.As for dummy names, I was able to write something up with very limited program base. I won't go into details, but it is rather simple just reading some parts of the UTPT doc. I'd love to post a rip of CSHP I did
Actually, I'm talking about the decryption of the strings. One of the functions called indirectly by xxPreDecrypt (don't know it's name obviously) uses a for loop through an array to determine the value associated with a partially-decrypted character...eh, reverse lookup table? I know we used 0 byte variable names as well as false ones, but not quite sure what you meant by reverse (oh.. you mean how import/export table order is reversed from the norm?)
Suddenly theres helecopters hovering around my house so I figure I better shut up now
[edit: initial version had way too much space]