Gildor's Forums

Author Topic: Fortnite  (Read 280401 times)
san
Silver Sponsor
Full Member
**
Posts: 96


View Profile
Re: Fortnite
« Reply #75 on: February 09, 2018, 13:45 »

I think the key will be taken, soon or later. It is not an impossible task to get it, even for those who doesn't know X64 assembly well. However, it is very easy for Epic to change key again. Before 4.18, there was only one possibility to encrypt pak files: encrypt everything. So, changing encryption key means fully re-downloading ALL pak files. Encryption of "pak file index" was a very wise solution. It not just makes pak files useless without a key, while avoiding doing expensive decryption when loading file data, but also allows to change encryption key with low cost for patching - only a little part of pak files (directory, or index part) should be re-downloaded after that.

And I believe key was changed because people found it. And next time, I think, Epic will borrow key deeper, not allowing to find it as easy as before. And next time they'll borrow it even deeper. And so on, until finding a key will become nearly impossible task which will require a very skilled person to get it.

Interesting. Think it is the same story with Overwatch. But in the case of Overwatch there is a dedicated community at facepunch who are really into the game and getting new keys whenever Blizzard releases a new version of the game.
Logged
Alien
Newbie
*
Posts: 28


Welcome to Appalachia


View Profile
Re: Fortnite
« Reply #76 on: February 09, 2018, 16:58 »

I think the key will be taken, soon or later. It is not an impossible task to get it, even for those who doesn't know X64 assembly well. However, it is very easy for Epic to change key again. Before 4.18, there was only one possibility to encrypt pak files: encrypt everything. So, changing encryption key means fully re-downloading ALL pak files. Encryption of "pak file index" was a very wise solution. It not just makes pak files useless without a key, while avoiding doing expensive decryption when loading file data, but also allows to change encryption key with low cost for patching - only a little part of pak files (directory, or index part) should be re-downloaded after that.

And I believe key was changed because people found it. And next time, I think, Epic will borrow key deeper, not allowing to find it as easy as before. And next time they'll borrow it even deeper. And so on, until finding a key will become nearly impossible task which will require a very skilled person to get it.

Interesting. Think it is the same story with Overwatch. But in the case of Overwatch there is a dedicated community at facepunch who are really into the game and getting new keys whenever Blizzard releases a new version of the game.

And why did the f*** they don't do the same like fortnite? jeez
Logged
Gildor
Administrator
Hero Member
*****
Posts: 7972



View Profile WWW
Re: Fortnite
« Reply #77 on: February 09, 2018, 17:24 »

These are different "they".
Logged
bizzfarts
Guest
Re: Fortnite
« Reply #78 on: February 09, 2018, 17:30 »

They added the ability to use binary keys. The only limitation is that the entire key can't be 0. I hacked together something to allow UModel to use them

It's pretty poor, I didn't send a pull request as the GUI key form will not work with them. If you start at the command line with -aeshex=key it will work.

Current key for fornite is 2c-cd-fd-22-ad-74-fb-fe-e6-93-a8-1a-c1-1a-ce-57-e6-d1-0d-0b-8a-c5-fa-90-e7-93-a1-30-bc-54-0e-d4

The implementation above ignores non-hex chars, so hyphens aren't necessary.
« Last Edit: April 06, 2018, 18:58 by bizzfarts » Logged
bizzfarts
Guest
Re: Fortnite
« Reply #79 on: February 09, 2018, 18:21 »

That might be a problem with new file format stuff that UModel doesn't know about.

The decryption in general works fine:
Logged
Gildor
Administrator
Hero Member
*****
Posts: 7972



View Profile WWW
Re: Fortnite
« Reply #80 on: February 09, 2018, 18:25 »

If i was gildor, maybe i was going to ban you, because you edited his program, or maybe close an eye, idk... lol
I'd rather ban people who post keys here, requests or publishes game downloads, or spams too much about the same thing again and again. Submitting code is ok - this is why UModel is open source software.
Logged
dub
Newbie
*
Posts: 3



