<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Assembly &#8211; Eamon Woortman</title>
	<atom:link href="https://eamonwoortman.github.io/project-tag/assembly/feed/" rel="self" type="application/rss+xml" />
	<link>https://eamonwoortman.github.io/</link>
	<description></description>
	<lastBuildDate>Sun, 21 May 2023 10:39:18 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.4.2</generator>
	<item>
		<title>OpenSSL Universal Patcher</title>
		<link>https://eamonwoortman.github.io/project/openssl-universal-patcher/</link>
					<comments>https://eamonwoortman.github.io/project/openssl-universal-patcher/#respond</comments>
		
		<dc:creator><![CDATA[eamon]]></dc:creator>
		<pubDate>Sun, 21 May 2023 10:36:32 +0000</pubDate>
				<guid isPermaLink="false">https://eamonwoortman.github.io/?post_type=project&#038;p=747</guid>

					<description><![CDATA[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 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>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. </p>



<p>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.</p>



<p></p>



<p>I wrote a blog post about creating a patch, so check out <a rel="noreferrer noopener" href="https://eamonwoortman.github.io/openssl-binary-patching/" data-type="URL" data-id="https://eamonwoortman.github.io/openssl-binary-patching/" target="_blank">this article</a> if you&#8217;re interested.</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-eamon-woortman wp-block-embed-eamon-woortman"><div class="wp-block-embed__wrapper">
<div class="oceanwp-oembed-wrap clr"><blockquote class="wp-embedded-content" data-secret="HsyB1FpROX"><a href="https://eamonwoortman.github.io/openssl-binary-patching/">OpenSSL binary patching</a></blockquote><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted" title="&#8220;OpenSSL binary patching&#8221; &#8212; Eamon Woortman" src="https://eamonwoortman.github.io/openssl-binary-patching/embed/#?secret=MU65ZvhvIx#?secret=HsyB1FpROX" data-secret="HsyB1FpROX" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe></div>
</div></figure>



<div class="wp-block-kevinbatdorf-code-block-pro" style="font-size:.875rem;line-height:1.25rem"><span role="button" tabindex="0" data-code="# 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" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #768390"># lea     rax, [rsi+40h]</span></span>
<span class="line"><span style="color: #DCBDFB">original:</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">48</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">8D</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">46</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">40</span></span>
<span class="line"><span style="color: #768390"># lea     r8, [rsi+40h]</span></span>
<span class="line"><span style="color: #DCBDFB">patched:</span><span style="color: #ADBAC7"> 4C </span><span style="color: #6CB6FF">8D</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">46</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">40</span></span>
<span class="line"><span style="color: #768390"># 4 bytes from the previous instruction</span></span>
<span class="line"><span style="color: #DCBDFB">offset:</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">4</span></span>
<span class="line"><span style="color: #768390"># cmovnz  rsi, rax</span></span>
<span class="line"><span style="color: #DCBDFB">original:</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">48</span><span style="color: #ADBAC7"> 0F </span><span style="color: #6CB6FF">45</span><span style="color: #ADBAC7"> F0</span></span>
<span class="line"><span style="color: #768390"># cmovnz  rsi, r8</span></span>
<span class="line"><span style="color: #DCBDFB">patched:</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">49</span><span style="color: #ADBAC7"> 0F </span><span style="color: #6CB6FF">45</span><span style="color: #ADBAC7"> F0</span></span></code></pre></div>



<p class="has-text-align-center has-text-color has-small-font-size" style="color:#555555">The patch that changes 2 OpenSSL specific instructions.</p>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="247" src="https://eamonwoortman.github.io/wp-content/uploads/2023/05/image-4-1024x247.png" alt="" class="wp-image-753" srcset="https://eamonwoortman.github.io/wp-content/uploads/2023/05/image-4-1024x247.png 1024w, https://eamonwoortman.github.io/wp-content/uploads/2023/05/image-4-300x72.png 300w, https://eamonwoortman.github.io/wp-content/uploads/2023/05/image-4-768x185.png 768w, https://eamonwoortman.github.io/wp-content/uploads/2023/05/image-4-1536x371.png 1536w, https://eamonwoortman.github.io/wp-content/uploads/2023/05/image-4-2048x494.png 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Example usage on Unity Editor, Unreal game and Besiege game executables</figcaption></figure>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://eamonwoortman.github.io/project/openssl-universal-patcher/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
