PureBasic

Forums PureBasic
Nous sommes le Lun 24/Juin/2019 18:30

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 10 messages ] 
Auteur Message
 Sujet du message: Décoder un site Web pour le fun
MessagePosté: Lun 04/Mar/2019 23:54 
Hors ligne
Avatar de l’utilisateur

Inscription: Ven 16/Oct/2015 18:22
Messages: 308
Localisation: France
Bonsoir a tous,
Je me suis amusé a décoder un site Web pour m'amuser.
J'ai développé une petite application dont voici une copie écran de l'interface:
Image
Les sources et les exécutables sont téléchargeables ici
Menus gauche/Mes projets purebasic/zone privée 2
Login: pure / basic

Mais ce qui m’amène ce soir, c'est un petit challenge pour décoder du Javasript contenu dans les pages Web et codé avec une fonction eval(function(p,a,c,k,e,d){e=function(c){return c.toString(36)};....
Voici ce a quoi je suis arrivé, et je me demandai si cela vous amuserez de tenter de décoder la dite fonction et de partager vos solution.
Code:
EnableExplicit

Global urlHomePage$ = "https://"+"www"+".arconaitv"+".us"

Global html.s, page.s

Procedure.s obtenir_page_html(page.s)
  ; page.s doit contenir l'url complète de la page
  ; html.s contiendra le contenu complet de la page (index, guide, ...)
 
  Protected URL$   = page.s ;;: Debug ">>>>> URL="+URL$
  Protected HTML.s = #Null$
 
  If URL$ = #Null$
    ProcedureReturn #Null$
  EndIf
 
  Protected host$, prot$, site$
 
  prot$ = Trim(StringField(URL$,1,"/")) : Debug ">>>>> PROT = " + prot$
  host$ = Trim(StringField(URL$,3,"/")) : Debug ">>>>> HOST = " + host$
  site$ = prot$ + "//" + host$ + "/"    : Debug ">>>>> SITE = " + site$
 
  Protected agent$, cookie$, lang$, type$
 
  agent$  = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36 Edge/14.14393"
  cookie$ = ""
  lang$   = "fr-FR"
  type$   = "text/html"
 
  Protected HttpRequest
 
  If InitNetwork()
    NewMap Header$()
   ;Header$("Accept")          = type$
   ;Header$("Accept-Language") = lang$
    Header$("Cache-Control")   = "no-cache"
   ;Header$("Cookie")          = cookie$
   ;Header$("Connection")      = "keep-alive"
   ;Header$("Content-Type")    = type$
   ;Header$("Host")            = host$
   ;Header$("Referer")         = site$
    Header$("User-Agent")      = agent$
   
    HttpRequest = HTTPRequest(#PB_HTTP_Get, page.s, "", 0, Header$())
    If HttpRequest
      HTML.s = HTTPInfo(HTTPRequest, #PB_HTTP_Response)
      ;: Debug "Response: " + HTML.s
      FinishHTTP(HTTPRequest)
    Else ; ............................. If HttpRequest
      Debug "Request creation failed"
      ProcedureReturn #Null$
    EndIf ; ............................ If HttpRequest
  Else ; ............................... If InitNetwork()
    ProcedureReturn #Null$
  EndIf ; .............................. If InitNetwork()
  ProcedureReturn HTML.s
EndProcedure

Procedure.s decoder_m3u8(id)
  ;;https://beautifier.io/
  ;;http://dean.edwards.name/unpacker/
 
  Protected I, L, N, N$, A$, codage$, radix$, wordc$, hachage$, foo$, chaine$
  Protected M3U8.s
  Protected line.s, LIGNE
 
  NewList CODES.s()

  : Debug ">>>>> DECODE"
  PAGE.s  = urlHomePage$ + "/stream.php?id=" + Str(id)
  : Debug ">>>>> PAGE="+page
  HTML.s = obtenir_page_html(page.s)
  ;: Debug HTML
 
  NewMap LCODE.s()
  NewMap PCODE.s()
 
  For LIGNE = 1 To 999
    line.s = StringField(HTML.s, LIGNE, #LF$)
    ;: Debug LINE.s
    If FindString(line.s, "m3u8", 1, #PB_String_NoCase)
      line.s = ReplaceString(line.s, #TAB$, " ")
      : Debug ">>>>> M3U8 trouvé"
      ClearClipboard()
      L = CountString(line.s, ";") + 1            : Debug "Nombre de lignes de code = " + Str(L)
      For N = 1 To L
        N$ = Str(N)
        LCODE(N$) = Trim(StringField(line.s, N, ";"))
        Debug "ligne " + N$ + "= " + LCODE(N$)
      Next
      : Debug ""
      line.s = StringField(LCODE(Str(L)), 1, ".split")
      line.s = ReplaceString(line.s, "'", "")
      : Debug "line="+line
      I = CountString(line.s, ",")               : Debug "count , = " + Str(I)
      radix$  = StringField(line.s, 2, ",")      : Debug "radix="+radix$
      wordc$  = StringField(line.s, 3, ",")      : Debug "wordc="+wordc$
      chaine$ = StringField(line.s, 4, ",")      : Debug "Chaine = "+chaine$
     
      codage$ = LCODE(Str(L-2))                  : Debug "codage="+codage$
     
      codage$ = StringField(codage$, 2, "\'")    : Debug "codage="+codage$
     
      codage$ = UCase(codage$) : Debug "codage="+codage$
     
      ; création du tableau des éléments de chaine$
      I = CountString(chaine$, "|")
      For N = 0 To I
        Select N
          Case 0 To 9 : A$ = Str(N)
          Default     : A$ = UCase(Chr(87+N))
        EndSelect
        PCODE(A$) = StringField(chaine$, N+1, "|")
      Next
     
      ForEach PCODE()
        Debug "Array["+MapKey(PCODE())+"] = "+PCODE()
      Next
     
      : Debug "Longueur codage=" + Len(codage$)
      foo$ = #Null$
      For I = 1 To Len(codage$)
        A$ = Mid(codage$, I, 1)
        Select A$
          Case "/", ":", ".", "-" : foo$+A$
          Case "0","1","2","3","4","5","6","7","8","9"
                    foo$+PCODE(A$)
          Case "A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"
                    foo$+PCODE(A$)
          Default : foo$+A$
        EndSelect
      Next
      Debug "Lien vidéo: " + foo$
    EndIf
  Next
  SetClipboardText(foo$)
  ProcedureReturn foo$
EndProcedure

decoder_m3u8(173)

; Debug obtenir_page_html(urlHomePage$ + "/stream.php?id=173")

Je vous laisse découvrir le contenu du site et ceux qui maitrisent l'anglais pourrons y trouver leur compte.
CAGE

_________________
■ Win10 64-bit (Intel Celeron CPU N2920 @ 1.86GHz, 4,0GB RAM, Intel HD Graphics) & PB 5.70 LTS
■ Vivre et laisser vivre.
■ PureBasic pour le fun
■ Mes sites: http://pbcage.free.fr - http://yh.toolbox.free.fr


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Décoder un site Web pour le fun
MessagePosté: Mar 05/Mar/2019 10:01 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 09/Oct/2005 16:51
Messages: 8668
Salut Cage, Je me suis baladé sur ton site, je ne pensais pas que tu étais si à fond sur les progs de TV :D

_________________
~~~~Règles du forum ~~~~
.: Ar-S :. Tour + portable W10 x64 PB 5.4x / 5.6x
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
RESIZER GOLD : Mon logiciel de redimensionnement par lot 100% PB


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Décoder un site Web pour le fun
MessagePosté: Mar 05/Mar/2019 12:09 
Hors ligne
Avatar de l’utilisateur

Inscription: Ven 16/Oct/2015 18:22
Messages: 308
Localisation: France
Bonjour Ar-S,
C'est un domaine qui intéresse beaucoup de monde, notamment le streaming.
Je me suis donc penché sur ce monde particulier.
Je me suis servi de PB pour afficher/décoder un certain nombre de sites.
Le but principal n'est pas de visionner mais de voir si je suis capable de faire.
A bientôt 67 ans, PB m'aide a garder mes neurones actifs.

_________________
■ Win10 64-bit (Intel Celeron CPU N2920 @ 1.86GHz, 4,0GB RAM, Intel HD Graphics) & PB 5.70 LTS
■ Vivre et laisser vivre.
■ PureBasic pour le fun
■ Mes sites: http://pbcage.free.fr - http://yh.toolbox.free.fr


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Décoder un site Web pour le fun
MessagePosté: Mar 05/Mar/2019 14:10 
Hors ligne
Avatar de l’utilisateur

Inscription: Ven 11/Fév/2005 17:34
Messages: 4208
Localisation: Arras, France
Apparemment ça fonctionne bien !


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Décoder un site Web pour le fun
MessagePosté: Mar 05/Mar/2019 18:13 
Hors ligne

Inscription: Jeu 05/Fév/2009 17:58
Messages: 880
@djes
Tu veux parler des neurones a cage :roll: :oops: Je confirme :D :D


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Décoder un site Web pour le fun
MessagePosté: Mar 05/Mar/2019 21:01 
Hors ligne
Avatar de l’utilisateur

Inscription: Ven 16/Oct/2015 18:22
Messages: 308
Localisation: France
@djes, MLD
Merci a vous deux.

_________________
■ Win10 64-bit (Intel Celeron CPU N2920 @ 1.86GHz, 4,0GB RAM, Intel HD Graphics) & PB 5.70 LTS
■ Vivre et laisser vivre.
■ PureBasic pour le fun
■ Mes sites: http://pbcage.free.fr - http://yh.toolbox.free.fr


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Décoder un site Web pour le fun
MessagePosté: Mer 06/Mar/2019 7:48 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 02/Oct/2011 16:17
Messages: 2137
Localisation: 50200 Coutances
C'est normal qu'on soutienne notre génération.

_________________
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce GT 640 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.62, 5.70 LTS
Un homme doit être poli, mais il doit aussi être libre !


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Décoder un site Web pour le fun
MessagePosté: Jeu 07/Mar/2019 10:03 
Hors ligne
Avatar de l’utilisateur

Inscription: Sam 23/Sep/2006 18:32
Messages: 6623
Localisation: Isere
Merci pour les nombreux partages de ton site 8)

_________________
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Décoder un site Web pour le fun
MessagePosté: Jeu 07/Mar/2019 23:33 
Hors ligne
Avatar de l’utilisateur

Inscription: Ven 16/Oct/2015 18:22
Messages: 308
Localisation: France
Merci Micoute, merci Kwai chang caine

_________________
■ Win10 64-bit (Intel Celeron CPU N2920 @ 1.86GHz, 4,0GB RAM, Intel HD Graphics) & PB 5.70 LTS
■ Vivre et laisser vivre.
■ PureBasic pour le fun
■ Mes sites: http://pbcage.free.fr - http://yh.toolbox.free.fr


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Décoder un site Web pour le fun
MessagePosté: Sam 09/Mar/2019 14:19 
Hors ligne

Inscription: Ven 29/Juin/2007 17:50
Messages: 3437
Salut cage,

je viens d'aller sur la 1ère page de ton site à l'instant, pour la petite info.


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 10 messages ] 

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Google [Bot] et 3 invités


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages

Rechercher:
Aller à:  
cron

 


Powered by phpBB © 2008 phpBB Group | Traduction par: phpBB-fr.com
subSilver+ theme by Canver Software, sponsor Sanal Modifiye