• Viernes 15 de Noviembre de 2024, 10:30

Autor Tema:  problema en Python  (Leído 1465 veces)

koxesaurio

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
problema en Python
« en: Domingo 31 de Octubre de 2010, 00:18 »
0
Buenas, soy nuevo y esperaba si alguien con capacidad pudiera darme una idea mi problema, actualmente manejo un servidor de juegos privado el cliente usa en si programacion python al 100% y los archivos se puede leer y modificar a gusto por cualquier persona y ay esta el punto llueven los hacks la idea mia es modificar un archivo python especificamente el que contiene las ips de conexion al servidor + puertos para que no puedan mirarlo y haci no usar otros cliente donde cargan los hacks escondiendo la ip en el cliente solo me tocaria instalar un firewaal en el ordenador que actualmente es FreeBSD Unix para bloquear el ping desde afuera para que no puedan saber de ninguna forma a que ip y que puerto se conectan espero hacerme entender ahora mostrare el archivo en el cual van las ip y es el que quiero encryptar para que sea un codigo no visto a simple vista.

Código: Python
  1.  
  2.  
  3. import os
  4. import app
  5. import locale
  6. import debugInfo
  7.  
  8. def BuildServerList(orderList):
  9.     retMarkAddrDict = {}
  10.     retAuthAddrDict = {}
  11.     retRegion0 = {}
  12.  
  13.     ridx = 1
  14.     for region, auth, mark, channels in orderList:
  15.         cidx = 1
  16.         channelDict = {}
  17.         for channel in channels:
  18.             key = ridx * 10 + cidx
  19.             channel['key'] = key
  20.             channelDict[cidx] = channel
  21.             cidx += 1
  22.  
  23.         region['channel'] = channelDict
  24.  
  25.         retRegion0[ridx] = region
  26.         retAuthAddrDict[ridx] = auth
  27.         retMarkAddrDict[ridx*10] = mark
  28.         ridx += 1
  29.  
  30.     return retRegion0, retAuthAddrDict, retMarkAddrDict
  31.    
  32. if (locale.IsEUROPE() and app.GetLocalePath() == "locale/es"):
  33.     STATE_NONE = "OFF"
  34.                    
  35.     STATE_DICT = {
  36.         0 : "....",
  37.         1 : "NORM",
  38.         2 : "BUSY",
  39.         3 : "FULL"
  40.     }
  41.  
  42.     SERVER01_CHANNEL_DICT = {
  43.         1:{"key":11,"name":"CH1   ","ip":"aqui va la IP","tcp_port":13000,"udp_port":11002,"state":STATE_NONE,},   
  44.         2:{"key":12,"name":"CH2   ","ip":"aqui va la IP","tcp_port":16000,"udp_port":11002,"state":STATE_NONE,},   
  45. #       3:{"key":13,"name":"CH3   ","ip":"aqui va la IP","tcp_port":18000,"udp_port":11002,"state":STATE_NONE,},   
  46. #       4:{"key":14,"name":"CH4   ","ip":"aqui va la IP","tcp_port":42000,"udp_port":11002,"state":STATE_NONE,},   
  47. #       5:{"key":15,"name":"CH5   ","ip":"aqui va la IP","tcp_port":22000,"udp_port":22000,"state":STATE_NONE,},   
  48.     }
  49.    
  50.     SERVER02_CHANNEL_DICT = {
  51.         1:{"key":21,"name":"CH1   ","ip":"aqui va la IP","tcp_port":18000,"udp_port":31002,"state":STATE_NONE,},   
  52. #       2:{"key":22,"name":"CH2   ","ip":"aqui va la IP","tcp_port":20000,"udp_port":22000,"state":STATE_NONE,},   
  53. #       3:{"key":23,"name":"CH3   ","ip":"aqui va la IP","tcp_port":22000,"udp_port":22000,"state":STATE_NONE,},   
  54. #       4:{"key":24,"name":"CH4   ","ip":"aqui va la IP","tcp_port":42000,"udp_port":42000,"state":STATE_NONE,},   
  55. #       5:{"key":25,"name":"CH5   ","ip":"aqui va la IP","tcp_port":22000,"udp_port":22000,"state":STATE_NONE,},   
  56.     }
  57.     SERVER03_CHANNEL_DICT = {
  58. #       1:{"key":31,"name":"CH1   ","ip":"aqui va la IP","tcp_port":13000,"udp_port":13000,"state":STATE_NONE,},   
  59. #       2:{"key":32,"name":"CH2   ","ip":"aqui va la IP","tcp_port":32000,"udp_port":32000,"state":STATE_NONE,},   
  60. #       3:{"key":33,"name":"CH3   ","ip":"aqui va la IP","tcp_port":32000,"udp_port":32000,"state":STATE_NONE,},   
  61.     }
  62.     SERVER04_CHANNEL_DICT = {
  63. #       1:{"key":41,"name":"CH1   ","ip":"aqui va la IP","tcp_port":32000,"udp_port":32000,"state":STATE_NONE,},   
  64. #       2:{"key":42,"name":"CH2   ","ip":"aqui va la IP","tcp_port":32000,"udp_port":32000,"state":STATE_NONE,},   
  65. #       3:{"key":43,"name":"CH3   ","ip":"aqui va la IP","tcp_port":32000,"udp_port":32000,"state":STATE_NONE,},   
  66. #       4:{"key":44,"name":"CH4   ","ip":"aqui va la IP","tcp_port":32000,"udp_port":32000,"state":STATE_NONE,},   
  67.     }
  68.     SERVER05_CHANNEL_DICT = {
  69. #       1:{"key":51,"name":"CH1   ","ip":"aqui va la IP","tcp_port":12000,"udp_port":12000,"state":STATE_NONE,},   
  70. #       2:{"key":52,"name":"CH2   ","ip":"aqui va la IP","tcp_port":12000,"udp_port":12000,"state":STATE_NONE,},   
  71. #       3:{"key":53,"name":"CH3   ","ip":"aqui va la IP","tcp_port":12000,"udp_port":12000,"state":STATE_NONE,},   
  72. #       4:{"key":54,"name":"CH4   ","ip":"aqui va la IP","tcp_port":12000,"udp_port":12000,"state":STATE_NONE,},   
  73.     }
  74.  
  75.    
  76.     REGION_NAME_DICT = {
  77.         0 : "SPAIN",       
  78.     }
  79.  
  80.     REGION_AUTH_SERVER_DICT = {
  81.         0 : {
  82.             1 : { "ip":"aqui va la IP", "port":11002, },
  83.             2 : { "ip":"aqui va la IP", "port":31002, },
  84. #           3 : { "ip":"aqui va la IP", "port":91004, },
  85. #           4 : { "ip":"aqui va la IP", "port":31000, },
  86. #           5 : { "ip":"aqui va la IP", "port":11000, },
  87.         }      
  88.     }
  89.  
  90.     REGION_DICT = {
  91.         0 : {
  92.             1 : { "name" : "NOMBRE DEL SERVER", "channel" : SERVER01_CHANNEL_DICT, },                      
  93.             2 : { "name" : "NOMBRE DEL SERVER", "channel" : SERVER02_CHANNEL_DICT, },                      
  94. #           3 : { "name" : "Alba", "channel" : SERVER03_CHANNEL_DICT, },                       
  95. #           4 : { "name" : "Solsticio", "channel" : SERVER04_CHANNEL_DICT, },                      
  96. #           5 : { "name" : "Plenilunio", "channel" : SERVER05_CHANNEL_DICT, },                     
  97.         },
  98.     }
  99.  
  100.     MARKADDR_DICT = {
  101.         10 : { "ip" : "aqui va la IP", "tcp_port" : 13000, "mark" : "10.tga", "symbol_path" : "10", },
  102.         20 : { "ip" : "aqui va la IP", "tcp_port" : 13000, "mark" : "20.tga", "symbol_path" : "10", },
  103.        
  104.     }
  105.  
  106.     TESTADDR = { "ip" : "aqui va la IP", "tcp_port" : 50000, "udp_port" : 50000, }
  107.  
  108.  
  109.  
  110.  
  111.  

Bueno el servidor oficial del juego que yo tengo lo resolvio de la siguiente forma leyendo un archivo Cpickle Desde afuera en otro lenguaje para que no puedan manipular ni mirar sus ips ni puertos:

Código: Python
  1.  
  2.  
  3. import os
  4. import app
  5. import locale
  6. import debugInfo
  7.  
  8. def BuildServerList(orderList):
  9.     retMarkAddrDict = {}
  10.     retAuthAddrDict = {}
  11.     retRegion0 = {}
  12.  
  13.     ridx = 1
  14.     for region, auth, mark, channels in orderList:
  15.         cidx = 1
  16.         channelDict = {}
  17.         for channel in channels:
  18.             key = ridx * 10 + cidx
  19.             channel['key'] = key
  20.             channelDict[cidx] = channel
  21.             cidx += 1
  22.  
  23.         region['channel'] = channelDict
  24.  
  25.         retRegion0[ridx] = region
  26.         retAuthAddrDict[ridx] = auth
  27.         retMarkAddrDict[ridx*10] = mark
  28.         ridx += 1
  29.  
  30.     return retRegion0, retAuthAddrDict, retMarkAddrDict
  31.    
  32. if (locale.IsEUROPE() and app.GetLocalePath() == "locale/es"):
  33.     STATE_NONE = "OFF"
  34.                    
  35.     STATE_DICT = {
  36.         0 : "....",
  37.         1 : "NORM",
  38.         2 : "BUSY",
  39.         3 : "FULL"
  40.     }
  41.  
  42.     SERVER01_CHANNEL_DICT = {
  43.         1:{"key":11,"name":"CH1   ","ip":"aqui va la IP","tcp_port":13000,"udp_port":11002,"state":STATE_NONE,},   
  44.         2:{"key":12,"name":"CH2   ","ip":"aqui va la IP","tcp_port":16000,"udp_port":11002,"state":STATE_NONE,},   
  45. #       3:{"key":13,"name":"CH3   ","ip":"aqui va la IP","tcp_port":18000,"udp_port":11002,"state":STATE_NONE,},   
  46. #       4:{"key":14,"name":"CH4   ","ip":"aqui va la IP","tcp_port":42000,"udp_port":11002,"state":STATE_NONE,},   
  47. #       5:{"key":15,"name":"CH5   ","ip":"aqui va la IP","tcp_port":22000,"udp_port":22000,"state":STATE_NONE,},   
  48.     }
  49.    
  50.     SERVER02_CHANNEL_DICT = {
  51.         1:{"key":21,"name":"CH1   ","ip":"aqui va la IP","tcp_port":18000,"udp_port":31002,"state":STATE_NONE,},   
  52. #       2:{"key":22,"name":"CH2   ","ip":"aqui va la IP","tcp_port":20000,"udp_port":22000,"state":STATE_NONE,},   
  53. #       3:{"key":23,"name":"CH3   ","ip":"aqui va la IP","tcp_port":22000,"udp_port":22000,"state":STATE_NONE,},   
  54. #       4:{"key":24,"name":"CH4   ","ip":"aqui va la IP","tcp_port":42000,"udp_port":42000,"state":STATE_NONE,},   
  55. #       5:{"key":25,"name":"CH5   ","ip":"aqui va la IP","tcp_port":22000,"udp_port":22000,"state":STATE_NONE,},   
  56.     }
  57.     SERVER03_CHANNEL_DICT = {
  58. #       1:{"key":31,"name":"CH1   ","ip":"aqui va la IP","tcp_port":13000,"udp_port":13000,"state":STATE_NONE,},   
  59. #       2:{"key":32,"name":"CH2   ","ip":"aqui va la IP","tcp_port":32000,"udp_port":32000,"state":STATE_NONE,},   
  60. #       3:{"key":33,"name":"CH3   ","ip":"aqui va la IP","tcp_port":32000,"udp_port":32000,"state":STATE_NONE,},   
  61.     }
  62.     SERVER04_CHANNEL_DICT = {
  63. #       1:{"key":41,"name":"CH1   ","ip":"aqui va la IP","tcp_port":32000,"udp_port":32000,"state":STATE_NONE,},   
  64. #       2:{"key":42,"name":"CH2   ","ip":"aqui va la IP","tcp_port":32000,"udp_port":32000,"state":STATE_NONE,},   
  65. #       3:{"key":43,"name":"CH3   ","ip":"aqui va la IP","tcp_port":32000,"udp_port":32000,"state":STATE_NONE,},   
  66. #       4:{"key":44,"name":"CH4   ","ip":"aqui va la IP","tcp_port":32000,"udp_port":32000,"state":STATE_NONE,},   
  67.     }
  68.     SERVER05_CHANNEL_DICT = {
  69. #       1:{"key":51,"name":"CH1   ","ip":"aqui va la IP","tcp_port":12000,"udp_port":12000,"state":STATE_NONE,},   
  70. #       2:{"key":52,"name":"CH2   ","ip":"aqui va la IP","tcp_port":12000,"udp_port":12000,"state":STATE_NONE,},   
  71. #       3:{"key":53,"name":"CH3   ","ip":"aqui va la IP","tcp_port":12000,"udp_port":12000,"state":STATE_NONE,},   
  72. #       4:{"key":54,"name":"CH4   ","ip":"aqui va la IP","tcp_port":12000,"udp_port":12000,"state":STATE_NONE,},   
  73.     }
  74.  
  75.    
  76.     REGION_NAME_DICT = {
  77.         0 : "SPAIN",       
  78.     }
  79.  
  80.     REGION_AUTH_SERVER_DICT = {
  81.         0 : {
  82.             1 : { "ip":"aqui va la IP", "port":11002, },
  83.             2 : { "ip":"aqui va la IP", "port":31002, },
  84. #           3 : { "ip":"aqui va la IP", "port":91004, },
  85. #           4 : { "ip":"aqui va la IP", "port":31000, },
  86. #           5 : { "ip":"aqui va la IP", "port":11000, },
  87.         }      
  88.     }
  89.  
  90.     REGION_DICT = {
  91.         0 : {
  92.             1 : { "name" : "NOMBRE DEL SERVER", "channel" : SERVER01_CHANNEL_DICT, },                      
  93.             2 : { "name" : "NOMBRE DEL SERVER", "channel" : SERVER02_CHANNEL_DICT, },                      
  94. #           3 : { "name" : "Alba", "channel" : SERVER03_CHANNEL_DICT, },                       
  95. #           4 : { "name" : "Solsticio", "channel" : SERVER04_CHANNEL_DICT, },                      
  96. #           5 : { "name" : "Plenilunio", "channel" : SERVER05_CHANNEL_DICT, },                     
  97.         },
  98.     }
  99.  
  100.     MARKADDR_DICT = {
  101.         10 : { "ip" : "aqui va la IP", "tcp_port" : 13000, "mark" : "10.tga", "symbol_path" : "10", },
  102.         20 : { "ip" : "aqui va la IP", "tcp_port" : 13000, "mark" : "20.tga", "symbol_path" : "10", },
  103.        
  104.     }
  105.  
  106.     TESTADDR = { "ip" : "aqui va la IP", "tcp_port" : 50000, "udp_port" : 50000, }
  107.  
  108. if locale.IsEUROPE():
  109.     name = app.GetLocalePath().replace("/", "_") + ".addr"
  110.     path = os.sep.join(("pack", name))
  111.     if os.access(path, os.R_OK):
  112.         print "load_locale_addr:", path
  113.  
  114.         data = app.LoadLocaleAddr(path)
  115.  
  116.         import cPickle
  117.         import cStringIO
  118.         info = cPickle.load(cStringIO.StringIO(data))
  119.  
  120.         STATE_NONE = "..."
  121.  
  122.         STATE_DICT = {
  123.             0 : "....",
  124.             1 : "NORM",
  125.             2 : "BUSY",
  126.             3 : "FULL"
  127.             }
  128.  
  129.         REGION_NAME_DICT = info["NAME"]
  130.         REGION_AUTH_SERVER_DICT = info["AUTHADDR"]
  131.         REGION_DICT = info["GAMEADDR"]
  132.         MARKADDR_DICT = info["MARKADDR"]
  133.  
  134.  
  135.  
  136.  

Obviamente el archivo que lee que es locale_es.addr esta encryptado en otro lenguage casi imposible de desencryptar
espero puedan darme ideas,  gracias desde ya