Test Foro de elhacker.net SMF 2.1

Programación => .NET (C#, VB.NET, ASP) => Programación General => Programación Visual Basic => Mensaje iniciado por: Miseryk en 9 Mayo 2011, 23:14 PM

Título: AddressOf / Tamaño de funcion
Publicado por: Miseryk en 9 Mayo 2011, 23:14 PM
Hola a todos, estuve viendo el tema del address de una función.
Código:
Código (vb) [Seleccionar]

[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 (vb) [Seleccionar]

[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.
Título: Re: AddressOf / Tamaño de funcion
Publicado por: Karcrack en 10 Mayo 2011, 20:41 PM
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 :)