Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Karcrack en 3 Noviembre 2009, 21:49 pm



Título: [SRC] NO-IP, sacar constraseña y usuario...
Publicado por: Karcrack en 3 Noviembre 2009, 21:49 pm
Código
  1. '--------------------------------------------------------------------------------------------
  2. ' Module    : mNO_IP
  3. ' Author  : Karcrack
  4. ' Date      : 03/11/2009
  5. ' Purpose   : Retrieve No-IP DUC user & password
  6. ' Thanks    :
  7. '       Cobein  :   Original code                (http://www.advancevb.com.ar/?p=247)
  8. '       VBSpeed :   Original Decode64 function  (http://www.xbeat.net/vbspeed/c_Base64Dec.htm)
  9. '---------------------------------------------------------------------------------------------
  10.  
  11. Option Explicit
  12.  
  13. Private Declare Function RegOpenKey Lib "ADVAPI32" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
  14. Private Declare Function RegQueryValueEx Lib "ADVAPI32" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long
  15. Private Declare Function RegCloseKey Lib "ADVAPI32" (ByVal hKey As Long) As Long
  16.  
  17. Public Function GetNO_IP(ByRef sUser As String, ByRef sPass As String) As Boolean
  18.    Dim lhKey           As Long
  19.    Dim sBuffer         As String * 512
  20.  
  21.    If Not RegOpenKey(&H80000002, "Software\Vitalwerks\DUC", lhKey) Then
  22.        If RegQueryValueEx(lhKey, "Username", 0, 0, ByVal sBuffer, 512) = 0 Then
  23.            sUser = Left$(sBuffer, lstrlen(sBuffer))
  24.        End If
  25.        If RegQueryValueEx(lhKey, "Password", 0, 0, ByVal sBuffer, 512) = 0 Then
  26.            sPass = Decode64(Left$(sBuffer, lstrlen(sBuffer)))
  27.        End If
  28.        GetNO_IP = CBool(Len(sUser) And Len(sPass))
  29.        Call RegCloseKey(lhKey)
  30.    End If
  31. End Function
  32.  
  33. Private Function Decode64(ByVal Base64String As String) As String
  34.    Dim Enc()           As Byte
  35.    Dim b()             As Byte
  36.    Dim Out()           As Byte
  37.    Dim Dec(255)        As Byte
  38.    Dim i               As Long
  39.    Dim j               As Long
  40.    Dim L               As Long
  41.  
  42.    Enc = StrConv("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", vbFromUnicode)
  43.    For i = 0 To 255:   Dec(i) = 64:        Next i
  44.    For i = 0 To 63:    Dec(Enc(i)) = i:    Next i
  45.  
  46.    L = Len(Base64String)
  47.    b = StrConv(Base64String, vbFromUnicode)
  48.  
  49.    ReDim Preserve Out(0 To (L \ 4) * 3 - 1)
  50.    For i = 0 To UBound(b) - 1 Step 4
  51.        Out(j) = (Dec(b(i)) * 4) Or (Dec(b(i + 1)) \ 16): j = j + 1
  52.        Out(j) = (Dec(b(i + 1)) And 15) * 16 Or (Dec(b(i + 2)) \ 4): j = j + 1
  53.        Out(j) = (Dec(b(i + 2)) And 3) * 64 Or Dec(b(i + 3)): j = j + 1
  54.    Next i
  55.  
  56.    ReDim Preserve Out(0 To UBound(Out) - IIf((b(L - 2) = 61), 2, IIf((b(L - 1) = 61), 1, 0)))
  57.    Decode64 = StrConv(Out, vbUnicode)
  58. End Function
  59.  
  60. Private Function lstrlen(ByVal sStr As String) As Long
  61.    lstrlen = InStr(1, sStr & Chr$(0), Chr$(0)) - 1
  62. End Function
Ejemplo:
Código
  1.    Dim U       As String
  2.    Dim P       As String
  3.  
  4.    If GetNO_IP(U, P) = True Then
  5.        MsgBox "Usuario:" & U & vbCrLf & "Password:" & P
  6.    End If

Simplemente he 'mejorado' la version del codigo original de Cobein, leer los creditos para mas informacion ;D