comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

[Function] Adf.ly Decode by fudmario[vb.net]

  • 5 Respuestas
  • 3422 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado fudmario

  • *
  • Cramel
  • *
  • Mensajes: 193
  • Actividad:
    0%
  • Reputación 11
    • Ver Perfil
    • fudmario - GitHub
  • Skype: fudmario
« en: Septiembre 16, 2015, 12:01:51 pm »
Código: vb.net
  1.    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  2.         TextBox1.Text = AdflyUrlDecode("http://adf.ly/1NfMkS")
  3.        
  4.     End Sub
  5.  
  6. ' Return: https://itunes.apple.com/us/app/game-of-thrones-ascent/id799145075
  7.  


Código: vb.net
  1. ' ***********************************************************************
  2. ' Author           : fudmario
  3. ' Created          : 09-15-2015
  4. '
  5. ' Last Modified By : fudmario
  6. ' Last Modified On : 09-16-2015
  7. ' ***********************************************************************
  8. ' <copyright file="Adfly_Decode.vb" company="fudmarioDev">
  9. '     Copyright (c) fudmarioDev. All rights reserved.
  10. ' </copyright>
  11. ' <summary></summary>
  12. ' ***********************************************************************
  13. Imports System.IO
  14. Imports System.Net
  15. Imports System.Text
  16. Module AdflyDecode
  17.     ''' <summary>
  18.     '''     Decodifica una Url de Adf.ly.
  19.     ''' </summary>
  20.     ''' <param name="url">URL a decodificar.</param>
  21.     ''' <returns>Retorna la Url Decodificada.</returns>
  22.     Public Function AdflyUrlDecode(url As String) As String
  23.         Try
  24.             Dim sb As New StringBuilder
  25.             Dim data As String = GetSource(url:=url)
  26.             Dim rt As String() = {"ysmm = '", "'"c}
  27.             Dim a As Integer = data.IndexOf(rt(0), StringComparison.Ordinal) + rt(0).Length + 1
  28.             Dim b As Integer = data.Substring(a).IndexOf(rt(1), StringComparison.Ordinal) + 1
  29.             Dim s As String = Mid(data, a, b)
  30.             For i = 0 To s.Length - 1 Step 2
  31.                 sb.Append(s(i))
  32.             Next
  33.             For k = s.Length - 1 To 0 Step -2
  34.                 sb.Append(s(k))
  35.             Next
  36.             Return Encoding.ASCII.GetString(Convert.FromBase64String(sb.ToString())).Substring(2)
  37.         Catch ex As Exception
  38.             Return String.Empty
  39.         End Try
  40.     End Function
  41.  
  42.     ''' <summary>
  43.     '''     Obtiene el Código Fuente de una Url.
  44.     ''' </summary>
  45.     ''' <param name="url">Url.</param>
  46.     ''' <returns>Retorna el código fuente de una Url.</returns>
  47.     Private Function GetSource(url As String) As String
  48.         Try
  49.             Return New StreamReader(WebRequest.Create(url).GetResponse().GetResponseStream()).ReadToEnd()
  50.         Catch ex As Exception
  51.             Return String.Empty
  52.         End Try
  53.     End Function
  54. End Module
  55.  
  56.  
« Última modificación: Noviembre 08, 2015, 04:06:18 pm por Expermicid »


Desconectado BigBear

  • *
  • Underc0der
  • Mensajes: 543
  • Actividad:
    0%
  • Reputación 3
    • Ver Perfil
« Respuesta #1 en: Septiembre 16, 2015, 06:14:41 pm »
Hola estoy tratando de entender este codigo para tratar de traducirlo a Delphi :

Código: vb.net
  1. For i = 0 To s.Length - 1 Step 2
  2.   sb.Append(s(i))
  3.  Next
  4. For k = s.Length - 1 To 0 Step -2
  5.   sb.Append(s(k))
  6. Next

Mi pregunta es , ¿ que trata de hacer el autor en ese codigo ? ¿ leer al reves la variable "sb" ? ¿ para que sirve step ?

Otra parte es :

Código: vb.net
  1. Return Encoding.ASCII.GetString(Convert.FromBase64String(sb.ToString())).Substring(2)

¿ Para que sirve Encoding.ASCII.GetString ? ¿ Para decodificar un ASCII a texto normal ? ¿ Que hace SubString(2) en la variable ?

Solo son esas dudas espero no molestar.
« Última modificación: Septiembre 16, 2015, 06:16:43 pm por Doddy »

Desconectado fudmario

  • *
  • Cramel
  • *
  • Mensajes: 193
  • Actividad:
    0%
  • Reputación 11
    • Ver Perfil
    • fudmario - GitHub
  • Skype: fudmario
« Respuesta #2 en: Septiembre 16, 2015, 08:03:46 pm »
Que es lo que hace esta funcion es:

Primero descarga el codigo fuente de una url y lo almacena en la variable "data"
Luego obtiene el valor que esta entre "ysmm = '" y "'"
por ejemplo si fuese el resultado asi: "HoOmLoAc"
recorremos cada letra saltando de 2 en dos comenzado con la H,O,L,A
y luego lo hacemos de manera inversa comenzamos del final hasta la penultima letra c,o,m,o

y luego el resultado es H,O,L,A,c,o,m,o->HOLAcomo
y luego lo decodificamos en base64 (el resultado real que obtenemos  será  de la forma 64http://sitiooriginal.com/blal.html )
omitimos las 2 primeras letras y Listo URL Decodificada.
 


Ahora respecto a tus dudas:
Al principio Inicializamos una nueva instancia de la clase System.Text.StringBuilder.
Dim sb as New StringBuilder
Con el For recorremos cada letra  desde 0 hasta la longitud de la cadena que obtuvimos aumentado de dos en dos.
y con el sb.Append(s(i))  lo que hace es: Anexar a sb la representación en forma de cadena del carácter Unicode especificado.
tomando el ejemplo anterior: comienza con H luego le anexa la siguiente que seria O es decir HO->HOL y asi sucesivamente hasta llegar a :"HOLA"

y luego lo hacemos de manera inversa del final a el inicio primero "c" luego "co"->"com"->"como" seguimos anexando a la misma instancia que inicializamos.

con respecto a : Encoding.ASCII.GetString(bytes() As Byte), que mejor que la definicion que nos da:
    ' Resumen:
        '     Cuando se reemplaza en una clase derivada, descodifica todos los bytes de la
        '     matriz de bytes especificada en una cadena.
        '
        ' Parámetros:
        '   bytes:
        '     Matriz de bytes que contiene la secuencia de bytes que se va a descodificar(en este caso la que obtendremos de Convert.FromBase64String(sb.ToString())).
        '
        ' Devuelve:
        '     Cadena que contiene el resultado de la descodificación de la secuencia de bytes
        '     especificada.
   
      
Y Substring(2)

     Lo que hace es empezar en una posición de caracteres especificada(en este caso 2, será la Posición  inicial.) y continúa hasta el final de la cadena.
      
      
      


Desconectado BigBear

  • *
  • Underc0der
  • Mensajes: 543
  • Actividad:
    0%
  • Reputación 3
    • Ver Perfil
« Respuesta #3 en: Septiembre 16, 2015, 08:34:29 pm »
te agradezo la explicacion Fudmario , espero tener tiempo para hacer esta traduccion aunque ahora estoy examenes.

Saludos y gracias por responder.

Desconectado perl

  • *
  • Underc0der
  • Mensajes: 2
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #4 en: Diciembre 14, 2015, 03:21:01 pm »
buenas, gracias por el aporte y por la explicación , nunca hubiera adivinado que las letras estaban entrelazadas pares e impares y codificada en base64... eres una maquina!! Saludos y gracias por ayudar a los que empezamos!!

Desconectado Kr3L

  • *
  • Underc0der
  • Mensajes: 9
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #5 en: Junio 22, 2016, 05:07:37 pm »
Me gustó, gracias por compartirlo y por tu explicación. Como soy nuevo me puse a buscar en internet y tambien me tope con el mismo script pero en lenguaje PHP, aqui se los comparto.

Código: PHP
  1. <?php
  2.  
  3. function request( $url ) {
  4.     $ua = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1712.4 Safari/537.36';
  5.     if ( !No tienes permisos para ver links. Registrate o Entra con tu cuenta( '/^[a-zA-Z0-9\/]+$/', $url ) )
  6.         return false;
  7.  
  8.     $ch = No tienes permisos para ver links. Registrate o Entra con tu cuenta();
  9.     No tienes permisos para ver links. Registrate o Entra con tu cuenta( $ch, No tienes permisos para ver links. Registrate o Entra con tu cuenta(
  10.         CURLOPT_FAILONERROR => true,
  11.         CURLOPT_FOLLOWLOCATION => false,
  12.         CURLOPT_RETURNTRANSFER => true,
  13.         CURLOPT_TIMEOUT => 10,
  14.         CURLOPT_USERAGENT => $ua,
  15.         CURLOPT_URL => 'http://adf.ly/' . $url
  16.     ) );
  17.     $data = No tienes permisos para ver links. Registrate o Entra con tu cuenta( $ch );
  18.     No tienes permisos para ver links. Registrate o Entra con tu cuenta( $ch );
  19.  
  20.     if ( No tienes permisos para ver links. Registrate o Entra con tu cuenta( "#var ysmm = '([a-zA-Z0-9+/=]+)'#", $data, $matches ) ) {
  21.         $final = $url = decode( $matches[1] );
  22.         // check for redirects
  23.         $ch = No tienes permisos para ver links. Registrate o Entra con tu cuenta();
  24.         No tienes permisos para ver links. Registrate o Entra con tu cuenta( $ch, No tienes permisos para ver links. Registrate o Entra con tu cuenta(
  25.             CURLOPT_FAILONERROR => true,
  26.             CURLOPT_FOLLOWLOCATION => true,
  27.             CURLOPT_RETURNTRANSFER => true,
  28.             CURLOPT_HEADER => true,
  29.             CURLOPT_NOBODY => true,
  30.             CURLOPT_TIMEOUT => 10,
  31.             CURLOPT_USERAGENT => $ua,
  32.             CURLOPT_URL => $url
  33.         ) );
  34.         $data = No tienes permisos para ver links. Registrate o Entra con tu cuenta( $ch );
  35.         if ( No tienes permisos para ver links. Registrate o Entra con tu cuenta( '/Location:\s*(.+)\s*$/im', $data, $matches, PREG_SET_ORDER ) ) {
  36.             $last = No tienes permisos para ver links. Registrate o Entra con tu cuenta( $matches );
  37.             $final = No tienes permisos para ver links. Registrate o Entra con tu cuenta( $last[1] );
  38.         }
  39.  
  40.         return No tienes permisos para ver links. Registrate o Entra con tu cuenta( $url, $final );
  41.     }
  42.  
  43.     return false;
  44. }
  45.  
  46. function decode( $ysmm ) {
  47.     $left = '';
  48.     $right = '';
  49.     for ( $i = 0; $i < No tienes permisos para ver links. Registrate o Entra con tu cuenta( $ysmm ); $i++ ) {
  50.         if ( $i % 2 == 0 ) {
  51.             $left .= $ysmm[$i];
  52.         } else {
  53.             $right = $ysmm[$i] . $right;
  54.         }
  55.     }
  56.     return No tienes permisos para ver links. Registrate o Entra con tu cuenta( No tienes permisos para ver links. Registrate o Entra con tu cuenta( $left . $right ), 2 );
  57. }
  58.  
  59. if ( No tienes permisos para ver links. Registrate o Entra con tu cuenta( $_GET['url'] ) && $_GET['url'] ) {
  60.     // strip out beginning (everything up to last slash)
  61.     $stripped = '';
  62.     $slashes = No tienes permisos para ver links. Registrate o Entra con tu cuenta( '/', $_GET['url'] );
  63.     $stripped = No tienes permisos para ver links. Registrate o Entra con tu cuenta( $slashes );
  64.  
  65.     No tienes permisos para ver links. Registrate o Entra con tu cuenta( $url, $final ) = request( $stripped );
  66.     if ( $url ) {
  67.         echo '<p>Your URL is <a href="' . $url . '">' . $url . '</a>';
  68.         if ( $url != $final ) {
  69.             echo ' (<a href="' . $final . '">' . $final . '</a>)';
  70.         }
  71.         echo '</p>';
  72.     } else {
  73.         // try 2 parts
  74.         $stripped = No tienes permisos para ver links. Registrate o Entra con tu cuenta( $slashes ) . '/' . $stripped;
  75.         No tienes permisos para ver links. Registrate o Entra con tu cuenta( $url, $final ) = request( $stripped );
  76.         if ( $url ) {
  77.             echo '<p>Your URL is <a href="' . $url . '">' . $url . '</a>';
  78.             if ( $url != $final ) {
  79.                 echo ' (<a href="' . $final . '">' . $final . '</a>)';
  80.             }
  81.             echo '</p>';
  82.         } else {
  83.             echo '<p>Adf.ly URL not found</p>';
  84.         }
  85.     }
  86. }
  87. ?>

Fuente: No tienes permisos para ver links. Registrate o Entra con tu cuenta

Saludos :)
Hola, soy Kr3L !

 

¿Te gustó el post? COMPARTILO!



GhostDoc Enterprise - Build 5.2.16200 | Patcher by fudmario

Iniciado por fudmario

Respuestas: 3
Vistas: 2710
Último mensaje Octubre 09, 2016, 07:27:04 pm
por atheros14
[VB.NET] WifiHelper(Password Dumper) By fudmario

Iniciado por fudmario

Respuestas: 3
Vistas: 2282
Último mensaje Marzo 29, 2017, 05:07:36 pm
por s1sm0x0
[VB.NET] Sendspace Uploader by fudmario

Iniciado por fudmario

Respuestas: 0
Vistas: 887
Último mensaje Julio 14, 2017, 11:05:51 pm
por fudmario
[VB.NET] ZoneIdentifier Wrapper by fudmario

Iniciado por fudmario

Respuestas: 0
Vistas: 1198
Último mensaje Diciembre 04, 2016, 05:17:08 pm
por fudmario
[Vb.Net] YouTubeHelper by fudmario

Iniciado por fudmario

Respuestas: 1
Vistas: 1827
Último mensaje Marzo 27, 2016, 11:17:49 am
por fudmario