Examine individual changes

Abuse Filter navigation (Home | Recent filter changes | Examine past edits | Abuse log)
Jump to navigation Jump to search

This page allows you to examine the variables generated by the Abuse Filter for an individual change.

Variables generated for this change

VariableValue
Edit count of the user (user_editcount)
0
Name of the user account (user_name)
'Pasztor'
Age of the user account (user_age)
36
Page ID (page_id)
9736
Page namespace (page_namespace)
0
Page title (without namespace) (page_title)
'Mov'
Full page title (page_prefixedtitle)
'Mov'
Action (action)
'edit'
Edit summary/reason (summary)
'typo fix'
Old content model (old_content_model)
'wikitext'
New content model (new_content_model)
'wikitext'
Old page wikitext, before the edit (old_wikitext)
'{{lowercase}} '''<code>mov</code>''' is an x86 assembly instruction identified to be Turing-complete by [[Stephen Dolan]] in ''mov is Turing-complete''<ref>S. Dolan, 2013. ''mov'' is Turing-complete. Preprint. https://drwho.virtadpt.net/files/mov.pdf https://harrisonwl.github.io/assets/courses/malware/spring2017/papers/mov-is-turing-complete.pdf</ref> and developed further by xoreaxeaxeax in [https://github.com/xoreaxeaxeax/movfuscator Movfuscator]. It may also be considered the basis of a [[OISC|one instruction set computer]] archtecture which (unlike [[Subleq]]) does not have to use self modifying code. == About the <code>mov</code> instruction == The <code>mov</code> instruction has a number of different forms. Let r1,r2 denote registers, then for example: * mov r1, 42 % store the number 42 in r1 * mov r1, r2 % fetch the value in r2 and store it in r1 * mov [r1], 42 % store the number 42 in the address the register r1 points to * mov r1, [r2] % fetch the value the address in register r2 points to and store it in r1 * mov [r1], r2 % store the value register r2 in the address the register r1 points to The expressions in brackets can also include +offsets or even adding two register together. All of these features are made use of in different encodings. == Equality Test == To test equality of 'x' and 'y': mov [x], 0 mov [y], 1 mov result, [x] This works by having a large array which is written into and read back out from. If x = y the readback will give 1 and it would be 0 otherwise. == Arithmetic and Logic == Arithmetic and logic gates can be encoded using lookup tables. For example to find the xor of x and y we have the following lookup tables xor_xy: dd xor_0y, xor_1y xor_0y: dd 0, 1 xor_1y: dd 1, 0 and the code is mov r1,[xor_xy+x] mov r2,[y] mov result,[r1+r2] == As a compilation target == The movfuscator repo contains an example compiler from [[brainfuck]] to <code>mov</code> instructions. The author also wrote an lcc (C compiler) backend for it. The result is extremely long linear code with no branches which can cause reverse engineering tools to crash. == References == <references /> [[Category:Esoteric subset]] [[Category:Computational models]] [[Category:Turing complete]] [[Category:Before 1993]] [[Category:2013]] [[Category:Implemented]] [[Category:OISC]] [[Category:Languages]]'
New page wikitext, after the edit (new_wikitext)
'{{lowercase}} '''<code>mov</code>''' is an x86 assembly instruction identified to be Turing-complete by [[Stephen Dolan]] in ''mov is Turing-complete''<ref>S. Dolan, 2013. ''mov'' is Turing-complete. Preprint. https://drwho.virtadpt.net/files/mov.pdf https://harrisonwl.github.io/assets/courses/malware/spring2017/papers/mov-is-turing-complete.pdf</ref> and developed further by xoreaxeaxeax in [https://github.com/xoreaxeaxeax/movfuscator Movfuscator]. It may also be considered the basis of a [[OISC|one instruction set computer]] architecture which (unlike [[Subleq]]) does not have to use self modifying code. == About the <code>mov</code> instruction == The <code>mov</code> instruction has a number of different forms. Let r1,r2 denote registers, then for example: * mov r1, 42 % store the number 42 in r1 * mov r1, r2 % fetch the value in r2 and store it in r1 * mov [r1], 42 % store the number 42 in the address the register r1 points to * mov r1, [r2] % fetch the value the address in register r2 points to and store it in r1 * mov [r1], r2 % store the value register r2 in the address the register r1 points to The expressions in brackets can also include +offsets or even adding two register together. All of these features are made use of in different encodings. == Equality Test == To test equality of 'x' and 'y': mov [x], 0 mov [y], 1 mov result, [x] This works by having a large array which is written into and read back out from. If x = y the readback will give 1 and it would be 0 otherwise. == Arithmetic and Logic == Arithmetic and logic gates can be encoded using lookup tables. For example to find the xor of x and y we have the following lookup tables xor_xy: dd xor_0y, xor_1y xor_0y: dd 0, 1 xor_1y: dd 1, 0 and the code is mov r1,[xor_xy+x] mov r2,[y] mov result,[r1+r2] == As a compilation target == The movfuscator repo contains an example compiler from [[brainfuck]] to <code>mov</code> instructions. The author also wrote an lcc (C compiler) backend for it. The result is extremely long linear code with no branches which can cause reverse engineering tools to crash. == References == <references /> [[Category:Esoteric subset]] [[Category:Computational models]] [[Category:Turing complete]] [[Category:Before 1993]] [[Category:2013]] [[Category:Implemented]] [[Category:OISC]] [[Category:Languages]]'
Unified diff of changes made by edit (edit_diff)
'@@ -1,4 +1,4 @@ {{lowercase}} -'''<code>mov</code>''' is an x86 assembly instruction identified to be Turing-complete by [[Stephen Dolan]] in ''mov is Turing-complete''<ref>S. Dolan, 2013. ''mov'' is Turing-complete. Preprint. https://drwho.virtadpt.net/files/mov.pdf https://harrisonwl.github.io/assets/courses/malware/spring2017/papers/mov-is-turing-complete.pdf</ref> and developed further by xoreaxeaxeax in [https://github.com/xoreaxeaxeax/movfuscator Movfuscator]. It may also be considered the basis of a [[OISC|one instruction set computer]] archtecture which (unlike [[Subleq]]) does not have to use self modifying code. +'''<code>mov</code>''' is an x86 assembly instruction identified to be Turing-complete by [[Stephen Dolan]] in ''mov is Turing-complete''<ref>S. Dolan, 2013. ''mov'' is Turing-complete. Preprint. https://drwho.virtadpt.net/files/mov.pdf https://harrisonwl.github.io/assets/courses/malware/spring2017/papers/mov-is-turing-complete.pdf</ref> and developed further by xoreaxeaxeax in [https://github.com/xoreaxeaxeax/movfuscator Movfuscator]. It may also be considered the basis of a [[OISC|one instruction set computer]] architecture which (unlike [[Subleq]]) does not have to use self modifying code. == About the <code>mov</code> instruction == '
New page size (new_size)
2384
Old page size (old_size)
2383
Lines added in edit (added_lines)
[ 0 => ''''<code>mov</code>''' is an x86 assembly instruction identified to be Turing-complete by [[Stephen Dolan]] in ''mov is Turing-complete''<ref>S. Dolan, 2013. ''mov'' is Turing-complete. Preprint. https://drwho.virtadpt.net/files/mov.pdf https://harrisonwl.github.io/assets/courses/malware/spring2017/papers/mov-is-turing-complete.pdf</ref> and developed further by xoreaxeaxeax in [https://github.com/xoreaxeaxeax/movfuscator Movfuscator]. It may also be considered the basis of a [[OISC|one instruction set computer]] architecture which (unlike [[Subleq]]) does not have to use self modifying code.' ]
Unix timestamp of change (timestamp)
'1776150015'