Gildor's Forums

Author Topic: Getting Errors  (Read 29962 times)
grained
Jr. Member
**
Posts: 51



View Profile
Re: Getting Errors
« Reply #45 on: October 02, 2008, 13:54 »

Quote
implement support for Rune and Lineage2 models

So what is the Rune support exactly?

And you didn't answer my question...

Quote
Do you know how to build encrypted Unreal Packages?

Any tip in the right direction would be great!
Logged
Gildor
Administrator
Hero Member
*****
Posts: 7972



View Profile WWW
Re: Getting Errors
« Reply #46 on: October 02, 2008, 14:28 »

Quote
So what is the Rune support exactly?
This is a possible plans Smiley

Quote
Do you know how to build encrypted Unreal Packages?
No, I don't know. I can only analyze UTPackage.pas code to understand encryption algorithm. But there is no way to create package outside of Unreal Engine.
I looked available sources - it seems, there is no encryption in basic UE1 and UE2. All licensees implements their own algorithms.
UE3 have package compression.
Logged
grained
Jr. Member
**
Posts: 51



View Profile
Re: Getting Errors
« Reply #47 on: October 02, 2008, 18:06 »

I'm only talking about UT99 Packages.
It must be possible, because all of the Anticheat Packages are encrypted.
I found a simple solution just to byte edit the file but it is not the same as the encrypted packages like the Anticheat Packages.
Logged
Gildor
Administrator
Hero Member
*****
Posts: 7972



View Profile WWW
Re: Getting Errors
« Reply #48 on: October 02, 2008, 18:13 »

What is an "Anticheat Packages"? Take an example, please (game/mod/package name). If possible, for vanilla UT99.
Logged
grained
Jr. Member
**
Posts: 51



View Profile
Re: Getting Errors
« Reply #49 on: October 02, 2008, 21:08 »

For Example Mod Tactical Ops - the TOST Package there is the TOSTProtect, it is encrypted.
You can find it here.

Quote
If possible, for vanilla UT99

Huh? What is that???
« Last Edit: October 02, 2008, 21:10 by grained » Logged
grained
Jr. Member
**
Posts: 51



View Profile
Re: Getting Errors
« Reply #50 on: October 06, 2008, 12:26 »

So, do you have any hint for encrypted packages?
Logged
Gildor
Administrator
Hero Member
*****
Posts: 7972



View Profile WWW
Re: Getting Errors
« Reply #51 on: October 06, 2008, 12:37 »

Sorry, I hove no time currently.
I'm trying to get free time to finish Rune support.
If you will upload this package somewhere and give me a link - I will make few "experiments" with this package.

[вложение удалено Администратором]
Logged
grained
Jr. Member
**
Posts: 51



View Profile
Re: Getting Errors
« Reply #52 on: October 06, 2008, 13:46 »

Uuhh, sorry! Don't wanna bother you too much!

So if I don't hear anything from you, you are very busy with working on something...  Grin good to know.  Wink
Really great that you are still improving your tool and everything looks very promising.

Keep up the good work!!!

I put some files together and you could download it here.
Logged
Gildor
Administrator
Hero Member
*****
Posts: 7972



View Profile WWW
Re: Getting Errors
« Reply #53 on: October 06, 2008, 14:59 »

There is no "protected" or "encrypted" attribute for package in Unreal Tournament. I was checked UnrealEd, checked package with umodel (umodel -list <package>) and with UTPT. Looked into packages in a binary form. And what I'm thinking about them:
- there is no difference in TOSTProtect24.u and UTDCv2*.u protection schemes - all these packages may be listed with umodel, but cannot be loaded into UnrealEd and due to some "bug" in UTPT, TOSTProtect24 package cannot be loaded there too
- TextBuffer objects was removed (script source); removal was performed simply by setting object length to 0
- name table: internal package names (names, which are not used to export some package object) are encoded to unreadable form
There is no other changes performed. Such changes may be done using simple tool, which can load and save unreal package without understanding object formats: package header, name table, object table, and objects in a binary form. After loading, this tool shrinks TextBuffer, analyzes name usage (possibly, it analyzes some name flag ... I don't know) and replaces such names with unique random strings (unreadable).
It looks like UnrealEd have no such capabilities, so changes was made by user-made utility. It's not too complex to create this one, possibly it is available somewhere in web.
Logged
grained
Jr. Member
**
Posts: 51



View Profile
Re: Getting Errors
« Reply #54 on: October 06, 2008, 17:28 »

woh woh woh, syntax error... too much information  Shocked

I'm not really sure that I understand everything you said.
TextBuffer object, name Table ... I think I have to read the Unreal Package Description to understand what you mean with that. Any suggestions what I could read to understand what you are talking about!?
I would like to fully understand the package structure and everything that should be known.

So it is a bit more than just byte editing here and there to produce this kind of packages.
I would like to be able to reproduce this kind of packages.

Any Chances that your tool would be able to export the scripts out of the packages?
I know that this is not what your tool should be for but I think your tool is much more reliable than others.
Logged
Gildor
Administrator
Hero Member
*****
Posts: 7972



View Profile WWW
Re: Getting Errors
« Reply #55 on: October 06, 2008, 18:09 »

It is not possible to export scripts from "protected" packages, because these scripts are removed. Only compiled version is holded inside, which is hard to understand because of some obfuscation.
Yes, name table is a part of package structure. If you're really interested, read this.
I don't know your programming skills to suggest something. May be, easiest way to create package modification program is to use utpackage delphi library (check my "links" page). If yor're a C++ programmer, you can use publically available header files of Unreal Tournament.

TextBuffer is a special object, which holds complete .uc file inside compiled package. UTPT and WOTgreal are both uses this objects to extract script source code. These scripts are holded in package to allow their modification from UnrealEd.
There is also bytecode compiled version of scripts, which is used by Unreal Engine (script sources are not needed). UTPT can decompile (decode) such scripts.

Quote
Any Chances that your tool would be able to export the scripts out of the packages?
I don't know ... Currently as you noticed my tool is a "model viewer" Smiley It's very easy to extract scripts, but I prefer to use WOTgreal to do this. Possibly, I will add TextBuffer extractor to my tool later.
Logged
grained
Jr. Member
**
Posts: 51



View Profile
Re: Getting Errors
« Reply #56 on: October 06, 2008, 19:00 »

Ok, there is light at the end of the tunnel.
If I understand it right... TextBuffer is a Object inside the package and inside is the source Code (.uc).
The Tools just extract the Source from these Objects and you get the source.

I think for encrypted packages you only have to alter one byte to change it to a normal Package.
You say that the "protected" packages don't have the scripts. So the TextBuffer are removed?? Right?

Is it possible to remove the TextBuffer without damaging the package Structure, so Unreal could still read it?
Is this how these Packages are modified?

Quote
Currently as you noticed my tool is a "model viewer"
I think if it is very easy to extract the scripts you should implement this feature just to complete your extraction.

Again, big thx for your help.

Quote
I don't know your programming skills to suggest something.
I'm still learning, day by day. I'm not really into C++. My main language is Delphi.
My affinity is more into putting something together which is really playable. So if I need to program something I do it.
If I need to model something I try to solve this. I need some Textures - Photoshop is my tool. And so on...
So I think I am not really 'THE' programmer.  Grin
Logged
Gildor
Administrator
Hero Member
*****
Posts: 7972



View Profile WWW
Re: Getting Errors
« Reply #57 on: October 06, 2008, 19:14 »

Yes, you understand everything right.

Quote
My main language is Delphi.
You should check utpackages library. Also I can publish a small delphi application, which extracts everything from package in a raw format - it uses utpackage (I was used it in a early stage of umodel development). With source, of course Smiley
Logged
grained
Jr. Member
**
Posts: 51



View Profile
Re: Getting Errors
« Reply #58 on: October 06, 2008, 19:34 »

Yeah, why not... I think I am at the point of getting into it.
I think this would help me. It is much easier to try to understand a source code and use it for my own ideas instead of starting from nothing.

So I have to code a tool which removes the TextBuffers and I will get a "protected" package! Right?
Like the compiled Packages from Delphi.
Logged
Gildor
Administrator
Hero Member
*****
Posts: 7972



View Profile WWW
Re: Getting Errors
« Reply #59 on: October 07, 2008, 12:44 »

Tool source attached. It has no practical value, I was used it to extract vertex and skeletal meshes before my tool learn unreal package loading. But it may be useful to understand package format and utpackage.pas interface.

Quote
So I have to code a tool which removes the TextBuffers and I will get a "protected" package! Right?
Like the compiled Packages from Delphi.
Not exactly. There is no way to disassemble delphi dcu files (undocumented format), but utpackages (and UTPT, of course) can decompile unreal bytecode into high-level language (not to some kind of assembler). To prevent this, name table should be "damaged" too - tool should check package import and export table, remember used names, and encrypt name table entries, which is not used in package imports/exports.

[вложение удалено Администратором]
Logged
Jump to:  

Powered by SMF | SMF © 2006-2009, Simple Machines LLC
Leviathan design by Bloc | XHTML | CSS