elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 23:41  


Tema destacado: Suscripción al boletín mensual de elhacker.net

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo, raul338)
| | |-+  AddressOf / Tamaño de funcion
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: AddressOf / Tamaño de funcion  (Leído 402 veces)
Miseryk

Desconectado Desconectado

Mensajes: 59


Ver Perfil
AddressOf / Tamaño de funcion
« en: 9 Mayo 2011, 23:14 »

Hola a todos, estuve viendo el tema del address de una función.
Código:
Código
[Module1]
Option Explicit
 
Sub Main()
'MsgBox Hex(AddressOf procesoX)

'Dim ThisAddress&

'ThisAddress& = Adrs&(AddressOf procesoX)
'MsgBox ThisAddress& & " - (" & Hex(ThisAddress&) & ")"
End Sub
 
Public Function Adrs(ByVal Addrs As Long) As Long
Adrs = Addrs
End Function
 
Public Function procesoX(ParamArray ParametrosX() As Variant) As String
procesoX = "procesoX"
End Function
 
Public Function Valor(ByVal v1 As Long, ByVal v2 As Long) As Long
Valor = v1 + v2
End Function
 
Public Sub Mensaje()
MsgBox "Test"
End Sub
 

Código
[Form1]
Option Explicit
 
Private Sub Command1_Click()
Dim ThisAddress As Long
 
Text1.Text = ""
 
ThisAddress = Adrs(AddressOf procesoX)
Text1.Text = Text1.Text & "AddressOf procesoX: " & Hex(ThisAddress) & vbCrLf & _
"[Public Function procesoX(ParamArray ParametrosX() As Variant) As String" & vbCrLf & _
"procesoX = ''procesoX''" & vbCrLf & _
"End Function" & "]" & vbCrLf & vbCrLf
 
ThisAddress = Adrs(AddressOf Valor)
Text1.Text = Text1.Text & "AddressOf Valor: " & Hex(ThisAddress) & vbCrLf & _
"[Public Function Valor(ByVal v1 As Long, ByVal v2 As Long) As Long" & vbCrLf & _
"Valor = v1 + v2" & vbCrLf & _
"End Function" & "]" & vbCrLf & vbCrLf
 
ThisAddress = Adrs(AddressOf Mensaje)
Text1.Text = Text1.Text & "AddressOf Mensaje: " & Hex(ThisAddress) & vbCrLf & _
"[Public Sub Mensaje()" & vbCrLf & _
"MsgBox ''Test''" & vbCrLf & _
"End Sub" & "]"
 
'ThisAddress& = Adrs&(AddressOf Mensaje)

'Me.Caption = Hex(ThisAddress)
End Sub
 
Private Sub Command2_Click()
Call Mensaje
End Sub
 

Gracias a BlackZeroX por el este code que me dió hace mucho  ;-) ;-) ;-)

Ahora la pregunta es: cómo puedo obtener la longitud de cada función? Porque lo que estoy tratando de hacer, es injectar en otro programa solo la función Mensaje (por ejemplo) y hacerle un jmp en el MessageBoxA del ejecutable víctima, donde alojé dicha función. Gracias a to2.


« Última modificación: 10 Mayo 2011, 00:58 por raul338 » En línea
Karcrack


Desconectado Desconectado

Mensajes: 2.192


Se siente observado ¬¬'


Ver Perfil
Re: AddressOf / Tamaño de funcion
« Respuesta #1 en: 10 Mayo 2011, 20:41 »

Las funciones siempre acaban del mismo modo, hay dos tipos de final de funcion dependiendo del tipo... no recuerdo muy bien... pero con el OllyDbg podras verlo... y luego sencillamente te hara falta un bucle con RtlMoveMemory() para leer hasta el final de la funcion :)


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines