elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Ayuda a desofuscar codigo python
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda a desofuscar codigo python  (Leído 6,102 veces)
CADi

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Ayuda a desofuscar codigo python
« en: 1 Agosto 2013, 21:03 pm »

Hola buen dias amigos queria saber si alguno de ustedes me puede ayudar a desofuscar este codigo python

Código
  1. if 64 - 64: i11iIiiIii
  2. import cPickle as pickle
  3. import urllib , urllib2 , re , xbmcplugin , xbmcgui , xbmcaddon , xbmc
  4. import weblogin , gethtml , os , shutil , zipfile , commands , sys
  5. from urllib2 import Request , urlopen , URLError , HTTPError
  6. from xml . dom . minidom import parseString
  7. if 65 - 65: O0 / iIii1I11I1II1 % OoooooooOO - i1IIi
  8. if 73 - 73: II111iiii
  9. if 22 - 22: I1IiiI * Oo0Ooo / OoO0O00 . OoOoOO00 . o0oOOo0O0Ooo / I1ii11iIi11i
  10. if 48 - 48: oO0o / OOooOOo / I11i / Ii1I
  11. IiiIII111iI = "2.06"
  12. if 34 - 34: iii1I1I / O00oOoOoO0o0O . O0oo0OO0 + Oo0ooO0oo0oO . OoO0O00 - I1ii11iIi11i
  13. if 53 - 53: I11i / Oo0Ooo / II111iiii % Ii1I / OoOoOO00 . Oo0ooO0oo0oO
  14. if 100 - 100: i1IIi
  15. if 27 - 27: O00oOoOoO0o0O * OoooooooOO + I11i * Oo0ooO0oo0oO - i11iIiiIii - iii1I1I
  16. IiiiIiI1iIiI1 = 10
  17. if 85 - 85: OoO0O00
  18. class iIi1IIii11I ( xbmcgui . Window ) :
  19. if 84 - 84: iIii1I11I1II1 . O00oOoOoO0o0O / O00oOoOoO0o0O % O00oOoOoO0o0O
  20. def __init__ ( self ) :
  21.  pass
  22.  if 22 - 22: Ii1I . O00oOoOoO0o0O
  23. def setupScreen ( self ) :
  24.  if 41 - 41: O0oo0OO0 . Oo0ooO0oo0oO * O00oOoOoO0o0O % i11iIiiIii
  25.  self . backgroundImage = xbmcgui . ControlImage ( 0 , 0 , self . width , self . height , self . skin , aspectRatio = 0 )
  26.  self . addControl ( self . backgroundImage )
  27.  self . posterImage = xbmcgui . ControlImage ( self . porcentaje ( 5 , self . x ) , self . porcentaje ( 10 , self . y ) , self . porcentaje ( 30 , self . x ) , self . porcentaje ( 70 , self . y ) , self . poster , aspectRatio = 2 )
  28.  self . addControl ( self . posterImage )
  29.  if 74 - 74: iii1I1I * O00oOoOoO0o0O
  30.  self . label1 = xbmcgui . ControlLabel ( self . porcentaje ( 40 , self . x ) , self . porcentaje ( 10 , self . y ) , self . porcentaje ( 50 , self . x ) , self . porcentaje ( 10 , self . y ) , '' , font = 'font30' , alignment = 2 )
  31.  self . addControl ( self . label1 )
  32.  self . label1 . setLabel ( self . textLabel1 )
  33.  if 82 - 82: iIii1I11I1II1 % O00oOoOoO0o0O
  34.  self . label2 = xbmcgui . ControlLabel ( self . porcentaje ( 40 , self . x ) , self . porcentaje ( 20 , self . y ) , self . porcentaje ( 60 , self . x ) , self . porcentaje ( 30 , self . y ) , '' , 'font13' )
  35.  self . addControl ( self . label2 )
  36.  self . label2 . setLabel ( self . textLabel2 )
  37.  if 86 - 86: OoOoOO00 % I1IiiI
  38.  self . buttonEsc = xbmcgui . ControlButton ( 0 , 0 , self . porcentaje ( 7 , self . x ) , self . porcentaje ( 7 , self . y ) , 'ESC' , font = 'font13' , alignment = 2 )
  39.  self . addControl ( self . buttonEsc )
  40.  if 80 - 80: OoooooooOO . I1IiiI
  41.  self . imageStar = xbmcgui . ControlImage ( self . porcentaje ( 40 , self . x ) , self . porcentaje ( 66 , self . y ) , self . porcentaje ( 4 , self . x ) , self . porcentaje ( 7 , self . y ) , self . favoritoStar , aspectRatio = 2 )
  42.  self . addControl ( self . imageStar )
  43.  if 87 - 87: oO0o / Oo0ooO0oo0oO + O0oo0OO0 - Oo0ooO0oo0oO . Oo0ooO0oo0oO / II111iiii
  44.  self . buttonFav = xbmcgui . ControlButton ( self . porcentaje ( 45 , self . x ) , self . porcentaje ( 66 , self . y ) , self . porcentaje ( 15 , self . x ) , self . porcentaje ( 7 , self . y ) , 'Favoritos' , font = 'font30' , alignment = 2 )
  45.  self . addControl ( self . buttonFav )
  46.  if 11 - 11: I1IiiI % o0oOOo0O0Ooo - Oo0Ooo
  47.  self . buttonPlay = xbmcgui . ControlButton ( self . porcentaje ( 70 , self . x ) , self . porcentaje ( ( 40 + ( 2 * self . synopsisLines ) ) , self . y ) , self . porcentaje ( 15 , self . x ) , self . porcentaje ( 7 , self . y ) , 'Play' , font = 'font30' , alignment = 2 )
  48.  self . addControl ( self . buttonPlay )
  49.  self . setFocus ( self . buttonPlay )
  50.  if 58 - 58: i11iIiiIii % O0oo0OO0
  51.  self . clock = xbmcgui . ControlLabel ( self . porcentaje ( 84 , self . x ) , self . porcentaje ( 1 , self . y ) , self . porcentaje ( 20 , self . x ) , self . porcentaje ( 10 , self . y ) , '' , font = 'font30' , alignment = 2 )
  52.  self . addControl ( self . clock )
  53.  self . clock . setLabel ( '$INFO[System.Time]' )
  54.  if 54 - 54: OOooOOo % O0 + I1IiiI - iii1I1I / I11i
  55.  xbmc . executebuiltin ( 'Action(back)' )
  56.  if 31 - 31: OoO0O00 + II111iiii
  57. def variables ( self , a , b , c , d ) :
  58.  if 13 - 13: OOooOOo * oO0o * I1IiiI
  59.  self . deviceRunning = d
  60.  if 55 - 55: II111iiii
  61.  if self . deviceRunning == chr ( 73 ) + chr ( 80 ) + chr ( 65 ) + chr ( 68 ) :
  62.   self . width = 1280
  63.   self . height = 720
  64.  else :
  65.   self . height = self . getHeight ( )
  66.   self . width = self . getWidth ( )
  67.   if 43 - 43: OoOoOO00 - i1IIi + O0oo0OO0 + Ii1I
  68.  self . x = self . width
  69.  self . y = self . height
  70.  print "Height = " + str ( self . height )
  71.  print "Width = " + str ( self . width )
  72.  if 17 - 17: o0oOOo0O0Ooo
  73.  self . url = o00ooooO0oO
  74.  self . movie = a
  75.  self . realUrl = b
  76.  self . poster = c
  77.  self . data = oOoOo00oOo
  78.  if 96 - 96: i1IIi . OoOoOO00 * OOooOOo % Oo0ooO0oo0oO
  79.  self . star = OO0O0O00OooO . getAddonInfo ( 'path' ) + "/star_favorite.png"
  80.  self . starEmpty = OO0O0O00OooO . getAddonInfo ( 'path' ) + "/star_favorite_empty.png"
  81.  if 77 - 77: II111iiii - II111iiii . I1IiiI / o0oOOo0O0Ooo
  82.  if "redirect.php" in self . url :
  83.   self . seriePosicion = self . url . find ( 'opcion=' )
  84.   self . serieDelimiter = self . url . find ( ' - ' , self . seriePosicion )
  85.   self . serie = self . url [ len ( 'opcion=' ) + self . seriePosicion : self . serieDelimiter ]
  86.   print "serie: " + self . serie
  87.   self . synopsis = i1iIIIiI1I ( self . serie , serie = True )
  88.  else :
  89.   self . synopsis = i1iIIIiI1I ( self . movie )
  90.   if 70 - 70: Oo0Ooo % Oo0Ooo . O00oOoOoO0o0O % OoO0O00 * o0oOOo0O0Ooo % oO0o
  91.  self . synopsisLines = self . synopsis . count ( '\n' ) + 1
  92.  if 23 - 23: i11iIiiIii + I1IiiI
  93.  if 68 - 68: OoOoOO00 . oO0o . i11iIiiIii
  94.  self . skin = OO0O0O00OooO . getAddonInfo ( 'path' ) + "/background.jpg"
  95.  if 40 - 40: oO0o . OoOoOO00 . Oo0Ooo . i1IIi
  96.  try :
  97.   self . data . index ( [ self . movie , self . url , self . poster ] )
  98.   self . favoritoStar = self . star
  99.  except :
  100.   self . favoritoStar = self . starEmpty
  101.   if 33 - 33: Ii1I + II111iiii % i11iIiiIii . Oo0ooO0oo0oO - I1IiiI
  102.  self . textLabel1 = self . movie
  103.  self . textLabel2 = "Synopsis:\n\n" + self . synopsis
  104.  if 66 - 66: Ii1I - OoooooooOO * OoooooooOO . OOooOOo . I1ii11iIi11i
  105.  self . setupScreen ( )
  106.  if 22 - 22: OoooooooOO % I11i - iii1I1I . iIii1I11I1II1 * i11iIiiIii
  107. def porcentaje ( self , cuanto_porcentaje , height_or_width ) :
  108.  II1i1Ii11Ii11 = ( height_or_width * cuanto_porcentaje ) / 100
  109.  return II1i1Ii11Ii11
  110.  if 35 - 35: o0oOOo0O0Ooo + iii1I1I + iii1I1I
  111. def onAction ( self , action ) :
  112.  if 11 - 11: iii1I1I - OoO0O00 % Oo0ooO0oo0oO % iii1I1I / OoOoOO00 - OoO0O00
  113.  if 74 - 74: iii1I1I * O0
  114.  if action == IiiiIiI1iIiI1 :
  115.   self . close ( )
  116.  if action == 92 :
  117.   print "back"
  118.   self . close ( )
  119.  if action == 1 :
  120.   print "move left action.."
  121.   self . setFocus ( self . buttonFav )
  122.  if action == 2 :
  123.   print "move right action.."
  124.   self . setFocus ( self . buttonPlay )
  125.  if action == 3 :
  126.   print "move up action.."
  127.   self . setFocus ( self . buttonEsc )
  128.  if action == 4 :
  129.   print "move down action.."
  130.   self . setFocus ( self . buttonFav )
  131.   if 89 - 89: oO0o + Oo0Ooo
  132. def onControl ( self , control ) :
  133.  print "Ejecutando comando.."
  134.  if control == self . buttonPlay :
  135.   self . onPlay ( )
  136.  if control == self . buttonFav :
  137.   self . onFavoritos ( )
  138.  if control == self . buttonEsc :
  139.   self . close ( )
  140.   if 3 - 3: i1IIi / I1IiiI % I11i * i11iIiiIii / O0 * I11i
  141. def onPlay ( self ) :
  142.  III1ii1iII = xbmcgui . ListItem ( self . movie )
  143.  III1ii1iII . setInfo ( 'video' , { 'Title' : self . movie , 'Genre' : 'Science Fiction' } )
  144.  xbmc . Player ( xbmc . PLAYER_CORE_MPLAYER ) . play ( self . realUrl , III1ii1iII )
  145.  if 54 - 54: I1IiiI % II111iiii % II111iiii
  146. def onFavoritos ( self ) :
  147.  if self . data == '' or self . data == [ ] :
  148.   self . data = [ ]
  149.   self . data . append ( [ self . movie , self . url , self . poster ] )
  150.   print "*Nuevo Archivo* Agregando a favoritos: " , self . movie
  151.   self . imageStar . setImage ( self . star )
  152.   iI1 ( self . data , True )
  153.  else :
  154.   try :
  155.    self . data . index ( [ self . movie , self . url , self . poster ] )
  156.    self . data . remove ( [ self . movie , self . url , self . poster ] )
  157.    self . imageStar . setImage ( self . starEmpty )
  158.    iI1 ( self . data , True )
  159.    print "Removiendo de favoritos: " + self . movie
  160.   except :
  161.    self . data . append ( [ self . movie , self . url , self . poster ] )
  162.    self . imageStar . setImage ( self . star )
  163.    iI1 ( self . data , True )
  164.    print "Agregando a favoritos: " + self . movie
  165.    if 19 - 19: I11i + Oo0ooO0oo0oO
  166. def message ( self , message ) :
  167.  ooo = xbmcgui . Dialog ( )
  168.  ooo . ok ( " Mensaje del Sistema" , message )
  169.  if 18 - 18: o0oOOo0O0Ooo
  170.  if 28 - 28: OOooOOo - O00oOoOoO0o0O . O00oOoOoO0o0O + OoOoOO00 - OoooooooOO + O0
  171. def oOoOooOo0o0 ( theurl , thedir ) :
  172. OOOO = os . path . join ( thedir , 'temp.zip' )
  173. try :
  174.  OOOO , OOO00 = urllib . urlretrieve ( theurl , OOOO )
  175. except IOError , iiiiiIIii :
  176.  print "Can't retrieve %r to %r: %s" % ( theurl , thedir , iiiiiIIii )
  177.  return
  178. try :
  179.  O000OO0 = zipfile . ZipFile ( OOOO )
  180. except zipfile . error , iiiiiIIii :
  181.  print "Bad zipfile (from %r): %s" % ( theurl , iiiiiIIii )
  182.  return
  183. for I11iii1Ii in O000OO0 . namelist ( ) :
  184.  I1IIiiIiii = os . path . join ( thedir , I11iii1Ii )
  185.  O000oo0O = os . path . dirname ( I1IIiiIiii )
  186.  if not os . path . isdir ( O000oo0O ) :
  187.   os . makedirs ( O000oo0O )
  188.  OOOOi11i1 = O000OO0 . read ( I11iii1Ii )
  189.  IIIii1II1II = open ( I1IIiiIiii , 'w' )
  190.  IIIii1II1II . write ( OOOOi11i1 )
  191.  IIIii1II1II . close ( )
  192. O000OO0 . close ( )
  193. os . unlink ( OOOO )
  194. if 42 - 42: Ii1I + oO0o
  195. def o0O0o0Oo ( time_to_wait , title = '' , text = '' ) :
  196. return Ii11Ii1I ( time_to_wait , title , text )
  197. if 72 - 72: iii1I1I / i1IIi * Oo0Ooo - O0oo0OO0
  198. def Ii11Ii1I ( time_to_wait , title , text ) :
  199. Oo0O0O0ooO0O = IIIIii ( o00ooooO0oO )
  200. print 'esperando ' + str ( time_to_wait ) + ' segs'
  201. if 70 - 70: Ii1I / I11i . iii1I1I % Oo0Ooo
  202. OOoOO00OOO0OO = xbmcgui . DialogProgress ( )
  203. iI1I111Ii111i = OOoOO00OOO0OO . create ( title )
  204. if 7 - 7: Oo0ooO0oo0oO * OoO0O00 % oO0o . O00oOoOoO0o0O
  205. Ii1iIiII1ii1 = 0
  206. ooOooo000oOO = 0
  207. Oo0oOOo = 100 / time_to_wait
  208. if 58 - 58: II111iiii * OOooOOo * I1ii11iIi11i / OOooOOo
  209. oO0o0OOOO = False
  210. while Ii1iIiII1ii1 < time_to_wait :
  211.  Ii1iIiII1ii1 = Ii1iIiII1ii1 + 1
  212.  ooOooo000oOO = Oo0oOOo * Ii1iIiII1ii1
  213.  O0O0OoOO0 = str ( ( time_to_wait - Ii1iIiII1ii1 ) )
  214.  iiiI1I11i1 = ' Espere ' + O0O0OoOO0 + ' segs descargando video...'
  215.  OOoOO00OOO0OO . update ( ooOooo000oOO , ' ' + text , iiiI1I11i1 )
  216.  xbmc . sleep ( 1000 )
  217.  if ( OOoOO00OOO0OO . iscanceled ( ) ) :
  218.   oO0o0OOOO = True
  219.   break
  220.   if 49 - 49: I1IiiI % Oo0ooO0oo0oO . Oo0ooO0oo0oO . I11i * Oo0ooO0oo0oO
  221. if oO0o0OOOO == True :
  222.  print 'espera cancelada'
  223.  return False
  224. else :
  225.  print 'Fin de la espera'
  226.  return True
  227.  if 97 - 97: Ii1I + o0oOOo0O0Ooo . OOooOOo + I1ii11iIi11i % iii1I1I
  228.  if 95 - 95: i1IIi
  229. def I1ii11iI ( ) :
  230. if 14 - 14: OoOoOO00 / O00oOoOoO0o0O . OoOoOO00 . I11i % OoO0O00 * I11i
  231. if iII == None and oO00o0 == None :
  232.  OOoo0O = False
  233.  if os . path . exists ( Oo0ooOo0o ) :
  234.   os . remove ( Oo0ooOo0o )
  235.  return OOoo0O
  236. elif iII != None and oO00o0 != None :
  237.  Ii1i1 = weblogin . doLogin ( iiIii , iII , oO00o0 )
  238.  if Ii1i1 == False :
  239.   ooo = xbmcgui . Dialog ( )
  240.   ooo . ok ( " Opciones avanzadas" , "Los parametros incorrectos.." )
  241.  OOoo0O = True
  242.  return OOoo0O
  243.  if 79 - 79: OoooooooOO / O0
  244. def IIIIii ( url ) :
  245. OO0OoO0o00 = ooOO0O0ooOooO
  246. oOOOo00O00oOo = iiIIIi
  247. ooo00OOOooO = urllib2 . HTTPPasswordMgrWithDefaultRealm ( )
  248. ooo00OOOooO . add_password ( None , url , OO0OoO0o00 , oOOOo00O00oOo )
  249. O00OOOoOoo0O = urllib2 . HTTPBasicAuthHandler ( ooo00OOOooO )
  250. O000OOo00oo = urllib2 . build_opener ( O00OOOoOoo0O )
  251. return O000OOo00oo
  252. if 71 - 71: i11iIiiIii + O00oOoOoO0o0O
  253. def oOo ( url ) :
  254. oOO00Oo = 1
  255. if chr ( 109 ) + chr ( 111 ) + chr ( 118 ) + chr ( 105 ) + chr ( 101 ) + chr ( 115 ) + chr ( 103 ) + chr ( 101 ) + chr ( 110 ) + chr ( 46 ) + chr ( 112 ) + chr ( 104 ) + chr ( 112 ) in url :
  256.  oOO00Oo = 1
  257.  return oOO00Oo
  258. if chr ( 97 ) + chr ( 100 ) + chr ( 117 ) + chr ( 108 ) + chr ( 116 ) + chr ( 111 ) + chr ( 115 ) + chr ( 109 ) + chr ( 111 ) + chr ( 118 ) + chr ( 105 ) + chr ( 101 ) + chr ( 115 ) + chr ( 103 ) + chr ( 101 ) + chr ( 110 ) + chr ( 46 ) + chr ( 112 ) + chr ( 104 ) + chr ( 112 ) in url :
  259.  oOO00Oo = 1
  260.  return oOO00Oo
  261. elif "abrirSettings" in url :
  262.  oOO00Oo = 6
  263.  return oOO00Oo
  264. elif chr ( 115 ) + chr ( 101 ) + chr ( 114 ) + chr ( 105 ) + chr ( 101 ) + chr ( 115 ) + chr ( 46 ) + chr ( 112 ) + chr ( 104 ) + chr ( 112 ) in url :
  265.  oOO00Oo = 1
  266.  return oOO00Oo
  267. elif chr ( 115 ) + chr ( 101 ) + chr ( 114 ) + chr ( 105 ) + chr ( 101 ) + chr ( 115 ) + chr ( 103 ) + chr ( 101 ) + chr ( 110 ) + chr ( 46 ) + chr ( 112 ) + chr ( 104 ) + chr ( 112 ) in url :
  268.  oOO00Oo = 1
  269.  return oOO00Oo
  270. elif chr ( 116 ) + chr ( 101 ) + chr ( 109 ) + chr ( 112 ) + chr ( 111 ) + chr ( 114 ) + chr ( 97 ) + chr ( 100 ) + chr ( 97 ) + chr ( 115 ) + chr ( 46 ) + chr ( 112 ) + chr ( 104 ) + chr ( 112 ) in url :
  271.  oOO00Oo = 1
  272.  return oOO00Oo
  273. elif chr ( 115 ) + chr ( 101 ) + chr ( 114 ) + chr ( 105 ) + chr ( 101 ) + chr ( 115 ) + chr ( 99 ) + chr ( 97 ) + chr ( 112 ) + chr ( 46 ) + chr ( 112 ) + chr ( 104 ) + chr ( 112 ) in url :
  274.  oOO00Oo = 2
  275.  return oOO00Oo
  276. elif chr ( 108 ) + chr ( 105 ) + chr ( 115 ) + chr ( 116 ) + chr ( 97 ) + chr ( 100 ) + chr ( 111 ) + chr ( 46 ) + chr ( 112 ) + chr ( 104 ) + chr ( 112 ) in url :
  277.  oOO00Oo = 2
  278.  return oOO00Oo
  279. elif chr ( 97 ) + chr ( 100 ) + chr ( 117 ) + chr ( 108 ) + chr ( 116 ) + chr ( 111 ) + chr ( 115 ) + chr ( 108 ) + chr ( 105 ) + chr ( 115 ) + chr ( 116 ) + chr ( 97 ) + chr ( 100 ) + chr ( 111 ) + chr ( 46 ) + chr ( 112 ) + chr ( 104 ) + chr ( 112 ) in url :
  280.  oOO00Oo = 2
  281.  return oOO00Oo
  282. elif chr ( 116 ) + chr ( 118 ) + chr ( 103 ) + chr ( 101 ) + chr ( 110 ) + chr ( 46 ) + chr ( 112 ) + chr ( 104 ) + chr ( 112 ) in url :
  283.  oOO00Oo = 8
  284.  return oOO00Oo
  285. elif "getServices?ref=1:0:" in url :
  286.  oOO00Oo = 5
  287.  return oOO00Oo
  288. elif "getServices?ref=" in url :
  289.  oOO00Oo = 4
  290.  return oOO00Oo
  291. elif "zapTo?path=" in url :
  292.  oOO00Oo = 5
  293.  return oOO00Oo
  294.  if 6 - 6: oO0o
  295. def oOOo0oOo0 ( source ) :
  296. II = '<a id="download_button" href="(.+?)"'
  297. return II
  298. if 60 - 60: I1IiiI
  299. if 22 - 22: II111iiii
  300. def iiI1I11i1i ( upmega ) :
  301. if 2 - 2: I1ii11iIi11i * I11i - iIii1I11I1II1 + I1IiiI . oO0o % iii1I1I
  302. ooOOOoOooOoO = o00oooO0Oo ( )
  303. o0O0OOO0Ooo = iiIiI ( )
  304. if 6 - 6: O00oOoOoO0o0O . oO0o * OoOoOO00 - Ii1I - O00oOoOoO0o0O
  305. if 45 - 45: I1IiiI - OoooooooOO + iIii1I11I1II1 . I1IiiI * I11i
  306. print "Version Xbmc:" , type ( o0O0OOO0Ooo ) , o0O0OOO0Ooo
  307. oOOO ( chr ( 80 ) + chr ( 101 ) + chr ( 108 ) + chr ( 105 ) + chr ( 99 ) + chr ( 117 ) + chr ( 108 ) + chr ( 97 ) + chr ( 115 ) , iIII1 + chr ( 109 ) + chr ( 111 ) + chr ( 118 ) + chr ( 105 ) + chr ( 101 ) + chr ( 115 ) + chr ( 103 ) + chr ( 101 ) + chr ( 110 ) + chr ( 46 ) + chr ( 112 ) + chr ( 104 ) + chr ( 112 ) , 1 , "" )
  308. oOOO ( chr ( 83 ) + chr ( 101 ) + chr ( 114 ) + chr ( 105 ) + chr ( 101 ) + chr ( 115 ) , iIII1 + chr ( 115 ) + chr ( 101 ) + chr ( 114 ) + chr ( 105 ) + chr ( 101 ) + chr ( 115 ) + chr ( 103 ) + chr ( 101 ) + chr ( 110 ) + chr ( 46 ) + chr ( 112 ) + chr ( 104 ) + chr ( 112 ) , 1 , "" )
  309. if o0o == "1" :
  310.  oOOO ( chr ( 65 ) + chr ( 100 ) + chr ( 117 ) + chr ( 108 ) + chr ( 116 ) + chr ( 111 ) + chr ( 115 ) , iIII1 + chr ( 97 ) + chr ( 100 ) + chr ( 117 ) + chr ( 108 ) + chr ( 116 ) + chr ( 111 ) + chr ( 115 ) + chr ( 109 ) + chr ( 111 ) + chr ( 118 ) + chr ( 105 ) + chr ( 101 ) + chr ( 115 ) + chr ( 103 ) + chr ( 101 ) + chr ( 110 ) + chr ( 46 ) + chr ( 112 ) + chr ( 104 ) + chr ( 112 ) , 1 , "" )
  311. if O0OOoO00OO0o != chr ( 110 ) + chr ( 111 ) + chr ( 32 ) + chr ( 101 ) + chr ( 110 ) + chr ( 99 ) + chr ( 111 ) + chr ( 110 ) + chr ( 116 ) + chr ( 114 ) + chr ( 97 ) + chr ( 100 ) + chr ( 111 ) :
  312.  oOOO ( chr ( 84 ) + chr ( 86 ) + chr ( 32 ) + chr ( 101 ) + chr ( 110 ) + chr ( 32 ) + chr ( 86 ) + chr ( 105 ) + chr ( 118 ) + chr ( 111 ) , iIII1 + chr ( 116 ) + chr ( 118 ) + chr ( 103 ) + chr ( 101 ) + chr ( 110 ) + chr ( 46 ) + chr ( 112 ) + chr ( 104 ) + chr ( 112 ) , 1 , "" )
  313. if I1111IIIIIi == "1" :
  314.  oOOO ( chr ( 86 ) + chr ( 101 ) + chr ( 114 ) + chr ( 32 ) + chr ( 68 ) + chr ( 105 ) + chr ( 115 ) + chr ( 104 ) , "http://" + Iiii1i1 + "/cgi-bin/getServices?ref=0" , 4 , "" )
  315. if o0O0OOO0Ooo >= '12.0' :
  316.  oOOO ( chr ( 77 ) + chr ( 105 ) + chr ( 115 ) + chr ( 32 ) + chr ( 70 ) + chr ( 97 ) + chr ( 118 ) + chr ( 111 ) + chr ( 114 ) + chr ( 105 ) + chr ( 116 ) + chr ( 111 ) + chr ( 115 ) , iIII1 , 6 , "" )
  317. oOOO ( chr ( 83 ) + chr ( 101 ) + chr ( 116 ) + chr ( 116 ) + chr ( 105 ) + chr ( 110 ) + chr ( 103 ) + chr ( 115 ) , chr ( 97 ) + chr ( 98 ) + chr ( 114 ) + chr ( 105 ) + chr ( 114 ) + chr ( 83 ) + chr ( 101 ) + chr ( 116 ) + chr ( 116 ) + chr ( 105 ) + chr ( 110 ) + chr ( 103 ) + chr ( 115 ) , 7 , "" )
  318. if 84 - 84: I1IiiI . iIii1I11I1II1 % OoooooooOO + Ii1I % OoooooooOO % OoO0O00
  319. def IIi1 ( url ) :
  320. try :
  321.  ooOOOoOooOoO = o00oooO0Oo ( )
  322.  url = url . replace ( ' ' , '%20' )
  323.  url = url + chr ( 63 ) + chr ( 117 ) + chr ( 115 ) + chr ( 101 ) + chr ( 114 ) + chr ( 61 ) + ooOO0O0ooOooO
  324.  url = url + chr ( 38 ) + chr ( 107 ) + chr ( 61 ) + ooOOOoOooOoO
  325.  oOO00Oo = oOo ( url )
  326.  Oo0O0O0ooO0O = IIIIii ( url )
  327.  Oo0O0O0ooO0O . addheaders = [ ( 'User-Agent' , 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3' ) ]
  328.  I1I1I = Oo0O0O0ooO0O . open ( url )
  329.  I1I1I = I1I1I . read ( )
  330.  OoOO000 = re . compile ( 'Title: <a href="(.+?)">(.+?)</a> <a href="(.+?)">.+?</a><br>' ) . findall ( I1I1I )
  331.  for url , OOOO , i1Ii11i1i in OoOO000 :
  332.   url = url + chr ( 38 ) + chr ( 117 ) + chr ( 115 ) + chr ( 101 ) + chr ( 114 ) + chr ( 61 ) + ooOO0O0ooOooO
  333.   url = url + chr ( 38 ) + chr ( 107 ) + chr ( 61 ) + ooOOOoOooOoO
  334.   url = url + chr ( 38 ) + chr ( 112 ) + chr ( 111 ) + chr ( 115 ) + chr ( 116 ) + chr ( 101 ) + chr ( 114 ) + chr ( 61 ) + i1Ii11i1i
  335.   OOOO = OOOO . decode ( 'latin-1' )
  336.   OOOO = OOOO . encode ( 'utf-8' )
  337.   oOOO ( OOOO , url , oOO00Oo , i1Ii11i1i )
  338. except URLError , iiiiiIIii :
  339.  print iiiiiIIii . code
  340.  if iiiiiIIii . code == 401 :
  341.   ooo = xbmcgui . Dialog ( )
  342.   ooo . ok ( "    Servicio Expirado" , "Tu cuenta " + ooOO0O0ooOooO + " a vencido, por favor Renueva." )
  343.   print "Tu cuenta esta vencida"
  344.   if 91 - 91: OoO0O00
  345. def oOooOo0 ( url , name ) :
  346. try :
  347.  url = url . replace ( ' ' , '%20' )
  348.  i1I1ii11i1Iii = url
  349.  I1IiiiiI = i1I1ii11i1Iii . split ( 'poster=' )
  350.  II1i1Ii11Ii11 = '/' . join ( I1IiiiiI [ 1 : ] )
  351.  o0O = gethtml . get ( url , ooOO0O0ooOooO , iiIIIi , Oo0ooOo0o )
  352.  II = oOOo0oOo0 ( o0O )
  353.  OoOO000 = re . compile ( II ) . findall ( o0O )
  354.  o0O0OOO0Ooo = iiIiI ( )
  355.  if o0O0OOO0Ooo >= '12.0' :
  356.   for url in OoOO000 :
  357.    if 2 - 2: iIii1I11I1II1 / oO0o + OoO0O00 / OOooOOo
  358.    IIOOOO0oo0 = url
  359.    if 35 - 35: Ii1I - I1IiiI % o0oOOo0O0Ooo . OoooooooOO % Ii1I
  360.   I1i1Iiiii = name
  361.   OOo0oO00ooO00 = II1i1Ii11Ii11
  362.   oOO0O00oO0Ooo = oO0Oo0O0o ( i1I1ii11i1Iii )
  363.   OO = iIi1IIii11I ( )
  364.   OO . variables ( I1i1Iiiii , IIOOOO0oo0 , OOo0oO00ooO00 , oOO0O00oO0Ooo )
  365.   OO . doModal ( )
  366.   del OO
  367.  else :
  368.   for url in OoOO000 :
  369.    I1iI1ii1II ( name , url , II1i1Ii11Ii11 )
  370. except URLError , iiiiiIIii :
  371.  print iiiiiIIii . code
  372.  if iiiiiIIii . code == 401 :
  373.   ooo = xbmcgui . Dialog ( )
  374.   ooo . ok ( "    Servicio Expirado" , "Tu cuenta " + ooOO0O0ooOooO + " a vencido, por favor Renueva." )
  375.   print "Tu cuenta esta vencida"
  376.   if 57 - 57: O0oo0OO0 % Ii1I + o0oOOo0O0Ooo - Oo0Ooo
  377. def o0OIiI1i ( name , url ) :
  378. o0Oo00 = 0
  379. oOO00Oo = oOo ( url )
  380. I1I1I = urllib . urlopen ( url )
  381. I1I1I = I1I1I . readlines ( )
  382. for iI in I1I1I :
  383.  O0O0Oooo0o = I1I1I [ o0Oo00 ] . find ( ';' )
  384.  oOOoo00O00o = I1I1I [ o0Oo00 ] . find ( ';' , O0O0Oooo0o + 1 )
  385.  O0O00Oo = I1I1I [ o0Oo00 ] [ O0O0Oooo0o + 1 : oOOoo00O00o ]
  386.  name = O0O00Oo
  387.  oOO00Oo = oOo ( url )
  388.  if oOO00Oo == 5 :
  389.   oooooo0O000o = "http://" + Iiii1i1 + "/cgi-bin/zapTo?path="
  390.  else :
  391.   oooooo0O000o = "http://" + Iiii1i1 + "/cgi-bin/getServices?ref="
  392.  OoO = I1I1I [ o0Oo00 ] [ : O0O0Oooo0o ]
  393.  url = oooooo0O000o + OoO
  394.  o0Oo00 = o0Oo00 + 1
  395.  oOOO ( name , url , oOO00Oo , '' )
  396.  if 51 - 51: OoooooooOO * OOooOOo
  397. def OO0ooOOO0OOO ( url , name , poster ) :
  398. I1I1I = urllib . urlopen ( url )
  399. I1I1I = I1I1I . read ( )
  400. oO00oooOOoOo0 ( name , "http://" + Iiii1i1 + ":31344" , '' )
  401. if 74 - 74: iIii1I11I1II1 * I1ii11iIi11i + OoOoOO00 / i1IIi / II111iiii . Oo0Ooo
  402. def oooOo0OOOoo0 ( channel_name ) :
  403. if 51 - 51: Oo0Ooo / OoOoOO00 . OOooOOo * o0oOOo0O0Ooo + OoO0O00 * O00oOoOoO0o0O
  404. OOOoOo = chr ( 104 ) + chr ( 116 ) + chr ( 116 ) + chr ( 112 ) + chr ( 58 ) + chr ( 47 ) + chr ( 47 ) + chr ( 119 ) + chr ( 119 ) + chr ( 119 ) + chr ( 46 ) + chr ( 106 ) + chr ( 117 ) + chr ( 115 ) + chr ( 116 ) + chr ( 105 ) + chr ( 110 ) + chr ( 46 ) + chr ( 116 ) + chr ( 118 ) + chr ( 47 ) + chr ( 119 ) + chr ( 105 ) + chr ( 100 ) + chr ( 103 ) + chr ( 101 ) + chr ( 116 ) + chr ( 115 ) + chr ( 47 ) + chr ( 108 ) + chr ( 105 ) + chr ( 118 ) + chr ( 101 ) + chr ( 95 ) + chr ( 101 ) + chr ( 109 ) + chr ( 98 ) + chr ( 101 ) + chr ( 100 ) + chr ( 95 ) + chr ( 112 ) + chr ( 108 ) + chr ( 97 ) + chr ( 121 ) + chr ( 101 ) + chr ( 114 ) + chr ( 46 ) + chr ( 115 ) + chr ( 119 ) + chr ( 102 ) + chr ( 63 ) + chr ( 99 ) + chr ( 104 ) + chr ( 97 ) + chr ( 110 ) + chr ( 110 ) + chr ( 101 ) + chr ( 108 ) + '=%s' % channel_name
  405. O00o0 = { 'User-agent' : 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0) Gecko/20100101 Firefox/6.0' ,
  406. 'Referer' : chr ( 104 ) + chr ( 116 ) + chr ( 116 ) + chr ( 112 ) + chr ( 58 ) + chr ( 47 ) + chr ( 47 ) + chr ( 119 ) + chr ( 119 ) + chr ( 119 ) + chr ( 46 ) + chr ( 106 ) + chr ( 117 ) + chr ( 115 ) + chr ( 116 ) + chr ( 105 ) + chr ( 110 ) + chr ( 46 ) + chr ( 116 ) + chr ( 118 ) + chr ( 47 ) + channel_name }
  407. Oo0O0O0ooO0O = urllib2 . Request ( OOOoOo , None , O00o0 )
  408. I11iII = urllib2 . urlopen ( Oo0O0O0ooO0O )
  409. return I11iII . geturl ( )
  410. if 5 - 5: I1IiiI
  411. def iIiIi11iI ( name , url ) :
  412. if 83 - 83: II111iiii % Oo0Ooo % Oo0ooO0oo0oO % I1ii11iIi11i
  413. if 80 - 80: i11iIiiIii % Oo0ooO0oo0oO + Ii1I % I11i - I1ii11iIi11i
  414. if 18 - 18: iii1I1I - OOooOOo . O0oo0OO0 . iIii1I11I1II1
  415. if 2 - 2: OOooOOo . OoO0O00
  416. if 78 - 78: I11i * iIii1I11I1II1 . I1IiiI / o0oOOo0O0Ooo - OoooooooOO / O0oo0OO0
  417. if 35 - 35: I11i % OOooOOo - oO0o
  418. if 20 - 20: i1IIi - Oo0ooO0oo0oO
  419. Oo0O0O0ooO0O = IIIIii ( url )
  420. Oo0O0O0ooO0O . addheaders = [ ( 'User-Agent' , 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3' ) ]
  421. I1I1I = Oo0O0O0ooO0O . open ( url )
  422. I1I1I = I1I1I . read ( )
  423. if 'feed = ' in I1I1I :
  424.  i1iI = I1I1I . find ( 'feed = ' )
  425.  Oo0O0 = I1I1I [ len ( 'feed = ' ) + i1iI : I1I1I . find ( '<br>' ) ]
  426.  I1iI1ii1II ( name , Oo0O0 . decode ( 'base64' , 'strict' ) , 'none' )
  427. else :
  428.  i1iI = I1I1I . find ( 'SwfAddress = ' )
  429.  Ooo0OOoOoO0 = I1I1I [ len ( 'SwfAddress = ' ) + i1iI : I1I1I . find ( '<br>' ) ]
  430.  i1iI = I1I1I . find ( 'WebAccess = ' )
  431.  oOo0OOoO0 = I1I1I [ len ( 'WebAccess = ' ) + i1iI : I1I1I . find ( '<br>' , i1iI ) ]
  432.  i1iI = I1I1I . find ( 'Code = ' )
  433.  IIo0Oo0oO0oOO00 = I1I1I [ len ( 'Code = ' ) + i1iI : I1I1I . find ( '<br>' , i1iI ) ]
  434.  if 92 - 92: OoooooooOO * O0oo0OO0
  435.  I11iII = urllib2 . urlopen ( oOo0OOoO0 . decode ( 'base64' , 'strict' ) )
  436.  o0000oO = I11iII . read ( )
  437.  if 11 - 11: Oo0ooO0oo0oO / OoOoOO00 - O00oOoOoO0o0O * OoooooooOO + OoooooooOO . OoOoOO00
  438.  i1I1i111Ii = parseString ( o0000oO )
  439.  oooi1i1iI1iiiI = i1I1i111Ii . getElementsByTagName ( 'token' ) [ 0 ] . toxml ( 'utf8' )
  440.  oooi1i1iI1iiiI = oooi1i1iI1iiiI . replace ( '<token>' , '' ) . replace ( '</token>' , '' )
  441.  oooi1i1iI1iiiI = oooi1i1iI1iiiI . replace ( '&amp;' , '&' ) . replace ( "&quot;" , '"' ) . replace ( '&lt;' , '<' )
  442.  oooi1i1iI1iiiI = oooi1i1iI1iiiI . replace ( '\\' , '\\5c' ) . replace ( '"' , '\\22' ) . replace ( ' ' , '\\20' )
  443.  oooi1i1iI1iiiI = 'jtv=' + oooi1i1iI1iiiI
  444.  if 51 - 51: I1IiiI % O0oo0OO0 . oO0o / iIii1I11I1II1 / I11i . oO0o
  445.  IIIii11 = i1I1i111Ii . getElementsByTagName ( 'play' ) [ 0 ] . toxml ( 'utf8' )
  446.  IIIii11 = IIIii11 . replace ( '<play>' , '' ) . replace ( '</play>' , '' )
  447.  IIIii11 = IIIii11 . replace ( '&amp;' , '&' ) . replace ( "&quot;" , '"' ) . replace ( '&lt;' , '<' )
  448.  IIIii11 = IIIii11 . replace ( '"' , '\\"' )
  449.  IIIii11 = 'playpath=' + IIIii11
  450.  if 9 - 9: O0 % O0 - o0oOOo0O0Ooo
  451.  OoOiiI1IIIi = i1I1i111Ii . getElementsByTagName ( 'connect' ) [ 0 ] . toxml ( 'utf8' )
  452.  OoOiiI1IIIi = OoOiiI1IIIi . replace ( '<connect>' , '' ) . replace ( '</connect>' , '' )
  453.  OoOiiI1IIIi = OoOiiI1IIIi . replace ( '&amp;' , '&' ) . replace ( "&quot;" , '"' ) . replace ( '&lt;' , '<' )
  454.  OoOiiI1IIIi = OoOiiI1IIIi . replace ( '"' , '\\"' )
  455.  if 47 - 47: Oo0Ooo % I11i % i11iIiiIii - O0 + Oo0ooO0oo0oO
  456.  I11iII = urllib2 . urlopen ( Ooo0OOoOoO0 . decode ( 'base64' , 'strict' ) )
  457.  Ooo0OOoOoO0 = I11iII . geturl ( )
  458.  Ooo0OOoOoO0 = 'swfUrl=' + Ooo0OOoOoO0
  459.  I1iI1ii1II ( name , OoOiiI1IIIi + ' ' + IIo0Oo0oO0oOO00 . decode ( 'base64' , 'strict' ) + ' ' + Ooo0OOoOoO0 + ' ' + oooi1i1iI1iiiI + ' ' + IIIii11 , 'none' )
  460.  if 94 - 94: O0oo0OO0
  461.  if 4 - 4: Ii1I % oO0o * OoO0O00
  462. def o0O0OOOOoOO0 ( name = '' , url = '' , mode = 2 , iconimage = '' ) :
  463. if oOoOo00oOo == '' or oOoOo00oOo == [ ] :
  464.  print "Archivo de favoritos en blanco"
  465.  ooo = xbmcgui . Dialog ( )
  466.  ooo . ok ( "    Mensaje de Sistema" , "No has agregado nada a favoritos" )
  467. else :
  468.  for iI in oOoOo00oOo :
  469.   oOOO ( iI [ 0 ] , iI [ 1 ] , mode , iI [ 2 ] )
  470.   if 23 - 23: i11iIiiIii
  471. def II1iIi11 ( ) :
  472. I11iiii = [ ]
  473. O0i1iI = sys . argv [ 2 ]
  474. if len ( O0i1iI ) >= 2 :
  475.  IiI1iiiIii = sys . argv [ 2 ]
  476.  I1III1111iIi = IiI1iiiIii . replace ( '?' , '' )
  477.  if ( IiI1iiiIii [ len ( IiI1iiiIii ) - 1 ] == '/' ) :
  478.   IiI1iiiIii = IiI1iiiIii [ 0 : len ( IiI1iiiIii ) - 2 ]
  479.  I1i111I = I1III1111iIi . split ( '&' )
  480.  I11iiii = { }
  481.  for o0Oo00 in range ( len ( I1i111I ) ) :
  482.   Ooo = { }
  483.   Ooo = I1i111I [ o0Oo00 ] . split ( '=' )
  484.   if ( len ( Ooo ) ) == 2 :
  485.    I11iiii [ Ooo [ 0 ] ] = Ooo [ 1 ]
  486.    if 65 - 65: O0 * OoooooooOO % OOooOOo / O00oOoOoO0o0O - Ii1I / I11i
  487. return I11iiii
  488. if 56 - 56: I1IiiI * i11iIiiIii * O0oo0OO0
  489. if 97 - 97: Oo0ooO0oo0oO
  490. if 48 - 48: i1IIi - O0oo0OO0
  491. def I1iI1ii1II ( name , url , iconimage ) :
  492. OOOoOO = True
  493. I11IIIi = xbmcgui . ListItem ( "Play" , iconImage = "DefaultVideo.png" , thumbnailImage = iconimage )
  494. I11IIIi . setInfo ( type = "Video" , infoLabels = { "Title" : name } )
  495. I11IIIi . setProperty ( 'IsPlayable' , 'true' )
  496. OOOoOO = xbmcplugin . addDirectoryItem ( handle = int ( sys . argv [ 1 ] ) , url = url , listitem = I11IIIi )
  497. return OOOoOO
  498. if 15 - 15: I1ii11iIi11i * OoO0O00
  499. def oOOO ( name , url , mode , iconimage ) :
  500. i1II1i = sys . argv [ 0 ] + "?url=" + urllib . quote_plus ( url ) + "&mode=" + str ( mode ) + "&name=" + urllib . quote_plus ( name )
  501. OOOoOO = True
  502. I11IIIi = xbmcgui . ListItem ( name , iconImage = "DefaultFolder.png" , thumbnailImage = iconimage )
  503. I11IIIi . setInfo ( type = "Video" , infoLabels = { "Title" : name } )
  504. OOOoOO = xbmcplugin . addDirectoryItem ( handle = int ( sys . argv [ 1 ] ) , url = i1II1i , listitem = I11IIIi , isFolder = True )
  505. return OOOoOO
  506. if 83 - 83: OoOoOO00 - Ii1I / I11i / O0oo0OO0 + oO0o - O0
  507. def oO00oooOOoOo0 ( name , url , iconimage ) :
  508. OOOoOO = True
  509. I11IIIi = xbmcgui . ListItem ( "Ver Dish" , iconImage = "DefaultVideo.png" , thumbnailImage = iconimage )
  510. I11IIIi . setInfo ( type = "Video" , infoLabels = { "Title" : name } )
  511. I11IIIi . setProperty ( 'IsPlayable' , 'true' )
  512. OOOoOO = xbmcplugin . addDirectoryItem ( handle = int ( sys . argv [ 1 ] ) , url = url , listitem = I11IIIi )
  513. if 4 - 4: OOooOOo * OoO0O00 % i1IIi * i11iIiiIii % Oo0Ooo - oO0o
  514. return OOOoOO
  515. if 67 - 67: OoOoOO00 + I1ii11iIi11i . o0oOOo0O0Ooo . II111iiii
  516. def i1iIIIiI1I ( movie , serie = False ) :
  517. if serie :
  518.  print "Es serie " + urllib . quote_plus ( movie )
  519.  o000ooooO0o = "http://home.humexico.org/vod/synopsis1.php?name=" + urllib . quote_plus ( movie )
  520. else :
  521.  print "Es pelicula " + urllib . quote_plus ( movie )
  522.  o000ooooO0o = "http://home.humexico.org/vod/synopsis.php?name=" + urllib . quote_plus ( movie )
  523. iI1i11 = urllib . urlopen ( o000ooooO0o )
  524. iI1i11 = iI1i11 . read ( )
  525. if len ( iI1i11 ) == 0 :
  526.  iI1i11 = "Error al cargar synopsis"
  527. iI1i11 = iI1i11 . decode ( 'latin-1' )
  528. iI1i11 = iI1i11 . encode ( 'utf-8' )
  529. iI1i11 = OoOOoooOO0O ( iI1i11 , 70 )
  530. return iI1i11
  531. if 86 - 86: o0oOOo0O0Ooo
  532. def OoOOoooOO0O ( string , every = 64 ) :
  533. II1i1Ii11Ii11 = ""
  534. i1Iii11Ii1i1 = True
  535. if 59 - 59: Oo0Ooo % OoooooooOO . iii1I1I / O00oOoOoO0o0O + I1IiiI
  536. while ( i1Iii11Ii1i1 ) :
  537.  if not ( len ( string ) > every ) :
  538.   i1Iii11Ii1i1 = False
  539.  O0O0Oooo0o = string . find ( ' ' , every )
  540.  if O0O0Oooo0o == - 1 :
  541.   II1i1Ii11Ii11 = II1i1Ii11Ii11 + string
  542.   i1Iii11Ii1i1 = False
  543.  else :
  544.   II1i1Ii11Ii11 = II1i1Ii11Ii11 + string [ 0 : O0O0Oooo0o ] + "\n"
  545.  string = string [ O0O0Oooo0o + 1 : ]
  546.  if 76 - 76: Oo0ooO0oo0oO
  547.  if 73 - 73: O0 * iii1I1I + Ii1I + Oo0ooO0oo0oO
  548. return II1i1Ii11Ii11
  549. if 40 - 40: II111iiii . OoOoOO00 * O0oo0OO0 + OOooOOo + OOooOOo
  550. def iI1 ( data = '' , abrir = False , archivo = '/tmp/favoritos.dat' ) :
  551. if 9 - 9: I11i % OoooooooOO . oO0o % I11i
  552. if abrir :
  553.  OO0O0O00OooO = xbmcaddon . Addon ( )
  554.  ii = OO0O0O00OooO . getAddonInfo ( 'path' ) + "/favoritos.dat"
  555.  for iI in data :
  556.   iI [ 1 ] = iI [ 1 ] . encode ( 'base64' , 'strict' )
  557.  IIIii1II1II = open ( archivo , 'wb' )
  558.  if 36 - 36: OoooooooOO . OoO0O00
  559.  pickle . dump ( data , IIIii1II1II )
  560.  IIIii1II1II . close ( )
  561.  for iI in data :
  562.   iI [ 1 ] = iI [ 1 ] . decode ( 'base64' , 'strict' )
  563.  shutil . move ( archivo , ii )
  564. else :
  565.  try :
  566.   OO0O0O00OooO = xbmcaddon . Addon ( )
  567.   archivo = OO0O0O00OooO . getAddonInfo ( 'path' ) + "/favoritos.dat"
  568.   print "abriendo archivo: " + archivo
  569.   IIIii1II1II = open ( archivo , 'rb' )
  570.   global oOoOo00oOo
  571.   oOoOo00oOo = pickle . load ( IIIii1II1II )
  572.   for iI in oOoOo00oOo :
  573.    iI [ 1 ] = iI [ 1 ] . decode ( 'base64' , 'strict' )
  574.   IIIii1II1II . close ( )
  575.  except :
  576.   oOoOo00oOo = [ ]
  577.   print "No existe archivo de favoritos"
  578.   if 56 - 56: Oo0Ooo . I1ii11iIi11i . I1IiiI
  579. def o00oooO0Oo ( ) :
  580. print chr ( 112 ) + chr ( 108 ) + chr ( 97 ) + chr ( 116 ) + chr ( 97 ) + chr ( 102 ) + chr ( 111 ) + chr ( 114 ) + chr ( 109 ) + chr ( 97 ) + chr ( 58 ) + chr ( 32 ) + O0OOoO00OO0o
  581. if O0OOoO00OO0o == chr ( 97 ) + chr ( 116 ) + chr ( 118 ) :
  582.  ii111I = chr ( 105 ) + chr ( 102 ) + chr ( 99 ) + chr ( 111 ) + chr ( 110 ) + chr ( 102 ) + chr ( 105 ) + chr ( 103 ) + chr ( 32 ) + chr ( 101 ) + chr ( 110 ) + chr ( 48 ) + chr ( 32 ) + chr ( 124 ) + chr ( 32 ) + chr ( 103 ) + chr ( 114 ) + chr ( 101 ) + chr ( 112 ) + chr ( 32 ) + chr ( 101 ) + chr ( 116 ) + chr ( 104 ) + chr ( 101 ) + chr ( 114 ) + chr ( 32 ) + chr ( 62 ) + chr ( 32 ) + chr ( 47 ) + chr ( 118 ) + chr ( 97 ) + chr ( 114 ) + chr ( 47 ) + chr ( 109 ) + chr ( 111 ) + chr ( 98 ) + chr ( 105 ) + chr ( 108 ) + chr ( 101 ) + chr ( 47 ) + chr ( 109 ) + chr ( 97 ) + chr ( 99 ) + chr ( 46 ) + chr ( 116 ) + chr ( 120 ) + chr ( 116 )
  583.  iiI = chr ( 47 ) + chr ( 118 ) + chr ( 97 ) + chr ( 114 ) + chr ( 47 ) + chr ( 109 ) + chr ( 111 ) + chr ( 98 ) + chr ( 105 ) + chr ( 108 ) + chr ( 101 ) + chr ( 47 ) + chr ( 109 ) + chr ( 97 ) + chr ( 99 ) + chr ( 46 ) + chr ( 116 ) + chr ( 120 ) + chr ( 116 )
  584.  os . system ( ii111I )
  585.  IIIii1II1II = open ( iiI , 'r' )
  586.  ooOOOoOooOoO = IIIii1II1II . read ( )
  587.  if 7 - 7: OoOoOO00 + II111iiii . i1IIi
  588.  IIIii1II1II . close ( )
  589.  if len ( ooOOOoOooOoO ) == 0 :
  590.   print chr ( 69 ) + chr ( 115 ) + chr ( 116 ) + chr ( 97 ) + chr ( 32 ) + chr ( 101 ) + chr ( 115 ) + chr ( 32 ) + chr ( 117 ) + chr ( 110 ) + chr ( 97 ) + chr ( 32 ) + chr ( 73 ) + chr ( 80 ) + chr ( 65 ) + chr ( 68 )
  591.   ooOOOoOooOoO = Ooo0 ( )
  592.   ooOOOoOooOoO = ooOOOoOooOoO . replace ( chr ( 97 ) + chr ( 110 ) + chr ( 100 ) + chr ( 114 ) + chr ( 111 ) + chr ( 105 ) + chr ( 100 ) + chr ( 95 ) , chr ( 73 ) + chr ( 80 ) + chr ( 65 ) + chr ( 68 ) + chr ( 95 ) )
  593.  else :
  594.   ooOOOoOooOoO = ooOOOoOooOoO . strip ( )
  595.   i1iI = ooOOOoOooOoO . rfind ( ' ' )
  596.   ooOOOoOooOoO = ooOOOoOooOoO [ i1iI + len ( ' ' ) : ]
  597.   ooOOOoOooOoO = ooOOOoOooOoO . replace ( ':' , '' )
  598.   IiI111ii1ii = chr ( 65 ) + chr ( 112 ) + chr ( 112 ) + chr ( 108 ) + chr ( 101 ) + chr ( 84 ) + chr ( 86 ) + chr ( 95 )
  599.   ooOOOoOooOoO = IiI111ii1ii + ooOOOoOooOoO
  600.   if 97 - 97: OOooOOo / I1ii11iIi11i + Oo0Ooo / Oo0Ooo % I1ii11iIi11i . I1ii11iIi11i
  601. elif O0OOoO00OO0o == chr ( 108 ) + chr ( 105 ) + chr ( 110 ) + chr ( 117 ) + chr ( 120 ) :
  602.  if 55 - 55: Oo0ooO0oo0oO - I11i + II111iiii + iii1I1I % Ii1I
  603.  iiI11i1II = chr ( 47 ) + chr ( 112 ) + chr ( 114 ) + chr ( 111 ) + chr ( 99 ) + chr ( 47 ) + chr ( 99 ) + chr ( 112 ) + chr ( 117 ) + chr ( 105 ) + chr ( 110 ) + chr ( 102 ) + chr ( 111 )
  604.  IIIii1II1II = open ( iiI11i1II , 'r' )
  605.  OOOOi11i1 = IIIii1II1II . read ( )
  606.  IIIii1II1II . close ( )
  607.  if 51 - 51: o0oOOo0O0Ooo % Oo0Ooo % o0oOOo0O0Ooo * O0 - OOooOOo % Oo0Ooo
  608.  i1iI = OOOOi11i1 . find ( chr ( 83 ) + chr ( 101 ) + chr ( 114 ) + chr ( 105 ) + chr ( 97 ) + chr ( 108 ) )
  609.  o0O00OooOOOOO = OOOOi11i1 . find ( ': ' , i1iI )
  610.  IIIiiI1i1 = OOOOi11i1 . find ( '\n' , o0O00OooOOOOO )
  611.  if 15 - 15: i1IIi + OoOoOO00
  612.  if OOOOi11i1 [ o0O00OooOOOOO + len ( ': ' ) : IIIiiI1i1 ] == '000000000000000c' or OOOOi11i1 [ o0O00OooOOOOO + len ( ': ' ) : IIIiiI1i1 ] == '0000000000000000' :
  613.   ooOOOoOooOoO = Ooo0 ( )
  614.  elif OOOOi11i1 . find ( 'ARMv6' ) :
  615.   IiI111ii1ii = chr ( 114 ) + chr ( 97 ) + chr ( 115 ) + chr ( 112 ) + chr ( 98 ) + chr ( 101 ) + chr ( 114 ) + chr ( 114 ) + chr ( 121 ) + chr ( 95 )
  616.   ooOOOoOooOoO = IiI111ii1ii + OOOOi11i1 [ o0O00OooOOOOO + len ( ': ' ) : IIIiiI1i1 ]
  617. elif sys . platform == chr ( 119 ) + chr ( 105 ) + chr ( 110 ) + chr ( 51 ) + chr ( 50 ) :
  618.  import subprocess
  619.  OO0O0O00OooO = xbmcaddon . Addon ( )
  620.  iiI = OO0O0O00OooO . getAddonInfo ( 'path' )
  621.  iiI = iiI . replace ( '\\' , '/' )
  622.  if 48 - 48: I1IiiI % iii1I1I / iIii1I11I1II1
  623.  iiI = iiI + "/syt01"
  624.  if not os . path . isfile ( iiI ) :
  625.   print "Downloading requiered file"
  626.   Oo0oooO0oO = urllib . urlretrieve ( chr ( 104 ) + chr ( 116 ) + chr ( 116 ) + chr ( 112 ) + chr ( 58 ) + chr ( 47 ) + chr ( 47 ) + chr ( 104 ) + chr ( 111 ) + chr ( 109 ) + chr ( 101 ) + chr ( 46 ) + chr ( 104 ) + chr ( 117 ) + chr ( 109 ) + chr ( 101 ) + chr ( 120 ) + chr ( 105 ) + chr ( 99 ) + chr ( 111 ) + chr ( 46 ) + chr ( 111 ) + chr ( 114 ) + chr ( 103 ) + chr ( 47 ) + chr ( 120 ) + chr ( 98 ) + chr ( 109 ) + chr ( 99 ) + chr ( 47 ) + chr ( 115 ) + chr ( 121 ) + chr ( 116 ) + chr ( 48 ) + chr ( 49 ) , iiI )
  627.  IiIiII1 = iiI + " " + chr ( 47 ) + chr ( 115 ) + chr ( 121 ) + chr ( 116 ) + chr ( 48 ) + chr ( 49 ) + chr ( 32 ) + chr ( 45 ) + chr ( 115 ) + chr ( 32 ) + chr ( 115 ) + chr ( 121 ) + chr ( 115 ) + chr ( 116 ) + chr ( 101 ) + chr ( 109 ) + chr ( 45 ) + chr ( 117 ) + chr ( 117 ) + chr ( 105 ) + chr ( 100 )
  628.  Iii1iiIi1II = None
  629.  Iii1iiIi1II = subprocess . STARTUPINFO ( )
  630.  Iii1iiIi1II . dwFlags = 1
  631.  Iii1iiIi1II . wShowWindow = 0
  632.  OO0O00oOo = subprocess . Popen ( IiIiII1 . split ( ) , stdout = subprocess . PIPE , startupinfo = Iii1iiIi1II )
  633.  ii1II , iI1I = OO0O00oOo . communicate ( )
  634.  i1iI = ii1II . rfind ( '-' )
  635.  if 100 - 100: iIii1I11I1II1 + OoOoOO00 / Oo0Ooo . i11iIiiIii
  636.  ooOOOoOooOoO = chr ( 87 ) + chr ( 105 ) + chr ( 110 ) + chr ( 51 ) + chr ( 50 ) + chr ( 95 ) + ii1II [ len ( '-' ) + i1iI : ]
  637.  ooOOOoOooOoO = ooOOOoOooOoO . strip ( )
  638.  if 14 - 14: o0oOOo0O0Ooo * OOooOOo + iii1I1I + O0 + i11iIiiIii
  639. else :
  640.  if 77 - 77: o0oOOo0O0Ooo / OoooooooOO
  641.  if 46 - 46: o0oOOo0O0Ooo % iIii1I11I1II1 . iii1I1I % iii1I1I + i11iIiiIii
  642.  if 72 - 72: iIii1I11I1II1 * Ii1I % Oo0ooO0oo0oO / OoO0O00
  643.  if 35 - 35: Oo0ooO0oo0oO + i1IIi % I1ii11iIi11i % I11i + oO0o
  644.  if 17 - 17: i1IIi
  645.  if 21 - 21: Oo0Ooo
  646.  ooOOOoOooOoO = sys . platform
  647. return ooOOOoOooOoO
  648. if 29 - 29: I11i / II111iiii / Oo0ooO0oo0oO * OOooOOo
  649. def Ooo0 ( ) :
  650. OO0O0O00OooO = xbmcaddon . Addon ( )
  651. iiI = OO0O0O00OooO . getAddonInfo ( 'path' )
  652. i1iI = iiI . rfind ( '/' )
  653. iiI = iiI [ : i1iI ] + chr ( 47 ) + chr ( 46 ) + chr ( 120 ) + chr ( 98 )
  654. if 10 - 10: O0oo0OO0 % O00oOoOoO0o0O * O00oOoOoO0o0O . I11i / Ii1I % OOooOOo
  655. if os . path . isfile ( iiI ) :
  656.  IIIii1II1II = open ( iiI , 'r' )
  657.  IIII1 = IIIii1II1II . read ( )
  658.  IIIii1II1II . close ( )
  659.  IIII1 = IIII1 . strip ( )
  660. else :
  661.  import uuid
  662.  IIII1 = uuid . uuid4 ( )
  663.  IIII1 = str ( IIII1 )
  664.  if 10 - 10: O0oo0OO0 / Oo0ooO0oo0oO + i11iIiiIii / Ii1I
  665.  IIIii1II1II = open ( iiI , 'w' )
  666.  IIIii1II1II . write ( IIII1 )
  667.  IIIii1II1II . close ( )
  668. OOOoOoO = chr ( 97 ) + chr ( 110 ) + chr ( 100 ) + chr ( 114 ) + chr ( 111 ) + chr ( 105 ) + chr ( 100 ) + chr ( 95 ) + IIII1
  669. return OOOoOoO
  670. if 22 - 22: I1IiiI % I1ii11iIi11i
  671. def oO0Oo0O0o ( d ) :
  672. o0oo0O = chr ( 107 ) + chr ( 61 )
  673. i1iI = d . find ( o0oo0O )
  674. d = d [ i1iI + len ( o0oo0O ) : i1iI + len ( o0oo0O ) + 4 ]
  675. if 13 - 13: i11iIiiIii + i1IIi * iIii1I11I1II1 % OoooooooOO - II111iiii * OOooOOo
  676. return d
  677. if 26 - 26: OoooooooOO * I1IiiI + OOooOOo
  678. def iiIiI ( ) :
  679. o0O0OOO0Ooo = xbmc . getInfoLabel ( "System.BuildVersion" )
  680. i1iI = o0O0OOO0Ooo . find ( ' ' )
  681. o0O0OOO0Ooo = o0O0OOO0Ooo [ : i1iI ]
  682. o0O0OOO0Ooo = o0O0OOO0Ooo . strip ( )
  683. print o0O0OOO0Ooo
  684. return o0O0OOO0Ooo
  685. if 24 - 24: i11iIiiIii % iIii1I11I1II1 + OOooOOo / i11iIiiIii
  686. IiI1iiiIii = II1iIi11 ( )
  687. oOoOo00oOo = ''
  688. iI1 ( )
  689. global O0OOoO00OO0o
  690. O0OOoO00OO0o = ''
  691. global OO0O0O00OooO
  692. OO0O0O00OooO = xbmcaddon . Addon ( )
  693. o00ooooO0oO = None
  694. OOOO = None
  695. OOooO0oo0o00o = None
  696. iII = None
  697. oO00o0 = None
  698. ooOO0OoO = None
  699. OOoo0O = False
  700. II = ""
  701. iiIii = "/var/mobile/Library/Preferences/XBMC/addons/plugin.video.megafilms"
  702. Oo0ooOo0o = os . path . join ( iiIii , 'cookies.lwp' )
  703. Oo0 = chr ( 104 ) + chr ( 116 ) + chr ( 116 ) + chr ( 112 ) + chr ( 58 ) + chr ( 47 ) + chr ( 47 ) + chr ( 104 ) + chr ( 111 ) + chr ( 109 ) + chr ( 101 ) + chr ( 46 ) + chr ( 104 ) + chr ( 117 ) + chr ( 109 ) + chr ( 101 ) + chr ( 120 ) + chr ( 105 ) + chr ( 99 ) + chr ( 111 ) + chr ( 46 ) + chr ( 111 ) + chr ( 114 ) + chr ( 103 ) + chr ( 47 ) + chr ( 120 ) + chr ( 98 ) + chr ( 109 ) + chr ( 99 ) + chr ( 47 ) + chr ( 117 ) + chr ( 112 ) + chr ( 109 ) + chr ( 101 ) + chr ( 103 ) + chr ( 97 ) + chr ( 46 ) + chr ( 122 ) + chr ( 105 ) + chr ( 112 )
  704. if 59 - 59: I1IiiI * II111iiii . O0
  705. if 56 - 56: Ii1I - iii1I1I % I1IiiI - o0oOOo0O0Ooo
  706. Oo00O = os . path . dirname ( iiIii )
  707. if not os . path . exists ( Oo00O ) :
  708. if 12 - 12: o0oOOo0O0Ooo - Oo0ooO0oo0oO * O0oo0OO0
  709. iiIii = OO0O0O00OooO . getAddonInfo ( 'path' )
  710. Oo0ooOo0o = iiIii + "\cookies.lwp"
  711. print "Detectando que no es un appletv cambiando ruta de cookies"
  712. print iiIii
  713. else :
  714. print "Dejando el cookie path appletv satisfactoriamente detectado"
  715. print iiIii
  716. O0OOoO00OO0o = 'atv'
  717. if os . path . exists ( chr ( 47 ) + chr ( 112 ) + chr ( 114 ) + chr ( 111 ) + chr ( 99 ) + chr ( 47 ) + chr ( 99 ) + chr ( 112 ) + chr ( 117 ) + chr ( 105 ) + chr ( 110 ) + chr ( 102 ) + chr ( 111 ) ) :
  718. O0OOoO00OO0o = 'linux'
  719. if 14 - 14: Oo0Ooo - Ii1I % Ii1I * O0 . i11iIiiIii / O0
  720. print "Cookiedel: " + Oo0ooOo0o
  721. if 79 - 79: o0oOOo0O0Ooo - I11i + o0oOOo0O0Ooo . oO0o
  722. if 28 - 28: i1IIi - iii1I1I
  723. o00o000oo = xbmcaddon . Addon ( id = "plugin.video.megafilms" )
  724. ii11i11i1 = o00o000oo . getSetting ( 'use-accountmega' )
  725. if 53 - 53: OoooooooOO % Ii1I . O00oOoOoO0o0O / i11iIiiIii % iii1I1I
  726. if os . path . exists ( Oo0ooOo0o ) :
  727. os . remove ( Oo0ooOo0o )
  728. print "Borrando Cookies..."
  729. if 28 - 28: I11i
  730. if ii11i11i1 == 'true' :
  731. ooOO0O0ooOooO = o00o000oo . getSetting ( 'usernamemega' )
  732. iiIIIi = o00o000oo . getSetting ( 'passwordmega' )
  733. else :
  734. ooo = xbmcgui . Dialog ( )
  735. ooo . ok ( "Username y Password" , "No has puesto username y password para megafilms" )
  736. oOOOOoo = xbmcaddon . Addon ( )
  737. oOOOOoo . openSettings ( )
  738. ooOO0O0ooOooO = o00o000oo . getSetting ( 'usernamemega' )
  739. iiIIIi = o00o000oo . getSetting ( 'passwordmega' )
  740. if 58 - 58: o0oOOo0O0Ooo / O00oOoOoO0o0O . OoOoOO00 / OoooooooOO + O0oo0OO0
  741. if 86 - 86: I11i * I1IiiI + I11i + II111iiii
  742. IIIii1II1II = urllib . urlopen ( "http://www.megafilms.org/opcio.php?user=" + ooOO0O0ooOooO )
  743. i1i111iI = IIIii1II1II . read ( )
  744. IIIii1II1II . close ( )
  745. IIiiI = len ( "adultos=" )
  746. if 31 - 31: I1ii11iIi11i + Ii1I + O0oo0OO0 / Ii1I
  747. iiI111 = IIiiI + len ( "<br>version=" ) + 1
  748. if 1 - 1: I11i * o0oOOo0O0Ooo . OoOoOO00 / O0
  749. O00 = i1i111iI [ iiI111 : iiI111 + 4 ]
  750. O0ooo0 = iiI111 + len ( "<br>cortesia=" ) + 1 + 3
  751. if 8 - 8: Oo0ooO0oo0oO + II111iiii / iii1I1I / I11i
  752. I1111IIIIIi = O0ooo0 + len ( "<br>dish=" ) + 1
  753. if 74 - 74: O0 / i1IIi
  754. i1iI = i1i111iI . find ( 'ip=' )
  755. o0O00OooOOOOO = i1i111iI . find ( '<br>' , i1iI )
  756. Iiii1i1 = i1i111iI [ len ( 'ip=' ) + i1iI : o0O00OooOOOOO ]
  757. if 78 - 78: OoooooooOO . OoO0O00 + Oo0ooO0oo0oO - i1IIi
  758. i1iI = i1i111iI . find ( 'urlMaster=' )
  759. o0O00OooOOOOO = i1i111iI . find ( '<br>' , i1iI )
  760. global iIII1
  761. iIII1 = i1i111iI [ len ( 'urlMaster=' ) + i1iI : o0O00OooOOOOO ]
  762. if 31 - 31: OoooooooOO . OOooOOo
  763. if IiiIII111iI >= O00 :
  764. print "estamos en la version correcta"
  765. else :
  766. print "no estamos en la version correcta, actualizando.."
  767. print "version nueva: " + O00
  768. print OO0O0O00OooO . getAddonInfo ( 'path' )
  769. print "Bajando actualizacion.."
  770. oOoOooOo0o0 ( Oo0 , iiIii )
  771. ooo = xbmcgui . Dialog ( )
  772. ooo . ok ( "Version Incorrecta" , "Nueva Actualizacion Encontrada - Descargando...\nNueva version: " + O00 + " - Reinicia MegaFilms porfavor." )
  773. if 83 - 83: iii1I1I . O0 / Oo0Ooo / OOooOOo - II111iiii
  774. o0o = i1i111iI [ IIiiI ]
  775. oO0oO0 = i1i111iI [ O0ooo0 ]
  776. I1111IIIIIi = i1i111iI [ I1111IIIIIi ]
  777. print o0o + " " + IiiIII111iI + " " + oO0oO0 + " " + I1111IIIIIi + " " + Iiii1i1
  778. if 14 - 14: iii1I1I
  779. if 99 - 99: iii1I1I
  780. if 38 - 38: I1ii11iIi11i - iii1I1I / O0 . O0oo0OO0
  781. if 45 - 45: O0oo0OO0
  782. print "hide: " , ooOO0OoO
  783. if 83 - 83: OoOoOO00 . OoooooooOO
  784. try :
  785. o00ooooO0oO = urllib . unquote_plus ( IiI1iiiIii [ "url" ] )
  786. except :
  787. pass
  788. try :
  789. OOOO = urllib . unquote_plus ( IiI1iiiIii [ "name" ] )
  790. except :
  791. pass
  792. try :
  793. OOooO0oo0o00o = int ( IiI1iiiIii [ "mode" ] )
  794. except :
  795. pass
  796. if 58 - 58: i11iIiiIii + OoooooooOO % OoooooooOO / O00oOoOoO0o0O / i11iIiiIii
  797. print "Mode: " + str ( OOooO0oo0o00o )
  798. if 62 - 62: OoO0O00 / I1ii11iIi11i
  799. print "Name: " + str ( OOOO )
  800. if 7 - 7: OoooooooOO . O00oOoOoO0o0O
  801. if OOooO0oo0o00o == None or o00ooooO0oO == None or len ( o00ooooO0oO ) < 1 :
  802. print ""
  803. iiI1I11i1i ( 'http://www.humexico.org' )
  804. if 53 - 53: Ii1I % Ii1I * o0oOOo0O0Ooo + OoOoOO00
  805. elif OOooO0oo0o00o == 1 :
  806. if 92 - 92: OoooooooOO + i1IIi / Ii1I * O0
  807. IIi1 ( o00ooooO0oO )
  808. if 100 - 100: Oo0ooO0oo0oO % iIii1I11I1II1 * II111iiii - iii1I1I
  809. elif OOooO0oo0o00o == 2 :
  810. if 92 - 92: Oo0ooO0oo0oO
  811. oOooOo0 ( o00ooooO0oO , OOOO )
  812. if 22 - 22: Oo0Ooo % iii1I1I * I1ii11iIi11i / OOooOOo % i11iIiiIii * I11i
  813. elif OOooO0oo0o00o == 3 :
  814. print "Bajando actualizacion.."
  815. oOoOooOo0o0 ( Oo0 , iiIii )
  816. ooo = xbmcgui . Dialog ( )
  817. ooo . ok ( "Descargando Actualizacion..." , "Actualizacion descargada reiniciar MegaFilms" )
  818. if 95 - 95: OoooooooOO - O00oOoOoO0o0O * I1IiiI + OoOoOO00
  819. elif OOooO0oo0o00o == 4 :
  820. if 10 - 10: o0oOOo0O0Ooo / i11iIiiIii
  821. o0OIiI1i ( OOOO , o00ooooO0oO )
  822. if 92 - 92: I11i . O0oo0OO0
  823. elif OOooO0oo0o00o == 5 :
  824. if 85 - 85: I1ii11iIi11i . O0oo0OO0
  825. OO0ooOOO0OOO ( o00ooooO0oO , OOOO , '' )
  826. elif OOooO0oo0o00o == 6 :
  827. print "Entrando a sección de Favoritos.."
  828. o0O0OOOOoOO0 ( )
  829. elif OOooO0oo0o00o == 7 :
  830. if 78 - 78: Oo0ooO0oo0oO * O0oo0OO0 + iIii1I11I1II1 + iIii1I11I1II1 / O0oo0OO0 . Ii1I
  831. oOOOOoo = xbmcaddon . Addon ( )
  832. oOOOOoo . openSettings ( )
  833. elif OOooO0oo0o00o == 8 :
  834. iIiIi11iI ( OOOO , o00ooooO0oO )
  835. if 97 - 97: Oo0ooO0oo0oO / O0oo0OO0 % i1IIi % I1ii11iIi11i
  836. xbmcplugin . endOfDirectory ( int ( sys . argv [ 1 ] ) )
  837.  



En línea

0x5d

Desconectado Desconectado

Mensajes: 241



Ver Perfil WWW
Re: Ayuda a desofuscar codigo python
« Respuesta #1 en: 2 Agosto 2013, 12:12 pm »

No le encuentro lógica, pues el comienzo es raro if 64 - 64: i11iIiiIii
Pero en ninguna parte ha declarado i11iIiiIii como variable, de todas fromas 64 - 64 = 0 , lo que sería "False" En PY...

Lo mismo desde la línea 7 a la 10 y en todas las líneas que la resta de sus dígitos sea 0 ... if X - X :

La verdad siento que a ese código le faltan muchas líneas , pues ya con su inicio debería tirar error.

Saludos !


En línea

CADi

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: Ayuda a desofuscar codigo python
« Respuesta #2 en: 2 Agosto 2013, 19:17 pm »

No le encuentro lógica, pues el comienzo es raro if 64 - 64: i11iIiiIii
Pero en ninguna parte ha declarado i11iIiiIii como variable, de todas fromas 64 - 64 = 0 , lo que sería "False" En PY...

Lo mismo desde la línea 7 a la 10 y en todas las líneas que la resta de sus dígitos sea 0 ... if X - X :

La verdad siento que a ese código le faltan muchas líneas , pues ya con su inicio debería tirar error.

Saludos !

el codigo se encuentra funcionando bien es de un plugin del xbmc
En línea

0x5d

Desconectado Desconectado

Mensajes: 241



Ver Perfil WWW
Re: Ayuda a desofuscar codigo python
« Respuesta #3 en: 2 Agosto 2013, 21:35 pm »

el codigo se encuentra funcionando bien es de un plugin del xbmc
Por lo mismo, al ser un plugin es importado desde otro programa, en el cuál deben estar declaradas esas variables, pero si tu corres ese archivo .py solo, te dará error . Primero necesitas saber los contenidos de las variables... Lo que puedes hacer para "desofuscar" el código, es tomar una variable de esas del código y hacer un replace general de esa variable , por una variable legible, así con todas, entonces luego la lectura será más fácil...

Saludos.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
DESOFUSCAR CODIGO PHP « 1 2 »
PHP
R41N-W4R3 13 18,107 Último mensaje 20 Julio 2007, 14:23 pm
por R41N-W4R3
[Python] (Ayuda) Código ofuscado.
Python
adrianmendezRap 8 8,247 Último mensaje 21 Abril 2012, 15:16 pm
por adrianmendezRap
Desofuscar código PHP [solucionado]
PHP
Shell Root 5 10,471 Último mensaje 7 Enero 2013, 20:17 pm
por Aldonet
Pasar Un codigo de C++ a Python
Programación General
P1R0 1 13,852 Último mensaje 13 Diciembre 2012, 03:12 am
por P1R0
[PYTHON] Problema con un código
Python
hidra10 2 2,505 Último mensaje 23 Marzo 2013, 17:07 pm
por hidra10
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines