Menú

Mostrar Mensajes

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ú

Mensajes - Shackles

#1
Lo voy a probar, saludos.
#2
Esta es la funcion, de iCodeinVB6

Código (VB) [Seleccionar]

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
#3
Buenas tardes.
Me he encontrado con un problema a la hora he reemplazar el rtlmovememory en una cierta funccion. En otras si me funciona correctamente, creo que es porque trato de mover 8bytes. (El resto fueron 4)


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

Las declaraciones de bvHack y tal estan declaradas. Solo que no hace falta pegar mas codigo.

Este es el que trato reemplazar.


RtlMoveMemory c(i), b(i * 8), 8

Lo pongo asi.
RTL varptr(c(i)), varptr(b(i * 8)), 8
y nada, tambien he probado asi:
RTL c(i), b(i * 8), 8


Saludos y gracias de antemano.