Lo voy a probar, saludos.
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes Menú
Public Declare Sub RtlMoveMemory Lib "kernel32" (dest As Any, src As Any, ByVal lLen As Long)
Public Function ShellcodeToCurrency(ByVal sShellCode As String) As Currency()
Dim c() As Currency
Dim b() As Byte
Dim lLen As Long
Dim i As Long
ReDim b(0 To (Len(sShellCode) / 2) - 1) ' Modifica el tamaño del byte arrar
For i = 0 To Len(sShellCode) - 1 Step 2 ' Loop por el Shellcode
b(i / 2) = CByte("&H" & Mid$(sShellCode, i + 1, 2)) ' Convierte shellcode a bytes
Next i
lLen = UBound(b) + 1
If lLen Mod 8 = 0 Then GoTo Jump ' Si el shellcode es un multiplo de 8 salta este paso
Do
If lLen Mod 8 = 0 Then Exit Do
lLen = lLen + 1 ' Detrmina longitud del byte array que es un multiplo de 8
Loop
ReDim Preserve b(0 To lLen - 1) ' Modifica el tamaño del byte array a una nueva longitud
Jump:
ReDim c(0 To ((UBound(b) + 1) / 8) - 1) ' Modifica el tamaño del Array.
For i = 0 To UBound(c)
RtlMoveMemory c(i), b(i * 8), 8 'Copia 8 bytes de byte arrar a nueva valor currency
Next i
ShellcodeToCurrency = c ' Devuelve un array de Currency
End Function
Private Sub RTL(ByVal dest As Long, ByVal src As Long, ByVal lLen As Long)
Dim i As Long
For i = CLng("0") To lLen - CLng("1")
bvHack(dest + i - lHackDelta) = bvHack(src + i - lHackDelta)
Next i
End Sub
RtlMoveMemory c(i), b(i * 8), 8
RTL varptr(c(i)), varptr(b(i * 8)), 8
RTL c(i), b(i * 8), 8