` to `txt2ghidra.py`.
46 | The `PATCH_FILE` must be in the format:
47 | ```
48 | 0000: 000000000000 00003ecb3a3b 00003eb96ef7 00003e8c6217 -
49 | [...] | match & patch
50 | 001c: 00003e9f31a5 00003efb758f 000000000000 000000000000 -
51 | 0000: c0053d03ffc8 4152f45c027f c21e0303d23d 000000000000 -
52 | [...] | ucode RAM
53 | 01fc: 000000000000 000000000000 000000000000 000000000000 -
54 | 0000: 0000070000ce 000018201a50 000018201a50 0000384c0600 -
55 | [...] | seqword RAM
56 | 007c: 000031805140 000011fc9192 000031f59040 000000000000 -
57 | ```
58 |
59 | The patches will be shown in the decompilers as conditionals statements under the condition `if (PATCH_ENABLED() != 0) { [...] }` to show both the patch and the original instructions.
60 |
61 | ## Open Problems
62 |
63 | Most of the instructions' semantics is correctly defined, and decompilation should generally work.
64 | There are a few remaining open problems to tackle. PR and issues to discuss them are welcomed.
65 |
66 | - We identify function calls as instructions doing `saveuip + jmp` (usually combining instructions and sequence words), but this may not always be true.
67 | - How do function calls take parameters and return values? Seems a mix of temporary registers, but not always the same registers.
68 | - There is still unclear semantics on some operations (uflow uret parameters meaning, segment selectors packing, ...) marked by `TODO` in the `.slaspec` file
69 |
70 | There is also some missing implementation details:
71 |
72 | - All registers are assumed to be 64 bits, which is in general false. Disassembled instruction include the operand size, but not the decompiled view.
73 | - No SSE/AVX instruction is currently supported.
74 | - Temporary register aliasing is not modeled (`ROVR`).
75 | - Indirect jumps are rarely resolved by ghidra.
76 | - Functions return using jumps trough the `UIP0/1` register (see (`uCodeDisasm`)[https://github.com/chip-red-pill/uCodeDisasm]) which decreases decompilation quality.
77 |
--------------------------------------------------------------------------------
/ghidra-processor-module/bin/README.txt:
--------------------------------------------------------------------------------
1 | Java source directory to hold module-specific Ghidra scripts.
2 |
--------------------------------------------------------------------------------
/ghidra-processor-module/bin/help/TOC_Source.xml:
--------------------------------------------------------------------------------
1 |
2 |
49 |
50 |
51 |
52 |
57 |
58 |
--------------------------------------------------------------------------------
/ghidra-processor-module/bin/help/shared/Frontpage.css:
--------------------------------------------------------------------------------
1 | /* ###
2 | * IP: GHIDRA
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | /*
17 | WARNING!
18 | This file is copied to all help directories. If you change this file, you must copy it
19 | to each src/main/help/help/shared directory.
20 |
21 |
22 | Java Help Note: JavaHelp does not accept sizes (like in 'margin-top') in anything but
23 | px (pixel) or with no type marking.
24 |
25 | */
26 |
27 | body { margin-bottom: 50px; margin-left: 10px; margin-right: 10px; margin-top: 10px; } /* some padding to improve readability */
28 | li { font-family:times new roman; font-size:14pt; }
29 | h1 { color:#000080; font-family:times new roman; font-size:36pt; font-style:italic; font-weight:bold; text-align:center; }
30 | h2 { margin: 10px; margin-top: 20px; color:#984c4c; font-family:times new roman; font-size:18pt; font-weight:bold; }
31 | h3 { margin-left: 10px; margin-top: 20px; color:#0000ff; font-family:times new roman; `font-size:14pt; font-weight:bold; }
32 | h4 { margin-left: 10px; margin-top: 20px; font-family:times new roman; font-size:14pt; font-style:italic; }
33 |
34 | /*
35 | P tag code. Most of the help files nest P tags inside of blockquote tags (the was the
36 | way it had been done in the beginning). The net effect is that the text is indented. In
37 | modern HTML we would use CSS to do this. We need to support the Ghidra P tags, nested in
38 | blockquote tags, as well as naked P tags. The following two lines accomplish this. Note
39 | that the 'blockquote p' definition will inherit from the first 'p' definition.
40 | */
41 | p { margin-left: 40px; font-family:times new roman; font-size:14pt; }
42 | blockquote p { margin-left: 10px; }
43 |
44 | p.providedbyplugin { color:#7f7f7f; margin-left: 10px; font-size:14pt; margin-top:100px }
45 | p.ProvidedByPlugin { color:#7f7f7f; margin-left: 10px; font-size:14pt; margin-top:100px }
46 | p.relatedtopic { color:#800080; margin-left: 10px; font-size:14pt; }
47 | p.RelatedTopic { color:#800080; margin-left: 10px; font-size:14pt; }
48 |
49 | /*
50 | We wish for a tables to have space between it and the preceding element, so that text
51 | is not too close to the top of the table. Also, nest the table a bit so that it is clear
52 | the table relates to the preceding text.
53 | */
54 | table { margin-left: 20px; margin-top: 10px; width: 80%;}
55 | td { font-family:times new roman; font-size:14pt; vertical-align: top; }
56 | th { font-family:times new roman; font-size:14pt; font-weight:bold; background-color: #EDF3FE; }
57 |
58 | /*
59 | Code-like formatting for things such as file system paths and proper names of classes,
60 | methods, etc. To apply this to a file path, use this syntax:
61 | ...
62 | */
63 | code { color: black; font-weight: bold; font-family: courier new, monospace; font-size: 14pt; white-space: nowrap; }
64 | code.path { color: #4682B4; font-weight: bold; font-family: courier new, monospace; font-size: 14pt; white-space: nowrap; }
65 |
--------------------------------------------------------------------------------
/ghidra-processor-module/bin/help/topics/x86_ucode/help.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
7 |
8 |
9 |
10 |
11 |
12 | Skeleton Help File for a Module
13 |
14 |
15 |
16 |
17 | Skeleton Help File for a Module
18 |
19 | This is a simple skeleton help topic. For a better description of what should and should not
20 | go in here, see the "sample" Ghidra extension in the Extensions/Ghidra directory, or see your
21 | favorite help topic. In general, language modules do not have their own help topics.
22 |
23 |
24 |
--------------------------------------------------------------------------------
/ghidra-processor-module/bin/images/README.txt:
--------------------------------------------------------------------------------
1 | The "src/resources/images" directory is intended to hold all image/icon files used by
2 | this module.
3 |
--------------------------------------------------------------------------------
/ghidra-processor-module/build.gradle:
--------------------------------------------------------------------------------
1 | /* ###
2 | * IP: GHIDRA
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | // Builds a Ghidra Extension for a given Ghidra installation.
17 | //
18 | // An absolute path to the Ghidra installation directory must be supplied either by setting the
19 | // GHIDRA_INSTALL_DIR environment variable or Gradle project property:
20 | //
21 | // > export GHIDRA_INSTALL_DIR=
22 | // > gradle
23 | //
24 | // or
25 | //
26 | // > gradle -PGHIDRA_INSTALL_DIR=
27 | //
28 | // Gradle should be invoked from the directory of the project to build. Please see the
29 | // application.gradle.version property in /Ghidra/application.properties
30 | // for the correction version of Gradle to use for the Ghidra installation you specify.
31 |
32 | //----------------------START "DO NOT MODIFY" SECTION------------------------------
33 | def ghidraInstallDir
34 |
35 | if (System.env.GHIDRA_INSTALL_DIR) {
36 | ghidraInstallDir = System.env.GHIDRA_INSTALL_DIR
37 | }
38 | else if (project.hasProperty("GHIDRA_INSTALL_DIR")) {
39 | ghidraInstallDir = project.getProperty("GHIDRA_INSTALL_DIR")
40 | }
41 |
42 | if (ghidraInstallDir) {
43 | apply from: new File(ghidraInstallDir).getCanonicalPath() + "/support/buildExtension.gradle"
44 | }
45 | else {
46 | throw new GradleException("GHIDRA_INSTALL_DIR is not defined!")
47 | }
48 | //----------------------END "DO NOT MODIFY" SECTION-------------------------------
49 |
--------------------------------------------------------------------------------
/ghidra-processor-module/data/README.txt:
--------------------------------------------------------------------------------
1 | The "data" directory is intended to hold data files that will be used by this module and will
2 | not end up in the .jar file, but will be present in the zip or tar file. Typically, data
3 | files are placed here rather than in the resources directory if the user may need to edit them.
4 |
5 | An optional data/languages directory can exist for the purpose of containing various Sleigh language
6 | specification files and importer opinion files.
7 |
8 | The data/buildLanguage.xml is used for building the contents of the data/languages directory.
9 |
10 | The skel language definition has been commented-out within the skel.ldefs file so that the
11 | skeleton language does not show-up within Ghidra.
12 |
13 | See the Sleigh language documentation (docs/languages/index.html) for details Sleigh language
14 | specification syntax.
15 |
--------------------------------------------------------------------------------
/ghidra-processor-module/data/buildLanguage.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/ghidra-processor-module/data/languages/x86ucode.cspec:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
--------------------------------------------------------------------------------
/ghidra-processor-module/data/languages/x86ucode.ldefs:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
14 | x86 GLM ucode
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/ghidra-processor-module/data/sleighArgs.txt:
--------------------------------------------------------------------------------
1 | # Add sleigh compiler options to this file (one per line) which will
2 | # be used when compiling each language within this module.
3 | # All options should start with a '-' character.
4 | #
5 | # IMPORTANT: The -a option should NOT be specified
6 | #
--------------------------------------------------------------------------------
/ghidra-processor-module/extension.properties:
--------------------------------------------------------------------------------
1 | name=@extname@
2 | description=The extension description can be customized by editing the extension.properties file.
3 | author=
4 | createdOn=
5 | version=@extversion@
6 |
--------------------------------------------------------------------------------
/ghidra-processor-module/ghidra_scripts/README.txt:
--------------------------------------------------------------------------------
1 | Java source directory to hold module-specific Ghidra scripts.
2 |
--------------------------------------------------------------------------------
/ghidra-processor-module/images/Screenshot1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pietroborrello/CustomProcessingUnit/4237524fe7545c66e42dd986113f220662c06f6a/ghidra-processor-module/images/Screenshot1.png
--------------------------------------------------------------------------------
/ghidra-processor-module/images/Screenshot2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pietroborrello/CustomProcessingUnit/4237524fe7545c66e42dd986113f220662c06f6a/ghidra-processor-module/images/Screenshot2.png
--------------------------------------------------------------------------------
/ghidra-processor-module/os/linux64/README.txt:
--------------------------------------------------------------------------------
1 | The "os/linux64" directory is intended to hold Linux native binaries
2 | which this module is dependent upon. This directory may be eliminated for a specific
3 | module if native binaries are not provided for the corresponding platform.
4 |
--------------------------------------------------------------------------------
/ghidra-processor-module/os/osx64/README.txt:
--------------------------------------------------------------------------------
1 | The "os/osx64" directory is intended to hold macOS (OS X) native binaries
2 | which this module is dependent upon. This directory may be eliminated for a specific
3 | module if native binaries are not provided for the corresponding platform.
4 |
--------------------------------------------------------------------------------
/ghidra-processor-module/os/win64/README.txt:
--------------------------------------------------------------------------------
1 | The "os/win64" directory is intended to hold MS Windows native binaries (.exe)
2 | which this module is dependent upon. This directory may be eliminated for a specific
3 | module if native binaries are not provided for the corresponding platform.
4 |
--------------------------------------------------------------------------------
/ghidra-processor-module/src/main/help/help/TOC_Source.xml:
--------------------------------------------------------------------------------
1 |
2 |
49 |
50 |
51 |
52 |
57 |
58 |
--------------------------------------------------------------------------------
/ghidra-processor-module/src/main/help/help/shared/Frontpage.css:
--------------------------------------------------------------------------------
1 | /* ###
2 | * IP: GHIDRA
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | /*
17 | WARNING!
18 | This file is copied to all help directories. If you change this file, you must copy it
19 | to each src/main/help/help/shared directory.
20 |
21 |
22 | Java Help Note: JavaHelp does not accept sizes (like in 'margin-top') in anything but
23 | px (pixel) or with no type marking.
24 |
25 | */
26 |
27 | body { margin-bottom: 50px; margin-left: 10px; margin-right: 10px; margin-top: 10px; } /* some padding to improve readability */
28 | li { font-family:times new roman; font-size:14pt; }
29 | h1 { color:#000080; font-family:times new roman; font-size:36pt; font-style:italic; font-weight:bold; text-align:center; }
30 | h2 { margin: 10px; margin-top: 20px; color:#984c4c; font-family:times new roman; font-size:18pt; font-weight:bold; }
31 | h3 { margin-left: 10px; margin-top: 20px; color:#0000ff; font-family:times new roman; `font-size:14pt; font-weight:bold; }
32 | h4 { margin-left: 10px; margin-top: 20px; font-family:times new roman; font-size:14pt; font-style:italic; }
33 |
34 | /*
35 | P tag code. Most of the help files nest P tags inside of blockquote tags (the was the
36 | way it had been done in the beginning). The net effect is that the text is indented. In
37 | modern HTML we would use CSS to do this. We need to support the Ghidra P tags, nested in
38 | blockquote tags, as well as naked P tags. The following two lines accomplish this. Note
39 | that the 'blockquote p' definition will inherit from the first 'p' definition.
40 | */
41 | p { margin-left: 40px; font-family:times new roman; font-size:14pt; }
42 | blockquote p { margin-left: 10px; }
43 |
44 | p.providedbyplugin { color:#7f7f7f; margin-left: 10px; font-size:14pt; margin-top:100px }
45 | p.ProvidedByPlugin { color:#7f7f7f; margin-left: 10px; font-size:14pt; margin-top:100px }
46 | p.relatedtopic { color:#800080; margin-left: 10px; font-size:14pt; }
47 | p.RelatedTopic { color:#800080; margin-left: 10px; font-size:14pt; }
48 |
49 | /*
50 | We wish for a tables to have space between it and the preceding element, so that text
51 | is not too close to the top of the table. Also, nest the table a bit so that it is clear
52 | the table relates to the preceding text.
53 | */
54 | table { margin-left: 20px; margin-top: 10px; width: 80%;}
55 | td { font-family:times new roman; font-size:14pt; vertical-align: top; }
56 | th { font-family:times new roman; font-size:14pt; font-weight:bold; background-color: #EDF3FE; }
57 |
58 | /*
59 | Code-like formatting for things such as file system paths and proper names of classes,
60 | methods, etc. To apply this to a file path, use this syntax:
61 | ...
62 | */
63 | code { color: black; font-weight: bold; font-family: courier new, monospace; font-size: 14pt; white-space: nowrap; }
64 | code.path { color: #4682B4; font-weight: bold; font-family: courier new, monospace; font-size: 14pt; white-space: nowrap; }
65 |
--------------------------------------------------------------------------------
/ghidra-processor-module/src/main/help/help/topics/x86_ucode/help.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
7 |
8 |
9 |
10 |
11 |
12 | Skeleton Help File for a Module
13 |
14 |
15 |
16 |
17 | Skeleton Help File for a Module
18 |
19 | This is a simple skeleton help topic. For a better description of what should and should not
20 | go in here, see the "sample" Ghidra extension in the Extensions/Ghidra directory, or see your
21 | favorite help topic. In general, language modules do not have their own help topics.
22 |
23 |
24 |
--------------------------------------------------------------------------------
/ghidra-processor-module/src/main/resources/images/README.txt:
--------------------------------------------------------------------------------
1 | The "src/resources/images" directory is intended to hold all image/icon files used by
2 | this module.
3 |
--------------------------------------------------------------------------------
/ghidra-processor-module/src/test/java/README.test.txt:
--------------------------------------------------------------------------------
1 | The "test" directory is intended to hold unit test cases. The package structure within
2 | this folder should correspond to that found in the "src" folder.
3 |
--------------------------------------------------------------------------------
/slides.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pietroborrello/CustomProcessingUnit/4237524fe7545c66e42dd986113f220662c06f6a/slides.pdf
--------------------------------------------------------------------------------
/uasm-lib/0x000506C9/ms_array2.txt:
--------------------------------------------------------------------------------
1 | array 02:
2 | 0000: 0000070000ce 000018201a50 000018201a50 0000384c0600
3 | 0004: 000021a04800 000011a83400 00002460d200 000031fce000
4 | 0008: 0000085c6640 000028fc6192 000035763040 000012b39951
5 | 000c: 000021a03110 000011a9ad40 00000198b400 000021fce040
6 | 0010: 000004a83a00 0000300000c0 000023204080 0000285b9640
7 | 0014: 000021d49c00 0000300000c0 000001805180 000021a71140
8 | 0018: 000011a3ac00 0000300000c0 0000300000c0 000011e1ea89
9 | 001c: 0000048000c0 000026263c00 0000300000c0 0000300000c0
10 | 0020: 0000300000c0 000001fc9a40 0000300000c0 0000300000c0
11 | 0024: 000031fc8900 0000300000c0 0000300000c0 000018757c88
12 | 0028: 0000180000c0 0000387ca440 000029360400 000011ba0400
13 | 002c: 000011ba3c40 000028671440 000011a4be40 00002632cd40
14 | 0030: 000031e9f000 0000300000c0 00001481598d 0000300000c0
15 | 0034: 0000090000c0 00002183be80 00000429cc00 00001d0000c0
16 | 0038: 000031b1a640 0000300000c0 0000300000c0 000011fc6192
17 | 003c: 000031f59040 0000300000c0 0000300000c0 000001d4a800
18 | 0040: 000031d87555 0000300000c0 000011b9f640 0000300000c0
19 | 0044: 0000090000c0 000011cc3480 000001ddae00 000008621800
20 | 0048: 0000300000c0 0000300000c0 000038283a80 0000300000c0
21 | 004c: 0000300000c0 000011a82500 0000300000c0 0000300000c0
22 | 0050: 0000300000c0 0000300000c0 0000300000c0 0000300000c0
23 | 0054: 000021805100 000001fc2a00 000031a9b500 000000000000
24 | 0058: 000000000000 000000000000 000000000000 000000000000
25 | 005c: 000000000000 000000000000 000000000000 000000000000
26 | 0060: 000000000000 000000000000 000000000000 000000000000
27 | 0064: 000000000000 000000000000 000000000000 000000000000
28 | 0068: 000000000000 000000000000 000000000000 000000000000
29 | 006c: 000000000000 000000000000 000000000000 000000000000
30 | 0070: 000000000000 000000000000 000000000000 000000000000
31 | 0074: 000000000000 000000000000 000000000000 000000000000
32 | 0078: 000000000000 000000000000 000000000000 000000000000
33 | 007c: 000000000000 000000000000 000000000000 000000000000
--------------------------------------------------------------------------------
/uasm-lib/0x000506C9/ms_array3.txt:
--------------------------------------------------------------------------------
1 | array 03:
2 | 0000: 000000000000 00003e573a3b 00003e8f6ef7 00003e8c6217
3 | 0004: 00003eaa29a3 00003e5d69ef 00003e1b18b3 00003e1f2833
4 | 0008: 00003e27549b 00003e2f23ab 00003e042011 00003e0018dd
5 | 000c: 00003e2e4589 00003e854c33 00003e553a03 00003e533603
6 | 0010: 00003e6d31a5 00003e77758f 000000000000 000000000000
7 | 0014: 000000000000 000000000000 000000000000 000000000000
8 | 0018: 000000000000 000000000000 000000000000 000000000000
9 | 001c: 000000000000 000000000000 000000000000 000000000000
--------------------------------------------------------------------------------
/uasm-lib/0x000506C9/ms_array4.txt:
--------------------------------------------------------------------------------
1 | array 04:
2 | 0000: c0053d03ffc8 815d757002c0 815d757002c0 415100000fb0
3 | 0004: 80420000023f c062f01f1200 a04337080235 417000035d71
4 | 0008: 815d65700280 41420b000f80 00012b039e48 00002003cf08
5 | 000c: 800e06600240 804800035d72 80070043ef9f 400505031c88
6 | 0010: e96270800240 a90205c00200 813f0003f03f 815d0d7002c0
7 | 0014: c0563103f23f 808805030c08 9062810f2240 c00524071e08
8 | 0018: 286a8429027e 80850003dc7f 40160403f23f 40e100039032
9 | 001c: c06213174200 69620bc00240 03800003f03e 00040303ffc8
10 | 0020: c004ff03ffc8 40054703ffc8 40620103f200 c0a40503e23e
11 | 0024: c00a01000200 c0410003efbf c0637f03f200 00620c036200
12 | 0028: 0fff00000000 e86a446d023f c06350032200 80400403ef88
13 | 002c: 486aee140330 786a11310631 406387030200 b86aba3102f1
14 | 0030: 796289480200 ed0be443f00a c0010003fffe 40070103ffc8
15 | 0034: 20438e08023f 40070103ffc8 0e750003003c 800610131e08
16 | 0038: 40653d031235 4004a1032c90 803200032cb0 7929e42c0032
17 | 003c: 80012c039e48 8131010b1231 000100031c7d 7d0f00035c88
18 | 0040: 4008e0036008 c00588078e08 00080103d008 c0330003bd7b
19 | 0044: c007fc035d48 c007fc035d48 800a28000200 c150197402fb
20 | 0048: 4004a1032c90 803200032cb0 7929e42c0032 806353030200
21 | 004c: 007300030c38 40360003cf38 e38000030c00 c0a100031ef1
22 | 0050: 4c4b80231000 8c4b80372000 8062091b2200 00620e075200
23 | 0054: 800c64300280 900a00000300 4042bb1f5232 000000000000
24 | 0058: 000000000000 000000000000 000000000000 000000000000
25 | 005c: 000000000000 000000000000 000000000000 000000000000
26 | 0060: 000000000000 000000000000 000000000000 000000000000
27 | 0064: 000000000000 000000000000 000000000000 000000000000
28 | 0068: 000000000000 000000000000 000000000000 000000000000
29 | 006c: 000000000000 000000000000 000000000000 000000000000
30 | 0070: 000000000000 000000000000 000000000000 000000000000
31 | 0074: 000000000000 000000000000 000000000000 000000000000
32 | 0078: 000000000000 000000000000 000000000000 000000000000
33 | 007c: 000000000000 000000000000 000000000000 000000000000
34 | 0080: 4152f45c027f 000c44f7e208 400c98f7e208 00620003f200
35 | 0084: 20432b040200 006205071200 817000035d72 c00d09800000
36 | 0088: c00d09800000 415dca680280 0152217002ff 400e08400240
37 | 008c: 8000803fcfc9 c042bb1f5235 000501031c88 417000035d71
38 | 0090: e96272c003c0 80636103e200 417e0003effe 10628e0f0240
39 | 0094: 40401803ce08 804147030c10 400e02000200 4150157002f1
40 | 0098: c0638a03f200 c0141003f23f c0852403ffc8 00a100039e7d
41 | 009c: 2a6213540734 00430c00023f 80434500023f 39299a71023f
42 | 00a0: 392886f1077f 0150867002ff 80087817e008 ce750003e03e
43 | 00a4: 00626703e200 00620003f200 b92941310ffe 000000000000
44 | 00a8: 29628903f200 40628903f200 000000000000 000000000000
45 | 00ac: 0fef01000000 9062f91f6240 800000031c30 c00d03800000
46 | 00b0: 000000000000 0004001bffc8 ad0fe443f00a ed0f1833f00a
47 | 00b4: 00633703f200 ce250003f03f 000000000000 f928197102b1
48 | 00b8: c00405031c48 80635c030200 000812030008 000000000000
49 | 00bc: 01521d7002ff c005202fdc8a 404700035d71 000000000000
50 | 00c0: 4008a0037008 80240103c23b 433a5173a00b 80250203b23b
51 | 00c4: c001a0035d48 8001a4035d48 9062cd0bb240 000000000000
52 | 00c8: 80635c030200 000812030008 40634703c200 00635c038200
53 | 00cc: c0540f030230 000000000000 0c4b8027b000 402100030c31
54 | 00d0: c0a100031ef1 c0a100032ef2 00620a1b3200 c040d803ce48
55 | 00d4: 000000000000 8e750003203c 000000000000 000000000000
56 | 00d8: 000000000000 000000000000 000000000000 000000000000
57 | 00dc: 000000000000 000000000000 000000000000 000000000000
58 | 00e0: 000000000000 000000000000 000000000000 000000000000
59 | 00e4: 000000000000 000000000000 000000000000 000000000000
60 | 00e8: 000000000000 000000000000 000000000000 000000000000
61 | 00ec: 000000000000 000000000000 000000000000 000000000000
62 | 00f0: 000000000000 000000000000 000000000000 000000000000
63 | 00f4: 000000000000 000000000000 000000000000 000000000000
64 | 00f8: 000000000000 000000000000 000000000000 000000000000
65 | 00fc: 000000000000 000000000000 000000000000 000000000000
66 | 0100: c21e0303d23d 000000000000 400100030030 4004f007ffd0
67 | 0104: c048fe7fc00a 586b119c0231 800509031c88 400c24f002c0
68 | 0108: 2d0ba0030008 40880003a031 c042bb1c0200 800800000000
69 | 010c: 8e750003203c c86a1d50037f 417000035d71 29632b040600
70 | 0110: a0437f00023e 00634503f200 80630c03f200 80210003fcbf
71 | 0114: 806306030200 1062850f1240 800c1c300280 d962dd480300
72 | 0118: 80850803ffc8 40330003ff7f 40850b03ffc8 00080003203a
73 | 011c: 800800000000 00436100023e 40620403f200 c0620c03f200
74 | 0120: 792886f1073f 000e0c000200 80000883ef88 39289a310fbf
75 | 0124: 40641003e23e 786b41f103ff a9626dc003c0 0007070b9e48
76 | 0128: 800800000000 4eff00000000 c0520568027a 9062b40b0240
77 | 012c: c0632b031200 2d0be41e100a 1062e70b1240 0042bb1c0235
78 | 0130: a0435c00023f 40250403f23f 800155020c08 41080003f010
79 | 0134: 386b4e00003f 80638e03f200 c02510032235 f92839710231
80 | 0138: 9062800b2240 805410030230 80a100070c08 40880003a031
81 | 013c: c005883f1c8a 41312203d23d 7d0b00031c88 80632003b200
82 | 0140: 400580079e48 c0003427c23c 40141e03b23d b92912b5033b
83 | 0144: 392916b503fb c06430035235 40047003bec8 9062800b2240
84 | 0148: 805410030230 80a100070c08 100a00000380 001407038238
85 | 014c: 813e75338c08 c062fe1f0200 cc4b802b1000 8c4b802fb000
86 | 0150: 0c4b8033b000 802100031c72 80620d074200 c00e05000200
87 | 0154: 000000000000 804800035d72 000000000000 000000000000
88 | 0158: 000000000000 000000000000 000000000000 000000000000
89 | 015c: 000000000000 000000000000 000000000000 000000000000
90 | 0160: 000000000000 000000000000 000000000000 000000000000
91 | 0164: 000000000000 000000000000 000000000000 000000000000
92 | 0168: 000000000000 000000000000 000000000000 000000000000
93 | 016c: 000000000000 000000000000 000000000000 000000000000
94 | 0170: 000000000000 000000000000 000000000000 000000000000
95 | 0174: 000000000000 000000000000 000000000000 000000000000
96 | 0178: 000000000000 000000000000 000000000000 000000000000
97 | 017c: 000000000000 000000000000 000000000000 000000000000
98 | 0180: c00000000000 000000000000 400000000000 400000000000
99 | 0184: c00000000000 400000000000 800000000000 400000000000
100 | 0188: 000000000000 400000000000 c00000000000 800000000000
101 | 018c: 800000000000 c00000000000 400000000000 000000000000
102 | 0190: 800000000000 000000000000 800000000000 800000000000
103 | 0194: 800000000000 000000000000 800000000000 c00000000000
104 | 0198: 800000000000 400000000000 400000000000 000000000000
105 | 019c: 800000000000 000000000000 400000000000 c00000000000
106 | 01a0: 400000000000 000000000000 800000000000 000000000000
107 | 01a4: 400000000000 400000000000 800000000000 000000000000
108 | 01a8: 800000000000 400000000000 c00000000000 800000000000
109 | 01ac: c00000000000 000000000000 000000000000 000000000000
110 | 01b0: 800000000000 400000000000 800000000000 400000000000
111 | 01b4: 000000000000 800000000000 c00000000000 c00000000000
112 | 01b8: 800000000000 800000000000 800000000000 400000000000
113 | 01bc: c00000000000 400000000000 400000000000 800000000000
114 | 01c0: 400000000000 c00000000000 400000000000 800000000000
115 | 01c4: 000000000000 c00000000000 400000000000 800000000000
116 | 01c8: 800000000000 800000000000 000000000000 000000000000
117 | 01cc: 800000000000 c00000000000 c00000000000 800000000000
118 | 01d0: 000000000000 800000000000 800000000000 c00000000000
119 | 01d4: 000000000000 800000000000 000000000000 000000000000
120 | 01d8: 000000000000 000000000000 000000000000 000000000000
121 | 01dc: 000000000000 000000000000 000000000000 000000000000
122 | 01e0: 000000000000 000000000000 000000000000 000000000000
123 | 01e4: 000000000000 000000000000 000000000000 000000000000
124 | 01e8: 000000000000 000000000000 000000000000 000000000000
125 | 01ec: 000000000000 000000000000 000000000000 000000000000
126 | 01f0: 000000000000 000000000000 000000000000 000000000000
127 | 01f4: 000000000000 000000000000 000000000000 000000000000
128 | 01f8: 000000000000 000000000000 000000000000 000000000000
129 | 01fc: 000000000000 000000000000 000000000000 000000000000
--------------------------------------------------------------------------------
/uasm-lib/0x000506CA/ms_array2.txt:
--------------------------------------------------------------------------------
1 | 0000: 00003fffefff 000000000410 000010000000 000000000000
2 | 0004: 000000000000 000000001000 000000410500 000000100000
3 | 0008: 000000008080 000004c08000 000020002100 000005000000
4 | 000c: 00000a020200 000003000000 000000100080 00002fd43661
5 | 0010: 0000030010a2 000000000400 000000420242 000000000000
6 | 0014: 000001001000 000000480000 000000000000 000000000000
7 | 0018: 00000a800930 000022210080 000000020001 000000010001
8 | 001c: 000006040800 000000400088 000004018800 0000100aa0c8
9 | 0020: 000003006101 000000002000 000000006000 000000004000
10 | 0024: 000004010000 000000000000 000000000000 000000102000
11 | 0028: 000000000001 000000060400 00000840201a 000002000040
12 | 002c: 000000063400 000000000040 000000144104 000002c46ee4
13 | 0030: 000003a3908b 000000000000 000000002000 000002000800
14 | 0034: 000000000000 000000000200 000000000400 000000840000
15 | 0038: 0000002a0800 000005010080 000001100240 000000820000
16 | 003c: 00000080c048 000011800084 000000180024 000024ceaabe
17 | 0040: 00000cb2021c 000000200000 000000000000 000000000000
18 | 0044: 000004000040 000001000400 000001000000 000000422200
19 | 0048: 000004200040 000000400100 000000260000 000003000602
20 | 004c: 000000201402 000001002014 000014000000 0000356a16fd
21 | 0050: 0000004b2200 000000001000 000008000008 000000800002
22 | 0054: 000001000000 000000900000 000010000100 000000040000
23 | 0058: 00001200a004 000000801001 000000802024 000018000001
24 | 005c: 000020510880 0000010448a4 000024810000 000031db0749
25 | 0060: 000020820644 000001400001 000000000000 000000000000
26 | 0064: 000000000001 000000801600 000000802102 000000804640
27 | 0068: 000000020808 000000858000 000000001014 000000004040
28 | 006c: 000000220000 000002008000 000011c02040 0000253bb16d
29 | 0070: 000016c4f080 000000024000 000000100000 000000000000
30 | 0074: 000000000000 000005010004 000000080800 000010044800
31 | 0078: 000001181404 00002a810040 000000001400 000015aebf52
32 | 007c: 00002ef95eed 00002ef95eed 000000012400 000000c86c92
33 |
--------------------------------------------------------------------------------
/uasm-lib/0x000506CA/ms_array3.txt:
--------------------------------------------------------------------------------
1 | 0000: 00007fffeffe 00000044afac 00006080715c 00000062ba6c
2 | 0004: 000004786eea 00000008033c 000000cbf0ce 000060084f4e
3 | 0008: 00000006b2ea 00000580c76a 0000443d63a6 00000884ff84
4 | 000c: 000000607dbc 000040607b8e 00000700ddd0 0000005baabe
5 | 0010: 000008896efe 00000151eebe 00004a44c9d8 00000029baa8
6 | 0014: 00001069ecb8 000041007ddc 00000253bea8 00001480f0fc
7 | 0018: 000000453cae 000004494fe4 0000002fffea 0000010626dc
8 | 001c: 000005404fdc 00006ef95eec 0000760adce8 00000048aa3a
--------------------------------------------------------------------------------
/uasm-lib/0x000506CA/ms_array4.txt:
--------------------------------------------------------------------------------
1 | 0000: fdffffffefff 200808000c00 0a0010090000 000001000080
2 | 0004: 000000000000 002400400000 000000100081 004000002000
3 | 0008: 000800000001 302000400024 020810001000 018000050145
4 | 000c: 000400108004 e16480508000 182101402700 4ff614d70edc
5 | 0010: c142911d4094 042000000084 000000050000 000008200000
6 | 0014: 080000000000 080000002000 000000000000 000000008004
7 | 0018: 202800024000 800202000400 042201440001 2140080200c0
8 | 001c: 420080832000 060400400000 492815000404 63e6270177b0
9 | 0020: e35422481250 000000000004 040000010000 00000000c000
10 | 0024: 084000000000 00000000c000 000010001000 080000000400
11 | 0028: 0004000140c0 0d0080440818 010000000041 000000200000
12 | 002c: 800020102049 101000810001 014000010084 702031dd1f61
13 | 0030: 02400245d230 012000000000 000000010000 000008000044
14 | 0034: 000000000040 020000000001 000000000001 010000020001
15 | 0038: 050040040000 000002000010 000009251002 030000804114
16 | 003c: 440404001188 c80000000148 0048020010c1 a727054369cc
17 | 0040: 007a01031080 100020002000 000000008100 000000004000
18 | 0044: 000001000004 000000000000 000000000000 000400000800
19 | 0048: 030021480028 440000000102 804460101001 40c000000040
20 | 004c: 801100040404 094510004011 002820000080 4562ca44df35
21 | 0050: 0300003e3cd5 800024000000 800244010140 000000000000
22 | 0054: 000000010000 000002000410 000000000000 014400001000
23 | 0058: 004505010110 0a0008400000 487000001004 040180114004
24 | 005c: 000610010800 44000430d103 004080000010 cd246651c27b
25 | 0060: 600000600818 0000003c000c 000000000000 000010000018
26 | 0064: 000000000104 000000000100 004000000000 004000000010
27 | 0068: 000500211300 004000000104 208001000045 008060107000
28 | 006c: 006000010000 000940c04081 051001000000 74742bb981ff
29 | 0070: 214e01020448 000004009020 000000000054 000000002000
30 | 0074: 200000010044 010000001000 000001013010 000000004000
31 | 0078: 20010200a140 012005204248 1009001100e2 000040004041
32 | 007c: 00200001a000 647feef95eed 20010100001a 2770adddfdcd
33 | 0080: fdffffffefff 020002210480 01105a40c004 010880003006
34 | 0084: 000000000400 010010005005 004000402441 0020c2000009
35 | 0088: 000000400200 000000000000 000000000004 001000000000
36 | 008c: 000008008000 000000000000 000400040000 06411042d1ad
37 | 0090: c73f17bdb7e3 800001082009 001100200120 000148028100
38 | 0094: 121001100010 000002019000 805000000004 010008044909
39 | 0098: 081000000000 040000200008 000002000804 006000000000
40 | 009c: 840003201008 014001000100 000000410000 938001801ca4
41 | 00a0: a5400a53934f 000000400082 000000010400 101001184204
42 | 00a4: 010000000021 110010000001 020001011050 001050062100
43 | 00a8: 000002100000 008000000000 810000014000 001801000000
44 | 00ac: 002000020020 002000000000 080011000000 000b39808c01
45 | 00b0: c918115524f8 000012303044 0a2200208100 800000003000
46 | 00b4: 000000020040 004100091940 008000000486 000100040491
47 | 00b8: 000000000004 000000400000 000000000000 800000004001
48 | 00bc: 004002008200 000000010004 000000000000 8e004240c011
49 | 00c0: 8b1ce140f78c 880008010100 52040080c001 082001008000
50 | 00c4: 91041000200a 041010004000 0000100a0400 802000408040
51 | 00c8: 010100000004 08000400d000 000000002000 000004010100
52 | 00cc: 000000600400 000000400000 806000001000 40410c001640
53 | 00d0: cb5b00f55fd5 000120400010 590200110000 000200420394
54 | 00d4: 002081000002 000400000400 800100640021 000808800444
55 | 00d8: 000000010001 400004000000 000000400040 0000c0100400
56 | 00dc: 100000000000 080000000400 000000880002 0808040072c1
57 | 00e0: 6fdf0c5c9774 81000a000900 000819418243 400100140280
58 | 00e4: 000000c10008 481000400d01 000080000000 000001424408
59 | 00e8: 000000000040 080000004200 000c00000000 010000010000
60 | 00ec: 000401000000 000000100000 000000000000 190421430a0c
61 | 00f0: 0fd4106894f9 000002000058 850100082000 016000010080
62 | 00f4: 010220300680 000000000012 002101d30005 202800404403
63 | 00f8: 200010000020 000400000000 08000080c202 000000800000
64 | 00fc: 080010002000 647feef95eed 000000000000 ab40492398cb
65 | 0100: fdffffffefff 001000208101 00020002032a 002402000000
66 | 0104: 000000000010 002001042509 028040400491 023000000080
67 | 0108: 010000124000 100000000010 102480000000 002000000080
68 | 010c: 000009008000 000080000040 000400008000 00ca24426874
69 | 0110: c1acdc5ed7c3 01081100d04c 000001428000 1000802510f0
70 | 0114: 01408000409a 004110405201 000200400044 031808000020
71 | 0118: 000c00001000 000000000000 002000008011 000004000000
72 | 011c: 000000100240 000000000000 010020020000 52c00910204f
73 | 0120: 1b943245ecbb 858434000104 002001004d21 200800404000
74 | 0124: 122400801020 000100000180 520000200008 010401044000
75 | 0128: 010000000600 820000000020 000800000002 000000001000
76 | 012c: 008008000000 200000000000 000002000000 507802064c84
77 | 0130: dded9dd5546b 086000041800 810011408000 401000008484
78 | 0134: 0000000400c1 000500400040 000000104010 200001048004
79 | 0138: 000000000400 082000000000 004000000020 000000400080
80 | 013c: 400000400000 000101001000 000000000000 820d4100a206
81 | 0140: a9fdd6c61b50 208000000280 123000020000 003200400800
82 | 0144: 400200012801 000080004410 080000800010 008201800040
83 | 0148: 000000000000 108000040000 00000400c000 000010000000
84 | 014c: 020100000004 000000120800 000000101000 01d20e44c545
85 | 0150: 3147cfddb0d5 080000000822 000208010000 002010081082
86 | 0154: 21000064a001 400000024c04 040800801001 002441800000
87 | 0158: 000000400000 000000000041 800000000004 100000010000
88 | 015c: 000000000490 000000002000 004000000000 a0000201000c
89 | 0160: e53c107dadd6 802800009060 050c0810001c 00020002800c
90 | 0164: 000000001c15 000000014020 010c00000080 210000100082
91 | 0168: 000000800050 020000000000 010000110010 000000000081
92 | 016c: 000400000000 000000000020 000040084400 c52802466088
93 | 0170: 1f52c54d10fe 840004005400 0010080001c0 000000410001
94 | 0174: 014000001098 410210409344 000802000c51 020400102000
95 | 0178: 000012000000 000000400000 000000000000 002000400020
96 | 017c: 028000000000 647feef95eed 000000000100 27a80300577e
97 | 0180: c00000000000 000000000000 000000000000 000000000000
98 | 0184: 000000000000 000000000000 000000000000 000000000000
99 | 0188: 000000000000 000000000000 000000000000 000000000000
100 | 018c: 000000000000 000000000000 000000000000 000000000000
101 | 0190: c00000000000 000000000000 000000000000 000000000000
102 | 0194: 000000000000 000000000000 000000000000 000000000000
103 | 0198: 000000000000 000000000000 000000000000 000000000000
104 | 019c: 000000000000 000000000000 000000000000 400000000000
105 | 01a0: 000000000000 800000000000 000000000000 000000000000
106 | 01a4: 000000000000 000000000000 400000000000 000000000000
107 | 01a8: 000000000000 800000000000 000000000000 000000000000
108 | 01ac: 000000000000 000000000000 000000000000 400000000000
109 | 01b0: c00000000000 000000000000 800000000000 400000000000
110 | 01b4: 000000000000 000000000000 000000000000 000000000000
111 | 01b8: 000000000000 000000000000 000000000000 000000000000
112 | 01bc: 400000000000 000000000000 000000000000 800000000000
113 | 01c0: 800000000000 000000000000 000000000000 000000000000
114 | 01c4: 400000000000 000000000000 000000000000 000000000000
115 | 01c8: 000000000000 000000000000 000000000000 000000000000
116 | 01cc: 000000000000 000000000000 000000000000 000000000000
117 | 01d0: 000000000000 000000000000 000000000000 000000000000
118 | 01d4: 000000000000 400000000000 000000000000 000000000000
119 | 01d8: 000000000000 000000000000 800000000000 000000000000
120 | 01dc: 000000000000 000000000000 000000000000 800000000000
121 | 01e0: c00000000000 800000000000 000000000000 000000000000
122 | 01e4: 000000000000 000000000000 000000000000 000000000000
123 | 01e8: 000000000000 000000000000 000000000000 000000000000
124 | 01ec: 000000000000 000000000000 000000000000 c00000000000
125 | 01f0: 000000000000 800000000000 000000000000 000000000000
126 | 01f4: 000000000000 400000000000 000000000000 000000000000
127 | 01f8: 000000000000 000000000000 000000000000 000000000000
128 | 01fc: 000000000000 400000000000 000000000000 000000000000
129 |
--------------------------------------------------------------------------------
/uasm-lib/custom_sha.py:
--------------------------------------------------------------------------------
1 | # sha implementation modified from https://github.com/keanemind/Python-SHA-256
2 | K = [
3 | 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,
4 | 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,
5 | 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,
6 | 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,
7 | 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,
8 | 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,
9 | 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,
10 | 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2
11 | ]
12 |
13 | h0 = 0x6a09e667
14 | h1 = 0xbb67ae85
15 | h2 = 0x3c6ef372
16 | h3 = 0xa54ff53a
17 | h5 = 0x9b05688c
18 | h4 = 0x510e527f
19 | h6 = 0x1f83d9ab
20 | h7 = 0x5be0cd19
21 |
22 | def generate_hash(message: bytearray, padding=True, result_endianess='big', update=False) -> bytearray:
23 | """Return a SHA-256 hash from the message passed.
24 | The argument should be a bytes, bytearray, or
25 | string object."""
26 |
27 | if isinstance(message, str):
28 | message = bytearray(message, 'ascii')
29 | elif isinstance(message, bytes):
30 | message = bytearray(message)
31 | elif not isinstance(message, bytearray):
32 | raise TypeError
33 |
34 | global h0
35 | global h1
36 | global h2
37 | global h3
38 | global h5
39 | global h4
40 | global h6
41 | global h7
42 |
43 | # Padding?
44 | if padding:
45 | length = len(message) * 8 # len(message) is number of BYTES!!!
46 | message.append(0x80)
47 | while (len(message) * 8 + 64) % 512 != 0:
48 | message.append(0x00)
49 |
50 | message += length.to_bytes(8, 'big') # pad to 8 bytes or 64 bits
51 |
52 | assert (len(message) * 8) % 512 == 0, "Padding did not complete properly!"
53 |
54 | # Parsing
55 | blocks = [] # contains 512-bit chunks of message
56 | for i in range(0, len(message), 64): # 64 bytes is 512 bits
57 | blocks.append(message[i:i+64])
58 |
59 | # Setting Initial Hash Value
60 | if not update:
61 | h0 = 0x6a09e667
62 | h1 = 0xbb67ae85
63 | h2 = 0x3c6ef372
64 | h3 = 0xa54ff53a
65 | h5 = 0x9b05688c
66 | h4 = 0x510e527f
67 | h6 = 0x1f83d9ab
68 | h7 = 0x5be0cd19
69 |
70 |
71 | # SHA-256 Hash Computation
72 | for message_block in blocks:
73 | # Prepare message schedule
74 | message_schedule = []
75 | for t in range(0, 64):
76 | if t <= 15:
77 | # adds the t'th 32 bit word of the block,
78 | # starting from leftmost word
79 | # 4 bytes at a time
80 | message_schedule.append(bytes(message_block[t*4:(t*4)+4]))
81 | else:
82 | term1 = _sigma1(int.from_bytes(message_schedule[t-2], 'big'))
83 | term2 = int.from_bytes(message_schedule[t-7], 'big')
84 | term3 = _sigma0(int.from_bytes(message_schedule[t-15], 'big'))
85 | term4 = int.from_bytes(message_schedule[t-16], 'big')
86 |
87 | # append a 4-byte byte object
88 | schedule = ((term1 + term2 + term3 + term4) % 2**32).to_bytes(4, 'big')
89 | message_schedule.append(schedule)
90 |
91 | assert len(message_schedule) == 64
92 |
93 | # Initialize working variables
94 | a = h0
95 | b = h1
96 | c = h2
97 | d = h3
98 | e = h4
99 | f = h5
100 | g = h6
101 | h = h7
102 |
103 | # Iterate for t=0 to 63
104 | for t in range(64):
105 | t1 = ((h + _capsigma1(e) + _ch(e, f, g) + K[t] +
106 | int.from_bytes(message_schedule[t], 'big')) % 2**32)
107 |
108 | t2 = (_capsigma0(a) + _maj(a, b, c)) % 2**32
109 |
110 | h = g
111 | g = f
112 | f = e
113 | e = (d + t1) % 2**32
114 | d = c
115 | c = b
116 | b = a
117 | a = (t1 + t2) % 2**32
118 |
119 | # Compute intermediate hash value
120 | h0 = (h0 + a) % 2**32
121 | h1 = (h1 + b) % 2**32
122 | h2 = (h2 + c) % 2**32
123 | h3 = (h3 + d) % 2**32
124 | h4 = (h4 + e) % 2**32
125 | h5 = (h5 + f) % 2**32
126 | h6 = (h6 + g) % 2**32
127 | h7 = (h7 + h) % 2**32
128 |
129 | return ((h0).to_bytes(4, result_endianess) + (h1).to_bytes(4, result_endianess) +
130 | (h2).to_bytes(4, result_endianess) + (h3).to_bytes(4, result_endianess) +
131 | (h4).to_bytes(4, result_endianess) + (h5).to_bytes(4, result_endianess) +
132 | (h6).to_bytes(4, result_endianess) + (h7).to_bytes(4, result_endianess))
133 |
134 | def _sigma0(num: int):
135 | """As defined in the specification."""
136 | num = (_rotate_right(num, 7) ^
137 | _rotate_right(num, 18) ^
138 | (num >> 3))
139 | return num
140 |
141 | def _sigma1(num: int):
142 | """As defined in the specification."""
143 | num = (_rotate_right(num, 17) ^
144 | _rotate_right(num, 19) ^
145 | (num >> 10))
146 | return num
147 |
148 | def _capsigma0(num: int):
149 | """As defined in the specification."""
150 | num = (_rotate_right(num, 2) ^
151 | _rotate_right(num, 13) ^
152 | _rotate_right(num, 22))
153 | return num
154 |
155 | def _capsigma1(num: int):
156 | """As defined in the specification."""
157 | num = (_rotate_right(num, 6) ^
158 | _rotate_right(num, 11) ^
159 | _rotate_right(num, 25))
160 | return num
161 |
162 | def _ch(x: int, y: int, z: int):
163 | """As defined in the specification."""
164 | return (x & y) ^ (~x & z)
165 |
166 | def _maj(x: int, y: int, z: int):
167 | """As defined in the specification."""
168 | return (x & y) ^ (x & z) ^ (y & z)
169 |
170 | def _rotate_right(num: int, shift: int, size: int = 32):
171 | """Rotate an integer right."""
172 | return (num >> shift) | (num << size - shift)
--------------------------------------------------------------------------------
/uasm-lib/parse_all_ucodes.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 |
3 | import os
4 | import sys
5 | from git import Repo
6 | from glob import glob
7 | from ucode_parser import parse_ucode_file
8 | from subprocess import check_call
9 | import shutil
10 |
11 | if len(sys.argv) < 3:
12 | print('usage: %s ')
13 | exit(1)
14 |
15 | CPUMicrocodes_path = sys.argv[1]
16 | output_dir = sys.argv[2]
17 | repo = Repo(CPUMicrocodes_path)
18 |
19 | # iterate over all commits and parse all the ucode patches
20 | for commit in reversed(list(repo.iter_commits())):
21 | repo.git.checkout(commit)
22 | print(repo.commit())
23 |
24 | for ucode_f in glob(f'{CPUMicrocodes_path}/Intel/cpu506*.bin'):
25 | success = parse_ucode_file(ucode_f)
26 | if success:
27 | dst_filename = os.path.join(output_dir, os.path.basename(ucode_f))
28 | shutil.copy(f'{ucode_f}', f'{dst_filename}')
29 | shutil.move(f'{ucode_f}.dec', f'{dst_filename}.dec')
30 | shutil.move(f'{ucode_f}.txt', f'{dst_filename}.txt')
31 | print(f'[+] {ucode_f}')
32 |
--------------------------------------------------------------------------------
/ucode_collection/cpu506C2_plat01_ver0000000E_2017-06-06_PRD_C7BCD215.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pietroborrello/CustomProcessingUnit/4237524fe7545c66e42dd986113f220662c06f6a/ucode_collection/cpu506C2_plat01_ver0000000E_2017-06-06_PRD_C7BCD215.bin
--------------------------------------------------------------------------------
/ucode_collection/cpu506C2_plat01_ver0000000E_2017-06-06_PRD_C7BCD215.bin.dec:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pietroborrello/CustomProcessingUnit/4237524fe7545c66e42dd986113f220662c06f6a/ucode_collection/cpu506C2_plat01_ver0000000E_2017-06-06_PRD_C7BCD215.bin.dec
--------------------------------------------------------------------------------
/ucode_collection/cpu506C2_plat01_ver00000014_2018-05-11_PRD_BD3490B6.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pietroborrello/CustomProcessingUnit/4237524fe7545c66e42dd986113f220662c06f6a/ucode_collection/cpu506C2_plat01_ver00000014_2018-05-11_PRD_BD3490B6.bin
--------------------------------------------------------------------------------
/ucode_collection/cpu506C2_plat01_ver00000014_2018-05-11_PRD_BD3490B6.bin.dec:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pietroborrello/CustomProcessingUnit/4237524fe7545c66e42dd986113f220662c06f6a/ucode_collection/cpu506C2_plat01_ver00000014_2018-05-11_PRD_BD3490B6.bin.dec
--------------------------------------------------------------------------------
/ucode_collection/cpu506C8_plat01_ver00000010_2016-03-04_PRD_DE6EBB18.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pietroborrello/CustomProcessingUnit/4237524fe7545c66e42dd986113f220662c06f6a/ucode_collection/cpu506C8_plat01_ver00000010_2016-03-04_PRD_DE6EBB18.bin
--------------------------------------------------------------------------------
/ucode_collection/cpu506C8_plat01_ver00000010_2016-03-04_PRD_DE6EBB18.bin.dec:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pietroborrello/CustomProcessingUnit/4237524fe7545c66e42dd986113f220662c06f6a/ucode_collection/cpu506C8_plat01_ver00000010_2016-03-04_PRD_DE6EBB18.bin.dec
--------------------------------------------------------------------------------
/ucode_collection/cpu506C9_plat03_ver0000002E_2017-11-22_PRD_2798C414.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pietroborrello/CustomProcessingUnit/4237524fe7545c66e42dd986113f220662c06f6a/ucode_collection/cpu506C9_plat03_ver0000002E_2017-11-22_PRD_2798C414.bin
--------------------------------------------------------------------------------
/ucode_collection/cpu506C9_plat03_ver0000002E_2017-11-22_PRD_2798C414.bin.dec:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pietroborrello/CustomProcessingUnit/4237524fe7545c66e42dd986113f220662c06f6a/ucode_collection/cpu506C9_plat03_ver0000002E_2017-11-22_PRD_2798C414.bin.dec
--------------------------------------------------------------------------------
/ucode_collection/cpu506C9_plat03_ver00000032_2018-05-11_PRD_2F66EBE0.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pietroborrello/CustomProcessingUnit/4237524fe7545c66e42dd986113f220662c06f6a/ucode_collection/cpu506C9_plat03_ver00000032_2018-05-11_PRD_2F66EBE0.bin
--------------------------------------------------------------------------------
/ucode_collection/cpu506C9_plat03_ver00000032_2018-05-11_PRD_2F66EBE0.bin.dec:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pietroborrello/CustomProcessingUnit/4237524fe7545c66e42dd986113f220662c06f6a/ucode_collection/cpu506C9_plat03_ver00000032_2018-05-11_PRD_2F66EBE0.bin.dec
--------------------------------------------------------------------------------
/ucode_collection/cpu506C9_plat03_ver00000036_2018-09-14_PRD_98CF60E7.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pietroborrello/CustomProcessingUnit/4237524fe7545c66e42dd986113f220662c06f6a/ucode_collection/cpu506C9_plat03_ver00000036_2018-09-14_PRD_98CF60E7.bin
--------------------------------------------------------------------------------
/ucode_collection/cpu506C9_plat03_ver00000036_2018-09-14_PRD_98CF60E7.bin.dec:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pietroborrello/CustomProcessingUnit/4237524fe7545c66e42dd986113f220662c06f6a/ucode_collection/cpu506C9_plat03_ver00000036_2018-09-14_PRD_98CF60E7.bin.dec
--------------------------------------------------------------------------------
/ucode_collection/cpu506C9_plat03_ver00000038_2019-01-15_PRD_99AA67D7.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pietroborrello/CustomProcessingUnit/4237524fe7545c66e42dd986113f220662c06f6a/ucode_collection/cpu506C9_plat03_ver00000038_2019-01-15_PRD_99AA67D7.bin
--------------------------------------------------------------------------------
/ucode_collection/cpu506C9_plat03_ver00000038_2019-01-15_PRD_99AA67D7.bin.dec:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pietroborrello/CustomProcessingUnit/4237524fe7545c66e42dd986113f220662c06f6a/ucode_collection/cpu506C9_plat03_ver00000038_2019-01-15_PRD_99AA67D7.bin.dec
--------------------------------------------------------------------------------
/ucode_collection/cpu506C9_plat03_ver0000003C_2019-07-22_PRD_5BBF33D5.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pietroborrello/CustomProcessingUnit/4237524fe7545c66e42dd986113f220662c06f6a/ucode_collection/cpu506C9_plat03_ver0000003C_2019-07-22_PRD_5BBF33D5.bin
--------------------------------------------------------------------------------
/ucode_collection/cpu506C9_plat03_ver0000003C_2019-07-22_PRD_5BBF33D5.bin.dec:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pietroborrello/CustomProcessingUnit/4237524fe7545c66e42dd986113f220662c06f6a/ucode_collection/cpu506C9_plat03_ver0000003C_2019-07-22_PRD_5BBF33D5.bin.dec
--------------------------------------------------------------------------------
/ucode_collection/cpu506C9_plat03_ver00000040_2020-02-27_PRD_2FC3D618.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pietroborrello/CustomProcessingUnit/4237524fe7545c66e42dd986113f220662c06f6a/ucode_collection/cpu506C9_plat03_ver00000040_2020-02-27_PRD_2FC3D618.bin
--------------------------------------------------------------------------------
/ucode_collection/cpu506C9_plat03_ver00000040_2020-02-27_PRD_2FC3D618.bin.dec:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pietroborrello/CustomProcessingUnit/4237524fe7545c66e42dd986113f220662c06f6a/ucode_collection/cpu506C9_plat03_ver00000040_2020-02-27_PRD_2FC3D618.bin.dec
--------------------------------------------------------------------------------
/ucode_collection/cpu506C9_plat03_ver00000044_2020-10-23_PRD_4682D493.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pietroborrello/CustomProcessingUnit/4237524fe7545c66e42dd986113f220662c06f6a/ucode_collection/cpu506C9_plat03_ver00000044_2020-10-23_PRD_4682D493.bin
--------------------------------------------------------------------------------
/ucode_collection/cpu506C9_plat03_ver00000044_2020-10-23_PRD_4682D493.bin.dec:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pietroborrello/CustomProcessingUnit/4237524fe7545c66e42dd986113f220662c06f6a/ucode_collection/cpu506C9_plat03_ver00000044_2020-10-23_PRD_4682D493.bin.dec
--------------------------------------------------------------------------------
/ucode_collection/cpu506C9_plat03_ver00000046_2021-05-10_PRD_EF971B58.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pietroborrello/CustomProcessingUnit/4237524fe7545c66e42dd986113f220662c06f6a/ucode_collection/cpu506C9_plat03_ver00000046_2021-05-10_PRD_EF971B58.bin
--------------------------------------------------------------------------------
/ucode_collection/cpu506C9_plat03_ver00000046_2021-05-10_PRD_EF971B58.bin.dec:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pietroborrello/CustomProcessingUnit/4237524fe7545c66e42dd986113f220662c06f6a/ucode_collection/cpu506C9_plat03_ver00000046_2021-05-10_PRD_EF971B58.bin.dec
--------------------------------------------------------------------------------
/ucode_collection/cpu506CA_plat03_ver00000008_2017-11-22_PRD_32F41375.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pietroborrello/CustomProcessingUnit/4237524fe7545c66e42dd986113f220662c06f6a/ucode_collection/cpu506CA_plat03_ver00000008_2017-11-22_PRD_32F41375.bin
--------------------------------------------------------------------------------
/ucode_collection/cpu506CA_plat03_ver00000008_2017-11-22_PRD_32F41375.bin.dec:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pietroborrello/CustomProcessingUnit/4237524fe7545c66e42dd986113f220662c06f6a/ucode_collection/cpu506CA_plat03_ver00000008_2017-11-22_PRD_32F41375.bin.dec
--------------------------------------------------------------------------------
/ucode_collection/cpu506CA_plat03_ver0000000C_2018-05-11_PRD_ACEA9DD5.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pietroborrello/CustomProcessingUnit/4237524fe7545c66e42dd986113f220662c06f6a/ucode_collection/cpu506CA_plat03_ver0000000C_2018-05-11_PRD_ACEA9DD5.bin
--------------------------------------------------------------------------------
/ucode_collection/cpu506CA_plat03_ver0000000C_2018-05-11_PRD_ACEA9DD5.bin.dec:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pietroborrello/CustomProcessingUnit/4237524fe7545c66e42dd986113f220662c06f6a/ucode_collection/cpu506CA_plat03_ver0000000C_2018-05-11_PRD_ACEA9DD5.bin.dec
--------------------------------------------------------------------------------
/ucode_collection/cpu506CA_plat03_ver00000010_2018-09-20_PRD_C2DD4FDC.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pietroborrello/CustomProcessingUnit/4237524fe7545c66e42dd986113f220662c06f6a/ucode_collection/cpu506CA_plat03_ver00000010_2018-09-20_PRD_C2DD4FDC.bin
--------------------------------------------------------------------------------
/ucode_collection/cpu506CA_plat03_ver00000010_2018-09-20_PRD_C2DD4FDC.bin.dec:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pietroborrello/CustomProcessingUnit/4237524fe7545c66e42dd986113f220662c06f6a/ucode_collection/cpu506CA_plat03_ver00000010_2018-09-20_PRD_C2DD4FDC.bin.dec
--------------------------------------------------------------------------------
/ucode_collection/cpu506CA_plat03_ver00000016_2019-03-01_PRD_A1AC5A6B.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pietroborrello/CustomProcessingUnit/4237524fe7545c66e42dd986113f220662c06f6a/ucode_collection/cpu506CA_plat03_ver00000016_2019-03-01_PRD_A1AC5A6B.bin
--------------------------------------------------------------------------------
/ucode_collection/cpu506CA_plat03_ver00000016_2019-03-01_PRD_A1AC5A6B.bin.dec:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pietroborrello/CustomProcessingUnit/4237524fe7545c66e42dd986113f220662c06f6a/ucode_collection/cpu506CA_plat03_ver00000016_2019-03-01_PRD_A1AC5A6B.bin.dec
--------------------------------------------------------------------------------
/ucode_collection/cpu506CA_plat03_ver0000001A_2019-07-22_PRD_71479BDE.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pietroborrello/CustomProcessingUnit/4237524fe7545c66e42dd986113f220662c06f6a/ucode_collection/cpu506CA_plat03_ver0000001A_2019-07-22_PRD_71479BDE.bin
--------------------------------------------------------------------------------
/ucode_collection/cpu506CA_plat03_ver0000001A_2019-07-22_PRD_71479BDE.bin.dec:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pietroborrello/CustomProcessingUnit/4237524fe7545c66e42dd986113f220662c06f6a/ucode_collection/cpu506CA_plat03_ver0000001A_2019-07-22_PRD_71479BDE.bin.dec
--------------------------------------------------------------------------------
/ucode_collection/cpu506CA_plat03_ver0000001C_2019-08-12_PRD_D83D9090.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pietroborrello/CustomProcessingUnit/4237524fe7545c66e42dd986113f220662c06f6a/ucode_collection/cpu506CA_plat03_ver0000001C_2019-08-12_PRD_D83D9090.bin
--------------------------------------------------------------------------------
/ucode_collection/cpu506CA_plat03_ver0000001C_2019-08-12_PRD_D83D9090.bin.dec:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pietroborrello/CustomProcessingUnit/4237524fe7545c66e42dd986113f220662c06f6a/ucode_collection/cpu506CA_plat03_ver0000001C_2019-08-12_PRD_D83D9090.bin.dec
--------------------------------------------------------------------------------
/ucode_collection/cpu506CA_plat03_ver0000001E_2020-02-27_PRD_F8A4D999.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pietroborrello/CustomProcessingUnit/4237524fe7545c66e42dd986113f220662c06f6a/ucode_collection/cpu506CA_plat03_ver0000001E_2020-02-27_PRD_F8A4D999.bin
--------------------------------------------------------------------------------
/ucode_collection/cpu506CA_plat03_ver0000001E_2020-02-27_PRD_F8A4D999.bin.dec:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pietroborrello/CustomProcessingUnit/4237524fe7545c66e42dd986113f220662c06f6a/ucode_collection/cpu506CA_plat03_ver0000001E_2020-02-27_PRD_F8A4D999.bin.dec
--------------------------------------------------------------------------------
/ucode_collection/cpu506CA_plat03_ver00000020_2020-10-23_PRD_C4E546D7.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pietroborrello/CustomProcessingUnit/4237524fe7545c66e42dd986113f220662c06f6a/ucode_collection/cpu506CA_plat03_ver00000020_2020-10-23_PRD_C4E546D7.bin
--------------------------------------------------------------------------------
/ucode_collection/cpu506CA_plat03_ver00000020_2020-10-23_PRD_C4E546D7.bin.dec:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pietroborrello/CustomProcessingUnit/4237524fe7545c66e42dd986113f220662c06f6a/ucode_collection/cpu506CA_plat03_ver00000020_2020-10-23_PRD_C4E546D7.bin.dec
--------------------------------------------------------------------------------
/ucode_collection/cpu506CA_plat03_ver00000024_2021-05-10_PRD_AB75708E.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pietroborrello/CustomProcessingUnit/4237524fe7545c66e42dd986113f220662c06f6a/ucode_collection/cpu506CA_plat03_ver00000024_2021-05-10_PRD_AB75708E.bin
--------------------------------------------------------------------------------
/ucode_collection/cpu506CA_plat03_ver00000024_2021-05-10_PRD_AB75708E.bin.dec:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pietroborrello/CustomProcessingUnit/4237524fe7545c66e42dd986113f220662c06f6a/ucode_collection/cpu506CA_plat03_ver00000024_2021-05-10_PRD_AB75708E.bin.dec
--------------------------------------------------------------------------------
/ucode_collection/cpu506F0_plat01_ver00000010_2016-06-07_PRD_4ED9573A.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pietroborrello/CustomProcessingUnit/4237524fe7545c66e42dd986113f220662c06f6a/ucode_collection/cpu506F0_plat01_ver00000010_2016-06-07_PRD_4ED9573A.bin
--------------------------------------------------------------------------------
/ucode_collection/cpu506F0_plat01_ver00000010_2016-06-07_PRD_4ED9573A.bin.dec:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pietroborrello/CustomProcessingUnit/4237524fe7545c66e42dd986113f220662c06f6a/ucode_collection/cpu506F0_plat01_ver00000010_2016-06-07_PRD_4ED9573A.bin.dec
--------------------------------------------------------------------------------
/ucode_collection/cpu506F1_plat01_ver00000020_2017-11-22_PRD_1B275D2A.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pietroborrello/CustomProcessingUnit/4237524fe7545c66e42dd986113f220662c06f6a/ucode_collection/cpu506F1_plat01_ver00000020_2017-11-22_PRD_1B275D2A.bin
--------------------------------------------------------------------------------
/ucode_collection/cpu506F1_plat01_ver00000020_2017-11-22_PRD_1B275D2A.bin.dec:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pietroborrello/CustomProcessingUnit/4237524fe7545c66e42dd986113f220662c06f6a/ucode_collection/cpu506F1_plat01_ver00000020_2017-11-22_PRD_1B275D2A.bin.dec
--------------------------------------------------------------------------------
/ucode_collection/cpu506F1_plat01_ver00000024_2018-05-11_PRD_A1B0E19C.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pietroborrello/CustomProcessingUnit/4237524fe7545c66e42dd986113f220662c06f6a/ucode_collection/cpu506F1_plat01_ver00000024_2018-05-11_PRD_A1B0E19C.bin
--------------------------------------------------------------------------------
/ucode_collection/cpu506F1_plat01_ver00000024_2018-05-11_PRD_A1B0E19C.bin.dec:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pietroborrello/CustomProcessingUnit/4237524fe7545c66e42dd986113f220662c06f6a/ucode_collection/cpu506F1_plat01_ver00000024_2018-05-11_PRD_A1B0E19C.bin.dec
--------------------------------------------------------------------------------
/ucode_collection/cpu506F1_plat01_ver0000002A_2019-02-11_PRD_40664937.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pietroborrello/CustomProcessingUnit/4237524fe7545c66e42dd986113f220662c06f6a/ucode_collection/cpu506F1_plat01_ver0000002A_2019-02-11_PRD_40664937.bin
--------------------------------------------------------------------------------
/ucode_collection/cpu506F1_plat01_ver0000002A_2019-02-11_PRD_40664937.bin.dec:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pietroborrello/CustomProcessingUnit/4237524fe7545c66e42dd986113f220662c06f6a/ucode_collection/cpu506F1_plat01_ver0000002A_2019-02-11_PRD_40664937.bin.dec
--------------------------------------------------------------------------------
/ucode_collection/cpu506F1_plat01_ver0000002E_2019-03-21_PRD_4F7008D6.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pietroborrello/CustomProcessingUnit/4237524fe7545c66e42dd986113f220662c06f6a/ucode_collection/cpu506F1_plat01_ver0000002E_2019-03-21_PRD_4F7008D6.bin
--------------------------------------------------------------------------------
/ucode_collection/cpu506F1_plat01_ver0000002E_2019-03-21_PRD_4F7008D6.bin.dec:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pietroborrello/CustomProcessingUnit/4237524fe7545c66e42dd986113f220662c06f6a/ucode_collection/cpu506F1_plat01_ver0000002E_2019-03-21_PRD_4F7008D6.bin.dec
--------------------------------------------------------------------------------
/ucode_collection/cpu506F1_plat01_ver00000032_2020-03-07_PRD_6538E5EA.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pietroborrello/CustomProcessingUnit/4237524fe7545c66e42dd986113f220662c06f6a/ucode_collection/cpu506F1_plat01_ver00000032_2020-03-07_PRD_6538E5EA.bin
--------------------------------------------------------------------------------
/ucode_collection/cpu506F1_plat01_ver00000032_2020-03-07_PRD_6538E5EA.bin.dec:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pietroborrello/CustomProcessingUnit/4237524fe7545c66e42dd986113f220662c06f6a/ucode_collection/cpu506F1_plat01_ver00000032_2020-03-07_PRD_6538E5EA.bin.dec
--------------------------------------------------------------------------------
/ucode_collection/cpu506F1_plat01_ver00000034_2020-10-23_PRD_1E364CDF.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pietroborrello/CustomProcessingUnit/4237524fe7545c66e42dd986113f220662c06f6a/ucode_collection/cpu506F1_plat01_ver00000034_2020-10-23_PRD_1E364CDF.bin
--------------------------------------------------------------------------------
/ucode_collection/cpu506F1_plat01_ver00000034_2020-10-23_PRD_1E364CDF.bin.dec:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pietroborrello/CustomProcessingUnit/4237524fe7545c66e42dd986113f220662c06f6a/ucode_collection/cpu506F1_plat01_ver00000034_2020-10-23_PRD_1E364CDF.bin.dec
--------------------------------------------------------------------------------
/ucode_collection/cpu506F1_plat01_ver00000036_2021-05-10_PRD_60ADB6C8.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pietroborrello/CustomProcessingUnit/4237524fe7545c66e42dd986113f220662c06f6a/ucode_collection/cpu506F1_plat01_ver00000036_2021-05-10_PRD_60ADB6C8.bin
--------------------------------------------------------------------------------
/ucode_collection/cpu506F1_plat01_ver00000036_2021-05-10_PRD_60ADB6C8.bin.dec:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pietroborrello/CustomProcessingUnit/4237524fe7545c66e42dd986113f220662c06f6a/ucode_collection/cpu506F1_plat01_ver00000036_2021-05-10_PRD_60ADB6C8.bin.dec
--------------------------------------------------------------------------------
/ucode_collection/m_03_506ca_00000022.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pietroborrello/CustomProcessingUnit/4237524fe7545c66e42dd986113f220662c06f6a/ucode_collection/m_03_506ca_00000022.bin
--------------------------------------------------------------------------------
/ucode_collection/m_03_506ca_00000022.bin.dec:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pietroborrello/CustomProcessingUnit/4237524fe7545c66e42dd986113f220662c06f6a/ucode_collection/m_03_506ca_00000022.bin.dec
--------------------------------------------------------------------------------