Gupje/documentation/source/images/debugger_flow.drawio.svg

1 line
14 KiB
XML

<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1097px" height="456px" viewBox="-0.5 -0.5 1097 456" content="&lt;mxfile host=&quot;04n1rgtnob7ebrhhg57mh2mjuh68d4qe61ncs1a2e1n2no0ifp02&quot; modified=&quot;2024-09-14T11:23:54.236Z&quot; agent=&quot;Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Code/1.93.0 Chrome/124.0.6367.243 Electron/30.4.0 Safari/537.36&quot; etag=&quot;C9JYWt-FEgys8-qR7kJs&quot; version=&quot;12.2.4&quot; pages=&quot;1&quot;&gt;&lt;diagram id=&quot;DLhEsc7avQ49vInVjFDo&quot; name=&quot;Page-1&quot;&gt;7VpbU9s4FP41eSzjS3zJI4SQ3Z1tt0NgCk8d2ZZjUdnKyHJI+utXkqXYjgwJXUPoLJkhWEeyLud856qM3Gm+mVOwyj6TBOKRYyWbkXs5chw78Bz+T1C2NSV0JjVhSVGiBjWEBfoJFdFS1AolsOwMZIRghlZdYkyKAsasQwOUksfusJTg7qorsIQGYREDbFK/oYRl6hSe1dD/gGiZ6ZVtS/VEIP6xpKQq1Hojx03lp+7OgZ5LjS8zkJDHFsmdjdwpJYTVT/lmCrHgrWZb/d7VE727fVNYsGNeGKttsK0+Okw4J1STUJaRJSkAnjXUC3k8KCaweKsZ8zchK060OfEBMrZVYgUVI5yUsRyrXrhB7K71fC+mOvNU63KjZpaNrW4UjG7v2o3WW6LZvCZb+j2TIYpHJalorM6s0MoAXUI1yq1Jghut1xQT55DkkK/CB1CIAUPrLm6Agt9yN64RAX9QUuiXiNrLGuBKTTor9BQdOWHMtUHIg2NoJYgJqSIMZzv6Y4YYXKyAPOUjV9SuFFKE8ZRgQuV8HKbQj2MxHaPkB2z1JMEksp7l5RpSBjfP8kn3ag1XhsHRivPYqFmgSFlLw3zrv3PWdj7A3iC7DXbbPhXaXQPtC8CnF0ICDEqzz78uZxe38/ns+vvi5p/r8/nMkGNXSi8Ffuo8AXw/8j1/GODvLP4zwLf9V0K+ZvP/HPm+iXwtlbdHvm8gf16tHuCg0E48GCbjPmiHTuT6A0Hbt73TQTs0DQjkwdeQXIQ252PQx8WJH7hgIC4G48NcdHuY6AzAxInBxGsYr4e1smEM+61sFHpjb6DwIjgCiq/FRPvDyLZjibaV9U9lZO2xgewvxBATBxfrcpXCEv0EkRwgTr4iqGByH97FyLvkFIDRsuCEmPMCciRfCJAinkGeq44cJYkUMQYRxBe7vLAbeYjMsJexOjDah/4u51W7G7Xzxj6V+GSdOYHO85RafFKR8NH8VrN/FWxoDSFpWnIZ7wtkt4njZOSfUm8aXblv9RzSm0ZV7juaMrDeaGt2AsUxXcI9LH8LzdGB1SCa49tBR3Ps96Q4tiGj6Zeb77O7GX/Vx0IwEeVPS/EklnOvTJeekTyqypdHlgCGaa879+MQRk+I5qXufLwXE9mhZ7jzSY87nwzhzsMPs9QyQR2zFJzMLHkG5K9hyQgVpYKFKhkAEf9bD1W+MuoHf91+/mrqwLsvHoytrh64454M69XKZoHBc1MzdkXHFqt0XZLnY7VoDO5Z8tPHvTRVPUNwL+hyb9zDvb6kwB2i8uJ9WJFRk191Si/jU1kRvZteK1Jbj2vIKlqYbjSlJDepB+uTLdkkoMy6xqbsGhutNvlmKS7XzpI0OSs549iprE/oHy5d7miDly7NDO73sj6TvRjGtd/Q+phFxptMgLwqeeTtWAWESamd5IqSNUqkCvA/vlZGhCakRIykVVGgYjkSV7OrB3g2Ejq0rwa3ZQUwFmdnGSrVROsKF5CCCGHEtnotYQS4kk25plikUCMTuEaxWQA1c4wBpOLsBZZuj1DsHqkEQ0jlGIdaJOfiHpu3ClLAtt2wj2TGQbvaOqvXc1RN+9VcZ3fjt3fzYe8X22pHoV5r2GjMND4wT+1cjHl+IbPqKYjGJM+5azBT4HfqzqXH0BCKMShLFGvyFcIH0dPx3qHpvU9W0uup+N/W1uxPUU8AMUPCogwY479NrmveohgW6dUuUVwzIFKXUXx5OZLyKIXIyEjabya9SEZKJofwDTrWHJ1z7ZiKaYsExVzq0l+wDIhBSH6VciqQ7BwBhTFE8sJXK9iZ6Vc6PisGwl8UHNfSZcXchTV7wAQk9bJAurcNkzAQv/Y57Fa64lVmt40FRTq+gNWHsy4ShwjPrD27aNZInD7g6KzoBcDhzeanSbVdbX7/5c7+BQ==&lt;/diagram&gt;&lt;/mxfile&gt;" style="background-color: rgb(255, 255, 255);"><defs/><g><path d="M 155 215 L 188.63 215" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 193.88 215 L 186.88 218.5 L 188.63 215 L 186.88 211.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="120" cy="215" rx="35" ry="30" fill="#ffe6cc" stroke="#d79b00" pointer-events="all"/><ellipse cx="120" cy="215" rx="31" ry="26" fill="none" stroke="#d79b00" pointer-events="all"/><g transform="translate(105.5,208.5)"><foreignObject style="overflow:visible;" pointer-events="all" width="28" height="12"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 29px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;white-space:normal;">Entry</div></div></foreignObject></g><path d="M 355 215 L 413.63 215" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 418.88 215 L 411.88 218.5 L 413.63 215 L 411.88 211.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="195" y="185" width="160" height="60" fill="#fff2cc" stroke="#d6b656" pointer-events="all"/><g transform="translate(196.5,201.5)"><foreignObject style="overflow:visible;" pointer-events="all" width="156" height="27"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 156px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;white-space:normal;">Save state to DEBUGGER_STORAGE</div></div></foreignObject></g><path d="M 750 215 L 828.63 215" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 833.88 215 L 826.88 218.5 L 828.63 215 L 826.88 211.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="590" y="185" width="160" height="60" fill="#d5e8d4" stroke="#82b366" pointer-events="all"/><g transform="translate(653.5,208.5)"><foreignObject style="overflow:visible;" pointer-events="all" width="32" height="12"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 33px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;white-space:normal;">Gupje</div></div></foreignObject></g><rect x="720" y="185" width="30" height="20" fill="#e1d5e7" stroke="#9673a6" pointer-events="all"/><g transform="translate(720.5,188.5)"><foreignObject style="overflow:visible;" pointer-events="all" width="28" height="12"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 29px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;white-space:normal;">Send</div></div></foreignObject></g><rect x="690" y="185" width="30" height="20" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><g transform="translate(691.5,188.5)"><foreignObject style="overflow:visible;" pointer-events="all" width="27" height="12"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 28px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;white-space:normal;">Recv</div></div></foreignObject></g><path d="M 510 215 L 583.63 215" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 588.88 215 L 581.88 218.5 L 583.63 215 L 581.88 211.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(531.5,211.5)"><foreignObject style="overflow:visible;" pointer-events="all" width="15" height="12"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;background-color:#ffffff;">No</div></div></foreignObject></g><path d="M 465 260 L 465 318.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 465 323.88 L 461.5 316.88 L 465 318.63 L 468.5 316.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(456.5,278.5)"><foreignObject style="overflow:visible;" pointer-events="all" width="20" height="12"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;background-color:#ffffff;">Yes</div></div></foreignObject></g><path d="M 465 170 L 510 215 L 465 260 L 420 215 Z" fill="#dae8fc" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(432.5,201.5)"><foreignObject style="overflow:visible;" pointer-events="all" width="64" height="27"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 65px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;white-space:normal;">CNT_EXEC<br />set?</div></div></foreignObject></g><path d="M 465 385 L 465 418.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 465 423.88 L 461.5 416.88 L 465 418.63 L 468.5 416.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="380" y="325" width="170" height="60" fill="#fff2cc" stroke="#d6b656" pointer-events="all"/><g transform="translate(381.5,341.5)"><foreignObject style="overflow:visible;" pointer-events="all" width="166" height="27"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 166px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;white-space:normal;">Restore State and jump to DEBUGGER_JUMP</div></div></foreignObject></g><ellipse cx="465" cy="440" rx="11" ry="11" fill="#000000" stroke="#ff0000" pointer-events="all"/><ellipse cx="465" cy="440" rx="15" ry="15" fill="none" stroke="#ff0000" pointer-events="all"/><path d="M 935 245 L 935 288.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 935 293.88 L 931.5 286.88 L 935 288.63 L 938.5 286.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="835" y="185" width="200" height="60" fill="#fff2cc" stroke="#d6b656" pointer-events="all"/><g transform="translate(867.5,194.5)"><foreignObject style="overflow:visible;" pointer-events="all" width="134" height="41"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">Restore and Return<br />from<br />DEBUGGER_STORAGE</div></div></foreignObject></g><ellipse cx="935" cy="310" rx="11" ry="11" fill="#000000" stroke="#ff0000" pointer-events="all"/><ellipse cx="935" cy="310" rx="15" ry="15" fill="none" stroke="#ff0000" pointer-events="all"/><rect x="0" y="115" width="310" height="70" fill="none" stroke="none" pointer-events="all"/><g transform="translate(1.5,121.5)"><foreignObject style="overflow:visible;" pointer-events="all" width="289" height="27"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">The user needs to provide a method for running gupje. <br />Usually this a vulnerability to get RCE on a device</div></div></foreignObject></g><path d="M 1095 105 L 15 105" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 670 71.37 L 670 178.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 670 66.12 L 673.5 73.12 L 670 71.37 L 666.5 73.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 670 183.88 L 666.5 176.88 L 670 178.63 L 673.5 176.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(642.5,119.5)"><foreignObject style="overflow:visible;" pointer-events="all" width="54" height="11"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;background-color:#ffffff;">commands</div></div></foreignObject></g><rect x="590" y="5" width="160" height="60" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><g transform="translate(627.5,28.5)"><foreignObject style="overflow:visible;" pointer-events="all" width="85" height="12"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 86px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;white-space:normal;">User Interaction</div></div></foreignObject></g><rect x="775" y="0" width="260" height="75" fill="none" stroke="none" pointer-events="all"/><g transform="translate(775.5,9.5)"><foreignObject style="overflow:visible;" pointer-events="all" width="258" height="56"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 258px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;white-space:normal;">Gupje will respond to the host with GiAs, indicating that it is ready to receive commands.<br />The user can now proceed with loading a next stage</div></div></foreignObject></g></g></svg>