Cómo usar VB para escribir el software de inicio de sesión QQ
bas
Const pública BITS_TO_A_BYTE = 8
Const pública BYTES_TO_A_WORD = 4
Const pública BITS_TO_A_WORD = 32
M_lOnBits públicos(30)
Pública m_l2Power(30)
Función pública LShift(lValue, iShiftBits)
Si iShiftBits = 0 entonces
LShift = lValue p> p>
Función de salida
ElseIf iShiftBits = 31 Entonces
Si lValue y 1 entonces
LShift = amp;H80000000
Else
Else
LShift = 0
Finalizar si
Salir de la función
ElseIf iShiftBits lt; 0 O iShiftBits gt; 31 Entonces
Err.Raise 6
Fin
If (lValue And m_l2Power(31 - iShiftBits)) Entonces
LShift = ((lValue y m_lOnBits(31 - (iShiftBits 1)))* m_l2Power(iShiftBits)) o H80000000
Else
LShift = ((lValue y m_lOnBits( 31 - iShiftBits)) * m_l2Power(iShiftBits))* m_l2Power(iShiftBits))
End If
Fin de función
Función pública RShift(lValue, iShiftBits)
Si iShiftBits = 0 entonces
RShift = lValue
Salir de la función
De lo contrario, si iShiftBits = 31 entonces
Si lValue y amp H80000000 entonces
RShift = 1
Else
RShift = 0
Finalizar si
Salir de la función
ElseIf iShiftBits lt; 0 o iShiftBits gt 31 Then
Err.Raise 6
Fin
RShift = (lValue Y amp; H7FFFFFFE) \ m_l2Power(iShiftBits)
Si (lValue Y amp; H80000000) Entonces
RShift = (RShift O (amp.H7FFFFFFE) \ m_l2Power(iShiftBits)
De lo contrario, si es ShiftB
es lt; 0 o iShiftBits gt; 31 Entonces
Err; H40000000 \ m_l2Power(iShiftBits - 1)))
Finalizar si
Finalizar función
Función pública RotateLeft(lValue, iShiftBits)
RotateLeft = LShift(lValue, iShiftBits) o RShift(lValue, (32 - iShiftBits))
Fin Función
Función pública AddUnsigned(lX, lY)
Dim lX4
Dim lY4
Dim lX8
Dim lY8
Dim lResult
lX8 = lX Y amp H80000000
lY8 = lY Y amp; lX Y amp; H40000000
lY4 = lY Y amp; H40000000
lResultado = (lX Y amp; H3FFFFFFF) (lY Y amp; H3FFFFFFF)
Si lX4 y lY4 entonces
lResultado = lResultado
lResultado = lResultado Xor & H40000000 Xor lX8 Xor lY8
De lo contrario
lResultado = lResultado /p>
Else
lResultado = lResultado Xor lX8 Xor lY8
Finalizar si
AddUnsigned = lResultado
Finalizar función
Función pública md5_F(x, y, z)
md5_F = (x e y) o ((no x) y z)
Función final p>
Función pública md5_G(x, y, z)
md5_G = (x y z) o (y y (no z))
Función final
Función pública md5_H(x, y, z)
md5_H = (x Xor y Xor z)
Función final
Función pública md5_I( x, y , z)
md5_I = (y Xor (x Or (Not z)))
Función final
Sub pública md5_FF(a, b ,c,
d, x, s, ac)
a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_F(b, c, d), x), ac))
a = RotateLeft (a, s)
a = AddUnsigned(a, b)
End Sub
Public Sub md5_GG(a, b, c, d, x, s, ac)
a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_G(b, c, d), x), ac))
a = RotateLeft(a, s )
a = AddUnsigned(a, b)
End Sub
Sub público md5_HH(a, b, c, d, x, s, ac)
a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_H(b, c, d), x), ac))
a = AddUnsigned(a, AddUnsigned(md5_H(b , c, d), x), ac))
a = RotateLeft(a, s)
a = AddUnsigned(a, b)
Fin Sub
Sub público md5_II(a, b, c, d, x, s, ac)
a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_H(b, c, d ) ), x, s, ac)
a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_I(b, c, d), x), ac))
a = RotateLeft (a, s)
a = AddUnsigned(a, b)
End Sub
Función pública ConvertToWordArray(sMessage)
Dim lMessageLength
Dim lNumberOfWords
Dim lWordArray()
Dim lBytePosition
DimlByteCount
Dim lWordCount p >
Const MODULUS_BITS = 512
Const CONGRUENT_BITS = 448
lMessageLength = Len(sMessage)
lNumberOfWords = (((lMessageLength ((MODULUS_BITS - CONGRUENT_BITS )))))))
lNumberOfWords = (((lMessageLength ((MODULUS_BITS - CONGRUENT_BITS))))))))) Mismos bits) (bits_to_a_byte))\ (modulus_bits \ bits_to_a_byte)) 1) * (MODULUS_BITS \ BITS_TO_A_WORD)
p>
ReDim lWordArray(lNumberOfWords - 1)
lBytePosition = 0
lByteCount = 0
Hacer hasta lByteCount gt = lMessageLength
lWordCount = lByteCount \ BYTES_TO_A_WORD
lBytePosition = (lByteCount Mod BYTES_TO_A_WORD) * BITS_TO_A_BYTE
lWordArray(lWordCount) = lWordArray(lWordCount) O LShift(Asc(Mid(sMessage, lByteCount 1, 1)), lBytePosition)
lByteCount = lByteCount 1
Bucle
lWordCount = lByteCount \ BYTES_TO_A_WORD
lBytePosition= (lByteCount Mod BYTES_TO_A_WORD) * BITS_TO_A_ BYTE
lWordArray(lWordCount) = lWordArray(lWordCount) o LShift(amp;H80, lBytePosition)
lWordArray(lNumberOfWords - 2) = LShift (lMessageLength, 3 )
lWordArray(lNumberOfWords - 1) = RShift(lMessageLength, 29)
ConvertToWordArray = lWordArray
Función final
Función pública WordToHex (lValue)
Dim lByte
Dim lCount
Para lCount = 0 a 3
lByte = RShift(lValue, lCount * BITS_BitTorrent_Length , lMessageLength, lMessageLength, lMessageLength, lMessageLength, lMessageLength, lMessageLength) lCount * BITS_TO_A_BYTE) y m_lOnBits(BITS_TO_A_BYTE - 1)
WordToHex = WordToHex & Right("0" & Hex(lByte), 2)
Siguiente
Finalizar función
Función pública MD5(sMessage)
m_lOnBits(0) = CLng(1)
m_lOnBits(1) = CLng(3)
m_lOnBits(2) = CLng(7)
m_lOnBits(3)=CLng(15)
m_lOnBits(4)=CLng(31)
m_lOnBits(5)=CLng
(63)
m_lOnBits(6)=CLng(127)
m_lOnBits(7)=CLng(255)
m_lOnBits(8)=CLng(511 )
m_lOnBits(9) = CLng(1023)
m_lOnBits(10) = CLng(2047)
m_lOnBits(11) = CLng(4095)
m_lOnBits(12) = CLng(8191)
m_lOnBits(13) =CLng(16383)
m_lOnBits(14) = CLng(32767)
m_lOnBits(15) = CLng(65535)
m_lOnBits(16) = CLng(131071)
m_lOnBits(17) = CLng(262143)
m_lOnBits(18) =CLng(524287)
m_lOnBits(19) = CLng(1048575)
m_lOnBits(20) = CLng(2097151)
m_lOnBits(21) = CLng(4194303)
m_lOnBits(22) = CLng(8388607)
m_lOnBits(23) = CLng( 16777215)
m_lOnBits( 24) = CLng(33554431)
m_lOnBits(25) = CLng(67108863)
m_lOnBits(26) = CLng(134217727)
m_ lOnBits(27 ) =CLng(268435455)
m_lOnBits(28)= CLng(536870911)
m_lOnBits(29)= CLng(1073741823)
m_lOnBits(30)= CLng( 2147483647)
m_l2Power(0)= CLng(1)
m_l2Power(1)= CLng(2)
m_l2Power(2) = CLng( 4)
m_l2Potencia(3) = CLng(8)
m_ l2Potencia(4) = CLng(16)
m_l2Potencia(5) = CLng(32 )
m_l2Power(6) = CLng(64)
m_l2Power(7)= CLng(128)
m_l2Power(8) = CLng( 256)
m_l2Power(9) = CLng(512)
m_l2Power(10) = CLng(1024)
m_l2Power(11) = CLng(2048)
m_l2Power(12) =CLng(4096)
m_l2Power(13) = CLng(8192)
m_l2Power(14) = CLng(16384)
m_l2Potencia(15) = CLng(32768)
m_l2Potencia(16) = CLng(6
5536)
m_l2Power(17)= CLng(131072)
m_l2Power(18)= CLng(262144)
m_l2Power(19)= CLng(524288)
m_l2Power(20)= CLng(1048576)
m_l2Power(21)= CLng(2097152)
m_l2Power(22)= CLng(4194304) p>
p>
m_l2Power(23) = CLng(8388608)
m_l2Power(24) = CLng(16777216)
m_l2Power(25) = CLng(33554432 )
m_l2Power(26) =CLng(67108864)
m_l2Power(27) = CLng(134217728)
m_l2Power(28) = CLng(268435456)
m_l2Power(29) = CLng(536870912)
m_l2Power(30) = CLng(1073741824)
Dimx
Dim k p>
Atenuar AA
Atenuar BB
Atenuar CC
Atenuar DD
Atenuar a
Atenuar b
Atenuar c
Atenuar d
Const S11 = 7
Const S12 = 12
Const S13 = 17
p>Const S14 = 22
Const S21 = 5
Const S22 = 9
Const S23 = 14
Const S24 = 20
Const S31 = 4
Const S32 = 11
ConstS33 = 16
Const S34 = 23
Const S41 = 6
Const S42 = 10
Const S43 = 15
Const S44 = 21
x = ConvertToWordArray (sMessage)
a = amp;H67452301
b = amp;HEFCDAB89
c = amp;H98BADCFE
d = amp H10325476
Para k = 0 a UBound(x) Paso 16
AA = a
BB = b
CC = c
DD = d
md5_FF a, b, c, d, x(k 0), S11, amplificador HD76AA478
md5_FF d, a, b, c FF c, d, a, b, x(k 2), S13, amplificador H242070DB
md5_FF c, d, a, b, x(k 2), amplificador H242070DB
md5_FF b, c, d, a, x (k 3), S14, amplificador;
;HC1BDCEEE
md5_ FF a, b, c, d, x (k 4), S11, amplificador HF57C0FAF
md5_FF d, a, b, c, x (k 5 ), S12, amplificador H4787C62A
md5_FF c, d, a, b, x(k 6), S13, amplificador HA8304613
md5_FF b, c, d, a, x(k 7), S14, amplificador HFD469501
md5_FF a, b, c, d, x (k 8), S11, amplificador; b, c, x (k 9), S12, amperio.H8B44F7AF
md5_FF c, d, a, b, x (k 10), S13, amperio HFFFF5BB1
md5_FF b, c, d, a, x (k 11), S14, amperio H895CD7BE
md5_FF a, b, c, d, x (k 12), S11, amperio;
md5_FF d, a, b, c, x (k 13), S12, amplificador HFD987193
md5_FF c, d, a, b, x (k 14), S13, amplificador;
md5_FF b, c, d, a, x (k 15), S14, amplificador H49B40821
md5_GG a, b, c, d, x (k 1), S21 , amplificador HF61E2562
md5_GG d, a, b, c, x (k 6), S22, amplificador HC040B340
md5_GG c, d, a, b, x (k) 11), S23, amp; H265E5A51
md5_GG b, c, d, a, x (k 0), S24, amp; HE9B6C7AA
md5_GG a, b, c, d , x(k 5), S21, amperio HD62F105D
md5_GG d, a, b, c, x (k 10), S22, amperio H2441453
md5_GG c, d. , a, b, x (k 15), S23, amplificador HD8A1E681
md5_GG b, c, d, a, x (k 4), S24, amplificador; md5_GG a, b, c, d, x (k 9), S21, amperio H21E1CDE6
md5_GG d, a, b, c, x (k 14), S22, amperio HC33707D6
md5_GG c, d, a, b, x(k 3), S22, amplificador HC33707D6
md5_GG c, d, a, b, x(k 3) b, x(k; 3), S23, amplificador HF4D50D87
md5_GG b, c, d, a, x (k 8), S24, amplificador H455A14ED
md5_GG a, b, c, d; , x (k 13), S21, amp; HA9E3E905
md5 _GG d, a, b, c, x (k 2), S22, amp; d, a, b, x (k 7), S23, amperio H676F02D9
m
d5_GG d, a, b, x (k 2), S22, amperio HFCEFA3F8H676F02D9
md5_GG b, c, d, a, x (k 12), S24, amperio; /p>
md5_HH a, b, c, d, x (k 5), S31, amp HFFFA3942
md5_HH d, a, b, c, x (k 8), S32, amplificador H8771F681
md5_HH c, d, a, b, x (k 11), S33, amplificador.H6D9D6122
md5_HH b, c, d, a, x (k 14) ), S34, amplificador HFDE5380C
md5_HH a, b, c, d, x (k 1), S31, amplificador HF6BB4B60
md5_HH b, c, d, a, x(k 10), S34, amplificador HBEBFBC70
md5_HH a, b, c, d, x(k 13) d, x(k 13), S31, amp; p>md5_HH d, a, b, c, x (k 0), S32, amplificador HEAA127FA
md5_HH c, d, a, b, x (k 3), S33, amplificador; /p>
md5 _HH b, c, d, a, x (k 6), S34, amplificador H4881D05
md5_HH a, b, c, d, x (k 9), S31; , amplificador HD9D4D039
md5_HH d, a, b, c, x (k 12), S32, amplificador; 15), S33 y H1FA27CF8
md5_HH b, c, d, a, x (k 2), S34 y HC4AC5665
md5_II a, b, c, d , x (k 0), S41, amp.HF4292244
md5_II d, a, b, c, x (k 7), S42, amp. H432AFF97
md5_II c, d , a, b, x (k 14), S43, amperio H655B59C3
md5_II d, a, b, c, x (k 3), S42, amperio; md5_II c, d, a, b, x(k 10), S42, amp H8F0CCC92
md5_II c, d, a, b, x(k 10) b, x(k 10), S43 , amperio H6FA87E4F
md5_II d, a, b, c, x (k 15), S42, amperio HFE2CE6E0
md5_II c, d, a, b, x (k; 6), S43, amp; HA3014314
md5_II b, c, d, a, x (k 13), S44, amp; H4E0811A1
md5_II a, b, c, d , x (k 4), S41, amperio HF7537E82
md5_II d, a, b, c, x (k 11), S42, amperio HBD3AF235
md5_II c, d , a, b, x (k 2), S43, amp.H2AD7D2BB
md5_II
b, c, d, a, x(k 9), S44, amplificador HEB86D391
a = AddUnsigned(a, AA)
b = AddUnsigned(b, BB)
c = AgregarSin firmar(c, CC)
d = AgregarSin firmar(d, DD)
Siguiente
MD5 = LCase(WordToHex( a) amp; WordToHex(b) amp; WordToHex(c) amp; WordToHex(d))
' MD5=LCase(WordToHex(b) amp; WordToHex(c)) 'Lo hice Recortado a ajuste la contraseña de la base de datos de 16 bytes: D
Función final
Clase de codificación 'BASE64:
Función pública BASE64(HexCode)
Dim i, n
Dim TmpStr, TmpStr1, TmpStr2, TmpStr3, HexString
Para i = 0 a Len(HexCode) Paso 12
HexString = Mid(HexCode , i 1, 12)
TmpStr1 = "":TmpStr2 = "":TmpStr3 = ""
Para n = 1 a 12 Paso 1
TmpStr1 = TmpStr1 amp Hex2Bin(Mid(HexString, n, 1))
Siguiente
Para n = 1 a 43 Paso 6
TmpStr2 = TmpStr2 amp; "00" amp; Mid(TmpStr1, n, 6)
Siguiente
Para n = 1 a 49 Paso 16
TmpStr3 = TmpStr3 amp;SplitBin( Mid(TmpStr2, n, 16))
Siguiente
Para n = 1 a 15 Paso 2
TmpStr = TmpStr amp;HexBase64( Mid(TmpStr3, n, 2))
Siguiente paso
Siguiente paso
BASE64 = TmpStr
Finalizar función
' Conversión binaria
Función pública Hex2Bin(HexStr)
Seleccione caso UCase(HexStr)
Caso "0": Hex2Bin = "0000"
Caso "1": Hex2Bin = "0001"
Caso "2": Hex2Bin = "0010"
Caso "3".
Hex2Bin = "0011"
Caso "4": Hex2Bin = "0100"
Caso "5": Hex2Bin = "0101"
Caso "6" :Hex2Bin = "0110"
Caso "7":Hex2Bin = "0111"
Caso "8":Hex2Bin = "1000"
Caso "9 ": Hex2Bin = "1001"
Caso "A": Hex2Bin = "1010"
Caso "B": Hex2Bin="1011"
Caso " C": Hex2Bin="1100"
Caso "D": Hex2Bin = "1101"
Caso "E": Hex2Bin = "1110"
Caso "F": Hex2Bin = "1111"
Finalizar selección
Finalizar función
Función pública SplitBin(BinCode)
Atenuar i
Para i = 1 a 13 Paso 4
SplitBin = SplitBin amp; Bin2Hex(Mid(BinCode, i, 4)
SplitBin = SplitBin amp; Bin2Hex( Mid(BinCode, i,) 4))
Siguiente
Función final
Función pública Bin2Hex(BinCode)
Seleccionar caso UCase (BinCode)
Caso "0000": Bin2Hex = "0"<
Caso "0001": Bin2Hex = "1"
Caso "0010": Bin2Hex = "2"
Caso "0011":Bin2Hex = "3"
Caso "0100": Bin2Hex = "4"
Caso "0101" :Bin2Hex = "5"
Caso "0110" :Bin2Hex = "6"
Caso "0111" :Bin2Hex = "7"
Caso "1000 ": Bin2Hex = "8"
Caso "1001": Bin2Hex = "9"
Caso "1010": Bin2Hex = "A"
Caso " 1011": Bin2Hex = "B"
Caso "1100": Bin2Hex = "C"
Caso "1101": Bin2Hex = "D"
Caso "1110": Bin2Hex = "E"
Caso "1111": Bin2Hex = "F"
Finalizar selección
Finalizar función
Función pública HexBase64(HexString)
Seleccionar caso HexString
Caso "00":HexBase64 = "A"
Caso "0
1": HexBase64 = "B"
Caso "02": HexBase64 = "C"
Caso "03".
HexBase64 = "D"
Caso "04": HexBase64 = "E"
Caso "05": HexBase64 = "F"
Caso "06" :HexBase64 = "G"
Caso "07":HexBase64 = "H"<
Caso "08":HexBase64 = "I"
Caso " 09": HexBase64="J"
Caso "0A": HexBase64="K"
Caso "0B": HexBase64="L"
Caso "0C": HexBase64="M"
Caso "0D": HexBase64 = "N"
Caso "0E": HexBase64 = "O"
Caso "0F": HexBase64 = "P"
Caso "10": HexBase64="Q"
Mayúscula "11": HexBase64 = "R" p>
Caso "12": HexBase64 = "S"
Caso "13": HexBase64 = "T"
Caso "14": HexBase64 = "U"
Caso "15": HexBase64 = "V"
Caso "16": HexBase64 = "W"
Caso "17": HexBase64 = "X"
Caso "18": HexBase64 = "Y"
Caso "19": HexBase64 = "Z"
Caso "1A": HexBase64 = "a "
Caso "1B": HexBase64 = "b"
Caso "1C": HexBase64 = "c"
Caso "1D": HexBase64 = " d" p>
Caso " 1E": HexBase64 = "e"
Caso " 1F": HexBase64 = "f"
Caso "20": HexBase64 = "g"
Caso "21": HexBase64 = "h"
Caso "22": HexBase64 = "i"
Caso "23": HexBase64 = "j"
Caso "24": HexBase64 = "k"
Caso "25": HexBase64 = "l"
Caso "26": HexBase64 = "m "
Caso "27": HexBase64 = "n"
Caso "28": HexBase64 = "o"
Caso "29" :HexBase64 = " p"
Caso "2A" :HexBase64 = "q"
Caso "2B" :HexBase64 = "r"
Caso "2C ": HexBase64 = "s"
Caso "2D": HexBase64 = "t"
Caso "2E": HexBase64 = "u"
Caso " 2F":H
exBase64 = "v"
Caso "30": HexBase64 = "w"
Caso "31": HexBase64 = "x"
Caso "32" :HexBase64 = "y"
Caso "33" :HexBase64 = "z"
Caso "34".HexBase64 = "0"
Caso "35 ": HexBase64 = "1"
Caso "36": HexBase64 = "2"
Caso "37": HexBase64 = "3"
Caso " 38": HexBase64 = "4"<
Caso "39": HexBase64 = "5"
Caso "3A": HexBase64 = "6"
Caso "3B": HexBase64 = "7"
Caso "3C": HexBase64 = "8"
Caso "3D": HexBase64 = "9"
Caso "3E": HexBase64 = " "
Caso "3F": HexBase64 = "/"
Finalizar selección
Finalizar función
'Cree un nuevo formulario, agregue el comando1, complete el número de QQ y la contraseña de QQ en el siguiente código
Subcomando privado1_Click()
En caso de error, reanudar a continuación
Ruta atenuada
Establecer shell1 = CreateObject("WScript.RegRead("HKCR\QQ\shell\open\command\")
ruta = Mid(ruta, 2, InStrRev( ruta, ".")
Si ruta = "" Entonces
ruta = shell1 2)
Finalizar si
. Establecer Short = CreateObject("Scripting.filesystemObject")
Establecer F = Short.getfile(ruta)
ruta = F.ShortPath