update cert hooks

This commit is contained in:
Hay1tsme 2024-02-21 03:43:44 -05:00
parent 3ae24469fa
commit fd2ad4424c
25 changed files with 323 additions and 20 deletions

View File

@ -1,7 +1,6 @@
$(BUILD_DIR_ZIP)/siva.zip: $(BUILD_DIR_ZIP)/siva.zip:
$(V)echo ... $@ $(V)echo ... $@
$(V)mkdir -p $(BUILD_DIR_ZIP)/siva $(V)mkdir -p $(BUILD_DIR_ZIP)/siva
$(V)mkdir -p $(BUILD_DIR_ZIP)/siva/DEVICE
$(V)cp $(BUILD_DIR_32)/subprojects/capnhook/inject/inject.exe \ $(V)cp $(BUILD_DIR_32)/subprojects/capnhook/inject/inject.exe \
$(BUILD_DIR_32)/sivahook/sivahook.dll \ $(BUILD_DIR_32)/sivahook/sivahook.dll \
$(BUILD_DIR_ZIP)/siva $(BUILD_DIR_ZIP)/siva
@ -17,24 +16,21 @@ $(BUILD_DIR_ZIP)/siva.zip:
$(BUILD_DIR_ZIP)/siva $(BUILD_DIR_ZIP)/siva
$(V)mv $(BUILD_DIR_ZIP)/siva/iDmacDrv.dll \ $(V)mv $(BUILD_DIR_ZIP)/siva/iDmacDrv.dll \
$(BUILD_DIR_ZIP)/siva/iDmacDrv64.dll $(BUILD_DIR_ZIP)/siva/iDmacDrv64.dll
$(V)cp pki/billing.pub \ $(V)cp pki/cert.p12 \
pki/ca.crt \ $(BUILD_DIR_ZIP)/siva
$(BUILD_DIR_ZIP)/siva/DEVICE
$(V)strip $(BUILD_DIR_ZIP)/siva/*.{exe,dll} $(V)strip $(BUILD_DIR_ZIP)/siva/*.{exe,dll}
$(V)cd $(BUILD_DIR_ZIP)/siva ; zip -r ../siva.zip * $(V)cd $(BUILD_DIR_ZIP)/siva ; zip -r ../siva.zip *
$(BUILD_DIR_ZIP)/ll3.zip: $(BUILD_DIR_ZIP)/ll3.zip:
$(V)echo ... $@ $(V)echo ... $@
$(V)mkdir -p $(BUILD_DIR_ZIP)/ll3 $(V)mkdir -p $(BUILD_DIR_ZIP)/ll3
$(V)mkdir -p $(BUILD_DIR_ZIP)/ll3/DEVICE
$(V)cp $(BUILD_DIR_64)/subprojects/capnhook/inject/inject.exe \ $(V)cp $(BUILD_DIR_64)/subprojects/capnhook/inject/inject.exe \
$(BUILD_DIR_64)/ll3hook/ll3hook.dll \ $(BUILD_DIR_64)/ll3hook/ll3hook.dll \
$(DIST_DIR)/ll3/taitools.ini \ $(DIST_DIR)/ll3/taitools.ini \
$(DIST_DIR)/ll3/start.bat \ $(DIST_DIR)/ll3/start.bat \
$(BUILD_DIR_ZIP)/ll3 $(BUILD_DIR_ZIP)/ll3
$(V)cp pki/billing.pub \ $(V)cp pki/cert.p12 \
pki/ca.crt \ $(BUILD_DIR_ZIP)/ll3
$(BUILD_DIR_ZIP)/ll3/DEVICE
$(V)strip $(BUILD_DIR_ZIP)/ll3/*.{exe,dll} $(V)strip $(BUILD_DIR_ZIP)/ll3/*.{exe,dll}
$(V)cd $(BUILD_DIR_ZIP)/ll3 ; zip -r ../ll3.zip * $(V)cd $(BUILD_DIR_ZIP)/ll3 ; zip -r ../ll3.zip *

View File

@ -10,6 +10,8 @@
#include "hook/table.h" #include "hook/table.h"
#include "hooklib/path.h" #include "hooklib/path.h"
#include "hook/procaddr.h"
#include "util/dprintf.h"
/* Helpers */ /* Helpers */
@ -347,6 +349,11 @@ static void path_hook_init(void)
void path_hook_insert_hooks(HMODULE target) void path_hook_insert_hooks(HMODULE target)
{ {
proc_addr_table_push(
target,
"kernel32.dll",
path_hook_syms,
_countof(path_hook_syms));
hook_table_apply( hook_table_apply(
target, target,
"kernel32.dll", "kernel32.dll",

View File

@ -27,8 +27,8 @@ DWORD hook_iDmacDrvOpen(int dev_num, DWORD *dev_handle, DWORD *other_ptr);
DWORD hook_iDmacDrvClose(HANDLE a1, DWORD *lp); DWORD hook_iDmacDrvClose(HANDLE a1, DWORD *lp);
int hook_iDmacDrvDmaRead(HANDLE a1, LPVOID lp, UINT_PTR ucb, unsigned int *a4); int hook_iDmacDrvDmaRead(HANDLE a1, LPVOID lp, UINT_PTR ucb, unsigned int *a4);
int hook_iDmacDrvDmaWrite(HANDLE a1, void *lp, UINT_PTR ucb, unsigned int *a4); int hook_iDmacDrvDmaWrite(HANDLE a1, void *lp, UINT_PTR ucb, unsigned int *a4);
int hook_iDmacDrvRegisterRead(HANDLE a1, DWORD BytesReturned, LPVOID lp, unsigned int *a4); int hook_iDmacDrvRegisterRead(HANDLE a1, DWORD register_id, DWORD* lp, unsigned int *a4);
int hook_iDmacDrvRegisterWrite(HANDLE a1, DWORD BytesReturned, int a3, DWORD *lp); int hook_iDmacDrvRegisterWrite(HANDLE a1, DWORD register_id, int a3, DWORD *lp);
int hook_iDmacDrvRegisterBufferRead(HANDLE a1, DWORD BytesReturned, LPVOID lp, UINT_PTR ucb, DWORD *a5); int hook_iDmacDrvRegisterBufferRead(HANDLE a1, DWORD BytesReturned, LPVOID lp, UINT_PTR ucb, DWORD *a5);
int hook_iDmacDrvRegisterBufferWrite(HANDLE a1, DWORD BytesReturned, void *lp, UINT_PTR ucb, DWORD *a5); int hook_iDmacDrvRegisterBufferWrite(HANDLE a1, DWORD BytesReturned, void *lp, UINT_PTR ucb, DWORD *a5);
int hook_iDmacDrvMemoryRead(HANDLE a1, DWORD BytesReturned, LPVOID lp, DWORD *a4); int hook_iDmacDrvMemoryRead(HANDLE a1, DWORD BytesReturned, LPVOID lp, DWORD *a4);
@ -186,14 +186,22 @@ int hook_iDmacDrvDmaWrite(HANDLE a1, void *lp, UINT_PTR ucb, unsigned int *a4)
return 0; return 0;
} }
int hook_iDmacDrvRegisterRead(HANDLE a1, DWORD BytesReturned, LPVOID lp, unsigned int *a4) int hook_iDmacDrvRegisterRead(HANDLE a1, DWORD register_id, DWORD* lp, unsigned int *a4)
{ {
//dprintf("hook_iDmacDrvRegisterRead: This code should not run!\n"); //dprintf("hook_iDmacDrvRegisterRead: This code should not run!\n");
//memset(lp, 0, 0x14); if (register_id == 0x4140) { // get coin slot 1
*lp = 0;
}
if (register_id == 0x4144) { // get coin slot 2
*lp = 0;
}
if (register_id == 0x4120 && (GetAsyncKeyState(VK_DELETE) & 0x8000)) { // get keys
*lp = 0x40;
}
return 0; return 0;
} }
int hook_iDmacDrvRegisterWrite(HANDLE a1, DWORD BytesReturned, int a3, DWORD *lp) int hook_iDmacDrvRegisterWrite(HANDLE a1, DWORD register_id, int a3, DWORD *lp)
{ {
//dprintf("hook_iDmacDrvRegisterWrite: This code should not run!\n"); //dprintf("hook_iDmacDrvRegisterWrite: This code should not run!\n");
return 0; return 0;

View File

@ -102,6 +102,11 @@ static HRESULT jvs_handle_irp_locked(struct irp *irp)
hr = uart_handle_irp(&jvs_uart, irp); hr = uart_handle_irp(&jvs_uart, irp);
if (irp->ioctl == IOCTL_SERIAL_GET_MODEMSTATUS) {
irp->modem_state = MS_CTS_ON;
return S_OK;
}
if (FAILED(hr) || irp->op != IRP_OP_WRITE) { if (FAILED(hr) || irp->op != IRP_OP_WRITE) {
return hr; return hr;
} }

28
initpki Normal file
View File

@ -0,0 +1,28 @@
#!/bin/bash
mkdir -p pki
# Generate Root Certificate and Key
openssl req -newkey rsa:2048 -nodes -keyout pki/ca.key -x509 -days 3650 -out pki/ca.cer -subj "/C=JP/ST=A/L=A/CN=Taito Arcade Machine CA"
# -addext "subjectAltName = DNS:cert.nesys.jp,DNS:cert3.nesys.jp,DNS:data.nesys.jp,DNS:proxy.nesys.jp,DNS:nesys.taito.co.jp,DNS:fjm170920zero.nesica.net"
# Generate Nesys CSR and key
openssl req -newkey rsa:2048 -nodes -keyout pki/nesys.key -out pki/nesys.csr -subj "/C=JP/ST=A/L=A/CN=nesys"
# -addext "subjectAltName = DNS:cert.nesys.jp,DNS:cert3.nesys.jp,DNS:data.nesys.jp,DNS:proxy.nesys.jp,DNS:nesys.taito.co.jp,DNS:fjm170920zero.nesica.net" -days 3650
# Generate Nesys cert
openssl x509 -req -sha256 -days 3650 -in pki/nesys.csr -CA pki/ca.cer -CAkey pki/ca.key -out pki/nesys.cer -set_serial 0
# Generate client CSR and key
openssl req -newkey rsa:2048 -nodes -keyout pki/PREMIUM.key -out pki/PREMIUM.csr -subj "/C=JP/ST=A/L=A/CN=PREMIUM"
#-addext "subjectAltName = DNS:cert.nesys.jp,DNS:cert3.nesys.jp,DNS:data.nesys.jp,DNS:proxy.nesys.jp,DNS:nesys.taito.co.jp,DNS:fjm170920zero.nesica.net"
# Generate client cert
openssl x509 -req -sha256 -days 3650 -in pki/PREMIUM.csr -CA pki/nesys.cer -CAkey pki/nesys.key -out pki/PREMIUM.cer -set_serial 0
# Generate server cert and key
openssl req -newkey rsa:2048 -nodes -keyout pki/server.key -out pki/server.csr -subj "/C=JP/ST=A/L=A/CN=*.nesys.jp"
openssl x509 -req -sha256 -days 3650 -in pki/server.csr -CA pki/nesys.cer -CAkey pki/nesys.key -out pki/server.cer -set_serial 0
# Pack the nesys CA and key into a p12
openssl pkcs12 -export -in pki/PREMIUM.cer -inkey pki/PREMIUM.key -certfile pki/nesys.cer -name "Nesica" -out pki/cert.p12

18
pki/PREMIUM.cer Normal file
View File

@ -0,0 +1,18 @@
-----BEGIN CERTIFICATE-----
MIIC4DCCAcgCAQAwDQYJKoZIhvcNAQELBQAwNTELMAkGA1UEBhMCSlAxCjAIBgNV
BAgMAUExCjAIBgNVBAcMAUExDjAMBgNVBAMMBW5lc3lzMB4XDTI0MDIyMTAwNDcw
N1oXDTM0MDIxODAwNDcwN1owNzELMAkGA1UEBhMCSlAxCjAIBgNVBAgMAUExCjAI
BgNVBAcMAUExEDAOBgNVBAMMB1BSRU1JVU0wggEiMA0GCSqGSIb3DQEBAQUAA4IB
DwAwggEKAoIBAQC8r+G6iwuoHnz1FaBMJKDgV7ZnITlzmlN/3dFI+pvlpWa9ttdG
o5/teD/55IKIVlbwGd4pIzKy6HHEejWP3dJRmaPAg14hD397r2KKdVebBEPH/DtS
hlPVHtdLNFHoqBQXxutBtSL7j4AukTcxx/H0aIQ+9T342IFhJ//VRUN8rFjjyjMC
rSxHL4VPSYKqKFtTJAY4vfHSNRKBVNQJKJXA7DVJFnQTvALpSK3vTA7qGqKUx7Vl
7g3lHyoTKUfKzCNo8ARZsJspmlmFOKdR2vIh/Z/tzI/Ugp3nvSjbKndM7EK3u9IB
I83GIM+ouf9vBY0Zgr/uZjscURWlkXDE0ifvAgMBAAEwDQYJKoZIhvcNAQELBQAD
ggEBADdY4wDumvnbpdjUI66fWKeLtgZV7W3KdzryxstnYkHyffQ1fNHJlP7C3Y60
sIF7ggweuRDdEq6ADgdzWQ1Qd/ngYQgNqBgGOmrPKQajFnf3AjeJvQbiW/AmkX7c
o3GoqXV62caD5JHqV/jS8qPmmBHvymVrT8AWecRU/d/k0e+bamdenMAqPON7A+NN
QHIeKC+zaE/rrauODAND2LfiVjLCJ9cBIm/8wIrSP8bc/+SuFI5chRm4W7b2E6iz
Yll1Jx6eKQxUQIjX/gNbDIHCbKVnm9HLRBJwCs3DfcME2if6SMVgWRMFJDKBgy+Y
EXE5ZLdXTjg2hg9/uQIaRA+73Dw=
-----END CERTIFICATE-----

16
pki/PREMIUM.csr Normal file
View File

@ -0,0 +1,16 @@
-----BEGIN CERTIFICATE REQUEST-----
MIICfDCCAWQCAQAwNzELMAkGA1UEBhMCSlAxCjAIBgNVBAgMAUExCjAIBgNVBAcM
AUExEDAOBgNVBAMMB1BSRU1JVU0wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC8r+G6iwuoHnz1FaBMJKDgV7ZnITlzmlN/3dFI+pvlpWa9ttdGo5/teD/5
5IKIVlbwGd4pIzKy6HHEejWP3dJRmaPAg14hD397r2KKdVebBEPH/DtShlPVHtdL
NFHoqBQXxutBtSL7j4AukTcxx/H0aIQ+9T342IFhJ//VRUN8rFjjyjMCrSxHL4VP
SYKqKFtTJAY4vfHSNRKBVNQJKJXA7DVJFnQTvALpSK3vTA7qGqKUx7Vl7g3lHyoT
KUfKzCNo8ARZsJspmlmFOKdR2vIh/Z/tzI/Ugp3nvSjbKndM7EK3u9IBI83GIM+o
uf9vBY0Zgr/uZjscURWlkXDE0ifvAgMBAAGgADANBgkqhkiG9w0BAQsFAAOCAQEA
EmY4+uARSH5nPSHBBCRnwtGLs/0sU/dZDl6lC4aUz36aL+qPyQMuOhZ/P2muvb0r
9+IvqXhfvh7VpwNsJYWTj3K3fD6tCL789MDbp5gJcflTSqFxrFwV4rjibIa5fpBk
q6NCT7uQOJdEZwPJohaIBZXGLELktJCU5Z0Odhg+cm5BcxNqm7i8gcC3LL9CypnI
R9Heluo2LTKGwrLHr8QjexUM8vcKNSGRsVE/ujTiTjm62UaIdEbFipwc6reZY37O
FbjvXDQFuYZ+yTaX4cih9JHDMwh7g1GzMDT5+M+k+qtVttEhxsrSAnp/kq+CfGV/
5wBFbKlQfM4bHEuNmTXFow==
-----END CERTIFICATE REQUEST-----

28
pki/PREMIUM.key Normal file
View File

@ -0,0 +1,28 @@
-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC8r+G6iwuoHnz1
FaBMJKDgV7ZnITlzmlN/3dFI+pvlpWa9ttdGo5/teD/55IKIVlbwGd4pIzKy6HHE
ejWP3dJRmaPAg14hD397r2KKdVebBEPH/DtShlPVHtdLNFHoqBQXxutBtSL7j4Au
kTcxx/H0aIQ+9T342IFhJ//VRUN8rFjjyjMCrSxHL4VPSYKqKFtTJAY4vfHSNRKB
VNQJKJXA7DVJFnQTvALpSK3vTA7qGqKUx7Vl7g3lHyoTKUfKzCNo8ARZsJspmlmF
OKdR2vIh/Z/tzI/Ugp3nvSjbKndM7EK3u9IBI83GIM+ouf9vBY0Zgr/uZjscURWl
kXDE0ifvAgMBAAECggEAbM5/vLKx5iCuriXqaf41RylNZesi1icIP5QKO6tIewUG
WiA1w+ZXMvlE6zV6kGQ5fftswQwrEEA6WrKecHfZ8HRImZsnjKkDOq/Ig09nVV0A
OTKagtwzO5KtVBC3qxJBg/SRdTKfGbGGmVPkIDDMtcQPfr6tHfK7qOsH/FQUtq8s
/sr0EDdBqGKeOi0MtmXOY32BejCqrEhiUEMI8YpBfndvDMWrYv0QIgdjLqw0Daz0
WW3/LchZJz/NQrGcpeOskQxXsPOqOlDxBKHnhREnkKzUcfaGeK8evAdk1VWrPlKD
d4qmxbzLe1GwyF+ClozLZK9n3NtVBrPdEx2v8FCkAQKBgQD16aIBr7H+mav6gG+x
FLWaVnJ7o6PpUdorkTyZx+8VT+0yVBk5JgT4XcL4jVIa4pvwm+cxzgR4ul9m3bPt
TMdjCmCwn5ctVv9tyVJFjHVfOX1rpILLB3tpFa1NUulLZDdGWUjYMTdasHmPIc5n
vCByw9E0EjElPGs7G5v9Ac/pHwKBgQDEbVBiIQxmCgsxTjuIgq5U+ZQHD+KCIKHm
/Nj6Yujz6xU/MHWWj8xfFvW9r+hgdBZq1HHMBYt1oV4UQx9NU79C8EY3yFQ0gHvY
urAbtWffaf0GxhIcfOU7dvqb00rsC2eWo0jvS+Opi89FjYeW5ioFaCdhuYDVDEZJ
6LiFOZNXMQKBgQC7gi5aAtJCRILyO8Tuzc+7o3cf96MgYZ1t4wzGZcFUCuHeommp
PehESZpFU9zrSyeEzBv5yhF2zQW5tgtgQk82oc8gXlAz7kZOPFhTV8qXlYqg7Ywd
q9LaSgEfGL1zEzNinOoCj2SZ7j6CeVCdoMFNQSrf/Y8jyXIqW98RiLQ0GQKBgQC7
xvCwTn2m0nUutmYtMxhrPYgoVCQqV/3ObusSOhoOjC5skOvoeiFayf00UASqqG+B
wwPikW5njlL8tconxyaxXDcUPptY8XbzkkymwH3DU3RC1Hkd6LvPZAdhjdUy4Bgw
Jnqj4H2MaI5GJG15cSC8uHvlbUve33QWVbaIDalwEQKBgBDw8c9aJe7zKMM6oX8X
WoGvf6t/qYXLoniC06A/VDEFShfR1n7lEavO/SibqN+k5T4E8Hayv0witjtIfF+6
4EOzMdGHDdvnpmtRgLCQXzTnK4FLV4Kig0qeLjKyknxrVp/ZiD7qgREG3uhrahu/
q6p2INBRts2uQQtVrBmOIJ87
-----END PRIVATE KEY-----

View File

21
pki/ca.cer Normal file
View File

@ -0,0 +1,21 @@
-----BEGIN CERTIFICATE-----
MIIDYTCCAkmgAwIBAgIJANXp0K4mLJbJMA0GCSqGSIb3DQEBCwUAMEcxCzAJBgNV
BAYTAkpQMQowCAYDVQQIDAFBMQowCAYDVQQHDAFBMSAwHgYDVQQDDBdUYWl0byBB
cmNhZGUgTWFjaGluZSBDQTAeFw0yNDAyMjEwMDM3MjRaFw0zNDAyMTgwMDM3MjRa
MEcxCzAJBgNVBAYTAkpQMQowCAYDVQQIDAFBMQowCAYDVQQHDAFBMSAwHgYDVQQD
DBdUYWl0byBBcmNhZGUgTWFjaGluZSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP
ADCCAQoCggEBAMeFW/ELRe8zoq9UKqs38o+NBeCfF85vGiB0ofpY83juq/ScKZ93
y3/0KDkKywIxZM9OOL8rRZ+n+hRtKE3dh0NOULyWZaaXnhc8dFegj2f/CfW67RtA
UMKkFoWgWy4s850aB7/1koCI9dCMJ9Kxo9WAHIEH/DHN05m2WVmUR2rpxgy1qX1N
ZEfnWWcybFO05GBoWlnMuTewAoDUna+hrMR9yVZEVPo+5zXELT1Q+fdJaeCMes7u
EvA309jlbN/jyauhE6oKtxOLmfUW/ug+o0i3WhHOnA7q/2awx6QBxeeJJ+jqHZ03
Wo56M0YSpYK6qUAgvbDyG7cdC492VevlBQkCAwEAAaNQME4wHQYDVR0OBBYEFICi
OTELnKwR7eleqpDecLGpDXq0MB8GA1UdIwQYMBaAFICiOTELnKwR7eleqpDecLGp
DXq0MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAAiMFrLniD8lFKhI
aFIdvOgU87qpfpe/FzTiHQZds751ktAl25n8QFon33SEsC8YUJjxN97Ng5xN4FM7
0Sj0FBfC+SjrcfvUH7fMuatFHE2Z4bNkjXv+13k5vZDxRA8DUV17D3dSo6QSAcYs
DgFednjyVb8ihJrKbhdRb/j3JQh8MVYoJ0YX43u//XJAvJJI4XNp6++HE748eGNa
RZnaOCpcXxpGtuuoAgwmiIN/uMPTLAIzGecmagw2o0jlS67PuFzyMlCfvIC9dmYQ
9Ep92SU8Ode73sPlT/CaKd6ajIL3JUxp2LBMRWBYcZXee7zwE1VphmOonHrIJkn3
y+IxMMg=
-----END CERTIFICATE-----

View File

28
pki/ca.key Normal file
View File

@ -0,0 +1,28 @@
-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDHhVvxC0XvM6Kv
VCqrN/KPjQXgnxfObxogdKH6WPN47qv0nCmfd8t/9Cg5CssCMWTPTji/K0Wfp/oU
bShN3YdDTlC8lmWml54XPHRXoI9n/wn1uu0bQFDCpBaFoFsuLPOdGge/9ZKAiPXQ
jCfSsaPVgByBB/wxzdOZtllZlEdq6cYMtal9TWRH51lnMmxTtORgaFpZzLk3sAKA
1J2voazEfclWRFT6Puc1xC09UPn3SWngjHrO7hLwN9PY5Wzf48mroROqCrcTi5n1
Fv7oPqNIt1oRzpwO6v9msMekAcXniSfo6h2dN1qOejNGEqWCuqlAIL2w8hu3HQuP
dlXr5QUJAgMBAAECggEAe18O9wGNgNdg5SEaMT0rE3CUDczSH6e7dA4qim6uPjz2
vw5A/oZIoxoKNRtjZDu+piEsHalYJ9zqWe8VWPB+TzQB4FrvCBAAhUWweu6hPiEJ
u5SWQJ+IUJK+CmqZdvf8u0v5Ns1WhXwq44WGqlWFhOLuvSp+2xz2lrmWjjmN36EM
aIrZKwVyt2FpF3lhCXbkfhrKMNiRKN9hJ1EnQXHxxNfaMVsGz+I8RZuLPKEh1D+o
EUY70BC3KBu4h7pVnskRB6pKVrlo1IcAoRmwAUKE4UkwTNawwYzeMV1a8OAHwgip
sF+GSpC/dY9rjc/EkTWpRQIRnFSMxVyuY6AevjsiAQKBgQD/d3LYeiLDmIyQnv+h
qwkMTn5QXZE7liH6EOy+QpAHyfmNidXW7+OY782bq2MLBFwkxHcDiQP0BaReK/IA
Xul1gsLDGH5Sq8GzUjWptyo8BbzqefNx37RmXUp0Z4GSPjVEyrN0BhcBtR44URDR
n514dAmr3W1dwrPuBAf7BHN+0QKBgQDH8AGv/9CB7WoYJXNZw68qy1et4dWLA7is
l7cP5prpFgyquMO/sjY8NPvLQg1G02G7kJWmCA2Ak2E/BbPjnVz64TW7k4VeyJHl
xsXVSWxM9TZqGNXZJTJNvw+tBzcLSzkt+8OlgkKf0KYJYLuqfYs/IhWpzdHBQL0v
1mNmDuBguQKBgQCHrvGYeIYuTL+bsFcljqnnl2kPViLk+wBgyMx04PWOrX+V5Tdm
SVMgz3zsyUJ5f39RJ+fuQL+Qw85hFgYanE5y01iONlwhnIfsriVCVr5f0sxb3Rmn
yaEPHU2GNdNj0RaJyv81CGb/ySqbzrKYI6aHa1oXpiuIOPlH2WxDrkGJgQKBgBl6
FMz3fPtBZHaFNyimDckXNin7D/nx1HNxtar6CJ1Q6PZMKu1faRfM7JTe6tAumVKM
PvV0KzxKC2c7c8u6PqHdVrp7NtB4IFc2N/lQrNM1n+RvG7jay4kqonW66KGwyS15
2llZuuGgdbfWMrOr4bV+w2HqzyKf/Dt/RxU3KhJJAoGBAJTISS+1XD/GuO5EXnMJ
xkfhaG3Ju+D7zJJwDa96OQ4+X+aon99HDyyiz1SHbotzhzrCscoHCg6UL+cFHq8Q
E5hnGrMUxqs/Z+vE7LXNydg8yOyvxIbkThsRDcBMhR+Rb6FF6DG+iaZ2SPaC5iCs
RVI7MDPkI6tophsf9b4pKfF+
-----END PRIVATE KEY-----

BIN
pki/cert.p12 Normal file

Binary file not shown.

18
pki/nesys.cer Normal file
View File

@ -0,0 +1,18 @@
-----BEGIN CERTIFICATE-----
MIIC8DCCAdgCAQAwDQYJKoZIhvcNAQELBQAwRzELMAkGA1UEBhMCSlAxCjAIBgNV
BAgMAUExCjAIBgNVBAcMAUExIDAeBgNVBAMMF1RhaXRvIEFyY2FkZSBNYWNoaW5l
IENBMB4XDTI0MDIyMTAwNDIwMFoXDTM0MDIxODAwNDIwMFowNTELMAkGA1UEBhMC
SlAxCjAIBgNVBAgMAUExCjAIBgNVBAcMAUExDjAMBgNVBAMMBW5lc3lzMIIBIjAN
BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA/RZZRet/bPypA5hGZCDEHwqDELdn
IVdochdXVbESMUqiDMAI8njtuEMK4iqIKvHzGGWEV1zzm9+zKPpPLsZKOkjfKfHq
8S9Hjy/kPaqXkuZupCPnlnuFNtp4zl/wyhFC0MQOhau12aXV72f458LYISPwahhk
Mo5unyA0y6Bzp/BwmoIGpF2dKn0hBdAAT1D39X8tQY+sT0njp5a5v8z25tv4eDrw
Fijy0N75YjUPiobzlO0uqyfK0oGefUwVuCb/hNIJzvg102JoLX8Wpk+X+0CxpYT8
xP9MiYyEm1/w3GQplF6Bf7XGVXCyB+XPU/nYPsyaJ/KOHcImhUKyeIP7BQIDAQAB
MA0GCSqGSIb3DQEBCwUAA4IBAQCz4UKaRZdRErTs7naLiFNfBo4bLiID/lTQ+Jax
8t8LvpGCycKalthlbW5SRqt8W1CIrOTlOdGEsCC0ehBYAWHzYAHfRVn4u9l1U06U
246GNKFqhfr6pHHyJWVY1SvXHLZStuPxxS0y0Gb/T6nRzy3yaAB3hJSkRs9Lm6cd
HTEWmFLmP/NffC2eziidVaTA/2Dp3rWgQknTIqIOadNMJkl91sceE0lYSxDf/2oJ
69Ocubp26JCn106dTbd0osOyH7/OFiwdTXag/F0hQWry6FTtp/VdWEl8SUKQdFSf
hF14QZAMRCAQoz+epHLZDa9crqeEqirYJJikdF+HsiJl5SrH
-----END CERTIFICATE-----

16
pki/nesys.csr Normal file
View File

@ -0,0 +1,16 @@
-----BEGIN CERTIFICATE REQUEST-----
MIICejCCAWICAQAwNTELMAkGA1UEBhMCSlAxCjAIBgNVBAgMAUExCjAIBgNVBAcM
AUExDjAMBgNVBAMMBW5lc3lzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEA/RZZRet/bPypA5hGZCDEHwqDELdnIVdochdXVbESMUqiDMAI8njtuEMK4iqI
KvHzGGWEV1zzm9+zKPpPLsZKOkjfKfHq8S9Hjy/kPaqXkuZupCPnlnuFNtp4zl/w
yhFC0MQOhau12aXV72f458LYISPwahhkMo5unyA0y6Bzp/BwmoIGpF2dKn0hBdAA
T1D39X8tQY+sT0njp5a5v8z25tv4eDrwFijy0N75YjUPiobzlO0uqyfK0oGefUwV
uCb/hNIJzvg102JoLX8Wpk+X+0CxpYT8xP9MiYyEm1/w3GQplF6Bf7XGVXCyB+XP
U/nYPsyaJ/KOHcImhUKyeIP7BQIDAQABoAAwDQYJKoZIhvcNAQELBQADggEBANF+
3vv0YO3XD1Zy9RuaVjRQbho+d8eB5ahA0Efd37xJccZgU9T9DioTw06Ja8ZQi0qt
JscKRHPFhA1j20ahfUki40eEL+HoX/PyOIRxtgbas8qOpbPuwPeWGYH/OrSGs2yF
Q2y35m8oDL/PisMqx00OBPvjFYmZXZtAOfbdsjQAoaefdLwYVgX5fPKvQ7CD1Pxq
hwwsfbkzgACVk99Krn1UNe8fuoFYwJtFQFeaHtKiKq/flkfB0kbzHqQy5EgHCanh
bNlpEzv/9ag1FMI2FsayJcZll3mpYb8NcgF9HqE4KTaVcVR/zxbDlGJCCsnRoWsP
7S5ZtMqNI3SppEl/msU=
-----END CERTIFICATE REQUEST-----

28
pki/nesys.key Normal file
View File

@ -0,0 +1,28 @@
-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQD9FllF639s/KkD
mEZkIMQfCoMQt2chV2hyF1dVsRIxSqIMwAjyeO24QwriKogq8fMYZYRXXPOb37Mo
+k8uxko6SN8p8erxL0ePL+Q9qpeS5m6kI+eWe4U22njOX/DKEULQxA6Fq7XZpdXv
Z/jnwtghI/BqGGQyjm6fIDTLoHOn8HCaggakXZ0qfSEF0ABPUPf1fy1Bj6xPSeOn
lrm/zPbm2/h4OvAWKPLQ3vliNQ+KhvOU7S6rJ8rSgZ59TBW4Jv+E0gnO+DXTYmgt
fxamT5f7QLGlhPzE/0yJjISbX/DcZCmUXoF/tcZVcLIH5c9T+dg+zJon8o4dwiaF
QrJ4g/sFAgMBAAECggEBAK83Fb8udx3BHlH6zmDrvluvL2YXUzLmDM1QE4qj+HBf
tykUmh0kU4/J+nLx9yukLiSpw6GoHI/Bo4uvH7rGVQVdBgNIFNu9W9Fp2p5GyIFP
PzIsGV05TtTXE+Ps0AtVP+jAkz0/z7pK8X25gb0STAdFlmAdWuEVcsh/x41iHDAb
CaZ8XxNgVETq7g6E/UtFsOImEKdZk2MD55Xvzo3cXwEyNSKxVoRQftAndOgOyj5D
Z1XMlBfNzyQks92TMoppOE7gPRjiEScxbQiyTOLBkQIgEcBcBXIbSI5lGA5aB1Ul
Y7Hkgt9pnwntM+sqlNYC19odTJFJl98geE+ZWdtEkdECgYEA//aF7Si6mOMqBHsx
j/INnx29EEMERpHIFX5q9sueS1uZSY7k9dKm7lCIqAVaFp/BROM//cJAMUmltVBh
kqgu/aKMSkv7vProXh/nWFb1f6qscupyBn5vwuovx2DEAqLypRe0AlMVjXJ9ou8z
oQHQh4zJrabjXDfLNbFUAjInCasCgYEA/R+4FyMf5JWwTfthAdeu150bfkI3YVYC
ep9kBfOljwIIwhFE3QzULHHbjyMDRH6iiJF4mDp7GBFhNAYgEUh11jCVcHf/9XEe
aGyzw+DodiLCCcgQVXWodhdDEH0yy3NC1xIpa6FIPAayhhnD5cfn1QMM1sz95olR
JvKpdhapPg8CgYEAwFQgtd8QtqiafduDlkGu8oyJ75orsEsCKQRgoyjEvKMLPzZb
3Ep4nEFvLbE3zCAmPPj0sFwxl9da6C6J4oT1Kiflej413f46c99NGhfdSByaj46S
N0bx+2e0lv+iyMhfwqVY4RZE74/Dz5YlGSof4nprYEwyMqzJyIKCOVQt+RkCgYBo
4IWUAJesTGE6TleJPeZRq+TCUYlEqTBpwjTdSnBkaoFad3FC7ZfTunEwQ1+NN7L8
RtniqQhrlnfh6E/NGWrJjmO8r9u7xFzHA5MQK9XlbM1c5CnwXsmn9EdzQ4ySQ3WE
SyAiWjbluBir+2zxffyOg68EKPdiV67qJk0Ugpso/QKBgHGZMxR8HUxMXvQAe4a1
IzO7BB1p603QpJhjiEdGk0hebdTlgidH/K66qXF/yC65WUKRrkmB9FJn2XHRixYm
LfkK/Ri+E7HvU3Jh+TA9EIFjfBEwmyW5e3lRnsUTPvWqpYfkZ4CpVWvK9ToiVSvk
54cxC1xymzbdz2s2j0t6PKcB
-----END PRIVATE KEY-----

1
pki/nesys.srl Normal file
View File

@ -0,0 +1 @@
AF42C2A18772915D

18
pki/server.cer Normal file
View File

@ -0,0 +1,18 @@
-----BEGIN CERTIFICATE-----
MIIC7DCCAdQCCQCvQsKhh3KRXTANBgkqhkiG9w0BAQsFADA1MQswCQYDVQQGEwJK
UDEKMAgGA1UECAwBQTEKMAgGA1UEBwwBQTEOMAwGA1UEAwwFbmVzeXMwHhcNMjQw
MjIxMDQzMDQ0WhcNMzQwMjE4MDQzMDQ0WjA7MQswCQYDVQQGEwJKUDEKMAgGA1UE
CAwBQTEKMAgGA1UEBwwBQTEUMBIGA1UEAwwLKi5oYXkxdHMubWUwggEiMA0GCSqG
SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCfa3fEOLumZsrY4l8gK6FwAefAawAVH6SZ
suNSY3x3gizZcbKlUlEb+Ctm9rgiagO78eyX5vHggW3WdUshN38OULWSXLsl6dRB
qw4i9KYZjMZ7qD38qqplbeq0llOJwpcZYLgh981yb6KtFlNlFXG7/Wc5VAoahjn8
wBVMbU5hpHWO2qWer+ih3zS2U53nVVVlgGkN9uBhQXtaknW53zNEyoeI3TdpT6Eu
5yyO97UL08V2JolZY9e24GkUbvc4yvy5NofOeXTlaW1mIxmrwLxA4Pmjng1jn67C
9m6p4skRjw4Xm+LgvkbJzJqpGRuqb2TurNjxhuXjLu5WZKJH3y1pAgMBAAEwDQYJ
KoZIhvcNAQELBQADggEBAGqKO9qH0kwoCzpVZErKA6rtArHWU+Qd+lYmrzN4ZH9H
w7Gl4/z+GVhna6CLlgvrD/g7J5jU9Yo/5s0Td5ScckBR8v9GJ32IvcvK2yvvYHvE
6A8j5TkPpnPrXViNOYtb97irnU1sDnFy8CU1rSMfG6sPr7QF+D7h8IEuMo+IXaAW
+2rRG5o5E21c4nXmDSuATm4B/YadnHek86AHAsQMbJXVBUhBZ3+olyttvGJQAE3j
mXza8btMoEy24/Xw3FkuK21JlwS5W3Oy6M4kJUSQnJ1zGUYk34i5UsABpDoIOdVQ
gmWgzoRLisvVVaeAk9V04T+4qBLFJmHr+w+9rW0O8jw=
-----END CERTIFICATE-----

16
pki/server.csr Normal file
View File

@ -0,0 +1,16 @@
-----BEGIN CERTIFICATE REQUEST-----
MIICgDCCAWgCAQAwOzELMAkGA1UEBhMCSlAxCjAIBgNVBAgMAUExCjAIBgNVBAcM
AUExFDASBgNVBAMMCyouaGF5MXRzLm1lMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
MIIBCgKCAQEAn2t3xDi7pmbK2OJfICuhcAHnwGsAFR+kmbLjUmN8d4Is2XGypVJR
G/grZva4ImoDu/Hsl+bx4IFt1nVLITd/DlC1kly7JenUQasOIvSmGYzGe6g9/Kqq
ZW3qtJZTicKXGWC4IffNcm+irRZTZRVxu/1nOVQKGoY5/MAVTG1OYaR1jtqlnq/o
od80tlOd51VVZYBpDfbgYUF7WpJ1ud8zRMqHiN03aU+hLucsjve1C9PFdiaJWWPX
tuBpFG73OMr8uTaHznl05WltZiMZq8C8QOD5o54NY5+uwvZuqeLJEY8OF5vi4L5G
ycyaqRkbqm9k7qzY8Ybl4y7uVmSiR98taQIDAQABoAAwDQYJKoZIhvcNAQELBQAD
ggEBAHQoS2g/eIlzHJvpwuUIJCGeoI/O80Nubt9m9Oz+Bzw0BoUrBjS6RGd6fswm
nuvjFeOObLEkMWHot45ESLcBtc+yBjBaJwSRUpwWpHtPL5ROzZTAr+iXuOohJ9LU
WBDXC+phSuHqVPsPnWqofBYlQubWDjIXIlSuWQe9zTRCVYhPpPwopr9QGnBkt/Nb
pufDIs31D38BzP8QOCpzgAfD2c+7M4T+4rgtqYEs3TeXZnQ1g7kEl8VVkaDegdCZ
3lqe6yo5i2oQofN2gcNYkBm2plv5hr3EYSa/3QXpTyB/U74lGjyHU1cAvgXepSmh
N61JkbrECSGG0nWBi4IbVEqJeRc=
-----END CERTIFICATE REQUEST-----

28
pki/server.key Normal file
View File

@ -0,0 +1,28 @@
-----BEGIN PRIVATE KEY-----
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCfa3fEOLumZsrY
4l8gK6FwAefAawAVH6SZsuNSY3x3gizZcbKlUlEb+Ctm9rgiagO78eyX5vHggW3W
dUshN38OULWSXLsl6dRBqw4i9KYZjMZ7qD38qqplbeq0llOJwpcZYLgh981yb6Kt
FlNlFXG7/Wc5VAoahjn8wBVMbU5hpHWO2qWer+ih3zS2U53nVVVlgGkN9uBhQXta
knW53zNEyoeI3TdpT6Eu5yyO97UL08V2JolZY9e24GkUbvc4yvy5NofOeXTlaW1m
IxmrwLxA4Pmjng1jn67C9m6p4skRjw4Xm+LgvkbJzJqpGRuqb2TurNjxhuXjLu5W
ZKJH3y1pAgMBAAECggEASetW2VFFEV9QZ0hvu0b/0CPSBdKXczP86peb+DPRHsjp
atnhb+6/VSy5U0DLGIn3uUnv3m9jcCoTeAFjGL/W1hhuWLNOw8GsfdaG84ZlDivM
TMIyG9o2sFlLHvklOxdTYJ0MRBPW210QHRnhCVnsJrLVDiv9k1bxxFR8i7eTRIp1
68EIIOdcLGVvTvLE1LmIWlF+RpoVBf8fIMZt+xV9litfM5BShYVibx4g1OPvBCsg
FEzSme7C4Dh5SbiJmMUD0LiLJnu0J98bfECtEGQyDMDy6b+20C2/OoYCRCCElxHN
D+ExJWNcR6TPI4ZAIhXcXmu5GEe6STMZdVRs4UUbEQKBgQDMl0cYcFriA5leJ/15
XaooxyV75aJc0aAtYnzUKhji3mTGHDUQqtATaD4AoecZNbAqFOBp6fxU9ggzI55n
Hk0l+qUFkES1zuMGBjca/NUcfRX796mWIX3hGdMgA3beiUDEmwXeruiKFLaMxD45
GLzUtDjpwGVwMVGNHrAHldOKBwKBgQDHendhoKNuTruuSMRvwT/n8b2wVS2ykYQU
UEH8zT5OJSapirgSnHbteQRbg+N0cXdxvBTD47d32AiwT8JH6ZMQN73bE+zhkGpF
lNv6Oel7BsrCAR7AYgFS7pyckw5DxFWqa5VeE/DiHrf7J8Q+QdnvY0KBEYP4Oyui
/dS7q8txDwKBgDMyaAgllZiZbfex6ixE1CAANdEbVdYEXyD8VGCDaFbdcDpjNKRH
GmrA20MtQLd+R+c/8iiO9SYNq1+gujLz0jp+zmzl/UvBye3oAEIwouPOKYI0J6v6
FZYO8FZCh6yIjDymzoE7I9Xp+QSg1zFSj25q6xMTok7BCLdXxpUfWSBhAoGAOXQw
hlH6QH8011HmIjoK6gdalzsxWklHPYKQPvvught5M0PdGJ8wMd21P5aRIKy9tmhx
oqon4cC7X+zZDFVeIkGr0Tm/9Iff1AK4CS487U5bf91KuiaAMx6+xOomJaaa9ebe
sqYTr00huJkPkM7usmBoezxMQmbofp2VdChbBEkCgYBXrCTpXvyE7xrOOk3xq1/d
6QoD0IlXQ3jFrvfq0nbP2mbkqfLihXBKhk210SlQc29tYreQjXDUYz2AtFY6Y1Lg
Udk9w6brlMdMKfSIWinar+WHIlLeddB+2lSoh3HlwBaXOxSRsCwxt6r40zNB69Ed
//VqFxmwfwxpJGZZqPhC6Q==
-----END PRIVATE KEY-----

View File

@ -156,7 +156,9 @@ HCERTSTORE WINAPI hook_CertOpenStore(
DWORD dwFlags, DWORD dwFlags,
const void *pvPara) const void *pvPara)
{ {
if (lpszStoreProvider <= CERT_STORE_PROV_PKCS12) { BYTE bfr[4096] = {0};
DWORD num_read = 0;
/*if (lpszStoreProvider <= CERT_STORE_PROV_PKCS12) {
dprintf("Cert: Open store for %p -> %S (%04X)\n", lpszStoreProvider, (wchar_t *)pvPara, (int)dwFlags); dprintf("Cert: Open store for %p -> %S (%04X)\n", lpszStoreProvider, (wchar_t *)pvPara, (int)dwFlags);
} else { } else {
dprintf("Cert: Open store for %s\n", lpszStoreProvider); dprintf("Cert: Open store for %s\n", lpszStoreProvider);
@ -173,5 +175,26 @@ HCERTSTORE WINAPI hook_CertOpenStore(
} }
dprintf("Cert: Failed to open store %08X\n", (int)err); dprintf("Cert: Failed to open store %08X\n", (int)err);
} }
return ret;*/
HANDLE f = CreateFileW(path, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if (f != INVALID_HANDLE_VALUE) {
dprintf("Cert: Read file %S\n", path);
ReadFile(f, bfr, sizeof(bfr), &num_read, NULL);
CloseHandle(f);
if (bfr[0]) {
CRYPT_INTEGER_BLOB blob = {
.pbData = bfr,
.cbData = num_read
};
dprintf("Cert: detour open of %S to %S\n", (wchar_t *)pvPara, path);
HCERTSTORE ret = next_CertOpenStore(CERT_STORE_PROV_PKCS12, X509_ASN_ENCODING | PKCS_7_ASN_ENCODING, hCryptProv, dwFlags, &blob);
dprintf("Cert: Open %p\n", ret);
return ret; return ret;
} }
}
return next_CertOpenStore(lpszStoreProvider, dwEncodingType, hCryptProv, dwFlags, pvPara);
}

View File

@ -44,7 +44,7 @@ void cert_config_load(struct cert_config *cfg, const wchar_t *filename)
GetPrivateProfileStringW( GetPrivateProfileStringW(
L"cert", L"cert",
L"path", L"path",
L"cert", L"cert.p12",
cfg->path, cfg->path,
_countof(cfg->path), _countof(cfg->path),
filename); filename);

View File

@ -113,5 +113,5 @@ static HRESULT syscfg_event_path(void *bytes, uint32_t *nbytes)
static HRESULT syscfg_log_path(void *bytes, uint32_t *nbytes) static HRESULT syscfg_log_path(void *bytes, uint32_t *nbytes)
{ {
return reg_hook_read_wstr(bytes, nbytes, L"D:\\log"); return reg_hook_read_wstr(bytes, nbytes, L"D:\\");
} }

View File

@ -96,8 +96,8 @@ BOOL WINAPI DllMain(HMODULE mod, DWORD cause, void *ctx)
{ {
HRESULT hr; HRESULT hr;
if (cause == DLL_THREAD_ATTACH && sizeof(uint64_t) == 4) { if (sizeof(uint64_t) == 4) {
dprintf("Connected\n"); printf("Connected\n");
} }
if (cause != DLL_PROCESS_ATTACH) { if (cause != DLL_PROCESS_ATTACH) {

View File

@ -1,4 +1,4 @@
[wrap-git] [wrap-git]
directory = capnhook directory = capnhook
url = https://github.com/Hay1tsme/capnhook url = https://github.com/Hay1tsme/capnhook
revision = dbdcd61b3a3043b08f86f959bd45df4967503a77 revision = 09306229f1fd09bae0e617865a26778d3537ff93