View Profile
Re: Fortnite
« Reply #81 on: February 09, 2018, 20:24 »

They added the ability to use binary keys. The only limitation is that the entire key can't be 0. I hacked together something to allow UModel to use them:

https://github.com/horsenit/UModel

It's pretty poor, I didn't send a pull request as the GUI key form will not work with them. If you start at the command line with -aeshex=key it will work.

Current key for fornite is 2c-cd-fd-22-ad-74-fb-fe-e6-93-a8-1a-c1-1a-ce-57-e6-d1-0d-0b-8a-c5-fa-90-e7-93-a1-30-bc-54-0e-d4

The implementation above ignores non-hex chars, so hyphens aren't necessary.

How does this work exactly? I am getting a bad memory allocation error after putting your key in uModel?

You have to lunch umodel via command line with the "-aeshex=key" flag above using the key also posted above.  This loads that AES key into umodels memory for that session instead of using the GUI form entry like Bizz said before.

That being said, i can view textures, but meshes are not loading Sad  Tried using UE18 and 19.  Something must have changed.

Code:
RawArray item size mismatch: expected 50331647, serialized 6

SerializeBulkArray <- FMultisizeIndexContainer<< <- FStaticLODModel4::SerializeRenderItem <- TArray::Serialize:0/65793 <- USkeletalMesh4::Serialize <- LoadObject:SkeletalMesh4'BaseballBat_Advanced.BaseballBat_Advanced', pos=1177, ver=516/0 (unversioned), game=ue4.19 <- UObject::EndLoad <- CUmodelApp::ShowPackageUI <- CUmodelApp::ProcessKey:key=6F, down=1 <- VisualizerLoop <- Main:umodel_version=664
Logged

helloitsme
Newbie
*
Posts: 3


View Profile
Re: Fortnite
« Reply #82 on: February 09, 2018, 20:26 »

They added the ability to use binary keys. The only limitation is that the entire key can't be 0. I hacked together something to allow UModel to use them:

https://github.com/horsenit/UModel

It's pretty poor, I didn't send a pull request as the GUI key form will not work with them. If you start at the command line with -aeshex=key it will work.

Current key for fornite is 2c-cd-fd-22-ad-74-fb-fe-e6-93-a8-1a-c1-1a-ce-57-e6-d1-0d-0b-8a-c5-fa-90-e7-93-a1-30-bc-54-0e-d4

The implementation above ignores non-hex chars, so hyphens aren't necessary.

How does this work exactly? I am getting a bad memory allocation error after putting your key in uModel?

You have to lunch umodel via command line with the "-aeshex=key" flag above using the key also posted above.  This loads that AES key into umodels memory for that session instead of using the GUI form entry like Bizz said before.

That being said, i can view textures, but meshes are not loading Sad  Tried using UE18 and 19.  Something must have changed.

Code:
RawArray item size mismatch: expected 50331647, serialized 6

SerializeBulkArray <- FMultisizeIndexContainer<< <- FStaticLODModel4::SerializeRenderItem <- TArray::Serialize:0/65793 <- USkeletalMesh4::Serialize <- LoadObject:SkeletalMesh4'BaseballBat_Advanced.BaseballBat_Advanced', pos=1177, ver=516/0 (unversioned), game=ue4.19 <- UObject::EndLoad <- CUmodelApp::ShowPackageUI <- CUmodelApp::ProcessKey:key=6F, down=1 <- VisualizerLoop <- Main:umodel_version=664

Thanks Gildor and Dub. Got it!
« Last Edit: February 09, 2018, 20:33 by helloitsme » Logged
AeonLucid
Newbie
*
Posts: 4



View Profile
Re: Fortnite
« Reply #83 on: February 09, 2018, 21:20 »

They added the ability to use binary keys. The only limitation is that the entire key can't be 0. I hacked together something to allow UModel to use them:

https://github.com/horsenit/UModel

It's pretty poor, I didn't send a pull request as the GUI key form will not work with them. If you start at the command line with -aeshex=key it will work.

Current key for fornite is 2c-cd-fd-22-ad-74-fb-fe-e6-93-a8-1a-c1-1a-ce-57-e6-d1-0d-0b-8a-c5-fa-90-e7-93-a1-30-bc-54-0e-d4

The implementation above ignores non-hex chars, so hyphens aren't necessary.

Thanks for leaking the key.. not.
It will only get harder and harder if people leak.
Logged
dub
Newbie
*
Posts: 3



View Profile
Re: Fortnite
« Reply #84 on: February 09, 2018, 22:08 »

I choose the wrong UE Version. 4.19 isn't working 4.18 is working

Confirmed this was the issue.  UE4.18 loads the static meshes!

Thanks again!
Logged

bizzfarts
Guest
Re: Fortnite
« Reply #85 on: February 09, 2018, 22:42 »

Submitting code is ok - this is why UModel is open source software.

And I really appreciate it, I've found it incredibly useful, thanks.

Thanks for leaking the key.. not.
It will only get harder and harder if people leak.
There are far more effective ways for them to try to obfuscate it than a small change correcting a limitation of their previous build system.
Logged
Gildor
Administrator
Hero Member
*****
Posts: 7972



View Profile WWW
Re: Fortnite
« Reply #86 on: February 09, 2018, 23:25 »

Anyway, I don't like your implementation of hex key (sorry Smiley). I'd prefer to do it in a different way, but just not sure how to make a key string working for both ASCII and hex ways. Variants are (not limited to):
  • \0xAA\0xBB\0xCC\0xDD (C-style) - only particular characters are in hex
  • \xAA\xBB\xCC\xDD (bash-style) - shorter version of C-style
  • \AA\BB\CC\DD (something new, even shorter version)
  • $AABBCCDD (Pascal-style) - everything is in hex here, shortest version if all characters are in hex; prefix may be changed (I don't like '$')

The good thing what you did is trying to modify key string and verify if it really works. Now I see that non-ASCII keys may be useful, despite UE4 itself doesn't have a possibility to specify such keys in DefaultEncryption.ini file, I think Epic did a code callback for requesting a key. It is quite possible that key will be randomized with every new build.
« Last Edit: February 09, 2018, 23:27 by Gildor » Logged
bizzfarts
Guest
Re: Fortnite
« Reply #87 on: February 09, 2018, 23:51 »

Anyway, I don't like your implementation of hex key (sorry Smiley). I'd prefer to do it in a different way, but just not sure how to make a key string working for both ASCII and hex ways. Variants are (not limited to):
  • \0xAA\0xBB\0xCC\0xDD (C-style) - only particular characters are in hex
  • \xAA\xBB\xCC\xDD (bash-style) - shorter version of C-style
  • \AA\BB\CC\DD (something new, even shorter version)
  • $AABBCCDD (Pascal-style) - everything is in hex here, shortest version if all characters are in hex; prefix may be changed (I don't like '$')

The good thing what you did is trying to modify key string and verify if it really works. Now I see that non-ASCII keys may be useful, despite UE4 itself doesn't have a possibility to specify such keys in DefaultEncryption.ini file, I think Epic did a code callback for requesting a key. It is quite possible that key will be randomized with every new build.

I'm not a fan of my implementation either. It was like you suggested: just a quick rough thing as proof of concept. Also it's improbable, but any of your suggestions could be valid plain-text keys, so you might want to add an escape character as well.
Logged
FabianFG
Jr. Member
**
Posts: 57


View Profile
Re: Fortnite
« Reply #88 on: February 10, 2018, 14:13 »

I have a little question. So When I open a skin the Software automatically used the normal texture file. Is there any possibility to make the software use a different texture for the mesh?
Logged
Gildor
Administrator
Hero Member
*****
Posts: 7972



View Profile WWW
Re: Fortnite
« Reply #89 on: February 10, 2018, 14:53 »

You can't change skins/materials in umodel.
Logged
Jump to:  

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