From 7e7197b108ec518e6cd82ba91d35ddb10047127b Mon Sep 17 00:00:00 2001 From: Hay1tsme Date: Sat, 14 Mar 2026 01:12:10 -0400 Subject: [PATCH] gc boots to title (no io) --- Package.mk | 2 +- board/dongle.c | 15 ++++++++------- board/k92x0249.c | 9 +++++---- dist/gc/taitools.ini | 2 +- gchook/reader.c | 9 ++++++--- hooklib/dns.c | 10 ++++------ idmac/jvs.c | 13 +++++++++---- initpki | 7 ++++++- jvs/jvs-frame.c | 1 + jvs/jvs-util.c | 12 ++++++------ pki/client_gc.cer | 20 ++++++++++++++++++++ pki/client_gc.csr | 16 ++++++++++++++++ pki/client_gc.key | 28 ++++++++++++++++++++++++++++ pki/client_gc.p12 | Bin 0 -> 2603 bytes platform/cert.c | 6 +++--- 15 files changed, 114 insertions(+), 36 deletions(-) create mode 100644 pki/client_gc.cer create mode 100644 pki/client_gc.csr create mode 100644 pki/client_gc.key create mode 100644 pki/client_gc.p12 diff --git a/Package.mk b/Package.mk index 6c6325d..2f65dce 100644 --- a/Package.mk +++ b/Package.mk @@ -36,7 +36,7 @@ $(BUILD_DIR_ZIP)/gc.zip: $(DIST_DIR)/gc/taitools.ini \ $(DIST_DIR)/gc/start.bat \ $(BUILD_DIR_ZIP)/gc - $(V)cp pki/client.p12 \ + $(V)cp pki/client_gc.p12 \ $(BUILD_DIR_ZIP)/gc $(V)strip $(BUILD_DIR_ZIP)/gc/*.{exe,dll} $(V)cd $(BUILD_DIR_ZIP)/gc ; zip -r ../gc.zip * diff --git a/board/dongle.c b/board/dongle.c index 973a981..38f5543 100644 --- a/board/dongle.c +++ b/board/dongle.c @@ -18,7 +18,7 @@ // JVS card reader, A/B/C vairants -static const uint8_t dongle_ident[] = "TAITO CORP.;RFID CTRL P.C.B.;Ver1.11;"; +static const uint8_t dongle_ident[] = "TAITO CORP.;SECURITY PCB;Ver1.00;"; static const uint8_t card_uid[] = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x00 }; static const uint8_t card_id[] = { 0x01, 0x2E, 0x4C, 0xE4, 0x00, 0x01, 0x00, 0x01, @@ -80,8 +80,8 @@ void dongle_init( dongle->jvs.next = next; dongle->jvs.transact = dongle_transact; dongle->jvs.sense = dongle_sense; - dongle->jvs.sense_out = false; - dongle->addr = 0x80; + dongle->jvs.sense_out = true; + dongle->addr = 0xFF; dongle->state = IDLE; dongle->ops_ctx = ops_ctx; } @@ -118,7 +118,7 @@ static bool dongle_sense(struct jvs_node *node) dongle = CONTAINING_RECORD(node, struct dongle, jvs); - return dongle->addr == 0xFF; + return dongle->jvs.sense_out; } static HRESULT dongle_cmd( @@ -190,7 +190,7 @@ static HRESULT dongle_cmd_reset(struct dongle *dongle, struct const_iobuf *req_b dprintf("Dongle: Reset (param %02x)\n", req.unknown); dongle->addr = 0xFF; - dongle->jvs.sense_out = false; + dongle->jvs.sense_out = true; /* No ack for this since it really is addressed to everybody */ @@ -213,15 +213,16 @@ static HRESULT dongle_cmd_assign_addr( } sense = jvs_node_sense(dongle->jvs.next); - dprintf("Dongle: Assign addr %02x sense %i\n", req.addr, sense); if (sense) { /* That address is for somebody else */ return S_OK; } + + dprintf("Dongle: Assign addr %02x sense %i\n", req.addr, sense); dongle->addr = req.addr; - dongle->jvs.sense_out = true; + dongle->jvs.sense_out = false; return iobuf_write_8(resp_buf, 0x01); } diff --git a/board/k92x0249.c b/board/k92x0249.c index ab3176e..ded66a9 100644 --- a/board/k92x0249.c +++ b/board/k92x0249.c @@ -118,7 +118,7 @@ static bool k92x0249_sense(struct jvs_node *node) k92x0249 = CONTAINING_RECORD(node, struct k92x0249, jvs); - return k92x0249->addr == 0xFF; + return k92x0249->jvs.sense_out; } static HRESULT k92x0249_cmd( @@ -190,7 +190,7 @@ static HRESULT k92x0249_cmd_reset(struct k92x0249 *k92x0249, struct const_iobuf dprintf("K92X0249: Reset (param %02x)\n", req.unknown); k92x0249->addr = 0xFF; - k92x0249->jvs.sense_out = false; + k92x0249->jvs.sense_out = true; /* No ack for this since it really is addressed to everybody */ @@ -213,15 +213,16 @@ static HRESULT k92x0249_cmd_assign_addr( } sense = jvs_node_sense(k92x0249->jvs.next); - dprintf("K92X0249: Assign addr %02x sense %i\n", req.addr, sense); if (sense) { /* That address is for somebody else */ return S_OK; } + + dprintf("K92X0249: Assign addr %02x sense %i\n", req.addr, sense); k92x0249->addr = req.addr; - k92x0249->jvs.sense_out = true; + k92x0249->jvs.sense_out = false; return iobuf_write_8(resp_buf, 0x01); } diff --git a/dist/gc/taitools.ini b/dist/gc/taitools.ini index b721f1b..2284a8d 100644 --- a/dist/gc/taitools.ini +++ b/dist/gc/taitools.ini @@ -8,7 +8,7 @@ enable=1 default=localhost [cert] -path=client.p12 +path=client_gc.p12 [reader] card_serial=7020392000000000 diff --git a/gchook/reader.c b/gchook/reader.c index c942718..a7b60ac 100644 --- a/gchook/reader.c +++ b/gchook/reader.c @@ -22,9 +22,12 @@ HRESULT gc_reader_init(struct jvs_node **out) dprintf("Gc Nesica Reader: Init\n"); - dongle_init(&gc_dongle, NULL, NULL); - k92x0249_init(&gc_jvs_reader, dongle_to_jvs_node(&gc_dongle), NULL); - *out = k92x0249_to_jvs_node(&gc_jvs_reader); + k92x0249_init(&gc_jvs_reader, NULL, NULL); + //dongle_init(&gc_dongle, NULL, NULL); + dongle_init(&gc_dongle, k92x0249_to_jvs_node(&gc_jvs_reader), NULL); + //k92x0249_init(&gc_jvs_reader, dongle_to_jvs_node(&gc_dongle), NULL); + //*out = k92x0249_to_jvs_node(&gc_jvs_reader); + *out = dongle_to_jvs_node(&gc_dongle); return S_OK; } diff --git a/hooklib/dns.c b/hooklib/dns.c index b03ada4..54f1e37 100644 --- a/hooklib/dns.c +++ b/hooklib/dns.c @@ -70,7 +70,7 @@ static int WSAAPI hook_getaddrinfo( const ADDRINFOA *pHints, ADDRINFOA **ppResult); -static BOOL my_WinHttpCrackUrl( +static BOOL WINAPI my_WinHttpCrackUrl( LPCWSTR pwszUrl, DWORD dwUrlLength, DWORD dwFlags, @@ -105,7 +105,7 @@ static int (WSAAPI *next_getaddrinfo)( const ADDRINFOA *pHints, ADDRINFOA **ppResult); -static BOOL (*next_WinHttpCrackUrl)( +static BOOL (WINAPI *next_WinHttpCrackUrl)( LPCWSTR pwszUrl, DWORD dwUrlLength, DWORD dwFlags, @@ -542,7 +542,7 @@ bool match_domain(const wchar_t* target, const wchar_t* pattern) { return pattern[pattern_ptr_index] == '\0' && (proto[target_ptr_index] == '\0' || proto[target_ptr_index] == '/'); } -static BOOL my_WinHttpCrackUrl( +static BOOL WINAPI my_WinHttpCrackUrl( LPCWSTR pwszUrl, DWORD dwUrlLength, DWORD dwFlags, @@ -550,9 +550,8 @@ static BOOL my_WinHttpCrackUrl( { const struct dns_hook_entry *pos; size_t i; - EnterCriticalSection(&dns_hook_lock); - + //WinHttpCrackUrl() for (i = 0 ; i < dns_hook_nentries ; i++) { pos = &dns_hook_entries[i]; @@ -605,5 +604,4 @@ static BOOL my_WinHttpCrackUrl( dwFlags, lpUrlComponents ); - } diff --git a/idmac/jvs.c b/idmac/jvs.c index 719e720..8974126 100644 --- a/idmac/jvs.c +++ b/idmac/jvs.c @@ -113,7 +113,7 @@ static HRESULT jvs_handle_irp_locked(struct irp *irp) case IOCTL_SERIAL_GET_MODEMSTATUS: //jvs_uart.cts_on = jvs_root->sense_out; //dprintf("JVS: Set CTS to %X\n", jvs_root->sense_out); - jvs_uart.cts_on = jvs_root->sense_out; + jvs_uart.cts_on = !jvs_root->sense_out; // ?? break; case IOCTL_SERIAL_GET_COMMSTATUS: //dprintf("JVS: Set cbInQue to %d\n", (int)tmp.pos); @@ -123,12 +123,18 @@ static HRESULT jvs_handle_irp_locked(struct irp *irp) } if (irp->op == IRP_OP_READ) { - if (irp->read.nbytes > 1) { + if (irp->read.nbytes == 1) { + iobuf_write_8(&irp->read, 1); + return S_OK; + } + if (irp->read.nbytes >= tmp.pos) { //dprintf("JVS: Readable buffer is %d / %d\n", (int)irp->read.nbytes, (int)tmp.pos); iobuf_write(&irp->read, tmp.bytes, tmp.pos); tmp.pos = 0; } else { - dprintf("JVS: Readable buffer is 1!\n"); + dprintf("JVS: READ need %d bytes but only have room for %d\n", tmp.pos, irp->read.nbytes); + iobuf_write(&irp->read, tmp.bytes, irp->read.nbytes); + tmp.pos -= irp->read.nbytes; } } @@ -138,7 +144,6 @@ static HRESULT jvs_handle_irp_locked(struct irp *irp) return hr; } - //jvs_bus_transact(jvs_root, irp->write.bytes, irp->write.nbytes, &irp->read); jvs_bus_transact(jvs_root, irp->write.bytes, irp->write.nbytes, &tmp); jvs_uart.written.pos = 0; diff --git a/initpki b/initpki index 1c738dd..d23ce42 100644 --- a/initpki +++ b/initpki @@ -20,7 +20,12 @@ openssl req -newkey rsa:2048 -nodes -keyout pki/client.key -out pki/client.csr - # Generate client cert openssl x509 -req -sha256 -days 3650 -in pki/client.csr -CA pki/nesys.cer -CAkey pki/nesys.key -out pki/client.cer -set_serial 0 -# Package as a p12 file for Theatrhythm +# Package as a p12 file openssl pkcs12 -export -out pki/client.p12 -inkey pki/client.key -in pki/client.cer +# Generate GC client certs +openssl req -newkey rsa:2048 -nodes -keyout pki/client_gc.key -out pki/client_gc.csr -subj "/C=JP/ST=A/L=A/CN=PREMIUM" +openssl x509 -req -sha256 -days 3650 -in pki/client_gc.csr -CA pki/ca.cer -CAkey pki/ca.key -out pki/client_gc.cer -set_serial 0 +openssl pkcs12 -export -out pki/client_gc.p12 -inkey pki/client_gc.key -in pki/client_gc.cer + rm pki/*.csr \ No newline at end of file diff --git a/jvs/jvs-frame.c b/jvs/jvs-frame.c index 37fb5e7..afb2eab 100644 --- a/jvs/jvs-frame.c +++ b/jvs/jvs-frame.c @@ -113,6 +113,7 @@ HRESULT jvs_frame_encode( checksum = 0; if (dest->pos + 1 > dest->nbytes) { + dprintf("JVS Frame: Require %d bytes but only have space for %d\n", dest->pos + 1, dest->nbytes); return HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER); } diff --git a/jvs/jvs-util.c b/jvs/jvs-util.c index 65dd344..0de8430 100644 --- a/jvs/jvs-util.c +++ b/jvs/jvs-util.c @@ -47,15 +47,15 @@ void jvs_crack_request( return; } -#if 0 - dprintf("Decoded request:\n"); - dump_iobuf(&decode); -#endif - - if (req_bytes[0] != jvs_addr && req_bytes[0] != 0xFF) { + if (req_bytes[0] != jvs_addr && jvs_addr != 0xFF) { return; } +#if 0 + dprintf("Decoded request checked by %02X:\n", jvs_addr); + dump_iobuf(&decode); +#endif + iobuf_flip(&segments, &decode); segments.pos = 2; diff --git a/pki/client_gc.cer b/pki/client_gc.cer new file mode 100644 index 0000000..da6e2a1 --- /dev/null +++ b/pki/client_gc.cer @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDOzCCAiOgAwIBAgIBADANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJKUDEK +MAgGA1UECAwBQTEKMAgGA1UEBwwBQTEgMB4GA1UEAwwXVGFpdG8gQXJjYWRlIE1h +Y2hpbmUgQ0EwHhcNMjYwMzE0MDI0NjU5WhcNMzYwMzExMDI0NjU5WjA3MQswCQYD +VQQGEwJKUDEKMAgGA1UECAwBQTEKMAgGA1UEBwwBQTEQMA4GA1UEAwwHUFJFTUlV +TTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALQGviNLFLOLc2U5uRBC +vVtxuF83UhkX81crmPJssr/9E/97P/XetAhYJklexKlGYvr/Y73hA4oVQKFFk2Vr +ASjXYjF8MCGgyXh1ShZ6V43kDjs+sWxoAAzsEoG/PhMfrxQHmgTpRkV/MiHLIoAa +4dhuYYrXRZpZjCiIiqC4lctDmbs0o0ubVPP0wp2Y47JCZd+FEwacnh1GN6ns3juv +LX2UUPTD4rcm5LQ1GOPUCzLPWxe5qRsQkX2C2wA3ZNLdkViEZEmwgQktK/9FG6vP +PfbmlS3gnQSm2SEBHhPE0y7DzS5mE3PhteWEHrOOpVkEZlzXkn7oZAnT2LiHL1Bw +v2UCAwEAAaNCMEAwHQYDVR0OBBYEFKxkTfZiZnWpIQttx24gX+3KB04PMB8GA1Ud +IwQYMBaAFMbnTayEU9K2mel1yhpgjhAZnIeMMA0GCSqGSIb3DQEBCwUAA4IBAQCe +jwRFCcSYro6aaKSzNkArQhKyqJ7hYxkPWHFxEaS0lZFQVr2oxWY1WQa6C1fHEaFh +g5MzD3kKCAvYdVb6Pi2nlLP5ZyO/Oy1d95zaI7uEosKyGNVAaFXN22O43CkrkX2P +19YLTcI0uCREngMCSr+LPm/7L9JWECxSAMCG6OxqP6mmzFS2x3Mwl+tVQqLk8Xsr +o3bEeXy3egvFBKcxwaMrtpaErunrqNAWMbY5U1pA4W19yUIr9XVEyPwgbApUrxfi +Ze+51WI/QG7XQ4m+TB6JDyt18eZGcu4vSnJX3mxp4vvZujDixyUSmvkRik4EKVpK +smkSLdTzGTArSH81Ojkl +-----END CERTIFICATE----- diff --git a/pki/client_gc.csr b/pki/client_gc.csr new file mode 100644 index 0000000..2c264d9 --- /dev/null +++ b/pki/client_gc.csr @@ -0,0 +1,16 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIICfDCCAWQCAQAwNzELMAkGA1UEBhMCSlAxCjAIBgNVBAgMAUExCjAIBgNVBAcM +AUExEDAOBgNVBAMMB1BSRU1JVU0wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK +AoIBAQC0Br4jSxSzi3NlObkQQr1bcbhfN1IZF/NXK5jybLK//RP/ez/13rQIWCZJ +XsSpRmL6/2O94QOKFUChRZNlawEo12IxfDAhoMl4dUoWeleN5A47PrFsaAAM7BKB +vz4TH68UB5oE6UZFfzIhyyKAGuHYbmGK10WaWYwoiIqguJXLQ5m7NKNLm1Tz9MKd +mOOyQmXfhRMGnJ4dRjep7N47ry19lFD0w+K3JuS0NRjj1Asyz1sXuakbEJF9gtsA +N2TS3ZFYhGRJsIEJLSv/RRurzz325pUt4J0EptkhAR4TxNMuw80uZhNz4bXlhB6z +jqVZBGZc15J+6GQJ09i4hy9QcL9lAgMBAAGgADANBgkqhkiG9w0BAQsFAAOCAQEA +gFeA40KfDp9nmEVNi6jL3QAnpMH7vsS+LkuqR9ZhhRX/GWyGxFdg5bLsEPs44X+z +U2PbR5oXm8EvoxkwsjPdO4xHsGttQTzWWhDdsAYdktK0SYAjDE63ixt5ZkS3OtWU +eqZgPr6aBEzvioM7OkSb74KI+0aUnAKa2ot2D1Whqvn6FN/cBUy8bZahsAe43QXj +b5uLXdQUFHMr5ebe8n0036j8IArh3jSQyy08uwWeGC0Z87FNDeTZ6u6H9VUQzmHj +sgjOe8y+V8bQX1rn5MOzhKr/bsmuoV+dGaA7L1w7yxqlKT2H3NnTi+SZhQsi9n66 +BnUDXxrsywiGd4GXWs5gJw== +-----END CERTIFICATE REQUEST----- diff --git a/pki/client_gc.key b/pki/client_gc.key new file mode 100644 index 0000000..44f64ea --- /dev/null +++ b/pki/client_gc.key @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQC0Br4jSxSzi3Nl +ObkQQr1bcbhfN1IZF/NXK5jybLK//RP/ez/13rQIWCZJXsSpRmL6/2O94QOKFUCh +RZNlawEo12IxfDAhoMl4dUoWeleN5A47PrFsaAAM7BKBvz4TH68UB5oE6UZFfzIh +yyKAGuHYbmGK10WaWYwoiIqguJXLQ5m7NKNLm1Tz9MKdmOOyQmXfhRMGnJ4dRjep +7N47ry19lFD0w+K3JuS0NRjj1Asyz1sXuakbEJF9gtsAN2TS3ZFYhGRJsIEJLSv/ +RRurzz325pUt4J0EptkhAR4TxNMuw80uZhNz4bXlhB6zjqVZBGZc15J+6GQJ09i4 +hy9QcL9lAgMBAAECggEAANCuADlpDtYRD/KGtr7inh0h9VZqCgCMgsbJAsIAvjNO +aZ/8fmfDf20swTTLZavSq2nIIRY5fqDRgdlvjSxCnVV6VZiHHEPe3auESh1EM7mG +YfjK8192LpjMDafYx1vjnk7ZgO+weISWrMX/cj6M6r63NNp8L3J72rwhipBDZ1/1 +SqXYx3yBa1iCwcZCpKqPwF7zwRktq5Fz9unWhaw6h09p3kUS3Bw3W1o2rCsaweFa +6G4X7iKhOH2rsKa3amrihaZCsDFLoRJkvyx7M+kIPP3qocNN/3ciOGhy4w2CA7fZ +QFfsx8XAAIgXVGfUS/4/I9MPlcdHur6z5p2snBBQgQKBgQDb67uAyoKGg2zHAwXv +A69bqM+g3m/CpzMi0GeYON91WO/yqN6NU6uMEyQ7tPfsRI9XTA+rOxxpZBFQyocZ +AKepWwf7uZUwEZSDoxBYvcHayksLNF3lIQpQZQUBkikabVa0SVR6ihzIuHOJ3nob +Q7qWyGG3VjbtyV9BAWUUPlcBgQKBgQDRj4P7Lj/si8QQ7Lq1xQsF9WaeU14DlCl7 +n60DJOL0tnwZjigUUDi7j/eb79xmi87BVsUSKoYS3BJF/v07h8LKafCUKy/1bAnT +OGyCwP2D73CDkL/1jalQaJcjnz7s9+Saxyd9Ixx3m9avlAbHDiI6faRNmkBxs3dF +RTHe6MHn5QKBgFV6pdGkZOFlueUMjsTdGM62qaUscCInnN+eQ3XOPUS+Qd1+t6oU +6Gu0kPPIHkkuSMy0mq6CdkOcioJthd84+vH/mPXFp3AclS4pNlRXxT6GPG7pdsl1 +cy3WZgC7T9CeyQGgMv7CKff2gaoH2Ew6og6zag+5qfX4vFZm9WPN60GBAoGAFeGR +W1nR7OYPG+FMAYzIgN/FzkRQLbl7t1/N1eU1GW4weQ6h2rUhp1v587tQ3Rg+B2wC ++cmc5D08Xzinwl6DlVUIfMAhqtOUFwzuL5ztG6iVq/ciRAZ9plq1ZU/MZzvfD9Y5 +plRTNZ39BapEJuav5kGWNVAk6Hpfusjl0yuki40CgYA5FQg15B9Wr8oPzz0gd8Ie +1J62Lg+Hk0RzGJkWiNPsH2IR/umjSJeu0CxVHrDtI8YAdFkZVBKb5e8RsQ5+IoAY +GLmbbvuvTX/A0mU6Em7Lyy/Fl0gky/9o6/Cvq3W748VOjOvpb9itqje67scilBW9 +fYFIDPbqNfkp5hHC3MnQ0Q== +-----END PRIVATE KEY----- diff --git a/pki/client_gc.p12 b/pki/client_gc.p12 new file mode 100644 index 0000000000000000000000000000000000000000..57435f671c461ac313ea24e63506e0690f0a55ef GIT binary patch literal 2603 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 literal 0 HcmV?d00001 diff --git a/platform/cert.c b/platform/cert.c index 3a565e0..b443991 100644 --- a/platform/cert.c +++ b/platform/cert.c @@ -46,7 +46,7 @@ static HCERTSTORE WINAPI my_CertOpenStore( const void *pvPara ); -static BOOL my_WinHttpSetOption( +static BOOL WINAPI my_WinHttpSetOption( HINTERNET hInternet, DWORD dwOption, LPVOID lpBuffer, @@ -70,7 +70,7 @@ static HCERTSTORE (WINAPI *next_CertOpenStore)( const void *pvPara ); -static BOOL (*next_WinHttpSetOption)( +static BOOL (WINAPI *next_WinHttpSetOption)( HINTERNET hInternet, DWORD dwOption, LPVOID lpBuffer, @@ -272,7 +272,7 @@ static HCERTSTORE WINAPI my_CertOpenStore( return ret; } -static BOOL my_WinHttpSetOption( +static BOOL WINAPI my_WinHttpSetOption( HINTERNET hInternet, DWORD dwOption, LPVOID lpBuffer,