1
1

Reorganized Repo

Added readme for filesystem tools.
This commit is contained in:
Farewell_ 2024-11-04 12:56:23 +01:00
parent a8d0530781
commit c4eefa978e
132 changed files with 9310 additions and 163 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
files

View File

@ -1,5 +1,3 @@
# SEGA dumptools # SEGA Dump Tools
source: emuline.org and 1cc (websites and discord) A compilation of scripts and documents regarding SEGA update encryption.
Additions and documentation appreciated.

View File

@ -0,0 +1,3 @@
# ALL.NET ID List
You'll find the most up to date info on DataMonster's [spreadsheet](https://docs.google.com/spreadsheets/d/1RMhj6GlQoehH7AEOl1sSRKCGD3pEUNd8spki5Bhw7sw/edit#gid=916792653).

View File

@ -0,0 +1,3 @@
# Encryption Keys
This folder contains most encryption keys used for sega games.

View File

@ -0,0 +1,392 @@
<html data-darkreader-mode="dynamic" data-darkreader-scheme="dark"><head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"><style class="darkreader darkreader--fallback" media="screen"></style><style class="darkreader darkreader--text" media="screen"></style><style class="darkreader darkreader--invert" media="screen">.jfk-bubble.gtx-bubble, .captcheck_answer_label > input + img, span#closed_text > img[src^="https://www.gstatic.com/images/branding/googlelogo"], span[data-href^="https://www.hcaptcha.com/"] > #icon, ::-webkit-calendar-picker-indicator, img.Wirisformula {
filter: invert(100%) hue-rotate(180deg) contrast(90%) !important;
}</style><style class="darkreader darkreader--inline" media="screen">[data-darkreader-inline-bgcolor] {
background-color: var(--darkreader-inline-bgcolor) !important;
}
[data-darkreader-inline-bgimage] {
background-image: var(--darkreader-inline-bgimage) !important;
}
[data-darkreader-inline-border] {
border-color: var(--darkreader-inline-border) !important;
}
[data-darkreader-inline-border-bottom] {
border-bottom-color: var(--darkreader-inline-border-bottom) !important;
}
[data-darkreader-inline-border-left] {
border-left-color: var(--darkreader-inline-border-left) !important;
}
[data-darkreader-inline-border-right] {
border-right-color: var(--darkreader-inline-border-right) !important;
}
[data-darkreader-inline-border-top] {
border-top-color: var(--darkreader-inline-border-top) !important;
}
[data-darkreader-inline-boxshadow] {
box-shadow: var(--darkreader-inline-boxshadow) !important;
}
[data-darkreader-inline-color] {
color: var(--darkreader-inline-color) !important;
}
[data-darkreader-inline-fill] {
fill: var(--darkreader-inline-fill) !important;
}
[data-darkreader-inline-stroke] {
stroke: var(--darkreader-inline-stroke) !important;
}
[data-darkreader-inline-outline] {
outline-color: var(--darkreader-inline-outline) !important;
}
[data-darkreader-inline-stopcolor] {
stop-color: var(--darkreader-inline-stopcolor) !important;
}
[data-darkreader-inline-bg] {
background: var(--darkreader-inline-bg) !important;
}
[data-darkreader-inline-invert] {
filter: invert(100%) hue-rotate(180deg);
}</style><style class="darkreader darkreader--variables" media="screen">:root {
--darkreader-neutral-background: #131516;
--darkreader-neutral-text: #d8d4cf;
--darkreader-selection-background: #004daa;
--darkreader-selection-text: #e8e6e3;
}</style><style class="darkreader darkreader--root-vars" media="screen"></style><style class="darkreader darkreader--user-agent" media="screen">@layer {
html {
background-color: #181a1b !important;
}
html {
color-scheme: dark !important;
}
iframe {
color-scheme: initial;
}
html, body, input, textarea, select, button, dialog {
background-color: #181a1b;
}
html, body, input, textarea, select, button {
border-color: #736b5e;
color: #e8e6e3;
}
a {
color: #3391ff;
}
table {
border-color: #545b5e;
}
mark {
color: #e8e6e3;
}
::placeholder {
color: #b2aba1;
}
input:-webkit-autofill,
textarea:-webkit-autofill,
select:-webkit-autofill {
background-color: #404400 !important;
color: #e8e6e3 !important;
}
::-webkit-scrollbar {
background-color: #202324;
color: #aba499;
}
::-webkit-scrollbar-thumb {
background-color: #454a4d;
}
::-webkit-scrollbar-thumb:hover {
background-color: #575e62;
}
::-webkit-scrollbar-thumb:active {
background-color: #484e51;
}
::-webkit-scrollbar-corner {
background-color: #181a1b;
}
* {
scrollbar-color: #454a4d #202324;
}
::selection {
background-color: #004daa !important;
color: #e8e6e3 !important;
}
::-moz-selection {
background-color: #004daa !important;
color: #e8e6e3 !important;
}
}</style><style>
body {
font-family: sans-serif;
}
table {
white-space: nowrap;
overflow-x: auto;
border-collapse: separate;
border-spacing: 0;
}
th {
border-bottom: 3px solid #000 !important;
position: sticky;
top: 0;
text-align: left;
background: #fff;
}
th, td {
margin: 0;
padding: 2px 4px;
border: 1px solid transparent;
}
td {
border-bottom-color: #ddd;
}
th, td {
border-left-color: #ddd;
}
th:last-child, td:last-child {
border-right-color: #ddd;
}
</style><style class="darkreader darkreader--sync" media="screen"></style>
<meta name="darkreader" content="177331fe36154dd69715d81bbd21df4f"><style class="darkreader darkreader--override" media="screen">.vimvixen-hint {
background-color: #7b5300 !important;
border-color: #d8b013 !important;
color: #f3e8c8 !important;
}
#vimvixen-console-frame {
color-scheme: light !important;
}
::placeholder {
opacity: 0.5 !important;
}
#edge-translate-panel-body,
.MuiTypography-body1,
.nfe-quote-text {
color: var(--darkreader-neutral-text) !important;
}
gr-main-header {
background-color: #0f3a48 !important;
}
.tou-z65h9k,
.tou-mignzq,
.tou-1b6i2ox,
.tou-lnqlqk {
background-color: var(--darkreader-neutral-background) !important;
}
.tou-75mvi {
background-color: #032029 !important;
}
.tou-ta9e87,
.tou-1w3fhi0,
.tou-1b8t2us,
.tou-py7lfi,
.tou-1lpmd9d,
.tou-1frrtv8,
.tou-17ezmgn {
background-color: #0a0a0a !important;
}
.tou-uknfeu {
background-color: #231603 !important;
}
.tou-6i3zyv {
background-color: #19576c !important;
}
div.mermaid-viewer-control-panel .btn {
background-color: var(--darkreader-neutral-background);
fill: var(--darkreader-neutral-text);
}
svg g rect.er {
fill: var(--darkreader-neutral-background) !important;
}
svg g rect.er.entityBox {
fill: var(--darkreader-neutral-background) !important;
}
svg g rect.er.attributeBoxOdd {
fill: var(--darkreader-neutral-background) !important;
}
svg g rect.er.attributeBoxEven {
fill: var(--darkreader-selection-background);
fill-opacity: 0.8 !important;
}
svg rect.er.relationshipLabelBox {
fill: var(--darkreader-neutral-background) !important;
}
svg g g.nodes rect,
svg g g.nodes polygon {
fill: var(--darkreader-neutral-background) !important;
}
svg g rect.task {
fill: var(--darkreader-selection-background) !important;
}
svg line.messageLine0,
svg line.messageLine1 {
stroke: var(--darkreader-neutral-text) !important;
}
div.mermaid .actor {
fill: var(--darkreader-neutral-background) !important;
}
.google-material-icons {
font-family: 'Google Material Icons' !important;
}
.google-symbols {
font-family: 'Google Symbols Subset', 'Google Symbols' !important;
}
.material-icons-extended {
font-family: 'Material Icons Extended' !important;
}
mitid-authenticators-code-app > .code-app-container {
background-color: white !important;
padding-top: 1rem;
}
iframe#unpaywall[src$="unpaywall.html"] {
color-scheme: light !important;
}
.oui-icon {
font-family: 'Oui Icons' !important;
}
embed[type="application/pdf"] { filter: invert(100%) contrast(90%); }</style></head><body><table><thead>
<tr><th>Game ID</th><th>Region</th><th>Model Type</th><th>Flags</th><th>Develop</th><th>ALL.Net</th><th>Deliver</th><th>Binding</th><th>Billing</th><th>Rental</th><th>Billing Form</th><th>Platform ID</th><th>IPv4 Subnet</th><th>IPv6 Subnet</th><th>Game Key</th><th>Game IV</th><th>Opt Key</th><th>Opt IV</th></tr>
</thead>
<tbody><tr><td><code>SBZS</code></td><td><code>ALL</code></td><td><code>Satellite (ST)</code></td><td><code><code>24</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code>0</code></td><td><code>Nu SX (AAW)</code></td><td><code>192.168.0.0</code></td><td><code>0000::0000</code></td><td><code><code>A53780999F0DF49CBD8075C86D150566</code></code></td><td><code><code>E2048E0E673CD0C8F3A79E72FEAF4A62</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SBZS</code></td><td><code>ALL</code></td><td><code>Satellite (ST)</code></td><td><code><code>25</code></code></td><td><code>X</code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code>0</code></td><td><code>Nu (AAV)</code></td><td><code>192.168.0.0</code></td><td><code>0000::0000</code></td><td><code><code>A53780999F0DF49CBD8075C86D150566</code></code></td><td><code><code>E2048E0E673CD0C8F3A79E72FEAF4A62</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SBZS</code></td><td><code>ALL</code></td><td><code>Satellite (ST)</code></td><td><code><code>25</code></code></td><td><code>X</code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code>0</code></td><td><code>Nu SX (AAW)</code></td><td><code>192.168.0.0</code></td><td><code>0000::0000</code></td><td><code><code>A53780999F0DF49CBD8075C86D150566</code></code></td><td><code><code>E2048E0E673CD0C8F3A79E72FEAF4A62</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SBZU</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>00</code></code></td><td><code></code></td><td><code></code></td><td><code></code></td><td><code></code></td><td><code></code></td><td><code></code></td><td><code>0</code></td><td><code>Nu (AAV)</code></td><td><code>192.168.1.0</code></td><td><code>0000::0000</code></td><td><code><code>E6EF248B72D31DEAB42FE73906C4C9F0</code></code></td><td><code><code>0A7D94EC3DAFD9CCCF9F599CB245BDB1</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SBZU</code></td><td><code>EXP</code></td><td><code>Satellite (ST)</code></td><td><code><code>24</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code>0</code></td><td><code>Nu SX (AAW)</code></td><td><code>192.168.1.0</code></td><td><code>0000::0000</code></td><td><code><code>E6EF248B72D31DEAB42FE73906C4C9F0</code></code></td><td><code><code>0A7D94EC3DAFD9CCCF9F599CB245BDB1</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SBZU</code></td><td><code>ALL</code></td><td><code>Satellite (ST)</code></td><td><code><code>24</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code>0</code></td><td><code>Nu SX (AAW)</code></td><td><code>192.168.1.0</code></td><td><code>0000::0000</code></td><td><code><code>E6EF248B72D31DEAB42FE73906C4C9F0</code></code></td><td><code><code>0A7D94EC3DAFD9CCCF9F599CB245BDB1</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SBZU</code></td><td><code>CHN</code></td><td><code>Satellite (ST)</code></td><td><code><code>24</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code>0</code></td><td><code>Nu (AAV)</code></td><td><code>192.168.1.0</code></td><td><code>0000::0000</code></td><td><code><code>E6EF248B72D31DEAB42FE73906C4C9F0</code></code></td><td><code><code>0A7D94EC3DAFD9CCCF9F599CB245BDB1</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SBZU</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>24</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code>0</code></td><td><code>Nu (AAV)</code></td><td><code>192.168.1.0</code></td><td><code>0000::0000</code></td><td><code><code>E6EF248B72D31DEAB42FE73906C4C9F0</code></code></td><td><code><code>0A7D94EC3DAFD9CCCF9F599CB245BDB1</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SBZU</code></td><td><code>ALL</code></td><td><code>Satellite (ST)</code></td><td><code><code>24</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code>0</code></td><td><code>Nu (AAV)</code></td><td><code>192.168.1.0</code></td><td><code>0000::0000</code></td><td><code><code>E6EF248B72D31DEAB42FE73906C4C9F0</code></code></td><td><code><code>0A7D94EC3DAFD9CCCF9F599CB245BDB1</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SBZU</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>24</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code>0</code></td><td><code>Nu SX (AAW)</code></td><td><code>192.168.1.0</code></td><td><code>0000::0000</code></td><td><code><code>E6EF248B72D31DEAB42FE73906C4C9F0</code></code></td><td><code><code>0A7D94EC3DAFD9CCCF9F599CB245BDB1</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SBZU</code></td><td><code>ALL</code></td><td><code>Satellite (ST)</code></td><td><code><code>24</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code>0</code></td><td><code>Nu SX (AAW)</code></td><td><code>192.168.0.0</code></td><td><code>0000::0000</code></td><td><code><code>E6EF248B72D31DEAB42FE73906C4C9F0</code></code></td><td><code><code>0A7D94EC3DAFD9CCCF9F599CB245BDB1</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SBZU</code></td><td><code>EXP</code></td><td><code>Satellite (ST)</code></td><td><code><code>24</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code>0</code></td><td><code>Nu (AAV)</code></td><td><code>192.168.1.0</code></td><td><code>0000::0000</code></td><td><code><code>E6EF248B72D31DEAB42FE73906C4C9F0</code></code></td><td><code><code>0A7D94EC3DAFD9CCCF9F599CB245BDB1</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SBZU</code></td><td><code>CHN</code></td><td><code>Satellite (ST)</code></td><td><code><code>24</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code>0</code></td><td><code>Nu SX (AAW)</code></td><td><code>192.168.1.0</code></td><td><code>0000::0000</code></td><td><code><code>E6EF248B72D31DEAB42FE73906C4C9F0</code></code></td><td><code><code>0A7D94EC3DAFD9CCCF9F599CB245BDB1</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SBZU</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>24</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code>0</code></td><td><code>Nu SX (AAW)</code></td><td><code>192.168.0.0</code></td><td><code>0000::0000</code></td><td><code><code>E6EF248B72D31DEAB42FE73906C4C9F0</code></code></td><td><code><code>0A7D94EC3DAFD9CCCF9F599CB245BDB1</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SBZV</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>64</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>Nu (AAV)</code></td><td><code>192.168.78.0</code></td><td><code>0000::0000</code></td><td><code><code>1EB26F806696CD872DEA14262F8C7B4C</code></code></td><td><code><code>EB0A261B4DB7ED9D89FE5EB24AF7054D</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SBZV</code></td><td><code>EXP</code></td><td><code>Satellite (ST)</code></td><td><code><code>64</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>Nu (AAV)</code></td><td><code>192.168.78.0</code></td><td><code>0000::0000</code></td><td><code><code>1EB26F806696CD872DEA14262F8C7B4C</code></code></td><td><code><code>EB0A261B4DB7ED9D89FE5EB24AF7054D</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SBZV</code></td><td><code>EXP</code></td><td><code>Satellite (ST)</code></td><td><code><code>65</code></code></td><td><code>X</code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>Nu (AAV)</code></td><td><code>192.168.78.0</code></td><td><code>0000::0000</code></td><td><code><code>1EB26F806696CD872DEA14262F8C7B4C</code></code></td><td><code><code>EB0A261B4DB7ED9D89FE5EB24AF7054D</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SBZV</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>65</code></code></td><td><code>X</code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>Nu (AAV)</code></td><td><code>192.168.78.0</code></td><td><code>0000::0000</code></td><td><code><code>1EB26F806696CD872DEA14262F8C7B4C</code></code></td><td><code><code>EB0A261B4DB7ED9D89FE5EB24AF7054D</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDAP</code></td><td><code>JPN</code></td><td><code>Terminal (??)</code></td><td><code><code>64</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>Nu (AAV)</code></td><td><code>192.168.126.0</code></td><td><code>0000::0000</code></td><td><code><code>A8FEEA8AF2950EA933392A7E7A515AC2</code></code></td><td><code><code>6C7E0E3B88CE678FB033E456E5343D72</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDAP</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>64</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>Nu (AAV)</code></td><td><code>192.168.126.0</code></td><td><code>0000::0000</code></td><td><code><code>A8FEEA8AF2950EA933392A7E7A515AC2</code></code></td><td><code><code>6C7E0E3B88CE678FB033E456E5343D72</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDAP</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>65</code></code></td><td><code>X</code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>Nu (AAV)</code></td><td><code>192.168.126.0</code></td><td><code>0000::0000</code></td><td><code><code>A8FEEA8AF2950EA933392A7E7A515AC2</code></code></td><td><code><code>6C7E0E3B88CE678FB033E456E5343D72</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDAP</code></td><td><code>JPN</code></td><td><code>Terminal (??)</code></td><td><code><code>65</code></code></td><td><code>X</code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>Nu (AAV)</code></td><td><code>192.168.126.0</code></td><td><code>0000::0000</code></td><td><code><code>A8FEEA8AF2950EA933392A7E7A515AC2</code></code></td><td><code><code>6C7E0E3B88CE678FB033E456E5343D72</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDAQ</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>04</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code></code></td><td><code></code></td><td><code>0</code></td><td><code>Nu SX (AAW)</code></td><td><code>192.168.125.0</code></td><td><code>0000::0000</code></td><td><code><code>C5DEF48491A17ABFAF14F70ACC068C4D</code></code></td><td><code><code>3E416A45DC0E442A13FC058F36DEBE89</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDAV</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>64</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>Nu SX (AAW)</code></td><td><code>192.168.130.0</code></td><td><code>0000::0000</code></td><td><code><code>6F239C60B73FB2259A40ECFDC1FF541A</code></code></td><td><code><code>A5E047B8A29F27014E4D512E08954FF0</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDBT</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>64</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>Nu (AAV)</code></td><td><code>192.168.139.0</code></td><td><code>0000::0000</code></td><td><code><code>F65A75BEC7F0DD4D08A690F219AB14EF</code></code></td><td><code><code>CAE2CEE2CC88188F661893E0696BBE2A</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDBT</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>65</code></code></td><td><code>X</code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>Nu (AAV)</code></td><td><code>192.168.139.0</code></td><td><code>0000::0000</code></td><td><code><code>F65A75BEC7F0DD4D08A690F219AB14EF</code></code></td><td><code><code>CAE2CEE2CC88188F661893E0696BBE2A</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDBZ</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>64</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>Nu (AAV)</code></td><td><code>192.168.144.0</code></td><td><code>0000::0000</code></td><td><code><code>A09F1E9AED8E14B3F2D285E50FA4DCBC</code></code></td><td><code><code>3282AB559319FB67A168E0803B235091</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDBZ</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>65</code></code></td><td><code>X</code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>Nu (AAV)</code></td><td><code>192.168.144.0</code></td><td><code>0000::0000</code></td><td><code><code>A09F1E9AED8E14B3F2D285E50FA4DCBC</code></code></td><td><code><code>3282AB559319FB67A168E0803B235091</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDCA</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>24</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code>0</code></td><td><code>Nu (AAV)</code></td><td><code>192.168.150.0</code></td><td><code>0000::0000</code></td><td><code><code>48FF08937104B2A83CCB282468A5C702</code></code></td><td><code><code>D7782A8594B74BC91491EA9DBC693395</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDCD</code></td><td><code>EXP</code></td><td><code>Satellite (ST)</code></td><td><code><code>64</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>Nu SX (AAW)</code></td><td><code>192.168.147.0</code></td><td><code>0000::0000</code></td><td><code><code>9DA25C8104D3CD5A3161229DE221ACE9</code></code></td><td><code><code>8BC818BEF7FF3C3431BA11EDA5C5FB48</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDCD</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>64</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>Nu SX (AAW)</code></td><td><code>192.168.147.0</code></td><td><code>0000::0000</code></td><td><code><code>9DA25C8104D3CD5A3161229DE221ACE9</code></code></td><td><code><code>8BC818BEF7FF3C3431BA11EDA5C5FB48</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDCF</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>24</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code>0</code></td><td><code>Nu (AAV)</code></td><td><code>192.168.148.0</code></td><td><code>0000::0000</code></td><td><code><code>E45390726D4747CA28086C667214CFE7</code></code></td><td><code><code>36336C65FC649205231745CE6A9CE0B8</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDCH</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>64</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>Nu (AAV)</code></td><td><code>192.168.149.0</code></td><td><code>0000::0000</code></td><td><code><code>260B3364400E701920B6DED70BC39271</code></code></td><td><code><code>5EAB7342D2D79B09FE0E00F81E325307</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDDD</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>24</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code>0</code></td><td><code>Nu (AAV)</code></td><td><code>192.168.157.0</code></td><td><code>0000::0000</code></td><td><code><code>619410D29DF4F940177ACCD859D97E8E</code></code></td><td><code><code>16497FE160E28E601A49D16DB18F2541</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDDD</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>25</code></code></td><td><code>X</code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code>0</code></td><td><code>Nu (AAV)</code></td><td><code>192.168.157.0</code></td><td><code>0000::0000</code></td><td><code><code>619410D29DF4F940177ACCD859D97E8E</code></code></td><td><code><code>16497FE160E28E601A49D16DB18F2541</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDDD</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>25</code></code></td><td><code>X</code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code>0</code></td><td><code>Nu (AAV)</code></td><td><code>192.169.96.10</code></td><td><code>0000::0000</code></td><td><code><code>6591D8D2E84B21D197753804D47C2E48</code></code></td><td><code><code>D842A5C6F75B35C7257C0EC9BA30DED1</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDDD</code></td><td><code>JPN</code></td><td><code>Server (SV)</code></td><td><code><code>2c</code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code>0</code></td><td><code>Nu (AAV)</code></td><td><code>192.168.157.0</code></td><td><code>0000::0000</code></td><td><code><code>619410D29DF4F940177ACCD859D97E8E</code></code></td><td><code><code>16497FE160E28E601A49D16DB18F2541</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDDD</code></td><td><code>JPN</code></td><td><code>Server (SV)</code></td><td><code><code>2d</code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>X</code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code>0</code></td><td><code>Nu (AAV)</code></td><td><code>192.168.157.0</code></td><td><code>0000::0000</code></td><td><code><code>619410D29DF4F940177ACCD859D97E8E</code></code></td><td><code><code>16497FE160E28E601A49D16DB18F2541</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDDD</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>64</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>Nu (AAV)</code></td><td><code>192.168.157.0</code></td><td><code>0000::0000</code></td><td><code><code>619410D29DF4F940177ACCD859D97E8E</code></code></td><td><code><code>16497FE160E28E601A49D16DB18F2541</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDDD</code></td><td><code>EXP</code></td><td><code>Satellite (ST)</code></td><td><code><code>64</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>Nu (AAV)</code></td><td><code>192.168.157.0</code></td><td><code>0000::0000</code></td><td><code><code>619410D29DF4F940177ACCD859D97E8E</code></code></td><td><code><code>16497FE160E28E601A49D16DB18F2541</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDDD</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>65</code></code></td><td><code>X</code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>Nu (AAV)</code></td><td><code>192.168.157.0</code></td><td><code>0000::0000</code></td><td><code><code>619410D29DF4F940177ACCD859D97E8E</code></code></td><td><code><code>16497FE160E28E601A49D16DB18F2541</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDDD</code></td><td><code>EXP</code></td><td><code>Satellite (ST)</code></td><td><code><code>65</code></code></td><td><code>X</code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>Nu (AAV)</code></td><td><code>192.168.157.0</code></td><td><code>0000::0000</code></td><td><code><code>619410D29DF4F940177ACCD859D97E8E</code></code></td><td><code><code>16497FE160E28E601A49D16DB18F2541</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDDD</code></td><td><code>EXP</code></td><td><code>Server (SV)</code></td><td><code><code>6c</code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>Nu (AAV)</code></td><td><code>192.168.157.0</code></td><td><code>0000::0000</code></td><td><code><code>619410D29DF4F940177ACCD859D97E8E</code></code></td><td><code><code>16497FE160E28E601A49D16DB18F2541</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDDD</code></td><td><code>JPN</code></td><td><code>Server (SV)</code></td><td><code><code>6c</code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>Nu (AAV)</code></td><td><code>192.168.157.0</code></td><td><code>0000::0000</code></td><td><code><code>619410D29DF4F940177ACCD859D97E8E</code></code></td><td><code><code>16497FE160E28E601A49D16DB18F2541</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDDD</code></td><td><code>JPN</code></td><td><code>Server (SV)</code></td><td><code><code>6d</code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>X</code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>Nu (AAV)</code></td><td><code>192.168.157.0</code></td><td><code>0000::0000</code></td><td><code><code>619410D29DF4F940177ACCD859D97E8E</code></code></td><td><code><code>16497FE160E28E601A49D16DB18F2541</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDDD</code></td><td><code>EXP</code></td><td><code>Server (SV)</code></td><td><code><code>6d</code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>X</code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>Nu (AAV)</code></td><td><code>192.168.157.0</code></td><td><code>0000::0000</code></td><td><code><code>619410D29DF4F940177ACCD859D97E8E</code></code></td><td><code><code>16497FE160E28E601A49D16DB18F2541</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDDF</code></td><td><code>EXP</code></td><td><code>Satellite (ST)</code></td><td><code><code>64</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>Nu (AAV)</code></td><td><code>192.168.158.0</code></td><td><code>0000::0000</code></td><td><code><code>A6497BC4BB114A1F8F24AA756D2AF2D2</code></code></td><td><code><code>00BBACA3CDCE3DCA0174C9F26DC65120</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDDF</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>64</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>Nu (AAV)</code></td><td><code>192.168.158.0</code></td><td><code>0000::0000</code></td><td><code><code>A6497BC4BB114A1F8F24AA756D2AF2D2</code></code></td><td><code><code>00BBACA3CDCE3DCA0174C9F26DC65120</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDDL</code></td><td><code>ALL</code></td><td><code>Satellite (ST)</code></td><td><code><code>25</code></code></td><td><code>X</code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code>0</code></td><td><code>Nu Lv 3.1 (AAZ)</code></td><td><code>192.168.0.0</code></td><td><code>0000::0000</code></td><td><code><code>5A837D9EC1B3FB37F844E3ECD40ACACD</code></code></td><td><code><code>AD46FDC45AC915D55C5DCBA55A600D39</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDDM</code></td><td><code>ALL</code></td><td><code>Satellite (ST)</code></td><td><code><code>00</code></code></td><td><code></code></td><td><code></code></td><td><code></code></td><td><code></code></td><td><code></code></td><td><code></code></td><td><code>0</code></td><td><code>Nu Lv 3.1 (AAZ)</code></td><td><code>192.168.69.0</code></td><td><code>0000::0000</code></td><td><code><code>7A5F4E97AB1790DFF41C1CA4A061AC12</code></code></td><td><code><code>410280B2458399D7CA59283AB4AB46E1</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDDN</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>24</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code>0</code></td><td><code>ALLS X2 (ACB)</code></td><td><code>192.168.1.0</code></td><td><code>0000::0000</code></td><td><code><code>9B3B2090947A2486F0F3555C6DB98E56</code></code></td><td><code><code>D5BE04A1303C1DD9385486CF0DF68088</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDDN</code></td><td><code>EXP</code></td><td><code>Satellite (ST)</code></td><td><code><code>24</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.1.0</code></td><td><code>0000::0000</code></td><td><code><code>9B3B2090947A2486F0F3555C6DB98E56</code></code></td><td><code><code>D5BE04A1303C1DD9385486CF0DF68088</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDDN</code></td><td><code>CHN</code></td><td><code>Satellite (ST)</code></td><td><code><code>24</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.1.0</code></td><td><code>0000::0000</code></td><td><code><code>9B3B2090947A2486F0F3555C6DB98E56</code></code></td><td><code><code>D5BE04A1303C1DD9385486CF0DF68088</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDDN</code></td><td><code>EXP</code></td><td><code>Satellite (ST)</code></td><td><code><code>24</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code>0</code></td><td><code>ALLS X2 (ACB)</code></td><td><code>192.168.1.0</code></td><td><code>0000::0000</code></td><td><code><code>9B3B2090947A2486F0F3555C6DB98E56</code></code></td><td><code><code>D5BE04A1303C1DD9385486CF0DF68088</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDDN</code></td><td><code>ALL</code></td><td><code>Satellite (ST)</code></td><td><code><code>24</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.1.0</code></td><td><code>0000::0000</code></td><td><code><code>9B3B2090947A2486F0F3555C6DB98E56</code></code></td><td><code><code>D5BE04A1303C1DD9385486CF0DF68088</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDDN</code></td><td><code>CHN</code></td><td><code>Satellite (ST)</code></td><td><code><code>24</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code>0</code></td><td><code>Nu Lv 3.1 (AAZ)</code></td><td><code>192.168.1.0</code></td><td><code>0000::0000</code></td><td><code><code>9B3B2090947A2486F0F3555C6DB98E56</code></code></td><td><code><code>D5BE04A1303C1DD9385486CF0DF68088</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDDN</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>24</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code>0</code></td><td><code>Nu Lv 3.1 (AAZ)</code></td><td><code>192.168.1.0</code></td><td><code>0000::0000</code></td><td><code><code>9B3B2090947A2486F0F3555C6DB98E56</code></code></td><td><code><code>D5BE04A1303C1DD9385486CF0DF68088</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDDN</code></td><td><code>CHN</code></td><td><code>Satellite (ST)</code></td><td><code><code>24</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code>0</code></td><td><code>ALLS X2 (ACB)</code></td><td><code>192.168.1.0</code></td><td><code>0000::0000</code></td><td><code><code>9B3B2090947A2486F0F3555C6DB98E56</code></code></td><td><code><code>D5BE04A1303C1DD9385486CF0DF68088</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDDN</code></td><td><code>ALL</code></td><td><code>Satellite (ST)</code></td><td><code><code>24</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code>0</code></td><td><code>Nu Lv 3.1 (AAZ)</code></td><td><code>192.168.1.0</code></td><td><code>0000::0000</code></td><td><code><code>9B3B2090947A2486F0F3555C6DB98E56</code></code></td><td><code><code>D5BE04A1303C1DD9385486CF0DF68088</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDDN</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>24</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.1.0</code></td><td><code>0000::0000</code></td><td><code><code>9B3B2090947A2486F0F3555C6DB98E56</code></code></td><td><code><code>D5BE04A1303C1DD9385486CF0DF68088</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDDN</code></td><td><code>EXP</code></td><td><code>Satellite (ST)</code></td><td><code><code>24</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code>0</code></td><td><code>Nu Lv 3.1 (AAZ)</code></td><td><code>192.168.1.0</code></td><td><code>0000::0000</code></td><td><code><code>9B3B2090947A2486F0F3555C6DB98E56</code></code></td><td><code><code>D5BE04A1303C1DD9385486CF0DF68088</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDDN</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>34</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code></code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.1.0</code></td><td><code>0000::0000</code></td><td><code><code>9B3B2090947A2486F0F3555C6DB98E56</code></code></td><td><code><code>D5BE04A1303C1DD9385486CF0DF68088</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDDN</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>e4</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.69.0</code></td><td><code>0000::0000</code></td><td><code><code>9B3B2090947A2486F0F3555C6DB98E56</code></code></td><td><code><code>D5BE04A1303C1DD9385486CF0DF68088</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDDP</code></td><td><code>JPN</code></td><td><code>Terminal (??)</code></td><td><code><code>64</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.155.0</code></td><td><code>0000::0000</code></td><td><code><code>E6E91C814845C68667950B52774E610F</code></code></td><td><code><code>43227E2DCD1A1A1134E4F60BDB6E1D89</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDDP</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>64</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.155.0</code></td><td><code>0000::0000</code></td><td><code><code>E6E91C814845C68667950B52774E610F</code></code></td><td><code><code>43227E2DCD1A1A1134E4F60BDB6E1D89</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDDP</code></td><td><code>JPN</code></td><td><code>Terminal (??)</code></td><td><code><code>65</code></code></td><td><code>X</code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.155.0</code></td><td><code>0000::0000</code></td><td><code><code>E6E91C814845C68667950B52774E610F</code></code></td><td><code><code>43227E2DCD1A1A1134E4F60BDB6E1D89</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDDP</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>65</code></code></td><td><code>X</code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.155.0</code></td><td><code>0000::0000</code></td><td><code><code>E6E91C814845C68667950B52774E610F</code></code></td><td><code><code>43227E2DCD1A1A1134E4F60BDB6E1D89</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDDS</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>64</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.160.0</code></td><td><code>0000::0000</code></td><td><code><code>5272EA6AE573FD2ED90FFBFF4E3B170C</code></code></td><td><code><code>45437CA754B19C4B9F70C4DD0331F432</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDDS</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>64</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>Nu Lv 3.1 (AAZ)</code></td><td><code>192.168.160.0</code></td><td><code>0000::0000</code></td><td><code><code>5272EA6AE573FD2ED90FFBFF4E3B170C</code></code></td><td><code><code>45437CA754B19C4B9F70C4DD0331F432</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDDT</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>64</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.162.0</code></td><td><code>0000::0000</code></td><td><code><code>764B8462192DBA6655E2A0E49635A90B</code></code></td><td><code><code>9BF8267AD7E3C7B3179F5ECD661DE76A</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDDW</code></td><td><code>ALL</code></td><td><code>Satellite (ST)</code></td><td><code><code>25</code></code></td><td><code>X</code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code>0</code></td><td><code>ALLS X2 (ACB)</code></td><td><code>192.168.0.0</code></td><td><code>0000::0000</code></td><td><code><code>C1F88053CCF85D67CB8556D9A0CA7CC3</code></code></td><td><code><code>085CA00674C1C4EB142FCF0A3495856B</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDDW</code></td><td><code>ALL</code></td><td><code>Satellite (ST)</code></td><td><code><code>25</code></code></td><td><code>X</code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.0.0</code></td><td><code>0000::0000</code></td><td><code><code>C1F88053CCF85D67CB8556D9A0CA7CC3</code></code></td><td><code><code>085CA00674C1C4EB142FCF0A3495856B</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDEB</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>24</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.163.0</code></td><td><code>0000::0000</code></td><td><code><code>DFD69032CEA0AAB606EB2C4A409F2D35</code></code></td><td><code><code>F55F915DC3608ABB127C5D0CF7826AC9</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDEB</code></td><td><code>JPN</code></td><td><code>Terminal (??)</code></td><td><code><code>24</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.163.0</code></td><td><code>0000::0000</code></td><td><code><code>DFD69032CEA0AAB606EB2C4A409F2D35</code></code></td><td><code><code>F55F915DC3608ABB127C5D0CF7826AC9</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDEB</code></td><td><code>EXP</code></td><td><code>Terminal (??)</code></td><td><code><code>24</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.163.0</code></td><td><code>0000::0000</code></td><td><code><code>DFD69032CEA0AAB606EB2C4A409F2D35</code></code></td><td><code><code>F55F915DC3608ABB127C5D0CF7826AC9</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDEB</code></td><td><code>EXP</code></td><td><code>Satellite (ST)</code></td><td><code><code>24</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.163.0</code></td><td><code>0000::0000</code></td><td><code><code>DFD69032CEA0AAB606EB2C4A409F2D35</code></code></td><td><code><code>F55F915DC3608ABB127C5D0CF7826AC9</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDEB</code></td><td><code>EXP</code></td><td><code>Satellite (ST)</code></td><td><code><code>25</code></code></td><td><code>X</code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.163.0</code></td><td><code>0000::0000</code></td><td><code><code>DFD69032CEA0AAB606EB2C4A409F2D35</code></code></td><td><code><code>F55F915DC3608ABB127C5D0CF7826AC9</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDEB</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>25</code></code></td><td><code>X</code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.163.0</code></td><td><code>0000::0000</code></td><td><code><code>DFD69032CEA0AAB606EB2C4A409F2D35</code></code></td><td><code><code>F55F915DC3608ABB127C5D0CF7826AC9</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDEB</code></td><td><code>JPN</code></td><td><code>Terminal (??)</code></td><td><code><code>25</code></code></td><td><code>X</code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.163.0</code></td><td><code>0000::0000</code></td><td><code><code>DFD69032CEA0AAB606EB2C4A409F2D35</code></code></td><td><code><code>F55F915DC3608ABB127C5D0CF7826AC9</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDEB</code></td><td><code>EXP</code></td><td><code>Terminal (??)</code></td><td><code><code>25</code></code></td><td><code>X</code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.163.0</code></td><td><code>0000::0000</code></td><td><code><code>DFD69032CEA0AAB606EB2C4A409F2D35</code></code></td><td><code><code>F55F915DC3608ABB127C5D0CF7826AC9</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDEB</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>64</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.163.0</code></td><td><code>0000::0000</code></td><td><code><code>DFD69032CEA0AAB606EB2C4A409F2D35</code></code></td><td><code><code>F55F915DC3608ABB127C5D0CF7826AC9</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDEB</code></td><td><code>JPN</code></td><td><code>Terminal (??)</code></td><td><code><code>64</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.163.0</code></td><td><code>0000::0000</code></td><td><code><code>DFD69032CEA0AAB606EB2C4A409F2D35</code></code></td><td><code><code>F55F915DC3608ABB127C5D0CF7826AC9</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDEB</code></td><td><code>EXP</code></td><td><code>Satellite (ST)</code></td><td><code><code>64</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.163.0</code></td><td><code>0000::0000</code></td><td><code><code>DFD69032CEA0AAB606EB2C4A409F2D35</code></code></td><td><code><code>F55F915DC3608ABB127C5D0CF7826AC9</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDEB</code></td><td><code>JPN</code></td><td><code>Terminal (??)</code></td><td><code><code>65</code></code></td><td><code>X</code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.163.0</code></td><td><code>0000::0000</code></td><td><code><code>DFD69032CEA0AAB606EB2C4A409F2D35</code></code></td><td><code><code>F55F915DC3608ABB127C5D0CF7826AC9</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDEB</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>65</code></code></td><td><code>X</code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.163.0</code></td><td><code>0000::0000</code></td><td><code><code>DFD69032CEA0AAB606EB2C4A409F2D35</code></code></td><td><code><code>F55F915DC3608ABB127C5D0CF7826AC9</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDEC</code></td><td><code>JPN</code></td><td><code>Terminal (??)</code></td><td><code><code>64</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.155.0</code></td><td><code>0000::0000</code></td><td><code><code>02AF292B025A67EE82BED12E8898BF34</code></code></td><td><code><code>4B143B304693B5238BAAF8FC5A6E5C01</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDEC</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>64</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.155.0</code></td><td><code>0000::0000</code></td><td><code><code>02AF292B025A67EE82BED12E8898BF34</code></code></td><td><code><code>4B143B304693B5238BAAF8FC5A6E5C01</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDEC</code></td><td><code>JPN</code></td><td><code>Terminal (??)</code></td><td><code><code>64</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.164.0</code></td><td><code>0000::0000</code></td><td><code><code>02AF292B025A67EE82BED12E8898BF34</code></code></td><td><code><code>4B143B304693B5238BAAF8FC5A6E5C01</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDEC</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>64</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.164.0</code></td><td><code>0000::0000</code></td><td><code><code>02AF292B025A67EE82BED12E8898BF34</code></code></td><td><code><code>4B143B304693B5238BAAF8FC5A6E5C01</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDEC</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>65</code></code></td><td><code>X</code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.164.0</code></td><td><code>0000::0000</code></td><td><code><code>02AF292B025A67EE82BED12E8898BF34</code></code></td><td><code><code>4B143B304693B5238BAAF8FC5A6E5C01</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDEC</code></td><td><code>JPN</code></td><td><code>Terminal (??)</code></td><td><code><code>65</code></code></td><td><code>X</code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.164.0</code></td><td><code>0000::0000</code></td><td><code><code>02AF292B025A67EE82BED12E8898BF34</code></code></td><td><code><code>4B143B304693B5238BAAF8FC5A6E5C01</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDEC</code></td><td><code>JPN</code></td><td><code>Terminal (??)</code></td><td><code><code>65</code></code></td><td><code>X</code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.155.0</code></td><td><code>0000::0000</code></td><td><code><code>02AF292B025A67EE82BED12E8898BF34</code></code></td><td><code><code>4B143B304693B5238BAAF8FC5A6E5C01</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDEC</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>65</code></code></td><td><code>X</code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.155.0</code></td><td><code>0000::0000</code></td><td><code><code>02AF292B025A67EE82BED12E8898BF34</code></code></td><td><code><code>4B143B304693B5238BAAF8FC5A6E5C01</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDED</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>64</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.165.0</code></td><td><code>0000::0000</code></td><td><code><code>2687C32336142426FD927613D0925133</code></code></td><td><code><code>A1CAE504C8C5E08C04D992EDBC5A4E3A</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDEE</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>64</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.69.0</code></td><td><code>0000::0000</code></td><td><code><code>3A72741FF61D178AFB79FF1BB160728F</code></code></td><td><code><code>2DA1CD60559BC9F3450AFD13F220A49E</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDEG</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>64</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.166.0</code></td><td><code>0000::0000</code></td><td><code><code>8F14C90D89EC333DF010F9942CDC5676</code></code></td><td><code><code>E1F1BC99B8E3BA5F63322363DB7C6D51</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDEG</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>65</code></code></td><td><code>X</code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.166.0</code></td><td><code>0000::0000</code></td><td><code><code>8F14C90D89EC333DF010F9942CDC5676</code></code></td><td><code><code>E1F1BC99B8E3BA5F63322363DB7C6D51</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDEJ</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>64</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.167.0</code></td><td><code>0000::0000</code></td><td><code><code>F4A506F8906C19C4639110EA0D84ABFE</code></code></td><td><code><code>5E1F6C4A1188EECBB758787DF1FDD2D9</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDEM</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>64</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.168.0</code></td><td><code>0000::0000</code></td><td><code><code>464B92E7D9E50CE6D92C9E370D5FDF2B</code></code></td><td><code><code>5076349FDD5839D0C94E6271D1B7E2FB</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDEM</code></td><td><code>JPN</code></td><td><code>UNKNOWN:5</code></td><td><code><code>64</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.168.0</code></td><td><code>0000::0000</code></td><td><code><code>464B92E7D9E50CE6D92C9E370D5FDF2B</code></code></td><td><code><code>5076349FDD5839D0C94E6271D1B7E2FB</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDEM</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>65</code></code></td><td><code>X</code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.168.0</code></td><td><code>0000::0000</code></td><td><code><code>464B92E7D9E50CE6D92C9E370D5FDF2B</code></code></td><td><code><code>5076349FDD5839D0C94E6271D1B7E2FB</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDEP</code></td><td><code>JPN</code></td><td><code>UNKNOWN:22</code></td><td><code><code>64</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.175.0</code></td><td><code>0000::0000</code></td><td><code><code>ABDCD0D2E165F26C4CAEB58CEE0734B4</code></code></td><td><code><code>CEA3E44F35FD6C3D1D74B78BE7384782</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDEP</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>64</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.175.0</code></td><td><code>0000::0000</code></td><td><code><code>ABDCD0D2E165F26C4CAEB58CEE0734B4</code></code></td><td><code><code>CEA3E44F35FD6C3D1D74B78BE7384782</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDEP</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>65</code></code></td><td><code>X</code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.175.0</code></td><td><code>0000::0000</code></td><td><code><code>ABDCD0D2E165F26C4CAEB58CEE0734B4</code></code></td><td><code><code>CEA3E44F35FD6C3D1D74B78BE7384782</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDER</code></td><td><code>CHN</code></td><td><code>Satellite (ST)</code></td><td><code><code>64</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>Nu (AAV)</code></td><td><code>192.168.158.0</code></td><td><code>0000::0000</code></td><td><code><code>F0903BC3FF83434CC45893290257A7F7</code></code></td><td><code><code>B8151112A3E81CA7049EAE11A36F7362</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDEZ</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>64</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.172.0</code></td><td><code>0000::0000</code></td><td><code><code>EB7B708E6D996ED3241F1769F82BA4F0</code></code></td><td><code><code>110BB7D93549498351E4E4A455E113EB</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDFG</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>65</code></code></td><td><code>X</code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.176.0</code></td><td><code>0000::0000</code></td><td><code><code>5703455E6C6387B456240FFB1D37D9D5</code></code></td><td><code><code>2E6B48A1B83FB3F157F4203EF0E74FDB</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDFL</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>64</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>Nu SX (AAW)</code></td><td><code>192.168.179.0</code></td><td><code>0000::0000</code></td><td><code><code>E06C1C41A89E29724479CB3546D9BF5C</code></code></td><td><code><code>014FA325941612C624490F496854A79A</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDFL</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>65</code></code></td><td><code>X</code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>Nu SX (AAW)</code></td><td><code>192.168.179.0</code></td><td><code>0000::0000</code></td><td><code><code>E06C1C41A89E29724479CB3546D9BF5C</code></code></td><td><code><code>014FA325941612C624490F496854A79A</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDFT</code></td><td><code>JPN</code></td><td><code>Live (LV)</code></td><td><code><code>64</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.86.0</code></td><td><code>0000::0000</code></td><td><code><code>F23FCA0721136FEF222343A9971C8D6C</code></code></td><td><code><code>A915572D4AC5CF70BDF3ED5F592D5619</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDFT</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>64</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.86.0</code></td><td><code>0000::0000</code></td><td><code><code>F23FCA0721136FEF222343A9971C8D6C</code></code></td><td><code><code>A915572D4AC5CF70BDF3ED5F592D5619</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDFT</code></td><td><code>JPN</code></td><td><code>UNKNOWN:22</code></td><td><code><code>64</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.86.0</code></td><td><code>0000::0000</code></td><td><code><code>F23FCA0721136FEF222343A9971C8D6C</code></code></td><td><code><code>A915572D4AC5CF70BDF3ED5F592D5619</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDFT</code></td><td><code>JPN</code></td><td><code>UNKNOWN:12</code></td><td><code><code>64</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.86.0</code></td><td><code>0000::0000</code></td><td><code><code>F23FCA0721136FEF222343A9971C8D6C</code></code></td><td><code><code>A915572D4AC5CF70BDF3ED5F592D5619</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDFT</code></td><td><code>JPN</code></td><td><code>Live (LV)</code></td><td><code><code>65</code></code></td><td><code>X</code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.86.0</code></td><td><code>0000::0000</code></td><td><code><code>F23FCA0721136FEF222343A9971C8D6C</code></code></td><td><code><code>A915572D4AC5CF70BDF3ED5F592D5619</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDFT</code></td><td><code>JPN</code></td><td><code>UNKNOWN:12</code></td><td><code><code>65</code></code></td><td><code>X</code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.86.0</code></td><td><code>0000::0000</code></td><td><code><code>F23FCA0721136FEF222343A9971C8D6C</code></code></td><td><code><code>A915572D4AC5CF70BDF3ED5F592D5619</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDFT</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>65</code></code></td><td><code>X</code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.86.0</code></td><td><code>0000::0000</code></td><td><code><code>F23FCA0721136FEF222343A9971C8D6C</code></code></td><td><code><code>A915572D4AC5CF70BDF3ED5F592D5619</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDFT</code></td><td><code>JPN</code></td><td><code>UNKNOWN:11</code></td><td><code><code>6c</code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.86.0</code></td><td><code>0000::0000</code></td><td><code><code>F23FCA0721136FEF222343A9971C8D6C</code></code></td><td><code><code>A915572D4AC5CF70BDF3ED5F592D5619</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDFT</code></td><td><code>JPN</code></td><td><code>UNKNOWN:21</code></td><td><code><code>6c</code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.86.0</code></td><td><code>0000::0000</code></td><td><code><code>F23FCA0721136FEF222343A9971C8D6C</code></code></td><td><code><code>A915572D4AC5CF70BDF3ED5F592D5619</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDFT</code></td><td><code>JPN</code></td><td><code>Server (SV)</code></td><td><code><code>6c</code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.86.0</code></td><td><code>0000::0000</code></td><td><code><code>F23FCA0721136FEF222343A9971C8D6C</code></code></td><td><code><code>A915572D4AC5CF70BDF3ED5F592D5619</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDFT</code></td><td><code>JPN</code></td><td><code>Server (SV)</code></td><td><code><code>6d</code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>X</code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.86.0</code></td><td><code>0000::0000</code></td><td><code><code>F23FCA0721136FEF222343A9971C8D6C</code></code></td><td><code><code>A915572D4AC5CF70BDF3ED5F592D5619</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDFT</code></td><td><code>JPN</code></td><td><code>UNKNOWN:11</code></td><td><code><code>6d</code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>X</code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.86.0</code></td><td><code>0000::0000</code></td><td><code><code>F23FCA0721136FEF222343A9971C8D6C</code></code></td><td><code><code>A915572D4AC5CF70BDF3ED5F592D5619</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDFV</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>64</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>Nu (AAV)</code></td><td><code>192.168.149.0</code></td><td><code>0000::0000</code></td><td><code><code>41E88EF71E353A8118C265CA1C5411DE</code></code></td><td><code><code>D973F89D7E1B730FC5B69AF73047ADAB</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDFV</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>64</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.149.0</code></td><td><code>0000::0000</code></td><td><code><code>41E88EF71E353A8118C265CA1C5411DE</code></code></td><td><code><code>D973F89D7E1B730FC5B69AF73047ADAB</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDGA</code></td><td><code>EXP</code></td><td><code>Satellite (ST)</code></td><td><code><code>64</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.172.0</code></td><td><code>0000::0000</code></td><td><code><code>48E025DB167E6DDBD644470761B8F13A</code></code></td><td><code><code>77A5DAB4A96DA910769F8177B5CC8314</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDGB</code></td><td><code>CHN</code></td><td><code>Satellite (ST)</code></td><td><code><code>64</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.172.0</code></td><td><code>0000::0000</code></td><td><code><code>65BF2FD5B58BD9F152201493B26D22C4</code></code></td><td><code><code>496836BEFDAD86ACD968A2B00576042A</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDGH</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>01</code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code></code></td><td><code></code></td><td><code></code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.185.0</code></td><td><code>0000::0000</code></td><td><code><code>36D93AA95A3AF61F381B1A966B022D4A</code></code></td><td><code><code>C9B6E4E9DDE93B52981AC59C43BA405A</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDGK</code></td><td><code>EXP</code></td><td><code>Terminal (??)</code></td><td><code><code>64</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.163.0</code></td><td><code>0000::0000</code></td><td><code><code>9B6A779462BADCA6AB9D31EB4CAA82D3</code></code></td><td><code><code>47E4949A368E6FBEEC411AB6593BA6E1</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDGK</code></td><td><code>EXP</code></td><td><code>Satellite (ST)</code></td><td><code><code>64</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.163.0</code></td><td><code>0000::0000</code></td><td><code><code>9B6A779462BADCA6AB9D31EB4CAA82D3</code></code></td><td><code><code>47E4949A368E6FBEEC411AB6593BA6E1</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDGK</code></td><td><code>EXP</code></td><td><code>Satellite (ST)</code></td><td><code><code>65</code></code></td><td><code>X</code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.163.0</code></td><td><code>0000::0000</code></td><td><code><code>9B6A779462BADCA6AB9D31EB4CAA82D3</code></code></td><td><code><code>47E4949A368E6FBEEC411AB6593BA6E1</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDGK</code></td><td><code>EXP</code></td><td><code>Terminal (??)</code></td><td><code><code>65</code></code></td><td><code>X</code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.163.0</code></td><td><code>0000::0000</code></td><td><code><code>9B6A779462BADCA6AB9D31EB4CAA82D3</code></code></td><td><code><code>47E4949A368E6FBEEC411AB6593BA6E1</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDGQ</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>64</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.187.0</code></td><td><code>0000::0000</code></td><td><code><code>4BA8B06F1D06642D95C2FE3637E8AA14</code></code></td><td><code><code>3276BFD62B11A0623CF7E00D3D35A969</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDGS</code></td><td><code>EXP</code></td><td><code>Satellite (ST)</code></td><td><code><code>64</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.139.0</code></td><td><code>0000::0000</code></td><td><code><code>9359E460857ADE9D8C6848FFC6DBCE12</code></code></td><td><code><code>DEE1137D3075F6342E5414EE020C8DDA</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDGS</code></td><td><code>EXP</code></td><td><code>Satellite (ST)</code></td><td><code><code>74</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.139.0</code></td><td><code>0000::0000</code></td><td><code><code>9359E460857ADE9D8C6848FFC6DBCE12</code></code></td><td><code><code>DEE1137D3075F6342E5414EE020C8DDA</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDGT</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>64</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.158.0</code></td><td><code>0000::0000</code></td><td><code><code>B7317E58BA349BD5083BEDE40ED46011</code></code></td><td><code><code>3496BD50B3A8219CA683AEDF65F88012</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDGT</code></td><td><code>EXP</code></td><td><code>Satellite (ST)</code></td><td><code><code>64</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.158.0</code></td><td><code>0000::0000</code></td><td><code><code>B7317E58BA349BD5083BEDE40ED46011</code></code></td><td><code><code>3496BD50B3A8219CA683AEDF65F88012</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDGY</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>64</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.189.0</code></td><td><code>0000::0000</code></td><td><code><code>4A90AE39D573B7467584EDA2A75D57C7</code></code></td><td><code><code>4E658B8254EA74A5947052FDF8480283</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDGY</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>65</code></code></td><td><code>X</code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.189.0</code></td><td><code>0000::0000</code></td><td><code><code>4A90AE39D573B7467584EDA2A75D57C7</code></code></td><td><code><code>4E658B8254EA74A5947052FDF8480283</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDGY</code></td><td><code>JPN</code></td><td><code>Server (SV)</code></td><td><code><code>6c</code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.189.0</code></td><td><code>0000::0000</code></td><td><code><code>4A90AE39D573B7467584EDA2A75D57C7</code></code></td><td><code><code>4E658B8254EA74A5947052FDF8480283</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDGY</code></td><td><code>JPN</code></td><td><code>Server (SV)</code></td><td><code><code>6d</code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>X</code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.189.0</code></td><td><code>0000::0000</code></td><td><code><code>4A90AE39D573B7467584EDA2A75D57C7</code></code></td><td><code><code>4E658B8254EA74A5947052FDF8480283</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDHD</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>64</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.139.0</code></td><td><code>0000::0000</code></td><td><code><code>5B7C9D1CADC06352B2FB13625CA84751</code></code></td><td><code><code>3283E14746A69FDA67F2EF8F97B0049E</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDHD</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>65</code></code></td><td><code>X</code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.139.0</code></td><td><code>0000::0000</code></td><td><code><code>5B7C9D1CADC06352B2FB13625CA84751</code></code></td><td><code><code>3283E14746A69FDA67F2EF8F97B0049E</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDHJ</code></td><td><code>CHN</code></td><td><code>Satellite (ST)</code></td><td><code><code>65</code></code></td><td><code>X</code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.139.0</code></td><td><code>0000::0000</code></td><td><code><code>3988C8ED7CCA22C396E6CA1600C712BF</code></code></td><td><code><code>BAB62A0484C6EF1B516F04EAF9792411</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDHR</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>64</code></code></td><td><code></code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.166.0</code></td><td><code>0000::0000</code></td><td><code><code>2E7A6DBA5533FB29F8B575FDFF55AE44</code></code></td><td><code><code>8FBA8203E734CF2A884FC1C699A95379</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
<tr><td><code>SDHR</code></td><td><code>JPN</code></td><td><code>Satellite (ST)</code></td><td><code><code>65</code></code></td><td><code>X</code></td><td><code>X</code></td><td><code></code></td><td><code></code></td><td><code>X</code></td><td><code>X</code></td><td><code>0</code></td><td><code>ALLS X (ACA)</code></td><td><code>192.168.166.0</code></td><td><code>0000::0000</code></td><td><code><code>2E7A6DBA5533FB29F8B575FDFF55AE44</code></code></td><td><code><code>8FBA8203E734CF2A884FC1C699A95379</code></code></td><td><code><code>5C84A9E726EAA5DD351F2B0750C23697</code></code></td><td><code><code>C063BF6F562D084D7963C987F5281761</code></code></td></tr>
</tbody></table>
</body></html>

View File

@ -1 +0,0 @@
https://docs.google.com/spreadsheets/d/17hDcZzN3F0lNbihgEcAQURs3ff0AuPZgS66Dly2iZ3Q/

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,15 @@
ExFat7z
http://www.tc4shell.com/en/7zip/ExFat7z/
Copyright (C) 2019 Dec Software.
ExFat7z is a small plugin for the popular 7-Zip archiver. You can use ExFat7z
with 7-Zip to open ExFat disk images.
INSTALLATION
To install the plugin into the 7-Zip installation folder, you need to create the
"Formats" subfolder. After that, copy ExFat7z.64.dll or ExFat7z.32.dll (depending on
your 7-Zip edition) to that subfolder. If you do that, each time you launch
7-Zip, it will automatically find ExFat7z and use it when opening ExFat disk
images.

Binary file not shown.

8
tools/Filesystem/Fsdecrypt/.gitignore vendored Normal file
View File

@ -0,0 +1,8 @@
/target
*.zip
*.app
*.opt
*.vhd
*.ntfs
*.exfat
flamegraph.svg

276
tools/Filesystem/Fsdecrypt/Cargo.lock generated Normal file
View File

@ -0,0 +1,276 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
version = 3
[[package]]
name = "aes"
version = "0.8.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0"
dependencies = [
"cfg-if",
"cipher",
"cpufeatures",
]
[[package]]
name = "anyhow"
version = "1.0.86"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da"
[[package]]
name = "block-padding"
version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93"
dependencies = [
"generic-array",
]
[[package]]
name = "cbc"
version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6"
dependencies = [
"cipher",
]
[[package]]
name = "cfg-if"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
name = "cipher"
version = "0.4.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad"
dependencies = [
"crypto-common",
"inout",
]
[[package]]
name = "console"
version = "0.15.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb"
dependencies = [
"encode_unicode",
"lazy_static",
"libc",
"unicode-width",
"windows-sys",
]
[[package]]
name = "cpufeatures"
version = "0.2.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
dependencies = [
"libc",
]
[[package]]
name = "crc32fast"
version = "1.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3"
dependencies = [
"cfg-if",
]
[[package]]
name = "crypto-common"
version = "0.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
dependencies = [
"generic-array",
"typenum",
]
[[package]]
name = "encode_unicode"
version = "0.3.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f"
[[package]]
name = "fsdecrypt"
version = "0.1.1"
dependencies = [
"aes",
"anyhow",
"cbc",
"crc32fast",
"hex-literal",
"indicatif",
]
[[package]]
name = "generic-array"
version = "0.14.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
dependencies = [
"typenum",
"version_check",
]
[[package]]
name = "hex-literal"
version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46"
[[package]]
name = "indicatif"
version = "0.17.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "763a5a8f45087d6bcea4222e7b72c291a054edf80e4ef6efd2a4979878c7bea3"
dependencies = [
"console",
"instant",
"number_prefix",
"portable-atomic",
"unicode-width",
]
[[package]]
name = "inout"
version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5"
dependencies = [
"block-padding",
"generic-array",
]
[[package]]
name = "instant"
version = "0.1.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222"
dependencies = [
"cfg-if",
]
[[package]]
name = "lazy_static"
version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
[[package]]
name = "libc"
version = "0.2.155"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c"
[[package]]
name = "number_prefix"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3"
[[package]]
name = "portable-atomic"
version = "1.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "da544ee218f0d287a911e9c99a39a8c9bc8fcad3cb8db5959940044ecfc67265"
[[package]]
name = "typenum"
version = "1.17.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
[[package]]
name = "unicode-width"
version = "0.1.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0336d538f7abc86d282a4189614dfaa90810dfc2c6f6427eaf88e16311dd225d"
[[package]]
name = "version_check"
version = "0.9.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
[[package]]
name = "windows-sys"
version = "0.52.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
dependencies = [
"windows-targets",
]
[[package]]
name = "windows-targets"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
dependencies = [
"windows_aarch64_gnullvm",
"windows_aarch64_msvc",
"windows_i686_gnu",
"windows_i686_gnullvm",
"windows_i686_msvc",
"windows_x86_64_gnu",
"windows_x86_64_gnullvm",
"windows_x86_64_msvc",
]
[[package]]
name = "windows_aarch64_gnullvm"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
[[package]]
name = "windows_aarch64_msvc"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
[[package]]
name = "windows_i686_gnu"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
[[package]]
name = "windows_i686_gnullvm"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
[[package]]
name = "windows_i686_msvc"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
[[package]]
name = "windows_x86_64_gnu"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
[[package]]
name = "windows_x86_64_gnullvm"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
[[package]]
name = "windows_x86_64_msvc"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"

