a quick backup push

This commit is contained in:
Superwhiskers 2018-03-20 17:41:43 -05:00
parent 3745c61d44
commit 329b692d69
3 changed files with 105 additions and 17 deletions

64
data.go
View file

@ -17,10 +17,10 @@ type isitworkingStruct struct {
// TODO: somewhere in here include a list containing a list of templates to add
// pretendo stock config
var pretendoConf = map[string]string{"account.nintendo.net": "account.pretendo.cc"}
var pretendoConf = map[string]map[string]string{"config": map[string]string{"decryptOutgoing": "false"}, "endpoints": map[string]string{"account.nintendo.net": "account.pretendo.cc"}}
// local stock config
var localConf = map[string]string{"account.nintendo.net": "127.0.0.1:8080"}
var localConf = map[string]map[string]string{"config": map[string]string{"decryptOutgoing": "true"}, "endpoints": map[string]string{"account.nintendo.net": "127.0.0.1:8080"}}
// test endpoints
var testEndpoints = map[string]map[string]string{"official": map[string]string{"account": "account.pretendo.cc"}, "local": map[string]string{"account": "127.0.0.1:8080"}, "ninty": map[string]string{"account": "account.nintendo.net"}}
@ -30,3 +30,63 @@ var resMap = map[string]string{"account": "account.nintendo.net"}
// icons used for displaying results
var utilIcons = map[string]string{"success": "√", "failiure": "×", "uncertain": "-"}
// the nintendo CA cert
var nintyCert = []byte(`-----BEGIN CERTIFICATE-----
MIIEwzCCA6ugAwIBAgIBBjANBgkqhkiG9w0BAQsFADBtMQswCQYDVQQGEwJVUzET
MBEGA1UECBMKV2FzaGluZ3RvbjEhMB8GA1UEChMYTmludGVuZG8gb2YgQW1lcmlj
YSBJbmMuMQswCQYDVQQLEwJJUzEZMBcGA1UEAxMQTmludGVuZG8gQ0EgLSBHMzAe
Fw0xMDA1MTMxOTE5NDZaFw0zNzEyMjIxOTE5NDZaMIGlMQswCQYDVQQGEwJVUzET
MBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEiMCAGA1UEChMZ
TmludGVuZG8gb2YgQW1lcmljYSwgSW5jLjELMAkGA1UECxMCSVMxGjAYBgNVBAMT
EUNUUiBDb21tb24gUHJvZCAxMSIwIAYJKoZIhvcNAQkBFhNjYUBub2EubmludGVu
ZG8uY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA81Vzs324jZwc
NpbFESgDNooVTRP1TlxvYwz8bbHnJHhImjEJNO29YSTpjmF7wonczooeKXfE/Ry2
+ey9mk92UhzSnvuSHQ6P2zFBbcPnE8eBi73oDnErgixiWe1TKP1G5LvwOqrEkVmX
LN/qnLrsfFp4QNyFc+PLvJ9IAfRSBwdRJHAiSgE9nB9eI7AGcM6DCw7+p9zEz6rN
RHUVRc5I132wJpQa8aoWaqPW7LE8exEC3VSfDHRVPjZUMRhfoBVSi2NfiA3xYsqk
v+Ct3E+bzW8y1aAQ7wIshQ/RGcLtVZE+tkoAznXewVLdKtcC67Vy4awhJ/BqK1tv
c26qV3zIJwIDAQABo4IBMzCCAS8wCQYDVR0TBAIwADAsBglghkgBhvhCAQ0EHxYd
T3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFIzG7XO5Ojx2
G45r5dTszWF1rcFtMIGXBgNVHSMEgY8wgYyAFATT3tP98MjrwlmSh/sf1z5y+O35
oXGkbzBtMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEhMB8GA1UE
ChMYTmludGVuZG8gb2YgQW1lcmljYSBJbmMuMQswCQYDVQQLEwJJUzEZMBcGA1UE
AxMQTmludGVuZG8gQ0EgLSBHM4IBATA7BgNVHR8ENDAyMDCgLqAshipodHRwOi8v
Y3JsLm5pbnRlbmRvLmNvbS9uaW50ZW5kby1jYS1nMy5jcmwwDQYJKoZIhvcNAQEL
BQADggEBAEOXZ/3IkNuFUfdxHpP0vrcSCTnDqMk8gsLVbN39BJT8Wqm8e3MFNhS/
Y1YOWgoIPtJp4cd2tXM3cXWzUZgm3SKd1XX/B81PFLEYlk+metUqB4jpF0ApCZs6
RNoXDBTx6XzsC07CA3uaxEdeWjC5Nl29AHuZ1YC/Z+7Da57TwBaa+/APj4y5mGUa
ahbvwpe1t3GSNOS5nBDSeCHAKLmzfnXpliA5qQZxo94RSXIVWK8hilXoFDQCL904
OGpgZnAhz4p3rcJYTq9ub8n6NYr9OJKKbWXfJY1QK4pXFVcIuAph0o/EyzDIEXuT
J4Q4b2km8uI0H4yxsQwUX9Epw6Vbujc=
-----END CERTIFICATE-----`)
// the nintendo CA key
var nintyKey = []byte(`-----BEGIN RSA PRIVATE KEY-----
MIIEwAIBADANBgkqhkiG9w0BAQEFAASCBKowggSmAgEAAoIBAQDzVXOzfbiNnBw2
lsURKAM2ihVNE/VOXG9jDPxtseckeEiaMQk07b1hJOmOYXvCidzOih4pd8T9HLb5
7L2aT3ZSHNKe+5IdDo/bMUFtw+cTx4GLvegOcSuCLGJZ7VMo/Ubku/A6qsSRWZcs
3+qcuux8WnhA3IVz48u8n0gB9FIHB1EkcCJKAT2cH14jsAZwzoMLDv6n3MTPqs1E
dRVFzkjXfbAmlBrxqhZqo9bssTx7EQLdVJ8MdFU+NlQxGF+gFVKLY1+IDfFiyqS/
4K3cT5vNbzLVoBDvAiyFD9EZwu1VkT62SgDOdd7BUt0q1wLrtXLhrCEn8GorW29z
bqpXfMgnAgMBAAECggEBAMFOTib2JgmhTax0I8OYVM0b7wYXZ9XDit1WMKZ4INaR
E6QidlzszHiC2WO5v5Zw7M/LW2C3++7Tw+xRjOIsZCOhMBUKZy3cJp4LyB2J9mV5
JUm9KL9oWhcEaXFlHp4+bvZA8vu4M4YAdR86FuhBeqLjQArO5NmGypBivNKIpC1d
rwzSMyPddZvur7AsTIK0Ym9SwWN9eK7F2uBkzAneOugOTEAhq2ZnPMByNtjpTvw/
nvgNAB4Ukz/oomtleCaw92SoSlQlYGzVmuhvt4QqOQzS1V+ToauUhmAPmWEHF3IJ
yL1SiY7UmMlqQoGFV6IH4cwLiwm1wk/IF1tkfvR0gmECgYEA/vhTJYn/Gd3XY2tm
vJs5pvmkJJgNxqgunOCFZxrGxf4BLvQGkRnBlT4MzFa1J8ZNtU6VOVbQsS7cD0ke
2Kyv5rdt/7K2/bNdG4Ocnd+GcWpEtF+ik2wEQB48FQvYSQn/w5NKyJlyYOhXKGe3
XhTiyV5rCwiLfRP8pxAO0xLzVhcCgYEA9FEX+hlxYdg2bVfx+geI9uW0COLi7kzc
xxlPjBvdFltYsltSNLP+0BNqHfp3G5PW/XMTAdZnS9033gy4jLU6fAge8FcnLybh
GrpVNCnMY+DLRyVtlu1fcKKH59BK/ElR7aamxqJyw1JO2Z35u251nIbmrMgs5Txp
8aZ4HXCveHECgYEA1mRybddKhTKPwU53FdKkOK4jgo3Ez61tfIYiRl8ykxuRXSze
NLZmm5qQYmXqb+aEQxcvzQYd907CxaujX2hdhG/q854P1uYyPUd+sxVYVBeaa90a
tEGYlV2XAc9y73+T65z3vhOhJLFZUGVdv6NqSw60jZOCzwq2YLfU71E5AcMCgYEA
jQ6c90rlSYaZtfvGu4LKMzJgBZlpSAicl18nrE8SEKxgw2kyRzd88QmkhPZs+kEb
KW3dFXyCWyy36r4RdzvTLnVJ152aBAFAijv2oY1YcnoBI2yanz8hkVhlexOpl4uF
f95t/9UeyWKmH8KzwuF9igfg+vT/5sJAsMJaKzU6OiECgYEAlKK+RKTYwquD+3gK
o1gsGI+nR96Cb1kvfXzsj+V5UkZchew2pOqhrqpPknGIlFCeTDYjN8jqJyX4EljJ
1FTegfhfSe+XR7KOIh8b+d+fgftyRIp3M//BUF1FtwL789f/VakaIkz6Ret/+8tA
3UHqKKGtgSRL9kiTMVYy64pBG9A=
-----END RSA PRIVATE KEY-----`)

View file

@ -36,6 +36,9 @@ func startProxy(configName string, logging bool) {
// get the config data
config = readJSONFile(configName)
// check if we decrypt all connections
decryptAll := config["config"].(map[string]interface{})["decryptOutgoing"].(string)
// check if log file exists
if doesFileExist("maryo/proxy.log") == false {
@ -62,6 +65,9 @@ func startProxy(configName string, logging bool) {
// set some settings
// add the ninty cert and key to the proxy for decrypting
setCA(nintyCert, nintyKey)
// verbose mode can be a little... too verbose
proxy.Verbose = logging
@ -104,23 +110,30 @@ func startProxy(configName string, logging bool) {
// check if it is in it in the first place
// also, strip the URL of the port
if redirTo, isItIn := config[strings.Split(r.URL.Host, ":")[0]]; isItIn {
if redirTo, isItIn := config["endpoints"].(map[string]interface{})[strings.Split(r.URL.Host, ":")[0]].(string); isItIn {
// if protocol is HTTPS
// disabled this during testing
/*if r.URL.Scheme == "https" {
// check if we decrypt all outgoing connections
if decryptAll == "true" {
// set it to HTTP
r.URL.Scheme = "http"
// if protocol is HTTPS
if r.URL.Scheme == "https" {
}*/
// let the user know
fmt.Printf("-> switching protocol to http\n")
// set it to HTTP
r.URL.Scheme = "http"
}
}
// log the redirect
consoleSequence(fmt.Sprintf("-> proxying %s%s%s to %s%s%s\n", code("green"), r.URL.Host, code("reset"), code("green"), redirTo.(string), code("reset")))
writeFile("maryo/proxy.log", fmt.Sprintf("-> proxying %s to %s", r.URL.Host, redirTo.(string)))
consoleSequence(fmt.Sprintf("-> proxying %s%s%s to %s%s%s\n", code("green"), r.URL.Host, code("reset"), code("green"), redirTo, code("reset")))
writeFile("maryo/proxy.log", fmt.Sprintf("-> proxying %s to %s", r.URL.Host, redirTo))
// redirect it
r.URL.Host = redirTo.(string)
r.URL.Host = redirTo
}

View file

@ -142,7 +142,7 @@ func setup(fileMap map[string]string) {
}
// create config var
var config map[string]string
var config map[string]map[string]string
// show log when
clear()
@ -321,15 +321,22 @@ func setup(fileMap map[string]string) {
}
// make a map for the config
config = make(map[string]string)
config = make(map[string]map[string]string)
// make the endpoints and config a map[string]string
config["endpoints"] = make(map[string]string)
config["config"] = make(map[string]string)
// apply a nice helping of all of the working endpoints to the config
for x := 0; x < len(cfgTest); x++ {
if cfgResult[x] == true {
config[testEndpoints["ninty"][cfgTest[x]]] = testEndpoints[using][cfgTest[x]]
config["endpoints"][testEndpoints["ninty"][cfgTest[x]]] = testEndpoints[using][cfgTest[x]]
}
}
// set some config vars
config["config"]["decryptOutgoing"] = "true"
// wait for them to press enter
fmt.Printf("\npress enter to continue...\n")
_ = input("")
@ -342,7 +349,11 @@ func setup(fileMap map[string]string) {
numVals := 0
// config
config = make(map[string]string)
config = make(map[string]map[string]string)
// make the endpoints and config a map[string]string
config["endpoints"] = make(map[string]string)
config["config"] = make(map[string]string)
// temp vars
var inputtedFrom string
@ -370,12 +381,16 @@ func setup(fileMap map[string]string) {
}
// place them in the config var
config[inputtedFrom] = inputtedTo
config["endpoints"][inputtedFrom] = inputtedTo
// update info
numVals++
}
// set default config vars
config["config"]["decryptOutgoing"] = "true"
// loading a template
} else if method == "3" {