- New HVPass feature – This feature allows the code VM to run through Microsoft’s Hypervisor API, adding an extra layer of analysis difficulty. - MiniVM (normal) or MiniVM + HVPass – Now support junk/mutation in the stub, making the logic and instructions randomized at each interaction, further protecting the stub’s code. - Bug fix – Fixed an issue in the extraction of unused registers from candidate procedures, where some registers were not being handled correctly. - Bug fix – Fixed an issue in the extraction of XMM registers to enable junk/mutation support for multimedia registers. - Bug fix – Fixed a problem in the junk/mutation logic for the instructions cdqe and cbw, which were incorrectly overwriting the RAX register, breaking results even when the registers were in use. - Bug fix – Some instructions were not having relocations properly fixed by the RIP-relative relocation algorithm; this has now been corrected. - Articles + Project Diagrams as well. Some of these issues, as well as feature suggestions like HVPass, were discovered or suggested by the reviewers of Ryujin’s article.
709 lines
18 KiB
Plaintext
709 lines
18 KiB
Plaintext
{
|
|
"type": "excalidraw",
|
|
"version": 2,
|
|
"source": "https://excalidraw.com",
|
|
"elements": [
|
|
{
|
|
"id": "M8c9eQZB7X5MZItasDS9w",
|
|
"type": "rectangle",
|
|
"x": 391.20001220703125,
|
|
"y": 192.60000610351562,
|
|
"width": 344.79998779296875,
|
|
"height": 307.20001220703125,
|
|
"angle": 0,
|
|
"strokeColor": "#1e1e1e",
|
|
"backgroundColor": "transparent",
|
|
"fillStyle": "solid",
|
|
"strokeWidth": 2,
|
|
"strokeStyle": "solid",
|
|
"roughness": 1,
|
|
"opacity": 100,
|
|
"groupIds": [],
|
|
"frameId": null,
|
|
"index": "a0",
|
|
"roundness": {
|
|
"type": 3
|
|
},
|
|
"seed": 1615675767,
|
|
"version": 129,
|
|
"versionNonce": 2118539607,
|
|
"isDeleted": false,
|
|
"boundElements": [
|
|
{
|
|
"id": "c1iXEu4S5qWnIgYbjx1Zc",
|
|
"type": "arrow"
|
|
}
|
|
],
|
|
"updated": 1749686313933,
|
|
"link": null,
|
|
"locked": false
|
|
},
|
|
{
|
|
"id": "46FHFpNht2wlAuCrvcVyc",
|
|
"type": "text",
|
|
"x": 516,
|
|
"y": 154.1999969482422,
|
|
"width": 58.23994445800781,
|
|
"height": 25,
|
|
"angle": 0,
|
|
"strokeColor": "#1e1e1e",
|
|
"backgroundColor": "transparent",
|
|
"fillStyle": "solid",
|
|
"strokeWidth": 2,
|
|
"strokeStyle": "solid",
|
|
"roughness": 1,
|
|
"opacity": 100,
|
|
"groupIds": [],
|
|
"frameId": null,
|
|
"index": "a1",
|
|
"roundness": null,
|
|
"seed": 554549911,
|
|
"version": 55,
|
|
"versionNonce": 171168151,
|
|
"isDeleted": false,
|
|
"boundElements": [],
|
|
"updated": 1749685574176,
|
|
"link": null,
|
|
"locked": false,
|
|
"text": "Ryujin",
|
|
"fontSize": 20,
|
|
"fontFamily": 5,
|
|
"textAlign": "left",
|
|
"verticalAlign": "top",
|
|
"containerId": null,
|
|
"originalText": "Ryujin",
|
|
"autoResize": true,
|
|
"lineHeight": 1.25
|
|
},
|
|
{
|
|
"id": "xdJ2irJYkaNC9r3QEIouH",
|
|
"type": "rectangle",
|
|
"x": 833.6000366210938,
|
|
"y": 205.40000915527344,
|
|
"width": 144.79998779296875,
|
|
"height": 121.59999084472656,
|
|
"angle": 0,
|
|
"strokeColor": "#1e1e1e",
|
|
"backgroundColor": "transparent",
|
|
"fillStyle": "solid",
|
|
"strokeWidth": 2,
|
|
"strokeStyle": "solid",
|
|
"roughness": 1,
|
|
"opacity": 100,
|
|
"groupIds": [],
|
|
"frameId": null,
|
|
"index": "a2",
|
|
"roundness": {
|
|
"type": 3
|
|
},
|
|
"seed": 679450583,
|
|
"version": 45,
|
|
"versionNonce": 916855385,
|
|
"isDeleted": false,
|
|
"boundElements": [
|
|
{
|
|
"id": "GSUC-T1BCvyWszlmgyl-H",
|
|
"type": "arrow"
|
|
},
|
|
{
|
|
"id": "KVVsXm6d78Iek_N-4mTZ5",
|
|
"type": "arrow"
|
|
}
|
|
],
|
|
"updated": 1749686124093,
|
|
"link": null,
|
|
"locked": false
|
|
},
|
|
{
|
|
"id": "u0hyTPfKwpUasROfCYwNp",
|
|
"type": "text",
|
|
"x": 856,
|
|
"y": 235,
|
|
"width": 114.89994812011719,
|
|
"height": 75,
|
|
"angle": 0,
|
|
"strokeColor": "#1e1e1e",
|
|
"backgroundColor": "transparent",
|
|
"fillStyle": "solid",
|
|
"strokeWidth": 2,
|
|
"strokeStyle": "solid",
|
|
"roughness": 1,
|
|
"opacity": 100,
|
|
"groupIds": [],
|
|
"frameId": null,
|
|
"index": "a3",
|
|
"roundness": null,
|
|
"seed": 994638937,
|
|
"version": 37,
|
|
"versionNonce": 1352983513,
|
|
"isDeleted": false,
|
|
"boundElements": [],
|
|
"updated": 1749685595466,
|
|
"link": null,
|
|
"locked": false,
|
|
"text": "mov rax, 10\nadd rbx, 20\nsub rcx, 30",
|
|
"fontSize": 20,
|
|
"fontFamily": 5,
|
|
"textAlign": "left",
|
|
"verticalAlign": "top",
|
|
"containerId": null,
|
|
"originalText": "mov rax, 10\nadd rbx, 20\nsub rcx, 30",
|
|
"autoResize": true,
|
|
"lineHeight": 1.25
|
|
},
|
|
{
|
|
"id": "GSUC-T1BCvyWszlmgyl-H",
|
|
"type": "arrow",
|
|
"x": 831.2000122070312,
|
|
"y": 271,
|
|
"width": 212.79998779296875,
|
|
"height": 3.20001220703125,
|
|
"angle": 0,
|
|
"strokeColor": "#1e1e1e",
|
|
"backgroundColor": "transparent",
|
|
"fillStyle": "solid",
|
|
"strokeWidth": 2,
|
|
"strokeStyle": "solid",
|
|
"roughness": 1,
|
|
"opacity": 100,
|
|
"groupIds": [],
|
|
"frameId": null,
|
|
"index": "a4",
|
|
"roundness": {
|
|
"type": 2
|
|
},
|
|
"seed": 568230297,
|
|
"version": 79,
|
|
"versionNonce": 1291788375,
|
|
"isDeleted": false,
|
|
"boundElements": [],
|
|
"updated": 1749685606290,
|
|
"link": null,
|
|
"locked": false,
|
|
"points": [
|
|
[
|
|
0,
|
|
0
|
|
],
|
|
[
|
|
-212.79998779296875,
|
|
3.20001220703125
|
|
]
|
|
],
|
|
"lastCommittedPoint": null,
|
|
"startBinding": {
|
|
"elementId": "xdJ2irJYkaNC9r3QEIouH",
|
|
"focus": -0.05938365959726409,
|
|
"gap": 2.4000244140625
|
|
},
|
|
"endBinding": null,
|
|
"startArrowhead": null,
|
|
"endArrowhead": "arrow",
|
|
"elbowed": false
|
|
},
|
|
{
|
|
"id": "kJtdz2klrATJ98T_MfkEO",
|
|
"type": "rectangle",
|
|
"x": 480.8000183105469,
|
|
"y": 244.60000610351562,
|
|
"width": 118.39999389648438,
|
|
"height": 68,
|
|
"angle": 0,
|
|
"strokeColor": "#1e1e1e",
|
|
"backgroundColor": "transparent",
|
|
"fillStyle": "solid",
|
|
"strokeWidth": 2,
|
|
"strokeStyle": "solid",
|
|
"roughness": 1,
|
|
"opacity": 100,
|
|
"groupIds": [],
|
|
"frameId": null,
|
|
"index": "a5",
|
|
"roundness": {
|
|
"type": 3
|
|
},
|
|
"seed": 832654263,
|
|
"version": 38,
|
|
"versionNonce": 842147095,
|
|
"isDeleted": false,
|
|
"boundElements": [],
|
|
"updated": 1749685611598,
|
|
"link": null,
|
|
"locked": false
|
|
},
|
|
{
|
|
"id": "L_pSiLFD-D1qnLQGHAGoK",
|
|
"type": "text",
|
|
"x": 498.3999938964844,
|
|
"y": 256.6000061035156,
|
|
"width": 88.41993713378906,
|
|
"height": 50,
|
|
"angle": 0,
|
|
"strokeColor": "#1e1e1e",
|
|
"backgroundColor": "transparent",
|
|
"fillStyle": "solid",
|
|
"strokeWidth": 2,
|
|
"strokeStyle": "solid",
|
|
"roughness": 1,
|
|
"opacity": 100,
|
|
"groupIds": [],
|
|
"frameId": null,
|
|
"index": "a6",
|
|
"roundness": null,
|
|
"seed": 1291545143,
|
|
"version": 17,
|
|
"versionNonce": 54828087,
|
|
"isDeleted": false,
|
|
"boundElements": [],
|
|
"updated": 1749685618526,
|
|
"link": null,
|
|
"locked": false,
|
|
"text": "custom\nbytecode",
|
|
"fontSize": 20,
|
|
"fontFamily": 5,
|
|
"textAlign": "left",
|
|
"verticalAlign": "top",
|
|
"containerId": null,
|
|
"originalText": "custom\nbytecode",
|
|
"autoResize": true,
|
|
"lineHeight": 1.25
|
|
},
|
|
{
|
|
"id": "KVVsXm6d78Iek_N-4mTZ5",
|
|
"type": "arrow",
|
|
"x": 578.4000244140625,
|
|
"y": 359,
|
|
"width": 198.4000244140625,
|
|
"height": 10.399993896484375,
|
|
"angle": 0,
|
|
"strokeColor": "#1e1e1e",
|
|
"backgroundColor": "transparent",
|
|
"fillStyle": "solid",
|
|
"strokeWidth": 2,
|
|
"strokeStyle": "solid",
|
|
"roughness": 1,
|
|
"opacity": 100,
|
|
"groupIds": [],
|
|
"frameId": null,
|
|
"index": "a7",
|
|
"roundness": {
|
|
"type": 2
|
|
},
|
|
"seed": 479607415,
|
|
"version": 100,
|
|
"versionNonce": 1093613177,
|
|
"isDeleted": false,
|
|
"boundElements": [],
|
|
"updated": 1749686207162,
|
|
"link": null,
|
|
"locked": false,
|
|
"points": [
|
|
[
|
|
0,
|
|
0
|
|
],
|
|
[
|
|
198.4000244140625,
|
|
10.399993896484375
|
|
]
|
|
],
|
|
"lastCommittedPoint": null,
|
|
"startBinding": null,
|
|
"endBinding": {
|
|
"elementId": "NFjixAoh2CztYuP1DNIN-",
|
|
"focus": -0.4045620317282552,
|
|
"gap": 10.39996337890625
|
|
},
|
|
"startArrowhead": null,
|
|
"endArrowhead": "arrow",
|
|
"elbowed": false
|
|
},
|
|
{
|
|
"id": "NFjixAoh2CztYuP1DNIN-",
|
|
"type": "text",
|
|
"x": 787.2000122070312,
|
|
"y": 363.8000183105469,
|
|
"width": 731.2396240234375,
|
|
"height": 25,
|
|
"angle": 0,
|
|
"strokeColor": "#1e1e1e",
|
|
"backgroundColor": "transparent",
|
|
"fillStyle": "solid",
|
|
"strokeWidth": 2,
|
|
"strokeStyle": "solid",
|
|
"roughness": 1,
|
|
"opacity": 100,
|
|
"groupIds": [],
|
|
"frameId": null,
|
|
"index": "a8",
|
|
"roundness": null,
|
|
"seed": 1290016793,
|
|
"version": 81,
|
|
"versionNonce": 318460471,
|
|
"isDeleted": false,
|
|
"boundElements": [
|
|
{
|
|
"id": "iFf2168HoefeSA26Qvyxp",
|
|
"type": "arrow"
|
|
},
|
|
{
|
|
"id": "KVVsXm6d78Iek_N-4mTZ5",
|
|
"type": "arrow"
|
|
}
|
|
],
|
|
"updated": 1749686206810,
|
|
"link": null,
|
|
"locked": false,
|
|
"text": "Insert a jump into the original code to vmentry(for execute the bytecode)",
|
|
"fontSize": 20,
|
|
"fontFamily": 5,
|
|
"textAlign": "left",
|
|
"verticalAlign": "top",
|
|
"containerId": null,
|
|
"originalText": "Insert a jump into the original code to vmentry(for execute the bytecode)",
|
|
"autoResize": true,
|
|
"lineHeight": 1.25
|
|
},
|
|
{
|
|
"id": "j5zq_Cm9IYKmHffzVgFTn",
|
|
"type": "rectangle",
|
|
"x": 1548.4000244140625,
|
|
"y": 304.6000061035156,
|
|
"width": 208,
|
|
"height": 180.00006103515625,
|
|
"angle": 0,
|
|
"strokeColor": "#1e1e1e",
|
|
"backgroundColor": "transparent",
|
|
"fillStyle": "solid",
|
|
"strokeWidth": 2,
|
|
"strokeStyle": "solid",
|
|
"roughness": 1,
|
|
"opacity": 100,
|
|
"groupIds": [],
|
|
"frameId": null,
|
|
"index": "a9",
|
|
"roundness": {
|
|
"type": 3
|
|
},
|
|
"seed": 1910262775,
|
|
"version": 76,
|
|
"versionNonce": 1150487223,
|
|
"isDeleted": false,
|
|
"boundElements": [],
|
|
"updated": 1749686159293,
|
|
"link": null,
|
|
"locked": false
|
|
},
|
|
{
|
|
"id": "Bgo_NssAKTn1SdIHyYsMn",
|
|
"type": "text",
|
|
"x": 1576.4000244140625,
|
|
"y": 319,
|
|
"width": 205.4998779296875,
|
|
"height": 150,
|
|
"angle": 0,
|
|
"strokeColor": "#1e1e1e",
|
|
"backgroundColor": "transparent",
|
|
"fillStyle": "solid",
|
|
"strokeWidth": 2,
|
|
"strokeStyle": "solid",
|
|
"roughness": 1,
|
|
"opacity": 100,
|
|
"groupIds": [],
|
|
"frameId": null,
|
|
"index": "aA",
|
|
"roundness": null,
|
|
"seed": 792391961,
|
|
"version": 88,
|
|
"versionNonce": 1848161657,
|
|
"isDeleted": false,
|
|
"boundElements": [
|
|
{
|
|
"id": "iFf2168HoefeSA26Qvyxp",
|
|
"type": "arrow"
|
|
}
|
|
],
|
|
"updated": 1749686197118,
|
|
"link": null,
|
|
"locked": false,
|
|
"text": "nop\nnop\npush rcx\nmov rcx, ptrbytecode\ncall vmentry\nmov rax...",
|
|
"fontSize": 20,
|
|
"fontFamily": 5,
|
|
"textAlign": "left",
|
|
"verticalAlign": "top",
|
|
"containerId": null,
|
|
"originalText": "nop\nnop\npush rcx\nmov rcx, ptrbytecode\ncall vmentry\nmov rax...",
|
|
"autoResize": true,
|
|
"lineHeight": 1.25
|
|
},
|
|
{
|
|
"id": "iFf2168HoefeSA26Qvyxp",
|
|
"type": "arrow",
|
|
"x": 1469.5999755859375,
|
|
"y": 383.8000183105469,
|
|
"width": 78.4000244140625,
|
|
"height": 21.5999755859375,
|
|
"angle": 0,
|
|
"strokeColor": "#1e1e1e",
|
|
"backgroundColor": "transparent",
|
|
"fillStyle": "solid",
|
|
"strokeWidth": 2,
|
|
"strokeStyle": "solid",
|
|
"roughness": 1,
|
|
"opacity": 100,
|
|
"groupIds": [],
|
|
"frameId": null,
|
|
"index": "aB",
|
|
"roundness": {
|
|
"type": 2
|
|
},
|
|
"seed": 1319005721,
|
|
"version": 21,
|
|
"versionNonce": 1768435865,
|
|
"isDeleted": false,
|
|
"boundElements": [],
|
|
"updated": 1749686197118,
|
|
"link": null,
|
|
"locked": false,
|
|
"points": [
|
|
[
|
|
0,
|
|
0
|
|
],
|
|
[
|
|
78.4000244140625,
|
|
21.5999755859375
|
|
]
|
|
],
|
|
"lastCommittedPoint": null,
|
|
"startBinding": {
|
|
"elementId": "NFjixAoh2CztYuP1DNIN-",
|
|
"focus": -0.7045371306368834,
|
|
"gap": 5
|
|
},
|
|
"endBinding": {
|
|
"elementId": "Bgo_NssAKTn1SdIHyYsMn",
|
|
"focus": -0.4601077518323214,
|
|
"gap": 28.4000244140625
|
|
},
|
|
"startArrowhead": null,
|
|
"endArrowhead": "arrow",
|
|
"elbowed": false
|
|
},
|
|
{
|
|
"id": "Az2n4_JQ_Rep62w0qbnpI",
|
|
"type": "arrow",
|
|
"x": 641.2000122070312,
|
|
"y": 364.20001220703125,
|
|
"width": 63.20001220703125,
|
|
"height": 49.600006103515625,
|
|
"angle": 0,
|
|
"strokeColor": "#1e1e1e",
|
|
"backgroundColor": "transparent",
|
|
"fillStyle": "solid",
|
|
"strokeWidth": 2,
|
|
"strokeStyle": "solid",
|
|
"roughness": 1,
|
|
"opacity": 100,
|
|
"groupIds": [],
|
|
"frameId": null,
|
|
"index": "aC",
|
|
"roundness": {
|
|
"type": 2
|
|
},
|
|
"seed": 313306169,
|
|
"version": 38,
|
|
"versionNonce": 499366105,
|
|
"isDeleted": false,
|
|
"boundElements": [],
|
|
"updated": 1749686269123,
|
|
"link": null,
|
|
"locked": false,
|
|
"points": [
|
|
[
|
|
0,
|
|
0
|
|
],
|
|
[
|
|
-63.20001220703125,
|
|
49.600006103515625
|
|
]
|
|
],
|
|
"lastCommittedPoint": null,
|
|
"startBinding": null,
|
|
"endBinding": null,
|
|
"startArrowhead": null,
|
|
"endArrowhead": "arrow",
|
|
"elbowed": false
|
|
},
|
|
{
|
|
"id": "O5yT6LnxD7xhW31GADKYB",
|
|
"type": "text",
|
|
"x": 468.3999938964844,
|
|
"y": 432.20001220703125,
|
|
"width": 820.1596069335938,
|
|
"height": 50,
|
|
"angle": 0,
|
|
"strokeColor": "#1e1e1e",
|
|
"backgroundColor": "transparent",
|
|
"fillStyle": "solid",
|
|
"strokeWidth": 2,
|
|
"strokeStyle": "solid",
|
|
"roughness": 1,
|
|
"opacity": 100,
|
|
"groupIds": [],
|
|
"frameId": null,
|
|
"index": "aD",
|
|
"roundness": null,
|
|
"seed": 137944663,
|
|
"version": 136,
|
|
"versionNonce": 1340294711,
|
|
"isDeleted": false,
|
|
"boundElements": [],
|
|
"updated": 1749686305048,
|
|
"link": null,
|
|
"locked": false,
|
|
"text": "ryujin will insert bytecode in some section\nthe vm will interpret it and return back with the full context to not broke the code",
|
|
"fontSize": 20,
|
|
"fontFamily": 5,
|
|
"textAlign": "left",
|
|
"verticalAlign": "top",
|
|
"containerId": null,
|
|
"originalText": "ryujin will insert bytecode in some section\nthe vm will interpret it and return back with the full context to not broke the code",
|
|
"autoResize": true,
|
|
"lineHeight": 1.25
|
|
},
|
|
{
|
|
"id": "c1iXEu4S5qWnIgYbjx1Zc",
|
|
"type": "arrow",
|
|
"x": 434.3999938964844,
|
|
"y": 503.20001220703125,
|
|
"width": 170.39999389648438,
|
|
"height": 156.79998779296875,
|
|
"angle": 0,
|
|
"strokeColor": "#1e1e1e",
|
|
"backgroundColor": "transparent",
|
|
"fillStyle": "solid",
|
|
"strokeWidth": 2,
|
|
"strokeStyle": "solid",
|
|
"roughness": 1,
|
|
"opacity": 100,
|
|
"groupIds": [],
|
|
"frameId": null,
|
|
"index": "aE",
|
|
"roundness": {
|
|
"type": 2
|
|
},
|
|
"seed": 1561486455,
|
|
"version": 28,
|
|
"versionNonce": 1291089975,
|
|
"isDeleted": false,
|
|
"boundElements": [],
|
|
"updated": 1749686313933,
|
|
"link": null,
|
|
"locked": false,
|
|
"points": [
|
|
[
|
|
0,
|
|
0
|
|
],
|
|
[
|
|
170.39999389648438,
|
|
156.79998779296875
|
|
]
|
|
],
|
|
"lastCommittedPoint": null,
|
|
"startBinding": {
|
|
"elementId": "M8c9eQZB7X5MZItasDS9w",
|
|
"focus": 0.8835765524851282,
|
|
"gap": 3.399993896484375
|
|
},
|
|
"endBinding": null,
|
|
"startArrowhead": null,
|
|
"endArrowhead": "arrow",
|
|
"elbowed": false
|
|
},
|
|
{
|
|
"id": "WLU2ZgAEJXhP7nLOkpjLn",
|
|
"type": "text",
|
|
"x": 663.2000122070312,
|
|
"y": 647.2000122070312,
|
|
"width": 690.9995727539062,
|
|
"height": 25,
|
|
"angle": 0,
|
|
"strokeColor": "#1e1e1e",
|
|
"backgroundColor": "transparent",
|
|
"fillStyle": "solid",
|
|
"strokeWidth": 2,
|
|
"strokeStyle": "solid",
|
|
"roughness": 1,
|
|
"opacity": 100,
|
|
"groupIds": [],
|
|
"frameId": null,
|
|
"index": "aF",
|
|
"roundness": null,
|
|
"seed": 870526871,
|
|
"version": 98,
|
|
"versionNonce": 999258681,
|
|
"isDeleted": false,
|
|
"boundElements": [],
|
|
"updated": 1749686340544,
|
|
"link": null,
|
|
"locked": false,
|
|
"text": "The vm will only allow some simple menemonic for multiplication(for now)",
|
|
"fontSize": 20,
|
|
"fontFamily": 5,
|
|
"textAlign": "left",
|
|
"verticalAlign": "top",
|
|
"containerId": null,
|
|
"originalText": "The vm will only allow some simple menemonic for multiplication(for now)",
|
|
"autoResize": true,
|
|
"lineHeight": 1.25
|
|
},
|
|
{
|
|
"id": "tLeEn07Up0otFbkxmXxyS",
|
|
"type": "text",
|
|
"x": 359.60003662109375,
|
|
"y": 86.39999389648438,
|
|
"width": 1619.8392333984375,
|
|
"height": 25,
|
|
"angle": 0,
|
|
"strokeColor": "#1e1e1e",
|
|
"backgroundColor": "transparent",
|
|
"fillStyle": "solid",
|
|
"strokeWidth": 2,
|
|
"strokeStyle": "solid",
|
|
"roughness": 1,
|
|
"opacity": 100,
|
|
"groupIds": [],
|
|
"frameId": null,
|
|
"index": "aG",
|
|
"roundness": null,
|
|
"seed": 1720073049,
|
|
"version": 213,
|
|
"versionNonce": 1953987225,
|
|
"isDeleted": false,
|
|
"boundElements": [],
|
|
"updated": 1749687328143,
|
|
"link": null,
|
|
"locked": false,
|
|
"text": "to not use too much space we already have padding with nop -> compile the instructions to vm bytecode with a maximum of 8 bytes and interpret eah one individually",
|
|
"fontSize": 20,
|
|
"fontFamily": 5,
|
|
"textAlign": "left",
|
|
"verticalAlign": "top",
|
|
"containerId": null,
|
|
"originalText": "to not use too much space we already have padding with nop -> compile the instructions to vm bytecode with a maximum of 8 bytes and interpret eah one individually",
|
|
"autoResize": true,
|
|
"lineHeight": 1.25
|
|
}
|
|
],
|
|
"appState": {
|
|
"gridSize": 20,
|
|
"gridStep": 5,
|
|
"gridModeEnabled": false,
|
|
"viewBackgroundColor": "#ffffff",
|
|
"lockedMultiSelections": {}
|
|
},
|
|
"files": {}
|
|
} |