elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 [9] 10 11 12
81  Programación / Ingeniería Inversa / Re: Modificando memoria en tiempo de ejecucion C++ en: 17 Septiembre 2008, 20:05 pm
La función de cada api y sus parámetros los puedes ver en el msdn

http://msdn.microsoft.com/en-us/library/ms681674(VS.85).aspx
http://msdn.microsoft.com/en-us/library/ms680553(VS.85).aspx

82  Foros Generales / Sugerencias y dudas sobre el Foro / Re: Post de inconformidad con la gente del foro. en: 10 Septiembre 2008, 06:52 am
A mí de momento, en el poco tiempo que llevo aquí, lo que más me sorprende es la cantidad tan desproporcionada entre registrados y no registrados. No sé, no tienen nada que decir, no tienen ganas de decir nada, en fin.

Y bueno, estoy de acuerdo en todo lo comentado por mipasses123456; leer las normas, escribir bien, ser educado y paciente al responder, simplemente no decir nada, etc, van con la personalidad/educación/skills de cada uno, y por tanto es complicado de cambiar - lo mejor es tener paciencia.
83  Programación / Ingeniería Inversa / Re: Duda de desensambladores en: 9 Septiembre 2008, 21:10 pm
El más usado es el ollydbg
84  Programación / Ingeniería Inversa / Re: Softice y Win.Vista en: 9 Septiembre 2008, 11:36 am
No.

El futuro parece que será este: http://sysersoft.com/

85  Programación / Ingeniería Inversa / Re: Duda sobre valores de la memoria!!! en: 9 Septiembre 2008, 06:04 am
Estuve jugando un poquito y vi que VB almacena los elementos de un array de forma peculiar:
http://www.codeguru.com/vb/gen/vb_misc/algorithms/article.php/c7495

Entonces, para obtener un puntero al primer elemento de un array de bytes, tienes que usar: VarPtr(MiArray(0)).

"Value" sí es un Long, ya que es un puntero al inicio del array.

He hecho un miniprograma que escribe 5 bytes en la dirección 403000 del propio proceso (inicio del segmento de datos):

EL VISUAL BASIC SE CIERRA AL EJECUTARLO, NI IDEA PORQUÉ,  PERO EL PROGRAMA FUNCIONA PERFECTAMENTE

Private Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Any, ByVal lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
Private Declare Function GetCurrentProcessId Lib "kernel32" () As Long
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
----------------------------------------------------------------------------------------------

Private Function WriteMemory(ByVal Offset As Long, ByVal ProcessID As Long, ByVal Value As Long, ByVal NumBytes As Long) As Boolean

Const PROCESS_VM_OPERATION As Long = &H8
Const PROCESS_VM_WRITE As Long = &H20

Dim ProcessHandle As Long
ProcessHandle = OpenProcess(PROCESS_VM_WRITE Or PROCESS_VM_OPERATION, False, ProcessID)

If ProcessHandle = 0 Then
    MsgBox "No se encuentra el proceso", vbCritical, "Error de Lectura"
    Exit Function
End If

Dim exito As Boolean
exito = WriteProcessMemory(ProcessHandle, Offset, Value, NumBytes, 0)

CloseHandle (ProcessHandle)

WriteMemory = exito

End Function

---------------------------------------------------------------------------------------------

Private Sub Form_Load()

Dim MiArray(4) As Byte
MiArray(0) = &H11
MiArray(1) = &H22
MiArray(2) = &H33
MiArray(3) = &H44
MiArray(4) = &H55

Dim exito As Boolean
exito = WriteMemory(&H403000, GetCurrentProcessId(), VarPtr(MiArray(0)), 5)

End Sub





.
.
.
.
.
.

Si ahora queremos leer esos mismos 5 bytes:


Private Declare Function ReadProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Any, ByVal lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
--------------------------------------------------------------------
Private Function ReadMemory(ByVal Offset As Long, ByVal ProcessID As Long, ByVal NumBytes As Long) As Byte()

Dim ProcessHandle As Long
Dim Value As Long
Dim ArrayLeer() As Byte
ReDim ArrayLeer(NumBytes)
Value = VarPtr(ArrayLeer(0))
Const PROCESS_VM_READ As Long = &H10

ProcessHandle = OpenProcess(PROCESS_VM_READ, False, ProcessID)

Dim exito As Boolean
exito = ReadProcessMemory(ProcessHandle, Offset, Value, NumBytes, 0)

CloseHandle ProcessHandle

ReadMemory = ArrayLeer

End Function
---------------------------------------------------------------------------
Dim leer() As Byte
leer = ReadMemory(&H403000, GetCurrentProcessId(), 5)

Dim i As Long
Dim texto As String
For i = 0 To 4
   texto = texto & Hex(leer(i))
Next
MsgBox (texto)




86  Programación / Ingeniería Inversa / Re: Duda sobre valores de la memoria!!! en: 8 Septiembre 2008, 18:10 pm
No sé de donde has sacado la conclusión de que la memoria se divide en bloque de 16 bytes, pero no es así. Los dump de memoria como el de la imagen de Olly suelen tener 16 bytes en cada línea por ser una forma conveniente de mostarlo, pero nada más. Esas APIs leen/escriben cualquier número de bytes en la memoria del proceso, siempre y cuando dicho segmento tenga los permisos adecuados.
87  Programación / Ingeniería Inversa / Re: Duda sobre valores de la memoria!!! en: 8 Septiembre 2008, 00:29 am
http://msdn.microsoft.com/en-us/library/ms681674.aspx
Entre los parámetros de esa función tienes:

lpBuffer

    Puntero al buffer que contiene los datos que se van a escribir.

nSize

    Número de bytes que se van a escribir.

Pues simplemente especifica el número de bytes que quieras. En tu ejemplo tienes 4, pues cambia ese 4 por un 96, y en "Value" debes tener esos 96 bytes como un array.

Igual no entiendo muy bien tu pregunta, porque me extraña que no lo hayas visto por ti mismo.
88  Programación / Ingeniería Inversa / Re: GameServer.exe en: 6 Septiembre 2008, 01:04 am
Prueba este

http://rapidshare.com/files/142950731/GameServer.exe.html
89  Programación / Ingeniería Inversa / Re: GameServer.exe en: 5 Septiembre 2008, 21:01 pm
Una simple búsqueda en google:

http://seeitworks.com/index.php?dir=Server%20Files/

Y en este foro:
http://www.ragezone.com/forum/showthread.php?t=440067

hay un enlace:
_http://rapidshare.com/files/132918548/MuServer.rar.html

donde dentro está el gameserver ya desempacado, e imagino que listo para usarse.
Echa un vistazo a ver si te sirve algo.

_______
Un packer sólo sirve para dificultar la tarea de crackear el programa; no hace que no funcione.
90  Programación / Ingeniería Inversa / Re: GameServer.exe en: 5 Septiembre 2008, 17:29 pm
gameserver.dll

detected: Trojan program Backdoor.Win32.Hupigon.claf   


El kaspersky detecta un troyano en esa dll. Puede que sea una falsa alarma, porque también me detecta algo similar con el FreshDownload.

En cualquier caso, aún no he desempaquetado nada, así que no te puedo ayudar.
De todas formas, en google seguramente encuentras algo. Has buscado?
Páginas: 1 2 3 4 5 6 7 8 [9] 10 11 12
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines