<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.cheatengine.org/index.php?action=history&amp;feed=atom&amp;title=Tutorial%3ACodeInjection_EditableValues</id>
	<title>Tutorial:CodeInjection EditableValues - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.cheatengine.org/index.php?action=history&amp;feed=atom&amp;title=Tutorial%3ACodeInjection_EditableValues"/>
	<link rel="alternate" type="text/html" href="https://wiki.cheatengine.org/index.php?title=Tutorial:CodeInjection_EditableValues&amp;action=history"/>
	<updated>2026-05-25T17:32:36Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.32.0</generator>
	<entry>
		<id>https://wiki.cheatengine.org/index.php?title=Tutorial:CodeInjection_EditableValues&amp;diff=5878&amp;oldid=prev</id>
		<title>TheyCallMeTim13: /* Packed Multiplier */</title>
		<link rel="alternate" type="text/html" href="https://wiki.cheatengine.org/index.php?title=Tutorial:CodeInjection_EditableValues&amp;diff=5878&amp;oldid=prev"/>
		<updated>2018-04-23T13:38:29Z</updated>

		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Packed Multiplier&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 13:38, 23 April 2018&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l241&quot; &gt;Line 241:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 241:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Starting with a script like above; let's add some floats (single precision floating point), and &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;multiple &lt;/del&gt;XMM1 with a packed instruction. For an aligned instruction we need to be at an address ending in 0x0, and for a packed instruction we'll need a value that spans 0x10 bytes (0x0 to 0xF).&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Starting with a script like above; let's add some floats (single precision floating point), and &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;multiply &lt;/ins&gt;XMM1 with a packed instruction. For an aligned instruction we need to be at an address ending in 0x0, and for a packed instruction we'll need a value that spans 0x10 bytes (0x0 to 0xF).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;define(address, &amp;quot;game.exe&amp;quot;+123ABC)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;define(address, &amp;quot;game.exe&amp;quot;+123ABC)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>TheyCallMeTim13</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.cheatengine.org/index.php?title=Tutorial:CodeInjection_EditableValues&amp;diff=5877&amp;oldid=prev</id>
		<title>TheyCallMeTim13 at 13:37, 23 April 2018</title>
		<link rel="alternate" type="text/html" href="https://wiki.cheatengine.org/index.php?title=Tutorial:CodeInjection_EditableValues&amp;diff=5877&amp;oldid=prev"/>
		<updated>2018-04-23T13:37:11Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 13:37, 23 April 2018&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l160&quot; &gt;Line 160:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 160:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Starting with a script like above; let's add a float (single precision floating point), and &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;multiple &lt;/del&gt;XMM1.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Starting with a script like above; let's add a float (single precision floating point), and &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;multiply &lt;/ins&gt;XMM1.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;define(address, &amp;quot;game.exe&amp;quot;+123ABC)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;define(address, &amp;quot;game.exe&amp;quot;+123ABC)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l173&quot; &gt;Line 173:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 173:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;label(fltHealthMultiplier) // we need a unque name,  &lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;label(fltHealthMultiplier) // we need a unque name,  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;// and I like to indicate the value type in the name (i.e.: &amp;quot;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;int&lt;/del&gt;&amp;quot; for &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;integer&lt;/del&gt;).&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;// and I like to indicate the value type in the name (i.e.: &amp;quot;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;flt&lt;/ins&gt;&amp;quot; for &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;float&lt;/ins&gt;).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;registerSymbol(fltHealthMultiplier)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;registerSymbol(fltHealthMultiplier)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l254&quot; &gt;Line 254:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 254:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;label(fltHealthMultiplier) // we need a unque name,  &lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;label(fltHealthMultiplier) // we need a unque name,  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;// and I like to indicate the value type in the name (i.e.: &amp;quot;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;int&lt;/del&gt;&amp;quot; for &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;integer&lt;/del&gt;).&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;// and I like to indicate the value type in the name (i.e.: &amp;quot;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;flt&lt;/ins&gt;&amp;quot; for &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;float&lt;/ins&gt;).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;registerSymbol(fltHealthMultiplier)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;registerSymbol(fltHealthMultiplier)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>TheyCallMeTim13</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.cheatengine.org/index.php?title=Tutorial:CodeInjection_EditableValues&amp;diff=5873&amp;oldid=prev</id>
		<title>TheyCallMeTim13: Created page with 'Category:Tutorial Category:Auto Assembler Category:Code Injection {{DISPLAYTITLE:Code Injection - Editable values}}  This tutorial builds on the subject of code injec…'</title>
		<link rel="alternate" type="text/html" href="https://wiki.cheatengine.org/index.php?title=Tutorial:CodeInjection_EditableValues&amp;diff=5873&amp;oldid=prev"/>
		<updated>2018-04-23T05:00:58Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;#039;&lt;a href=&quot;/index.php?title=Category:Tutorial&quot; title=&quot;Category:Tutorial&quot;&gt;Category:Tutorial&lt;/a&gt; &lt;a href=&quot;/index.php?title=Category:Auto_Assembler&quot; class=&quot;mw-redirect&quot; title=&quot;Category:Auto Assembler&quot;&gt;Category:Auto Assembler&lt;/a&gt; &lt;a href=&quot;/index.php?title=Category:Code_Injection&quot; title=&quot;Category:Code Injection&quot;&gt;Category:Code Injection&lt;/a&gt; {{DISPLAYTITLE:Code Injection - Editable values}}  This tutorial builds on the subject of code injec…&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Category:Tutorial]]&lt;br /&gt;
[[Category:Auto Assembler]]&lt;br /&gt;
[[Category:Code Injection]]&lt;br /&gt;
{{DISPLAYTITLE:Code Injection - Editable values}}&lt;br /&gt;
&lt;br /&gt;
This tutorial builds on the subject of code injection, and starts from a working script.&lt;br /&gt;
Pleas start here: [[Tutorials:Auto_Assembler:Injection_full|Code Injection - full]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Any game will work but I will be using '''Windows Solitaire'''.&lt;br /&gt;
&lt;br /&gt;
First you will need to find an Integer.&lt;br /&gt;
If unsure how to find values see: [[Tutorials:Finding values:Integers|Finding values - Integers]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Finding the injection point ==&lt;br /&gt;
After you have found the address of the score then we can find the injection point. &lt;br /&gt;
Where this is depends on what we want to do so in ''Windows Solitaire'' the score decreases over timer, &lt;br /&gt;
lets make it increase the score, '''But here let's make it a value that can be changed from the Cheat table without editing the script'''.&lt;br /&gt;
&lt;br /&gt;
If you followed along with the ''[[Tutorials:Auto_Assembler:Injection_full|Code Injection - full]]'' tutorial you should have a script like this.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define(address,&amp;quot;solitaire.exe&amp;quot;+396CC)&lt;br /&gt;
define(bytes,41 83 43 14 FE)&lt;br /&gt;
&lt;br /&gt;
[ENABLE]&lt;br /&gt;
assert(address,bytes)&lt;br /&gt;
alloc(newmem,$1000,address) // '$' before a nuber is a short hand for '0x' (hex).&lt;br /&gt;
&lt;br /&gt;
label(code)&lt;br /&gt;
label(return)&lt;br /&gt;
&lt;br /&gt;
newmem:&lt;br /&gt;
  code:&lt;br /&gt;
    add dword ptr [r11+14],02&lt;br /&gt;
    jmp return&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
address:&lt;br /&gt;
  jmp newmem&lt;br /&gt;
  return:&lt;br /&gt;
&lt;br /&gt;
[DISABLE]&lt;br /&gt;
address:&lt;br /&gt;
  db bytes&lt;br /&gt;
  // add dword ptr [r11+14],-02&lt;br /&gt;
&lt;br /&gt;
dealloc(newmem)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So let's add a value that we can change the value of on the CT.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Adding an Editable Value ==&lt;br /&gt;
&lt;br /&gt;
So we'll need some memory, which we have some [[Auto_Assembler:alloc|allocated]] so let's just '''create a [[Auto_Assembler:label|label]] and [[Auto_Assembler:registerSymbol|register the symbol]]'''. We need to register the symbol to be able to access it else where. We can also use [[Auto_Assembler:align|align]] to align the memory because we will just put it at the end of the allocated memory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define(address,&amp;quot;solitaire.exe&amp;quot;+396CC)&lt;br /&gt;
define(bytes,41 83 43 14 FE)&lt;br /&gt;
&lt;br /&gt;
[ENABLE]&lt;br /&gt;
assert(address,bytes)&lt;br /&gt;
alloc(newmem,0x400,address)&lt;br /&gt;
&lt;br /&gt;
label(code)&lt;br /&gt;
label(return)&lt;br /&gt;
&lt;br /&gt;
label(intScoreAdder) // we need a unque name, &lt;br /&gt;
// and I like to indicate the value type in the name (i.e.: &amp;quot;int&amp;quot; for integer).&lt;br /&gt;
registerSymbol(intScoreAdder)&lt;br /&gt;
&lt;br /&gt;
newmem:&lt;br /&gt;
  code:&lt;br /&gt;
    push rax // push/save the registory.&lt;br /&gt;
    mov eax,[intScoreAdder] // EAX is 32 bits of RAX&lt;br /&gt;
    add [r11+14],eax // the size is determinded by the size of the registory.&lt;br /&gt;
    pop rax // pop/restore the registory.&lt;br /&gt;
    jmp return&lt;br /&gt;
&lt;br /&gt;
  align 10 CC // align the memory to be assebled.&lt;br /&gt;
  intScoreAdder:&lt;br /&gt;
    dd (int)5 // we could just use 'dd 5' as decimal 5 is equal to hex 5&lt;br /&gt;
              // or the short hand for an integer 'dd #5'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
address:&lt;br /&gt;
  jmp newmem&lt;br /&gt;
  return:&lt;br /&gt;
&lt;br /&gt;
[DISABLE]&lt;br /&gt;
address:&lt;br /&gt;
  db bytes&lt;br /&gt;
  // add dword ptr [r11+14],-02&lt;br /&gt;
&lt;br /&gt;
dealloc(newmem)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
So now let's '''enable the script and add the address to the CT'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Adding the Address a CT ==&lt;br /&gt;
&lt;br /&gt;
[[File:CodeInjectionEditValues.01.png|border]]&lt;br /&gt;
&lt;br /&gt;
And that gives us a changeable value that is used inside the script.&lt;br /&gt;
&lt;br /&gt;
You can set the address as a child of the script, and '''right click the address record''' to '''enable the ''Hide children when deactivated'' option''' under ''Group config''.&lt;br /&gt;
&lt;br /&gt;
[[File:CodeInjectionEditValues.02.png|border]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Working with Floats ==&lt;br /&gt;
&lt;br /&gt;
=== Health Damage Multiplier ===&lt;br /&gt;
Let's say you have an injection point that looks like this, and it's effecting health, and XMM1 holds the damage value.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
subss xmm0,xmm1&lt;br /&gt;
movss [rsi],xmm0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It could even be space apart, all we need is the &amp;quot;subss xmm0,xmm1&amp;quot; in the injection script.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
subss xmm0,xmm1&lt;br /&gt;
// ...&lt;br /&gt;
movss [rsi],xmm0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So let's add a damage multiplier.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define(address, &amp;quot;game.exe&amp;quot;+123ABC)&lt;br /&gt;
define(bytes, F3 0F 5C C1 F3 0F 11 06)&lt;br /&gt;
&lt;br /&gt;
[ENABLE]&lt;br /&gt;
assert(address, bytes)&lt;br /&gt;
alloc(newmem, 0x400, address)&lt;br /&gt;
&lt;br /&gt;
label(code)&lt;br /&gt;
label(return)&lt;br /&gt;
&lt;br /&gt;
newmem:&lt;br /&gt;
  code:&lt;br /&gt;
    subss xmm0,xmm1&lt;br /&gt;
    movss [rsi],xmm0&lt;br /&gt;
    jmp return&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
address:&lt;br /&gt;
  jmp newmem&lt;br /&gt;
  nop&lt;br /&gt;
  nop&lt;br /&gt;
  nop&lt;br /&gt;
  return:&lt;br /&gt;
&lt;br /&gt;
[DISABLE]&lt;br /&gt;
address:&lt;br /&gt;
  db bytes&lt;br /&gt;
&lt;br /&gt;
dealloc(newmem)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Starting with a script like above; let's add a float (single precision floating point), and multiple XMM1.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define(address, &amp;quot;game.exe&amp;quot;+123ABC)&lt;br /&gt;
define(bytes, F3 0F 5C C1 F3 0F 11 06)&lt;br /&gt;
&lt;br /&gt;
[ENABLE]&lt;br /&gt;
assert(address, bytes)&lt;br /&gt;
alloc(newmem, 0x400, address)&lt;br /&gt;
&lt;br /&gt;
label(code)&lt;br /&gt;
label(return)&lt;br /&gt;
&lt;br /&gt;
label(fltHealthMultiplier) // we need a unque name, &lt;br /&gt;
// and I like to indicate the value type in the name (i.e.: &amp;quot;int&amp;quot; for integer).&lt;br /&gt;
registerSymbol(fltHealthMultiplier)&lt;br /&gt;
&lt;br /&gt;
newmem:&lt;br /&gt;
  code:&lt;br /&gt;
    mulss xmm1,[fltHealthMultiplier]&lt;br /&gt;
    subss xmm0,xmm1&lt;br /&gt;
    movss [rsi],xmm0&lt;br /&gt;
    jmp return&lt;br /&gt;
&lt;br /&gt;
  align 10 CC // align the memory to be assebled.&lt;br /&gt;
  fltHealthMultiplier:&lt;br /&gt;
    dd (float)0.25&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
address:&lt;br /&gt;
  jmp newmem&lt;br /&gt;
  nop&lt;br /&gt;
  nop&lt;br /&gt;
  nop&lt;br /&gt;
  return:&lt;br /&gt;
&lt;br /&gt;
[DISABLE]&lt;br /&gt;
address:&lt;br /&gt;
  db bytes&lt;br /&gt;
&lt;br /&gt;
dealloc(newmem)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Packed Multiplier ===&lt;br /&gt;
Let's say you have an injection point that looks like this, and it's effecting health and shield, and XMM1 holds the damage values for both.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
subps xmm0,xmm1&lt;br /&gt;
movaps [rsi],xmm0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define(address, &amp;quot;game.exe&amp;quot;+123ABC)&lt;br /&gt;
define(bytes, 0F 5C C1 0F 29 06)&lt;br /&gt;
&lt;br /&gt;
[ENABLE]&lt;br /&gt;
assert(address, bytes)&lt;br /&gt;
alloc(newmem, 0x400, address)&lt;br /&gt;
&lt;br /&gt;
label(code)&lt;br /&gt;
label(return)&lt;br /&gt;
&lt;br /&gt;
newmem:&lt;br /&gt;
  code:&lt;br /&gt;
    subss xmm0,xmm1&lt;br /&gt;
    movss [rsi],xmm0&lt;br /&gt;
    jmp return&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
address:&lt;br /&gt;
  jmp newmem&lt;br /&gt;
  nop&lt;br /&gt;
  return:&lt;br /&gt;
&lt;br /&gt;
[DISABLE]&lt;br /&gt;
address:&lt;br /&gt;
  db bytes&lt;br /&gt;
&lt;br /&gt;
dealloc(newmem)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Starting with a script like above; let's add some floats (single precision floating point), and multiple XMM1 with a packed instruction. For an aligned instruction we need to be at an address ending in 0x0, and for a packed instruction we'll need a value that spans 0x10 bytes (0x0 to 0xF).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define(address, &amp;quot;game.exe&amp;quot;+123ABC)&lt;br /&gt;
define(bytes, 0F 5C C1 0F 29 06)&lt;br /&gt;
&lt;br /&gt;
[ENABLE]&lt;br /&gt;
assert(address, bytes)&lt;br /&gt;
alloc(newmem, 0x400, address)&lt;br /&gt;
&lt;br /&gt;
label(code)&lt;br /&gt;
label(return)&lt;br /&gt;
&lt;br /&gt;
label(fltHealthMultiplier) // we need a unque name, &lt;br /&gt;
// and I like to indicate the value type in the name (i.e.: &amp;quot;int&amp;quot; for integer).&lt;br /&gt;
registerSymbol(fltHealthMultiplier)&lt;br /&gt;
&lt;br /&gt;
newmem:&lt;br /&gt;
  code:&lt;br /&gt;
    mulps xmm1,[fltHealthMultiplier]&lt;br /&gt;
    subps xmm0,xmm1&lt;br /&gt;
    movaps [rsi],xmm0&lt;br /&gt;
    jmp return&lt;br /&gt;
&lt;br /&gt;
  align 10 CC // align the memory to be assebled. Alignment is required for an aligned instruction.&lt;br /&gt;
  fltHealthMultiplier:&lt;br /&gt;
    dd (float)0.25&lt;br /&gt;
    dd (float)0.35&lt;br /&gt;
    dd (float)1 // Any values you don't want to change set the multilpier to 1&lt;br /&gt;
    dd (float)1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
address:&lt;br /&gt;
  jmp newmem&lt;br /&gt;
  nop&lt;br /&gt;
  return:&lt;br /&gt;
&lt;br /&gt;
[DISABLE]&lt;br /&gt;
address:&lt;br /&gt;
  db bytes&lt;br /&gt;
&lt;br /&gt;
dealloc(newmem)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To add the values to a CT just set the value type to float and the address for the first one to &amp;quot;''fltHealthMultiplier''&amp;quot; and the address for the second to &amp;quot;''fltHealthMultiplier+4''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Template:CodeInjectionSeeAlso}}&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* [https://wikipedia.org/wiki/Cheating_in_video_games wikipedia.org/wiki/Cheating_in_video_games]&lt;br /&gt;
** [https://en.wikipedia.org/wiki/Cheating_in_video_games#Modification_of_runtime_game_data Modification of runtime game data]&lt;br /&gt;
* [https://wikipedia.org/wiki/Code_injection wikipedia.org/wiki/Code_injection]&lt;/div&gt;</summary>
		<author><name>TheyCallMeTim13</name></author>
		
	</entry>
</feed>