Skip to content

Implementation of Steam_AppTicket::GetAppOwnershipTicketData#452

Merged
Detanup01 merged 1 commit intoDetanup01:devfrom
NotAndreh:appownershipticket
Mar 10, 2026
Merged

Implementation of Steam_AppTicket::GetAppOwnershipTicketData#452
Detanup01 merged 1 commit intoDetanup01:devfrom
NotAndreh:appownershipticket

Conversation

@NotAndreh
Copy link
Contributor

@NotAndreh NotAndreh commented Mar 9, 2026

This provides a partial implementation for Implementation of Steam_AppTicket::GetAppOwnershipTicketData.
This fixes the check that Capcom has been doing in Resident Evil Requiem, they exploited the fact that this function isn't implemented on GBE. In case of RE, only the appid is checked.
The signature can't be replicated cause it's generated by Steam.

For additional infos, the official Steam documentation about the method is available here: https://web.archive.org/web/20230315041727/https://partner.steamgames.com/doc/api/ISteamAppTicket

@Detanup01 Detanup01 requested a review from universal963 March 9, 2026 22:22
@Detanup01
Copy link
Owner

uint32 size is 4 and uint64 size is 8
I am confused why steamid pointer isnt 4 and the signature isnt 8+4 (12) (and the sign len isnt 4 when it set as uint32

@NotAndreh
Copy link
Contributor Author

NotAndreh commented Mar 9, 2026

The pointers like steam appid, steam userid are offsets. Since I need to write an u64 (steamid) I avoid alignments issues by writing it at offset 8.
The signature has a offset too and a length, I choose 8 as a stub.

@NotAndreh
Copy link
Contributor Author

Just for example the real steam api returns the appid at offset 16 and userid at offset 8 usually

@Detanup01
Copy link
Owner

OH soory I didnt see the reinterpret_cast<uintptr_t>(pvBuffer) + 8 allignment "fix"

@Detanup01 Detanup01 merged commit b7b14b3 into Detanup01:dev Mar 10, 2026
64 checks passed
@NotAndreh NotAndreh deleted the appownershipticket branch March 11, 2026 13:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants