Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Retrieving package VDF data returns binary VDF #100

Closed
Jleagle opened this issue Aug 26, 2019 · 4 comments
Closed

Retrieving package VDF data returns binary VDF #100

Jleagle opened this issue Aug 26, 2019 · 4 comments

Comments

@Jleagle
Copy link
Contributor

Jleagle commented Aug 26, 2019

Hi, I am trying to get the VDF data on apps and packages.
The app proto CMsgClientPICSProductInfoResponse_AppInfo seems to always return okay but trying to get the VDF data from a package CMsgClientPICSProductInfoResponse_PackageInfo always returns binary VDF.
Is there a helper somewhere to convert to text?
Thanks.

@Jleagle Jleagle changed the title Retrieving package VDF data broken Retrieving package VDF data returns binary VDF Aug 27, 2019
@Philipp15b
Copy link
Owner

go-steam does not yet contain a VDF parser. Some years ago, @marshauf wrote a VDF parser: see #21.

SteamKit also has an implementation: https://github.com/SteamRE/SteamKit/blob/aa3e7f1750644286a8f4ee144992f80d157b1f71/SteamKit2/SteamKit2/Types/KeyValue.cs#L218.

I would be very happy to accept a keyvalue/vdf related pull request!

@Jleagle
Copy link
Contributor Author

Jleagle commented Sep 10, 2019

Thanks for the heads up on marshauf/keyvalues, the only other package I came across was BenLubar/vdf. Both have tests that pass, but the key value structs they created were not actually correct. I ended up porting the binary VDF reader in SteamKit over to a new repo at Jleagle/valve-data-format-go.

One thing I didn't work out was, package vdf has a leading uint32 that needs to be trimmed off, but I didn't see any mention of this in SteamKit.

@mjsir911
Copy link

mjsir911 commented Dec 1, 2019

I'm a bit confused, looking at these repositories they all seem to be parsing the same kind of data, but is there any difference between valve's acf (how the appmanifests are stored on my machine) and the discussed vdf data?

I don't see any "binary" values anywhere that are spoken of.

@Jleagle
Copy link
Contributor Author

Jleagle commented Dec 1, 2019

I'm a bit confused, looking at these repositories they all seem to be parsing the same kind of data, but is there any difference between valve's acf (how the appmanifests are stored on my machine) and the discussed vdf data?

I don't see any "binary" values anywhere that are spoken of.

From my limited experience, app data is sent to the steam client as text and package data is sent over as binary.

@Jleagle Jleagle closed this as completed Aug 16, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants