<feed xmlns='http://www.w3.org/2005/Atom'>
<title>yaxpeax-x86/src, branch 1.2.2</title>
<subtitle>yaxpeax x86 decoder</subtitle>
<link rel='alternate' type='text/html' href='http://git.iximeow.net/yaxpeax-x86/'/>
<entry>
<title>fix hreset being disassembled as having second operand of "Nothing"</title>
<updated>2023-12-17T00:12:25+00:00</updated>
<author>
<name>iximeow</name>
<email>me@iximeow.net</email>
</author>
<published>2023-12-17T00:12:25+00:00</published>
<link rel='alternate' type='text/html' href='http://git.iximeow.net/yaxpeax-x86/commit/?id=58913fc4e1bb153fe9d8735164ef922f71c2fa97'/>
<id>58913fc4e1bb153fe9d8735164ef922f71c2fa97</id>
<content type='text'>
just report it having one operand...
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
just report it having one operand...
</pre>
</div>
</content>
</entry>
<entry>
<title>fix incorrect register class names in long_mode</title>
<updated>2023-12-16T23:54:25+00:00</updated>
<author>
<name>iximeow</name>
<email>me@iximeow.net</email>
</author>
<published>2023-12-16T23:54:13+00:00</published>
<link rel='alternate' type='text/html' href='http://git.iximeow.net/yaxpeax-x86/commit/?id=83b12fc09a69cc5324f6f002b8c52382d4b236d1'/>
<id>83b12fc09a69cc5324f6f002b8c52382d4b236d1</id>
<content type='text'>
also adjust changelog for a 1.2.1 version again, no new interfaces to go
with these bugfixes.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
also adjust changelog for a 1.2.1 version again, no new interfaces to go
with these bugfixes.
</pre>
</div>
</content>
</entry>
<entry>
<title>fix incorrect register selection for `vpbroadcastm{b2q,w2d}` with `rex.b` set</title>
<updated>2023-12-16T23:24:26+00:00</updated>
<author>
<name>iximeow</name>
<email>me@iximeow.net</email>
</author>
<published>2023-12-16T23:24:26+00:00</published>
<link rel='alternate' type='text/html' href='http://git.iximeow.net/yaxpeax-x86/commit/?id=2db223a16d1559c152170fe2a602c827a5a95fb3'/>
<id>2db223a16d1559c152170fe2a602c827a5a95fb3</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>fix incorrect register selection for `vpmov*2m` with `rex.r` set</title>
<updated>2023-12-16T23:05:08+00:00</updated>
<author>
<name>iximeow</name>
<email>me@iximeow.net</email>
</author>
<published>2023-12-16T23:05:08+00:00</published>
<link rel='alternate' type='text/html' href='http://git.iximeow.net/yaxpeax-x86/commit/?id=d7d84b3be6c929ee9d1b425a82b7121936a7cd34'/>
<id>d7d84b3be6c929ee9d1b425a82b7121936a7cd34</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>fix incorrect register selection for `vpmovm2*` with `rex.b` set</title>
<updated>2023-12-16T22:47:02+00:00</updated>
<author>
<name>iximeow</name>
<email>me@iximeow.net</email>
</author>
<published>2023-12-16T22:47:02+00:00</published>
<link rel='alternate' type='text/html' href='http://git.iximeow.net/yaxpeax-x86/commit/?id=2d303b6121e318e30572dd1134ddb0cf12bd0776'/>
<id>2d303b6121e318e30572dd1134ddb0cf12bd0776</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>abnormal memory sizes for keylocker instructions are not bugs</title>
<updated>2023-12-16T22:44:07+00:00</updated>
<author>
<name>iximeow</name>
<email>me@iximeow.net</email>
</author>
<published>2023-12-16T22:12:17+00:00</published>
<link rel='alternate' type='text/html' href='http://git.iximeow.net/yaxpeax-x86/commit/?id=4d2e196e616162726c6211abc46c043078425322'/>
<id>4d2e196e616162726c6211abc46c043078425322</id>
<content type='text'>
new `does_not_decode_invalid_registers` fuzzer found other bugs! the
384-bit accesses for 128b keylocker instructions are an
otherwise-unknown size and had a memory size of `BUG`. they are not
bugs. give the memory size a real name.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
new `does_not_decode_invalid_registers` fuzzer found other bugs! the
384-bit accesses for 128b keylocker instructions are an
otherwise-unknown size and had a memory size of `BUG`. they are not
bugs. give the memory size a real name.
</pre>
</div>
</content>
</entry>
<entry>
<title>fix opportunity for unhandled register synonyms</title>
<updated>2023-12-16T21:26:48+00:00</updated>
<author>
<name>iximeow</name>
<email>me@iximeow.net</email>
</author>
<published>2023-12-16T21:26:48+00:00</published>
<link rel='alternate' type='text/html' href='http://git.iximeow.net/yaxpeax-x86/commit/?id=110f797005cca70e18cbcc0975397d26d8045245'/>
<id>110f797005cca70e18cbcc0975397d26d8045245</id>
<content type='text'>
registers `al`, `cl`, `dl`, and `bl` could have two different
representations - with `rex.w` and without. these two forms of `RegSpec`
would not compare equal, nor has the same, so for code relying on
`RegSpec` to faithfully represent a 1-1 mapping to x86 registers, these
synonyms would introduce bugs in register analysis.

for example, in `yaxpeax-core`, this would result in instructions
writing to `rex.w al` not being visible as definitions for a future
read of `!rex.w al`.

fix this in `x86_64` code, add new test cases about the confusion,
adjust register names to make this situation more clearly a bug, and
introduce two new fuzz targets that would have helped spot this error.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
registers `al`, `cl`, `dl`, and `bl` could have two different
representations - with `rex.w` and without. these two forms of `RegSpec`
would not compare equal, nor has the same, so for code relying on
`RegSpec` to faithfully represent a 1-1 mapping to x86 registers, these
synonyms would introduce bugs in register analysis.

for example, in `yaxpeax-core`, this would result in instructions
writing to `rex.w al` not being visible as definitions for a future
read of `!rex.w al`.

fix this in `x86_64` code, add new test cases about the confusion,
adjust register names to make this situation more clearly a bug, and
introduce two new fuzz targets that would have helped spot this error.
</pre>
</div>
</content>
</entry>
<entry>
<title>more RegSpec constructor validation, fix bug in x86_64 1b reg specs</title>
<updated>2023-12-16T01:26:59+00:00</updated>
<author>
<name>iximeow</name>
<email>me@iximeow.net</email>
</author>
<published>2023-12-16T01:26:59+00:00</published>
<link rel='alternate' type='text/html' href='http://git.iximeow.net/yaxpeax-x86/commit/?id=003183a4ce31cfb718f4e4083d32c845352c2321'/>
<id>003183a4ce31cfb718f4e4083d32c845352c2321</id>
<content type='text'>
* the first four 1-byte registers, `al`, `cl`, `dl`, `bl`, can be
  constructed in two ways that produce "identical" `RegSpec` that are..
  not.
  e.g. `RegSpec::al() != Regspec::rb(0)` even though
  `RegSpec::al().name() == RegSpec::rb(0).name()`.

  this corrects the `rb` constructor at least, but instructions like
  `4830c0` and `30c0` still produce incompatible versions of `al`.

* also fix register numbering used explicit qword-sized RegSpec
  constructors, r12 and r13 used to produce r8 and r9
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* the first four 1-byte registers, `al`, `cl`, `dl`, `bl`, can be
  constructed in two ways that produce "identical" `RegSpec` that are..
  not.
  e.g. `RegSpec::al() != Regspec::rb(0)` even though
  `RegSpec::al().name() == RegSpec::rb(0).name()`.

  this corrects the `rb` constructor at least, but instructions like
  `4830c0` and `30c0` still produce incompatible versions of `al`.

* also fix register numbering used explicit qword-sized RegSpec
  constructors, r12 and r13 used to produce r8 and r9
</pre>
</div>
</content>
</entry>
<entry>
<title>fix incorrect register numbers in r12/r13 RegSpec constructor functions</title>
<updated>2023-12-16T00:34:32+00:00</updated>
<author>
<name>Dongjia "toka" Zhang</name>
<email>tokazerkje@outlook.com</email>
</author>
<published>2023-12-15T16:55:10+00:00</published>
<link rel='alternate' type='text/html' href='http://git.iximeow.net/yaxpeax-x86/commit/?id=792eb993a87fab799b3a6659c7750f2221608cbf'/>
<id>792eb993a87fab799b3a6659c7750f2221608cbf</id>
<content type='text'>
these functions had a copypaste error where the r12 and r13 versions
would create RegSpec for registers 8 and 9 instead of 12 and 13. use
correct register numbers in these macros.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
these functions had a copypaste error where the r12 and r13 versions
would create RegSpec for registers 8 and 9 instead of 12 and 13. use
correct register numbers in these macros.
</pre>
</div>
</content>
</entry>
<entry>
<title>fix handling of lar/lsl source register</title>
<updated>2023-07-24T13:41:02+00:00</updated>
<author>
<name>iximeow</name>
<email>me@iximeow.net</email>
</author>
<published>2023-07-24T13:41:02+00:00</published>
<link rel='alternate' type='text/html' href='http://git.iximeow.net/yaxpeax-x86/commit/?id=ab51fd1b2c7cf1b7bb6f84c5b07e06245f6b3d99'/>
<id>ab51fd1b2c7cf1b7bb6f84c5b07e06245f6b3d99</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