View File

@ -0,0 +1,12 @@
[package]
name = "fsdecrypt"
version = "0.1.1"
edition = "2021"
[dependencies]
aes = "0.8.4"
anyhow = "1.0.86"
cbc = "0.1.2"
crc32fast = "1.4.2"
hex-literal = "0.4.1"
indicatif = "0.17.8"

View File

@ -0,0 +1,14 @@
BSD Zero Clause License
Copyright (c) 2024 beerpsi
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.

View File

@ -0,0 +1,4 @@
# Fsdecrypt
This tool was made by beerpsi and it's latest version is available [here](https://gitea.tendokyu.moe/beerpsi/fsdecrypt)
For simplicity's sake, you can use the pre-compiled [.exe](./fsdecrypt.exe)

Binary file not shown.

View File

@ -0,0 +1,77 @@
use std::fmt::Display;
use hex_literal::hex;
pub const BOOTID_KEY: [u8; 16] = hex!("09ca5efd30c9aaef3804d0a7e3fa7120");
pub const BOOTID_IV: [u8; 16] = hex!("b155c22c2e7f0491fa7f0fdc217aff90");
#[allow(non_snake_case)]
pub mod ContainerType {
pub const OS: u8 = 0x00;
pub const APP: u8 = 0x01;
pub const OPTION: u8 = 0x02;
}
#[derive(Clone, Copy, Debug)]
#[repr(C)]
pub struct Timestamp {
pub year: u16,
pub month: u8,
pub day: u8,
pub hour: u8,
pub minute: u8,
pub second: u8,
unk1: u8,
}
impl Display for Timestamp {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(
f,
"{:<04}{:<02}{:<02}{:<02}{:<02}{:<02}",
self.year, self.month, self.day, self.hour, self.minute, self.second
)
}
}
#[derive(Clone, Copy, Debug)]
#[repr(C)]
pub struct Version {
pub release: u8,
pub minor: u8,
pub major: u16,
}
#[derive(Clone, Copy)]
#[repr(C)]
pub union GameVersion {
pub version: Version,
pub option: [u8; 4],
}
#[derive(Clone, Copy)]
#[repr(C)]
pub struct BootId {
pub crc32: u32,
pub length: u32,
pub signature: [u8; 4],
unk1: u8,
pub container_type: u8,
pub sequence_number: u8,
pub use_custom_iv: bool,
pub game_id: [u8; 4],
pub target_timestamp: Timestamp,
pub target_version: GameVersion,
pub block_count: u64,
pub block_size: u64,
pub header_block_count: u64,
unk2: u64,
pub os_id: [u8; 3],
pub os_generation: u8,
pub source_timestamp: Timestamp,
pub source_version: Version,
pub os_version: Version,
pub padding: [u8; 8],
// We don't need the entire bootID, so keep size down by not including the string table.
// pub strings: [u8; 10156],
}

View File

@ -0,0 +1,516 @@
use std::path::Path;
use aes::cipher::{block_padding::NoPadding, BlockDecryptMut, KeyIvInit};
use anyhow::{anyhow, Result};
use hex_literal::hex;
pub const NTFS_HEADER: [u8; 16] = hex!("eb52904e544653202020200010010000");
pub const EXFAT_HEADER: [u8; 16] = hex!("eb769045584641542020200000000000");
pub const OPTION_KEY: [u8; 16] = hex!("5c84a9e726eaa5dd351f2b0750c23697");
pub const OPTION_IV: [u8; 16] = hex!("c063bf6f562d084d7963c987f5281761");
pub type Aes128CbcDec = cbc::Decryptor<aes::Aes128Dec>;
pub struct GameKeys {
pub key: [u8; 16],
pub iv: Option<[u8; 16]>,
}
pub fn calculate_page_iv(file_offset: u64, file_iv: &[u8], page_iv: &mut [u8]) {
for (i, (fbyte, pbyte)) in file_iv.iter().zip(page_iv.iter_mut()).enumerate() {
*pbyte = fbyte ^ (file_offset >> (8 * (i % 8))) as u8;
}
}
pub fn calculate_file_iv(
key: [u8; 16],
expected_header: [u8; 16],
first_page: &[u8],
) -> Result<[u8; 16]> {
let mut iv = [0u8; 16];
let mut header = [0u8; 16];
header.copy_from_slice(&first_page[..16]);
calculate_page_iv(0, &expected_header, &mut iv);
let cipher = Aes128CbcDec::new_from_slices(&key, &iv).map_err(|e| anyhow!(e))?;
cipher
.decrypt_padded_mut::<NoPadding>(&mut header)
.map_err(|e| anyhow!(e))?;
Ok(header)
}
pub fn get_game_keys(game_id: &str) -> Option<GameKeys> {
match game_id {
// Nu Firmware / Hardware Test
"SBZS" => Some(GameKeys {
key: hex!("2ecbcff65ce0abecc10547f8ac8351d8"),
iv: Some(hex!("f2ac6c2817d0574bba113d497e319f3e")),
}),
// KEY CHIP NU FACTORY / KEY CHIP NUSX FACTORY
"SBZT" => Some(GameKeys {
key: hex!("9ab9ce55ed9c194a715a73a7699f795b"),
iv: Some(hex!("8552de88fedda6e859369fb000f44d5b")),
}),
// Nu Firmware / Hardware Test
"SBZU" => Some(GameKeys {
key: hex!("eb1228254cdd3077eb3e441c0227bf40"),
iv: Some(hex!("3f9b4676118cee129fe2f1cb2747bca5")),
}),
// Project DIVA Arcade Future Tone
"SBZV" => Some(GameKeys {
key: hex!("3274a399594d84779625940b69c02d3f"),
iv: Some(hex!("675ba66d29c87923f5f154c406afee42")),
}),
// Wonderland Wars
"SDAP" => Some(GameKeys {
key: hex!("41b5027c5e99d94aa9335d6d71838ecf"),
iv: Some(hex!("41b5027c5e99d94aa9335d6d71838ecf")),
}),
// Herobank Arcade
"SDAQ" => Some(GameKeys {
key: hex!("c28f22bc1b339ae64180739886dc83d6"),
iv: Some(hex!("0a29fd145d72bf8dedd436025df0a9fc")),
}),
// Uranai Collection: Torotte
"SDAV" => Some(GameKeys {
key: hex!("eed95513266a499a55e265b049169c44"),
iv: Some(hex!("84c0e5931d91a6a477d62c271546056e")),
}),
// Shin Kouchuu Ouja Mushiking
"SDBE" => Some(GameKeys {
key: hex!("7053fb944572e5b631a665cef4b5bcdd"),
iv: Some(hex!("ae4d7e884002c79eb35711554d613057")),
}),
// E-DEL Sand
"SDBN" => Some(GameKeys {
key: hex!("c1f14ae2e85b095e313c8baec125805e"),
iv: Some(hex!("3c538eea66251acd5404b93f8976a7f7")),
}),
// CHUNITHM
"SDBT" => Some(GameKeys {
key: hex!("a6a870671fd432ec637adf7a822f97da"),
iv: Some(hex!("2c277f31cd550cfa2c993b4dd56b85ae")),
}),
// Sonic Dash Extreme
"SDBX" => Some(GameKeys {
key: hex!("3dc19c2d0c20ac199d5fa46e7f6335a6"),
iv: Some(hex!("d8f029ec90fe55be67584f742c55ef8b")),
}),
// Kancolle Arcade
"SDBZ" => Some(GameKeys {
key: hex!("521bde4460f4184edd879136adeea5ee"),
iv: Some(hex!("1b8324032db69d7b0954794aa229fe68")),
}),
// crossbeats REV.
"SDCA" => Some(GameKeys {
key: hex!("1649490a03d6c2aec1c496982cb0405c"),
iv: Some(hex!("4680711c7e67a26f9230d5af74b5dcfb")),
}),
// nailpuri
"SDCD" => Some(GameKeys {
key: hex!("43b38502d8f6d3c7b02b95fc28db5308"),
iv: Some(hex!("6dfcb94bf74f152b55f3e0c7f35b44b5")),
}),
// Luigi's Mansion Arcade
"SDCF" => Some(GameKeys {
key: hex!("df986883da837538e37b959a3e4117cd"),
iv: Some(hex!("dabf539738852f17714811af70435a83")),
}),
// Mario & Sonic at Rio Olympic Games
"SDCH" => Some(GameKeys {
key: hex!("e2da769e94f1d3aca1930cdbe0708c9f"),
iv: Some(hex!("c7dcce203c84ab0477236d697570dadc")),
}),
// KEY CHIP NUSX EDB SOC
"SDCR" => Some(GameKeys {
key: hex!("4961a51fd36f14e72664f52373052160"),
iv: Some(hex!("25d7d1341a282c5e0a34c64562c023ec")),
}),
// Celevie
"SDCT" => Some(GameKeys {
key: hex!("d6ae51f10ec76da93c981800fc3ad3cb"),
iv: Some(hex!("fb8e43e280d330d06581732f2e11a6dc")),
}),
// CYTUS Ω
"SDCX" => Some(GameKeys {
key: hex!("79504ccc509b67d1f7a3f593e6f9d9d6"),
iv: Some(hex!("1551ea8926f2aee233eec309de3e5f3c")),
}),
// KEY CHIP NUSX1.1 TDW
"SDDB" => Some(GameKeys {
key: hex!("875679b2cd1637962b0db25c51fb21a6"),
iv: Some(hex!("8ef44722a0566e8f572356245687fbe5")),
}),
// Sangokushi Taisen
"SDDD" => Some(GameKeys {
key: hex!("564e967873de6cbcd22efeca6952e9dc"),
iv: Some(hex!("4e3dd465cf09cd82b259f7bed5fc2d6d")),
}),
// Initial D Arcade Stage Zero
"SDDF" => Some(GameKeys {
key: hex!("65058573a0cb81749e694ae164c61b04"),
iv: Some(hex!("981c4f45e3c6958f054e5d00916bdf2b")),
}),
// KEY CHIP NU1.1 ESC
"SDDJ" => Some(GameKeys {
key: hex!("630fe52276537bd7fb267adf175f4e99"),
iv: Some(hex!("dc5755be57ded2cdb34433bbba2204ff")),
}),
// APM3 Sample Program 2
"SDDL" => Some(GameKeys {
key: hex!("992458295fd06d6a8af0dfb3f6854c19"),
iv: Some(hex!("8484906d4cd5fd225e032843ed37495d")),
}),
// ALLS MX Factory Dummy
"SDDM" => Some(GameKeys {
key: hex!("0127958210f6ae9bdeb8975018b5af24"),
iv: Some(hex!("181716badccff4bc2b1e29ae02a1bbbb")),
}),
// Demo ID
"SDDN" => Some(GameKeys {
key: hex!("41dd8e66290117ac67d311a2f0a6416e"),
iv: Some(hex!("73e18e8418f6ceefb11e2767fdea190c")),
}),
// Soul Reverse
"SDDP" => Some(GameKeys {
key: hex!("cf6d64427eeca47674e17bcd46d1ea8c"),
iv: Some(hex!("ce5174093d26ca2a31b58541e85ac276")),
}),
// SEGA World Driver Championship
"SDDS" => Some(GameKeys {
key: hex!("161bec6d90989d0e26d791170607a440"),
iv: Some(hex!("81dc26a27028e2092332038aa1bffc47")),
}),
// O.N.G.E.K.I.
"SDDT" => Some(GameKeys {
key: hex!("3f7658728b9517d3314e684fa2e2a045"),
iv: Some(hex!("41578833c547aaff04db597a6e9eb784")),
}),
"SDDU" => Some(GameKeys {
key: hex!("649ae9982625f90c55af86713c55d3fd"),
iv: Some(hex!("187116fc4647a7d3b6f2303a34f0a2fe")),
}),
// ALLS X / X2 Research & Development
"SDDW" => Some(GameKeys {
key: hex!("118565d344f3e14ca69299eeac049bb9"),
iv: Some(hex!("9d6d392ec35ed94ef9fe0a5be0573981")),
}),
// KEY CHIP ALLS X FACTORY
"SDDX" => Some(GameKeys {
key: hex!("428bff0f9e7aafc169a7a75751ffda98"),
iv: Some(hex!("f8250594f425332c6d349d7ea0e86669")),
}),
// Shin Kouchuu Ouja Mushiking TWN
"SDEA" => Some(GameKeys {
key: hex!("9f9cf148ac3c50aaf925af1dfb27f58b"),
iv: Some(hex!("4d8ebbd971896b8a4a3dd84a23b329fc")),
}),
// WCCF FOOTISTA
"SDEB" => Some(GameKeys {
key: hex!("d511ed690415f6359843a134fd47836a"),
iv: Some(hex!("ac139b382acdd112e31564ea7f38186c")),
}),
// Chrono Regalia
"SDEC" => Some(GameKeys {
key: hex!("f272e5016863af2ba0337f50de686f6e"),
iv: Some(hex!("5327e132631e7f71b61be7cc0df382ce")),
}),
// CARD MAKER
"SDED" => Some(GameKeys {
key: hex!("21fcec779a16769f5277a36fb542992c"),
iv: Some(hex!("22b50239f1b40ccc3e55a2d69c69b160")),
}),
// House of the Dead: Scarlet Dawn
"SDEE" => Some(GameKeys {
key: hex!("191eb7440672dab08ddbb7195efb356f"),
iv: Some(hex!("c278b5386dc38bd76d71dbcd826954cf")),
}),
// FiZ
"SDEG" => Some(GameKeys {
key: hex!("721853dbe2d30bafe24f0edbd210deeb"),
iv: Some(hex!("4dfb0bcec86159aab297166bcd509e6f")),
}),
// Fate/Grand Order Arcade
"SDEJ" => Some(GameKeys {
key: hex!("9de1ea6ae38d9011f55d8ee864395d24"),
iv: Some(hex!("f60cde21982876d12d17662a48d90836")),
}),
// ALL.Net P.ras multi Ver.3
"SDEM" => Some(GameKeys {
key: hex!("700617f293696c07fb9f356d3b99240d"),
iv: Some(hex!("667d026d6cdf329ff351dbaf7098e81d")),
}),
// StarHorse4 (Server) / MESTA Medal Station
"SDEP" => Some(GameKeys {
key: hex!("fa2b7ca53a823c152d940972cbf532f5"),
iv: Some(hex!("f4af35120c48617704bb5b8471797a62")),
}),
// Initial D Arcade Stage Zero (CHN)
"SDER" => Some(GameKeys {
key: hex!("7d73367ebb218ec82930d58dc6d7950b"),
iv: Some(hex!("9788c3eca2db6ba92bac4f6f7b706308")),
}),
// House of the Dead: Scarlet Dawn (EXP)
"SDET" => Some(GameKeys {
key: hex!("4643e7b2c3006e0264163edc8545fb72"),
iv: Some(hex!("612bca81ea2958ffbac36f780f1ed688")),
}),
// KEY CHIP ALLS X HDZ
"SDEU" => Some(GameKeys {
key: hex!("23b3e9bb47e3ac9998f6e6c1adc4ae33"),
iv: Some(hex!("a964714cea60688407bf554bd1c27ec2")),
}),
// House of the Dead: Scarlet Dawn (CHN)
"SDEV" => Some(GameKeys {
key: hex!("3c1f018d88926d98163b07a1563a4818"),
iv: Some(hex!("ca7373c9c7dfebac0fc24254c030e4ad")),
}),
// maimai DX
"SDEZ" => Some(GameKeys {
key: hex!("d136eba05d40e82682e6aad8d9e8688c"),
iv: Some(hex!("c484deeaa0249ef46695f63694b7372f")),
}),
// KEY CHIP ALLS X REC
"SDFA" => Some(GameKeys {
key: hex!("8e816b4362db24a230877885864d206d"),
iv: Some(hex!("8e5a0ba6a0a1150d47d12bdb64debba7")),
}),
// WACCA
"SDFE" => Some(GameKeys {
key: hex!("f61719c371e5bca6788c139a53091617"),
iv: Some(hex!("67d43173e343813fa2097fd32992a8e2")),
}),
// SANDRA
"SDFG" => Some(GameKeys {
key: hex!("3398fb86bfe630a14979411879861ac7"),
iv: Some(hex!("a794c49c2c7639cd80571807c17246ff")),
}),
// Kemono Friends 3: Planet Tours
"SDFL" => Some(GameKeys {
key: hex!("2449b48067b9176a6e0f9563481e97f4"),
iv: Some(hex!("616f8710454632eb4fb1d89d8c19c19a")),
}),
// KEY CHIP ALLS X CASJ
"SDFN" => Some(GameKeys {
key: hex!("29f62e22c6a9fd8be327631c68546405"),
iv: Some(hex!("2a860976e6d98513825f291e56cfb5ee")),
}),
// KEY CHIP NUSX FUTURE
"SDFP" => Some(GameKeys {
key: hex!("570b87263a7ca0aa4c1388e204ee6d4b"),
iv: Some(hex!("7640886011a2300a91fad9f36a8c4775")),
}),
// StarHorse4
"SDFT" => Some(GameKeys {
key: hex!("92a25f388c50737e39c3c2f006645f31"),
iv: Some(hex!("a97e72f990417488cb4c67f8f0c3fb25")),
}),
// Mario & Sonic at TOKYO Olympic
"SDFV" => Some(GameKeys {
key: hex!("fe82db9a60295d829b95f03c2276018b"),
iv: Some(hex!("34d82772ae18174f0a181dc53399ea9c")),
}),
// maimai DX (EXP)
"SDGA" => Some(GameKeys {
key: hex!("0a6610a62ef670c65b7e7b1750ffb7a1"),
iv: Some(hex!("17a2a22915f81c5896edbba4c412585e")),
}),
// maimai DX (CHN)
"SDGB" => Some(GameKeys {
key: hex!("7ca4e6b6f3d6e8b26472973887d7fa3a"),
iv: Some(hex!("53fe7135762de3f97e7fe76b0fef3f27")),
}),
// Puyo Puyo e-Sports Arcade
"SDGH" => Some(GameKeys {
key: hex!("b3e30e7eabac3767ade13c69c9b2f22b"),
iv: Some(hex!("03deaea3742d69675b36cddc8b15ac91")),
}),
// WCCF FOOTISTA (EXP)
"SDGK" => Some(GameKeys {
key: hex!("9dc4a17fc39fca5a8a358984801caaa7"),
iv: Some(hex!("e0445b11dcfa0dae56c85e8787e11d9b")),
}),
// KEY CHIP ALLS X HDZ CASJ
"SDGP" => Some(GameKeys {
key: hex!("c87ab31247e7b6ff95fdd79fb91f9f37"),
iv: Some(hex!("2467ab3c031e3dc0568b7077efd27c36")),
}),
// ROKUMEN
"SDGQ" => Some(GameKeys {
key: hex!("c5356dae7b066bce88984aec36deb62d"),
iv: Some(hex!("4e9f2982460e2fd907bde15709edfba7")),
}),
// CHUNITHM (EXP)
"SDGS" => Some(GameKeys {
key: hex!("a5150cc5065d2c59ee2f8f332cbd29d5"),
iv: Some(hex!("84014d26696f290ad7ead70c7549bd81")),
}),
// Initial D THE ARCADE
"SDGT" => Some(GameKeys {
key: hex!("9d0bba20d1e84f2459399f5383beee72"),
iv: Some(hex!("5d340013fdfb2464d253093602fe4b64")),
}),
"SDGV" => Some(GameKeys {
key: hex!("573f5c8cc44f10f31ec749b695ebe886"),
iv: Some(hex!("6bfca86f9d208a7944cdfc25ea3cd220")),
}),
// "Eiketsu Taisen: Sanzensekai no Hadou
"SDGY" => Some(GameKeys {
key: hex!("c04b663a59055acbdfebc6d3df0e6a04"),
iv: Some(hex!("76fc5f1d88605107947d0c1ff347022d")),
}),
// Hori a Tale
"SDGZ" => Some(GameKeys {
key: hex!("9ad74efb208d6ee4fe5ee770331712cf"),
iv: Some(hex!("45f6e53f0eb8fae6665b45444a61e266")),
}),
// CHUNITHM NEW!!
"SDHD" => Some(GameKeys {
key: hex!("3abd00d7a820ce862eaf474bf6c8f33e"),
iv: Some(hex!("0f1e7eea78da7e037e0552c2843e1b6a")),
}),
"SDHH" => Some(GameKeys {
key: hex!("fc6f887f3717c5d6713113b92fa3fb27"),
iv: Some(hex!("ad76606460dbe1e91e41bef7ab0c1535")),
}),
// CHUNITHM (CHN)
"SDHJ" => Some(GameKeys {
key: hex!("985ea66ecb5b1f208c90e2b898f0b073"),
iv: Some(hex!("164a65422e7f01b7f1b0849fc7737cdb")),
}),
// UFO CATCHER LINK STATION
"SDHK" => Some(GameKeys {
key: hex!("bc92d63c2a099ca2315a483c3041fdd7"),
iv: Some(hex!("b14d8449b6d4325d83a2774b13dd21ff")),
}),
// WACCA (CHN)
"SDHN" => Some(GameKeys {
key: hex!("892123a26d7c03d49edd12a80ee0c58f"),
iv: Some(hex!("76aa15a6868b8dbdf7207906354d5169")),
}),
// meityromantic
"SDHR" => Some(GameKeys {
key: hex!("1fb897cab97c8170a6ac0a21685c58d9"),
iv: Some(hex!("f9b60f65b01e8e836a4bc20f7d39faf5")),
}),
// ALLS System
"ACA" => Some(GameKeys {
key: hex!("e4281bcf48c4d28eb05772ce6f98587a"),
iv: Some(hex!("6cee7f5a2c4b5f1e93c5949114ff0b74")),
}),
// Read from {game_id}.bin for unknown keys.
_ => {
let filename = format!("{}.bin", game_id);
let path = Path::new(&filename);
if !path.exists() {
return None;
}
let Ok(metadata) = path.metadata() else {
return None;
};
let size = metadata.len();
match size {
16 => Some(GameKeys {
key: std::fs::read(filename)
.map(|v| v.try_into().unwrap())
.unwrap(),
iv: None,
}),
32 => {
let keyiv = std::fs::read(filename).unwrap();
let key = keyiv[..16].try_into().unwrap();
let iv: [u8; 16] = keyiv[16..].try_into().unwrap();
let iv = if iv == NTFS_HEADER || iv == EXFAT_HEADER {
None
} else {
Some(iv)
};
Some(GameKeys { key, iv })
}
_ => None,
}
}
}
}

View File

@ -0,0 +1,193 @@
use std::{
fs::File,
io::{BufReader, BufWriter, Read, Seek, SeekFrom, Write},
path::Path,
};
use aes::{
cipher::{block_padding::NoPadding, BlockDecryptMut, InnerIvInit, KeyInit, KeyIvInit},
Aes128Dec,
};
use anyhow::{anyhow, Result};
use bootid::{BootId, ContainerType, BOOTID_IV, BOOTID_KEY};
use crypto::{
calculate_file_iv, calculate_page_iv, get_game_keys, Aes128CbcDec, GameKeys, EXFAT_HEADER,
NTFS_HEADER, OPTION_IV, OPTION_KEY,
};
use indicatif::{ProgressBar, ProgressStyle};
mod bootid;
mod crypto;
const PAGE_SIZE: u64 = 4096;
fn main() -> Result<()> {
let args = std::env::args().collect::<Vec<String>>();
if args.len() < 2 {
println!("Usage: fsdecrypt <input_file1> [<input_file2> ...]");
return Ok(());
}
let bootid_cipher =
Aes128CbcDec::new_from_slices(&BOOTID_KEY, &BOOTID_IV).map_err(|e| anyhow!(e))?;
let mut bootid_bytes = [0u8; std::mem::size_of::<BootId>()];
let mut page: Vec<u8> = Vec::with_capacity(PAGE_SIZE as usize);
let mut page_iv = [0u8; 16];
for path in args.iter().skip(1) {
let path = Path::new(path);
let file = File::open(path)?;
let mut reader = BufReader::with_capacity(0x40000, file);
reader.read_exact(&mut bootid_bytes)?;
if let Err(e) = bootid_cipher
.clone()
.decrypt_padded_mut::<NoPadding>(&mut bootid_bytes)
{
println!("ERROR: Could not decrypt BootID: {e:#?}");
continue;
}
let bootid = unsafe { std::mem::transmute::<[u8; 96], BootId>(bootid_bytes) };
if bootid.container_type != ContainerType::OS
&& bootid.container_type != ContainerType::APP
&& bootid.container_type != ContainerType::OPTION
{
println!("ERROR: Unknown container type {}", bootid.container_type);
continue;
}
let os_id = std::str::from_utf8(&bootid.os_id)?;
let game_id = std::str::from_utf8(&bootid.game_id)?;
let id = match bootid.container_type {
ContainerType::OS => os_id,
_ => game_id,
};
let keys = match bootid.container_type {
ContainerType::OS => get_game_keys(os_id),
ContainerType::APP => get_game_keys(game_id),
_ => Some(GameKeys {
key: OPTION_KEY,
iv: Some(OPTION_IV),
}),
};
let Some(keys) = keys else {
println!("ERROR: Key not found for {id}. If you're using a custom key file, ensure the key file is 16/32 bytes and named {id}.bin.");
continue;
};
let data_offset = bootid.header_block_count * bootid.block_size;
let key = keys.key;
let iv = if bootid.use_custom_iv {
None
} else {
keys.iv
};
let iv = match iv {
Some(iv) => iv,
None => {
reader.seek(SeekFrom::Start(data_offset))?;
let reference = Read::by_ref(&mut reader);
reference.take(4096).read_to_end(&mut page)?;
if bootid.container_type == ContainerType::OPTION {
calculate_file_iv(key, EXFAT_HEADER, &page)?
} else {
calculate_file_iv(key, NTFS_HEADER, &page)?
}
}
};
let output_filename = match bootid.container_type {
ContainerType::OS => format!(
"{os_id}_{:<04}.{:<02}.{:<02}_{}_{}.ntfs",
bootid.os_version.major,
bootid.os_version.minor,
bootid.os_version.release,
bootid.target_timestamp,
bootid.sequence_number
),
ContainerType::APP => {
if bootid.sequence_number > 0 {
format!(
"{game_id}_{}.{:<02}.{:<02}_{}_{}_{}.{:<02}.{:<02}.ntfs",
unsafe { bootid.target_version.version.major },
unsafe { bootid.target_version.version.minor },
unsafe { bootid.target_version.version.release },
bootid.target_timestamp,
bootid.sequence_number,
bootid.source_version.major,
bootid.source_version.minor,
bootid.source_version.release,
)
} else {
format!(
"{game_id}_{}.{:<02}.{:<02}_{}_{}.ntfs",
unsafe { bootid.target_version.version.major },
unsafe { bootid.target_version.version.minor },
unsafe { bootid.target_version.version.release },
bootid.target_timestamp,
bootid.sequence_number,
)
}
}
_ => format!(
"{game_id}_{}_{}_{}.exfat",
unsafe { std::str::from_utf8(&bootid.target_version.option)? },
bootid.target_timestamp,
bootid.sequence_number,
),
};
let output_path = path.with_file_name(&output_filename);
let output_file = File::create(&output_path)?;
let output_size = (bootid.block_count - bootid.header_block_count) * bootid.block_size;
output_file.set_len(output_size)?;
let mut writer = BufWriter::with_capacity(0x40000, output_file);
let cipher = Aes128Dec::new_from_slice(&key).map_err(|e| anyhow!(e))?;
let pb = ProgressBar::new(output_size)
.with_style(
ProgressStyle::default_bar()
.template("{prefix} [{bar:20!.bright.yellow/dim.white}] {bytes:>8} [{elapsed}<{eta}, {bytes_per_sec}]")?
);
pb.set_prefix(output_filename);
reader.seek(SeekFrom::Start(data_offset))?;
for _ in 0..output_size / PAGE_SIZE {
let file_offset = reader.stream_position()? - data_offset;
let reference = Read::by_ref(&mut reader);
calculate_page_iv(file_offset, &iv, &mut page_iv);
page.clear();
reference.take(PAGE_SIZE).read_to_end(&mut page)?;
let page_cipher = Aes128CbcDec::inner_iv_slice_init(cipher.clone(), &page_iv)
.map_err(|e| anyhow!(e))?;
page_cipher
.decrypt_padded_mut::<NoPadding>(&mut page)
.map_err(|e| anyhow!(e))?;
writer.write_all(&page)?;
pb.inc(PAGE_SIZE);
}
writer.flush()?;
pb.finish();
page.clear();
page_iv.fill(0);
bootid_bytes.fill(0);
}
Ok(())
}

View File

@ -1,42 +0,0 @@
╔═════════════════════╗
SEGA Decryption Guide
╚═════════════════════╝
╭─────────╮
app files
╰─────────╯
1. create a new file titled <PCB CODE>.bin
2. fill in the first 16 bytes of <PCB CODE>.bin with
the AES key. (e.g. 9D 0B BA 20 D1 E8 4F 24 59 39 9F 53 83 BE EE 72)
3. the next 16 bytes will be the NTFS header (EB 52 90 4E 54 46 53 20 20 20 20 00 10 01 00 00)
the NTFS header is always the same
4. save this file, then decrypt the app files with the following command:
fsdecrypt <PCB CODE>.bin 0x200000 <path/to/app> <out.vhd>
5. once it finishes decrypting, run the calculate_iv.py script
save the output of key 1. script is found here: https://discord.com/channels/162861213309599744/243895668790394882/995170669329391706
6. open <PCB CODE>.bin inside the hex editor once more, replace the NTFS header with
the key 1
7. run "fsdecrypt <PCB CODE>.bin 0x200000 <path/to/app> <out.vhd>" once more
8. your app is now decrypted, you can extract the internal_0 with poweriso or any other tool
╭─────────╮
opt files
╰─────────╯
1. decrypt the opt file using fstools with the following command:
fstool dec OPT.bin in.opt out.vhd
2. run the calculate_iv.py script and save key 3
script is found here: https://discord.com/channels/162861213309599744/243895668790394882/995170669329391706
3. replace the IV key of the OPT.bin with key 3, the IV key of OPT.bin are the second 16 bytes
4. decrypt the opt file once more with the new key

Binary file not shown.

View File

@ -0,0 +1,46 @@
# Filesystem
The scripts in this folder are used to extract .app and .opt files.
## Decryption
There are two tools you can use to decrypt and extract updates.
* [unsega_v0.1727.exe](./Unsega/unsega_v0.1727.exe): Fast but closed source.
* [fsdecrypt.exe](./Fsdecrypt/fsdecrypt.exe): Slow but open source.
Unsega is sourced directly from 1cc and should be totally safe but if you don't feel like running shady .exe's, you can build fsdecrypt from source instead.
Both tools do exactly the same thing and work in a very similar way so use whatever you like.
### .app decryption and extraction
1) Drag and drop the .app file on [unsega_v0.1727.exe](./Unsega/unsega_v0.1727.exe) or [fsdecrypt.exe](./Fsdecrypt/fsdecrypt.exe)
2) Mount the resulting .vhd(unsega) or .ntfs(fsdecrypt) file with [osfmount.exe](./Extra/osfmount.exe) (using default settings)
3) Copy the internal_x.vhd partition from the vhd you just mounted.
* If the extracted vhd is named **internal_0.vhd**, you can just double click it to open it.
* If the extracted vhd is named **internal_X.vhd** where X is anything else than 0, you'll need to merge the file with it's base ! See [Merging incremental updates](#merging-incremental-updates)
### .opt decryption and extraction
You'll need to install the [ExFat7z](./Extra/ExFat7z/) 7zip plugin before proceeding. Install instructions are in the plugin's folder.
You can find the original download page for the plugin [here](https://www.tc4shell.com/en/7zip/exfat7z/)
1) Drag and drop the .opt file on [fsdecrypt.exe](./Fsdecrypt/fsdecrypt.exe) or [unsega_v0.1727.exe](./Unsega/unsega_v0.1727.exe)
2) Extract the resulting .vhd(unsega) or .exfat(fsdecrypt) file with 7zip.
## Merging incremental updates
Sega updates are incremental, you'll need to merge them if you want to open the latest versions.
Here's an example on how to do so :
```powershell
Set-VHD -Path "internal_3.vhd" -ParentPath "internal_2.vhd"
Set-VHD -Path "internal_2.vhd" -ParentPath "internal_1.vhd"
Set-VHD -Path "internal_1.vhd" -ParentPath "internal_0.vhd"
Merge-VHD -Path "internal_3.vhd" -DestinationPath "internal_2.vhd"
Merge-VHD -Path "internal_2.vhd" -DestinationPath "internal_1.vhd"
Merge-VHD -Path "internal_1.vhd" -DestinationPath "internal_0.vhd"
```
You'll need Hyper-V to be enabled for these commands to work.
You'll also need administrator privileges!

View File

@ -1,6 +0,0 @@
1.Create SDDT.bin with 16 bytes of 0 written in the iv key
2.Decrypt only the first 16 bytes once with fsdecrypt or fstool
3.The first 16 bytes of the decrypted file is the iv key
1.创建SDDT.bin在iv键中写入16个字节的0
2.用fsdecrypt或fstool只对前16个字节进行一次解密
3.解密后的文件的前16个字节是iv密钥

View File

@ -1,56 +1,56 @@
<?php <?php
if ($argc != 4) if ($argc != 4)
{ {
echo "please put in game_id version serial\n"; echo "please put in game_id version serial\n";
echo "example php downloadorder.php SDBT 1.00 A63E01B1628\n"; echo "example php downloadorder.php SDBT 1.00 A63E01B1628\n";
exit(); exit();
} }
error_reporting(1); error_reporting(1);
$game_id = $argv[1]; $game_id = $argv[1];
$ver = $argv[2]; $ver = $argv[2];
$serial = $argv[3]; $serial = $argv[3];
echo $game_id . "\n"; echo $game_id . "\n";
echo $ver . "\n"; echo $ver . "\n";
echo $serial . "\n"; echo $serial . "\n";
$compressed = base64_encode(gzdeflate("game_id=".$game_id."&ver=".$ver."&serial=".$serial, -1, ZLIB_ENCODING_DEFLATE)); $compressed = base64_encode(gzdeflate("game_id=".$game_id."&ver=".$ver."&serial=".$serial, -1, ZLIB_ENCODING_DEFLATE));
//print($compressed); //print($compressed);
// use key 'http' even if you send the request to https://... // use key 'http' even if you send the request to https://...
$options = array( $options = array(
'http' => array( 'http' => array(
'header' => array("Pragma: DFI", "User-Agent: ALL.Net"), 'header' => array("Pragma: DFI", "User-Agent: ALL.Net"),
'method' => 'POST', 'method' => 'POST',
'content' => $compressed 'content' => $compressed
) )
); );
$context = stream_context_create($options); $context = stream_context_create($options);
$result = file_get_contents('http://naominet.jp/sys/servlet/DownloadOrder', false, $context); $result = file_get_contents('http://naominet.jp/sys/servlet/DownloadOrder', false, $context);
if ($result === FALSE) { exit("error dl\n"); /* Handle error */ } if ($result === FALSE) { exit("error dl\n"); /* Handle error */ }
//print($result); //print($result);
$response = gzuncompress(base64_decode($result)); $response = gzuncompress(base64_decode($result));
print($response); print($response);
print("\n"); print("\n");
?> ?>

View File

@ -1,55 +1,55 @@
<?php <?php
error_reporting(1); error_reporting(1);
if ($_POST["ID"]) if ($_POST["ID"])
{ {
$compressed = base64_encode(gzdeflate("game_id=".$_POST["ID"]."&ver=".$_POST["VERSION"]."&serial=A63E01B1628", -1, ZLIB_ENCODING_DEFLATE)); $compressed = base64_encode(gzdeflate("game_id=".$_POST["ID"]."&ver=".$_POST["VERSION"]."&serial=A63E01B1628", -1, ZLIB_ENCODING_DEFLATE));
//print($compressed); //print($compressed);
// use key 'http' even if you send the request to https://... // use key 'http' even if you send the request to https://...
$options = array( $options = array(
'http' => array( 'http' => array(
'header' => "Pragma: DFI", 'header' => "Pragma: DFI",
'method' => 'POST', 'method' => 'POST',
'content' => $compressed 'content' => $compressed
) )
); );
$context = stream_context_create($options); $context = stream_context_create($options);
$result = file_get_contents('http://naominet.jp/sys/servlet/DownloadOrder', false, $context); $result = file_get_contents('http://naominet.jp/sys/servlet/DownloadOrder', false, $context);
if ($result === FALSE) { exit("error dl\n"); /* Handle error */ } if ($result === FALSE) { exit("error dl\n"); /* Handle error */ }
//print($result); //print($result);
$response = gzuncompress(base64_decode($result)); $response = gzuncompress(base64_decode($result));
print($response); print($response);
} }
?> ?>
<title>SEGA DOWNLOADORDER</title> <title>SEGA DOWNLOADORDER</title>
<b><form action="/index.php" method="post"> <b><form action="/index.php" method="post">
GAME ID:<input type="text" name="ID"> GAME ID:<input type="text" name="ID">
GAME VERSION:<input type="text" name="VERSION"> GAME VERSION:<input type="text" name="VERSION">
<input type="SUBMIT" value="SUBMIT"><br> <input type="SUBMIT" value="SUBMIT"><br>
</form></b> </form></b>

View File

@ -0,0 +1,44 @@
import sys
from Crypto.Cipher import AES
if len(sys.argv) != 2:
print(f"Usage: {sys.argv[0]} <game ID>")
quit()
if len(sys.argv[1]) != 4:
print("Game ID must be 4 characters (eg SDFD)")
quit()
SEED = bytes.fromhex(
"C73CDDBF7AFB0EBCE6DED4D9B3DF3B03"
"3FE140E4F4FF96C579908B5B696ABEEE"
"326C5EEA47C0A34051DC55BF8C2A807B"
"E4C6E3EF2F153084693CE2D21EF1BB13"
"DCC96D317C3FCC7AB944636D65C28BB8"
"E2F7748DC64208A873414B787E3F1866"
)
data = AES.new(
key=bytes.fromhex("873df632b988ae14aa9f736b03a51c4f"),
iv=bytes.fromhex("357dc19030d8e8d4941a7e6aceb94e4c"),
mode=AES.MODE_CBC
).decrypt(SEED)
data = AES.new(key=data[0:16], iv=data[16:32], mode=AES.MODE_CBC).encrypt(data[64:96])
szSubGameId = sys.argv[1].encode("latin-1")
pKey = bytearray(data[0:16])
pIv = bytearray(data[16:32])
for i in range(16):
pKey[i] ^= szSubGameId[i % 4]
pIv[i] ^= szSubGameId[i % 4]
print("Key:", pKey.hex())
print("IV: ", pIv.hex())
output_file = f'{sys.argv[1]}.bin'
with open(output_file, "wb") as file:
file.write(bytes.fromhex(pKey.hex()))
file.write(bytes.fromhex(pIv.hex()))
print("Hex data has been written to", output_file)

View File

@ -0,0 +1,478 @@
import secrets
import struct
import zlib
import sys
import os
from dataclasses import dataclass
from Crypto.Cipher import AES
from Crypto.Hash import HMAC, SHA1
class CheckFailed(BaseException):
pass
class FixFailed(BaseException):
pass
class FsCryptError(BaseException):
pass
@dataclass
class Timestamp:
year: int
month: int
day: int
hour: int
minute: int
second: int
@dataclass
class BootId:
unk0: int
unk1: int
unk2: int
unk3: int
game_id: str
game_timestamp: Timestamp
game_ver: tuple[int, int, int]
block_count: int
block_size: int
header_count: int
hw: str
orgtime: Timestamp
orgver: tuple[int, int, int]
osver: tuple[int, int, int]
@property
def data_offset(self) -> int:
return self.header_count * self.block_size
class Bar:
def __init__(self, msg: str, max_: int, width: int = 30):
self.msg = msg
self.max = max(0, max_)
self.width = width
self.last_n = 0
def __iter__(self):
with self:
for i in range(self.max):
yield i
self.update(i)
def __enter__(self):
self.update(0)
return self
def __exit__(self, *_):
self.clear()
def update(self, n: int) -> None:
n = max(0, min(n, self.max))
self.last_n = n
bar = round((n / self.max) * self.width) * "="
print(f"{self.msg} [{bar}{' ' * (self.width - len(bar))}] {n/self.max * 100:.2f}%", end="\r", flush=True)
def print_over(self, *args) -> None:
self.clear()
print(*args)
self.update(self.last_n)
def clear(self) -> None:
print(" " * (len(self.msg) + 2 + self.width + 2 + len("100.00%")), end="\r", flush=True)
class AppChecker:
BTKEY = bytes.fromhex("09ca5efd30c9aaef3804d0a7e3fa7120")
BTIV = bytes.fromhex("b155c22c2e7f0491fa7f0fdc217aff90")
SIGKEY = bytes.fromhex(
"e1bdcb2d5e9ed3b5de234364dfa4d126849edff769fc6c28fba5f43bc482bd74"
"79d676afce8188e1d3a6852f4ebce45cde46bd15e8ee5fe84d197f945a54518f"
)
BOOTID_OFFSET = 0
BOOTID_SIZE = 0x2800
SIGNATURE_OFFSET = BOOTID_OFFSET + BOOTID_SIZE # 0x2800
SIGNATURE_SIZE = 0x200
CRC_OFFSET = SIGNATURE_OFFSET + SIGNATURE_SIZE # 0x2a00
def __init__(self, filename: str, write: bool = False):
self.filename = filename
self.write = write
self.file = None
self.bootid = None
self.block_size = -1
self.block_count = -1
def __enter__(self):
self.open()
return self
def __exit__(self, *args):
self.close()
def open(self) -> None:
self.file = open(self.filename, "r+b" if self.write else "rb")
def close(self) -> None:
if self.file is not None:
self.file.close()
self.file = None
def _crc(self, buffer: bytes, nbytes: int = -1) -> int:
if nbytes == -1:
nbytes = len(buffer)
return zlib.crc32(buffer) & 0xffffffff
def read_bootid(self) -> BootId:
if self.file is None:
raise CheckFailed("File not open")
self.file.seek(self.BOOTID_OFFSET)
btid = self.file.read(self.BOOTID_SIZE)
aes = AES.new(self.BTKEY, AES.MODE_CBC, self.BTIV)
btid = aes.decrypt(btid)
parts = struct.unpack(
"<"
"II4s4B"
"4sH5BxBBH"
"QQQ8x"
"3sBH5BxBBH"
"BBH12x",
btid[:96]
)
if self._crc(btid[4:]) != parts[0]:
raise CheckFailed("Boot ID CRC failed")
if parts[1] != self.BOOTID_SIZE:
raise CheckFailed(f"Boot ID length invalid ({parts[1]:4x})")
if parts[2] != b"BTID":
raise CheckFailed(f"Boot ID signature invalid ({parts[2]})")
parts = list(parts[3:])
self.bootid = BootId(
parts.pop(0), parts.pop(0), parts.pop(0), parts.pop(0),
parts.pop(0).decode(),
Timestamp(parts.pop(0), parts.pop(0), parts.pop(0), parts.pop(0), parts.pop(0), parts.pop(0)),
(parts.pop(0), parts.pop(0), parts.pop(0))[::-1],
parts.pop(0), parts.pop(0), parts.pop(0), parts.pop(0).decode(),
Timestamp(parts.pop(0), parts.pop(0), parts.pop(0), parts.pop(0), parts.pop(0), parts.pop(0)),
(parts.pop(0), parts.pop(0), parts.pop(0))[::-1],
(parts.pop(0), parts.pop(0), parts.pop(0))[::-1],
)
self.block_size = self.bootid.block_size
self.block_count = self.bootid.block_count
return self.bootid
def _get_file_signature(self) -> bytes:
if self.file is None:
raise CheckFailed("File not open")
if self.block_size == -1:
self.read_bootid()
self.file.seek(self.CRC_OFFSET)
hmac = HMAC.new(self.SIGKEY, digestmod=SHA1)
to_read = self.block_size * 8 - self.CRC_OFFSET
while to_read:
block = self.file.read(min(0x1000, to_read))
if len(block) == 0:
raise CheckFailed("Ran out of data checking signature")
hmac.update(block)
to_read -= len(block)
return hmac.digest()
def verify_signature(self) -> bool:
if self.file is None:
raise CheckFailed("File not open")
self.file.seek(self.SIGNATURE_OFFSET)
signature = self.file.read(self.SIGNATURE_SIZE)
if len(signature) != self.SIGNATURE_SIZE:
raise CheckFailed("Ran out of data reading signature")
if len(signature) < SHA1.digest_size:
raise CheckFailed("File signature impossibly small")
digest = self._get_file_signature()
return digest == signature[:len(digest)]
def repair_signature(self, reseed: bool = False) -> None:
if self.file is None:
raise CheckFailed("File not open")
digest = self._get_file_signature()
if len(digest) > self.SIGNATURE_SIZE:
raise FixFailed("New signature impossibly long")
if reseed and len(digest) < self.SIGNATURE_SIZE:
digest += secrets.token_bytes(self.SIGNATURE_SIZE - len(digest))
self.file.seek(self.SIGNATURE_OFFSET)
self.file.write(digest)
def verify_block(self, block_n: int) -> bool:
if self.block_size == -1:
self.read_bootid()
if self.file is None:
raise CheckFailed("File not open")
self.file.seek(self.CRC_OFFSET + 4 * block_n)
crc = self.file.read(4)
if len(crc) != 4:
raise CheckFailed(f"Ran out of data reading block {block_n} CRC")
expected_crc = struct.unpack("<I", crc)[0]
block_length = self.block_size
if block_n == 0:
self.file.seek(0)
block = self.file.read(self.SIGNATURE_OFFSET)
skip = self.SIGNATURE_SIZE + 4
self.file.seek(skip, 1)
block += self.file.read(self.block_size - (self.SIGNATURE_OFFSET + skip))
block_length -= skip
else:
self.file.seek(block_n * self.block_size)
block = self.file.read(self.block_size)
if len(block) != block_length:
raise CheckFailed(f"Ran out of data reading block {block_n}")
return self._crc(block) == expected_crc
def repair_block_crc(self, block_n: int) -> None:
if self.block_size == -1:
self.read_bootid()
if self.file is None:
raise CheckFailed("File not open")
if not self.write:
raise FixFailed("File not open for writing")
block_length = self.block_size
if block_n == 0:
self.file.seek(0)
block = self.file.read(self.SIGNATURE_OFFSET)
skip = self.SIGNATURE_SIZE + 4
self.file.seek(skip, 1)
block += self.file.read(self.block_size - (self.SIGNATURE_OFFSET + skip))
block_length -= skip
else:
self.file.seek(block_n * self.block_size)
block = self.file.read(self.block_size)
self.file.seek(self.CRC_OFFSET + 4 * block_n)
self.file.write(struct.pack("<I", self._crc(block)))
def verify_all_blocks(self) -> bool:
if self.block_count == -1:
self.read_bootid()
ret = True
bar = Bar("Verifying blocks", self.block_count)
for i in bar:
if not ac.verify_block(i):
bar.print_over(f"Block {i} failed verification")
ret = False
return ret
def repair_all_block_crcs(self) -> None:
if not self.write:
raise FixFailed("File not open for writing")
if self.block_count == -1:
self.read_bootid()
ret = True
bar = Bar("Repairing block CRCs", self.block_count)
for i in bar:
if not ac.verify_block(i):
bar.print_over(f"Block {i} failed verification")
ret = False
return ret
def size(x: int | float) -> str:
suffix = ("B", "KiB", "MiB", "GiB")
thresh = 1024
for i in suffix:
if x < thresh:
x = round(x / (thresh / 1024), 2)
if x == round(x):
return f"{int(x)}{i}"
return f"{x} {i}"
thresh *= 1024
return f"{x:.2} TiB"
def print_help() -> None:
print(f"Usage: {sys.argv[0]} [--repair] <app path>")
class FsCrypt:
PAGE_SIZE = 0x1000
def __init__(self, filename: str, offset: int = 0, size: int = -1, write: bool = False):
self.filename = filename
self.offset = offset
self.size = size
self.write = write
self.file = None
self.ptr = 0
self.iv = b'\0' * 16
self.key = None
self._page_buffer = (-1, b"")
def __enter__(self):
self.open()
return self
def __exit__(self, *args):
self.close()
def set_key(self, key: bytes, iv: bytes):
self.key = key
self.iv = iv
def open(self) -> None:
self.file = open(self.filename, "r+b" if self.write else "rb")
if self.size == -1:
self.file.seek(0, 2)
self.size = self.file.tell()
def close(self) -> None:
if self.file is not None:
self.file.close()
self.file = None
def seek(self, offset: int, whence: int = 0) -> None:
if self.file is None:
raise FsCryptError("Cannot possibly seek without an open file")
if whence == 0:
self.ptr = offset
elif whence == 1:
self.ptr += offset
elif whence == 2:
self.ptr = self.size - offset
else:
raise ValueError("Invalid whence")
if self.ptr < 0:
self.ptr = 0
def _get_page_iv(self, page: int) -> bytes:
page_iv = bytearray(16)
file_offset = page * self.PAGE_SIZE
for i in range(16):
page_iv[i] = self.iv[i] ^ (file_offset >> (8 * (i % 8))) & 0xff
return bytes(page_iv)
def _read_page(self, page: int) -> bytes:
if self.key is None:
raise FsCryptError("Key not set")
if self.file is None:
raise FsCryptError("File not open")
iv = self._get_page_iv(page)
cipher = AES.new(self.key, AES.MODE_CBC, iv)
self.file.seek(self.offset + self.PAGE_SIZE * page)
block = self.file.read(self.PAGE_SIZE)
if len(block) != self.PAGE_SIZE:
raise FsCryptError(f"Ran out of data reading page {page}")
block = cipher.decrypt(block)
self._page_buffer = (page, block)
return block
def read(self, n: int) -> bytes:
if self.file is None:
raise FsCryptError("File not open")
result = b""
to_read = n
while to_read:
page = self.ptr // self.PAGE_SIZE
page_offset = self.ptr % self.PAGE_SIZE
page_size = min(self.PAGE_SIZE, to_read)
if self._page_buffer[0] != page:
self._read_page(page)
if page_offset == 0:
block = self._page_buffer[1][:page_size]
else:
block = self._page_buffer[1][page_offset:page_offset + page_size]
result += block
to_read -= len(block)
self.ptr += len(result)
return result
if __name__ == "__main__":
if len(sys.argv) == 2:
repair = False
app_path = sys.argv[1]
elif len(sys.argv) == 3:
if sys.argv[1] != "--repair":
print_help()
quit()
repair = True
app_path = sys.argv[2]
else:
print_help()
quit()
if not os.path.exists(app_path) or not os.path.isfile(app_path):
print(f"No such file: {app_path}")
with AppChecker(app_path, True) as ac:
bootid = ac.read_bootid()
gt = bootid.game_timestamp
print(
f"Found {bootid.game_id}"
f" {bootid.game_ver[0]}.{bootid.game_ver[1]:02}.{bootid.game_ver[2]:02}"
f", {gt.year}-{gt.month:02}-{gt.day:02}T{gt.hour:02}:{gt.minute:02}:{gt.second:02}"
f" for {bootid.hw}"
)
print(f" Block size: {size(bootid.block_size)} \t(0x{bootid.block_size:x})")
print(f" Header blocks: {bootid.header_count} \t({size(bootid.header_count * bootid.block_size)})")
print(f" Data blocks: {bootid.block_count} \t({size(bootid.block_count * bootid.block_size)})")
print(f" Data offset: 0x{bootid.data_offset:08x}")
if repair:
print("=== File repair ===")
print("Repairing signature")
ac.repair_signature()
print("Reparing block CRCs")
ac.repair_all_block_crcs()
print("=== File validation ===")
if not ac.verify_signature():
print("Signature: NG")
else:
print("Signature: OK")
if ac.verify_all_blocks():
print("All blocks intact")
else:
print("Some blocks invalid")

View File

@ -0,0 +1,36 @@
import os
import subprocess
from send2trash import send2trash
# Set the directory to start searching from
start_directory = os.getcwd()
def run_command(command):
os.system(command)
# Get a list of all subdirectories in the starting directory
subdirectories = [x for x in os.listdir(start_directory) if os.path.isdir(os.path.join(start_directory, x))]
subdirectories.remove("Resource")
#game_name = input("Input game name: ")
# Loop through each subdirectory and create a 7z file for its contents
for directory in subdirectories:
# Set the name of the 7z file to be the name of the subdirectory
seven_zip_filename = os.path.join(start_directory, directory + ".7z")
# Build the command to execute 7zip
command = ["7z", "a", seven_zip_filename, os.path.join(start_directory, directory, "*")]
# Execute the command using subprocess
subprocess.run(command)
api_key = "insert api key here"
# Get the list of files in the current directory
files = [file for file in os.listdir('.') if file.endswith('.7z')]
# Iterate over each .7z file
for filename in files:
# Construct the command with the filenames
command = f"pd --api-key {api_key} upload \"{filename}\""
print(f"Now uploading {filename}. Please wait patiently.")
# Execute the command
run_command(command)
send2trash(f"{filename}")

View File

@ -0,0 +1,13 @@
@echo off
:loop
echo Running autozip.py upload...
autozip.py both
if %errorlevel% neq 0 (
echo An error occurred. Restarting...
timeout /t 5 > nul
goto loop
)
echo Script completed successfully.
pause

View File

@ -0,0 +1,124 @@
#What is this script for?
#This script will download all of the files from a text file and sort them by Game ID.
#This is very useful if you have a large list or PDF of URLs from Sega but don't want to download and sort them manually.
#What do I need to run this script?
#You will need an installation of python, and the requests library.
#You can use the command "pip install requests" to install the requests library.
#How do I run this script?
#Open command prompt, and run the script.
#Input the filename of the text file.
#Your text file should be formatted like this:
#|||||||||||||||||||||||||||||||||||||||||||
#||http://example.com/SDAA_12345678910.app||
#||http://example.com/SDAA_12345678910.app||
#||http://example.com/SDAA_12345678910.app||
#||http://example.com/SDAA_12345678910.app||
#|||||||||||||||||||||||||||||||||||||||||||
#The text file should ONLY have the URLs you are trying to download from, and each should be separated by a line break.
#The script will find the game ID within the URL and sort it into the correct folder of the same ID.
#If no game ID can be found in the URL, it will be moved a folder titled "unknown".
#The script will also download any .txt and .info files and move them into a subfolder within a game ID folder.
#This script may take a very long time to run. It's an arduous process.
#It's not working.
#I've never had any errors using this. Feel free to message me if you come across one.
import os
import re
import urllib.request
# define regular expression pattern to match game IDs
def get_file_name(url):
# Extract the path from the URL
path = os.path.basename(url)
# Use os module to get the file name with extension
file_name = os.path.splitext(path)[0]
extension = os.path.splitext(path)[1]
file_name_with_extension = file_name + extension
return file_name_with_extension
def get_file_extension(url):
# Extract the path from the URL
path = os.path.basename(url)
# Use os module to get the file extension
file_extension = os.path.splitext(path)[1]
return file_extension
# read URLs from file
urlist = input("Input file name here: ")
with open(urlist, "r") as f:
urls = f.read().splitlines()
# loop through URLs
for url in urls:
# extract game ID from URL
path = url
print(path)
# Use regular expressions to find the game ID
match = re.search("(sd|sb)[a-z]{2}", path, re.IGNORECASE)
if match:
game_id = match.group(0).upper()
else:
game_id = "unknown"
#print(game_id)
# create game ID folder if it does not exist
if not os.path.exists(game_id):
os.makedirs(game_id)
# prepare to download files
try:
with urllib.request.urlopen(url) as response:
# loop through response headers to get file name and extension
filename = get_file_name(url)
extension = get_file_extension(url)
for header in response.headers:
if "filename" in header:
filename = header.split("=")[1].strip('"')
extension = os.path.splitext(filename)[1]
break
# skip if file name or extension not found
if not filename or not extension:
continue
# determine destination folder based on file extension
if extension in [".app", ".opt", ".pack"]:
folder = game_id
elif extension in [".txt", ".info"]:
folder = os.path.join(game_id, "text")
if not os.path.exists(folder):
os.makedirs(folder)
else:
continue
# check if file already exists in game ID folder or its subfolders
found = False
for root, dirs, files in os.walk(game_id):
if filename in files:
found = True
print(f"{filename} already exists in {os.path.join(root, filename)}")
break
if found:
continue
# download file and report success
opener = urllib.request.build_opener()
opener.addheaders = [('User-agent', 'Mozilla/5.0')]
urllib.request.install_opener(opener)
urllib.request.urlretrieve(url, os.path.join(folder, filename))
print(f"{filename} downloaded to {folder}")
except Exception as e:
print(f"Error downloading {url}: {e}")

View File

@ -0,0 +1,81 @@
#What is this script for?
#This script will compare all of the files in two given folders, and separate the differences.
#This is best used with child .apps, where this is the only way to find the changed files in the update.
#What do I need to run this script?
#You will need an installation of python.
#How do I run this script?
#Open command prompt, and run the script. "
#"Previous Update" is the first update you extracted, this is a folder path.
#"Current Update" is the folder you are comparing it to, this is also a folder path.
#"Destination" is a new folder where the differences will be copied to.
#This script may take a very long time to run. It's an arduous process.
#It's not working.
#I've never had any errors using this. Feel free to message me if you come across one.
import os
import hashlib
import shutil
import sys
def get_file_hash(file_path):
"""Get the MD5 hash of a file"""
with open(file_path, "rb") as f:
bytes = f.read()
return hashlib.md5(bytes).hexdigest()
def compare_folders(folder1, folder2):
"""Compare the contents of two folders"""
folder1_files = {}
folder2_files = {}
# Get the MD5 hash of each file in folder1
for root, dirs, files in os.walk(folder1):
for file in files:
file_path = os.path.relpath(os.path.join(root, file), folder1)
file_hash = get_file_hash(os.path.join(folder1, file_path))
folder1_files[file_path] = file_hash
print("1:", file, file_hash)
# Get the MD5 hash of each file in folder2
for root, dirs, files in os.walk(folder2):
for file in files:
file_path = os.path.relpath(os.path.join(root, file), folder2)
file_hash = get_file_hash(os.path.join(folder2, file_path))
folder2_files[file_path] = file_hash
print("2:", file, file_hash)
# Compare the files in both folders
for file_path in folder2_files:
if file_path not in folder1_files or folder1_files[file_path] != folder2_files[file_path]:
yield file_path
def copy_files(src_folder, dest_folder, file_paths):
"""Copy files from one folder to another, creating new folders if necessary"""
for file_path in file_paths:
src_file = os.path.join(src_folder, file_path)
dest_file = os.path.join(dest_folder, file_path)
dest_dir = os.path.dirname(dest_file)
if not os.path.exists(dest_dir):
os.makedirs(dest_dir)
shutil.copy2(src_file, dest_file)
print("+++++", dest_file)
folder1 = sys.argv[1]
folder2 = sys.argv[2]
dest_folder = sys.argv[3]
# Compare the contents of folder1 and folder2
file_paths = compare_folders(folder1, folder2)
# Copy the different files from folder2 to dest_folder
copy_files(folder2, dest_folder, file_paths)

Some files were not shown because too many files have changed in this diff Show More