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 - Miseryk

#201
Hola, el error 10 es porque ya dimensionaste antes el array, ej:

Esto tendrías que poner:

Código (vb) [Seleccionar]

Dim arr()  As Long

ReDim arr(0 To 5)

arr(0) = 12
arr(1) = 13
arr(2) = 14
arr(3) = 15
arr(4) = 16
arr(5) = 17


Pero tu codigo sigue funcionando mal :(.

Asi que lo hice a mano, tal vez lo puedas mejorar o arreglar,

Código (vb) [Seleccionar]

Private Sub Form_Load()
Dim arr()  As Long

ReDim arr(0 To 5)
    arr(0) = 12
    arr(1) = 13
    arr(2) = 14
    arr(3) = 15
    arr(4) = 16
    arr(5) = 17
    NewRemoveInArrayLong 4, arr
End Sub

Private Function NewRemoveInArrayLong(ByVal Index&, ByRef ThisArray() As Long) As Boolean
Dim tArray() As Long
Dim i As Integer

If Not IsArray(ThisArray) Or Index& = -1 Then
    NewRemoveInArrayLong = False
    Exit Function
End If

If Index& = UBound(ThisArray) Then
    ReDim Preserve ThisArray(LBound(ThisArray) To (UBound(ThisArray) - 1))
   
    NewRemoveInArrayLong = True
    Exit Function
Else
    ReDim tArray(LBound(ThisArray) To (UBound(ThisArray) - 1))
    For i = LBound(ThisArray) To UBound(ThisArray)
        If i < Index& Then
            tArray(i) = ThisArray(i)
        ElseIf i > Index& Then
            tArray(i - 1) = ThisArray(i)
        End If
    Next i
    ReDim ThisArray(LBound(tArray) To UBound(tArray))
    ThisArray = tArray
    Erase tArray
   
    NewRemoveInArrayLong = True
    Exit Function
End If
NewRemoveInArrayLong = False
End Function



Y muchas gracias por ayudarme en el otro post  ;-), igualmente tuve una nueva duda, si puedes héchale un vistazo.  :laugh:
#202
Wow, muchisimas gracias.  ;-)
#203
Hola, quería saber si me podrían guiar con este tema:

Yo inyecto una dll en un programa, el programa tiene muchas funciónes y procedimientos, como hago para llamarlos desde la dll inyectada? alguna idea? Desde ya muchas gracias por resolver y aclarar mis dudas en los posts. :D ;-) :laugh: ;-) :laugh:

Ej: del ejecutable.

Option Explicit

Private Sub Command1_Click()
Dim var As Long

var = VarPtr(Valor(1, 1))

MsgBox var & " (" & Hex(var) & ")"
End Sub

Public Function Valor(ByVal v1 As Long, ByVal v2 As Long) As Long
Valor = v1 + v2
End Function

Esto hice para saber el address de la función.
#204
Cita de: ctlon en 17 Septiembre 2010, 04:37 AM
como ya te he dicho, dudo que exista la equivalente a MessageBox. de todos modos ya te he dicho, puedes hacer el tipico jmp que tu ya has hecho en modo usuario y aplicarlo de igual forma o leer sobre la otra forma que es mas sencillo.

Y como hacen algunos programas para ocultar procesos, lo único que se es que tienen por ejemplo HideDriver.sys, ese sí tiene alguna equivalencia?




Gracias por la ayuda.
#205
Cita de: ctlon en 17 Septiembre 2010, 04:07 AM
no te obliga a escribir en asm, pero seria bueno que lo entendieses. y si, hablando de modo kernel tienes las opciones que te digo, jmp tipico para las que no esten en la ssdt y el cambio de direccion para las que si estan.

Y ¿cómo sería un ejemplo simple del MessageBox que lo "inyecté"? y desde cualquier programa que haga la llamada MessageBox muestre la función que le pasé.
#207
Primero de todo estuve viendo los ejemplos, me gusto mucho como disvirtuó esa persona :D fue lindo para detener el momento de tanto buscar :D:D:D, lo que yo quiero es tipo un programa que intercepte el OpenProcess, WriteMemory, ReadMemory y esos API con los que se pueden modificar los programas, pero no quiero inyectar proceso por proceso, eso ya lo hice, quiero algo más genérico, que inyectando en un lugar sólo quede guardado, por ejemplo tengo un programa que oculta procesos, y hasta que no reinicie la pc todos los procesos que se llaman de tal manera no aparecen en los procesos, ya sea con tasklist, enumprocess, etc, algo así quiero, pero con cualquier otra API :). Desde ya muchas gracias.
#208
A lo que me refiero es que escuché formas de hookear un API para todos los procesos, osea hookear la API en sí.
#209
Hola, me gustaría saber si me podrían aconsejar con el tema que voy a plantear.
Estaba intentando hacer hooking y lo pude hacer, ya sea inyectando DLL o cambiando una funcion por otra, esto es modo usuario. Lo intenté con el MessageBoxA  y funcionó en los procesos que cambiaba el codigo (inyectados), pero averigué que tenía que hacer en modo kernel para que sea general. He estado buscando informacion pero no pude solucionar mi problema, en sí, es hookear un API como por ejemplo MessageBoxA en el SO, si pudieran ayudarme sería de gran ayuda.





Desde ya muchas gracias.
#210
Aca encontre 1 código. Pero =mente no es el que buscaba, pero ayuda.

Código (vb) [Seleccionar]

Module1:
Option Explicit

Public RunningInIDE As Boolean

Sub Main()
Debug.Assert CheckIDE 'This will not be called if is a exe
Form1.Show
End Sub

Public Function CheckIDE()
RunningInIDE = True
End Function

Form:
Option Explicit

Private Sub Command1_Click()
MsgBox RunningInIDE
End Sub