OpenSSL Universal Patcher

No Comments on OpenSSL Universal Patcher

Besiege on the Xbox PC/Microsoft Store platform crashes for users with specific hardware specifications due to a bug in the Unity 5.4.0f3 Editor and builds made with it, where apps that use OpenSSL (i.e., secure web request) crash.

The OpenSSL Universal Patcher is a command-line tool designed to patch 64-bit Windows binary executables that are linked to an older version of OpenSSL (1.1.0) to resolve crashes in 10th and 11th gen Intel CPUs and improve the overall stability and security of the affected binaries.

I wrote a blog post about creating a patch, so check out this article if you’re interested.

# lea     rax, [rsi+40h]
original: 48 8D 46 40
# lea     r8, [rsi+40h]
patched: 4C 8D 46 40
# 4 bytes from the previous instruction
offset: 4
# cmovnz  rsi, rax
original: 48 0F 45 F0
# cmovnz  rsi, r8
patched: 49 0F 45 F0

The patch that changes 2 OpenSSL specific instructions.

Example usage on Unity Editor, Unreal game and Besiege game executables