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

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


  Mostrar Temas
Páginas: [1] 2
1  Seguridad Informática / Análisis y Diseño de Malware / Troyano en C++ con Qt? en: 6 Abril 2014, 03:01 am
Hola. Me acuerdo de haber visto un troyano hecho en C++ con Qt, en este foro, pero ahora por más que lo he buscado en Google, en el buscador del foro, y en los temas importantes que están en sticky no lo encuentro. Alguno recuerda o sabe de lo que hablo?

Saludos!
2  Programación / Ingeniería Inversa / ASM: compatibilidad Intel - AMD en: 29 Noviembre 2013, 02:27 am
Hola de nuevo. Estoy a punto de comprarme una nueva PC, me la arma un muchacho y yo le digo qué le tiene que poner. Justo en este último momento estoy entrando en el mundo de ASM... creen que va a ser un obstáculo ponerle un procesador AMD para usar ASM, es decir, la mayoría de los códigos en ASM que ví por ahí empiezan con algo como ".intel-syntax" o algo así, ustedes que dicen? No estoy hablando del rendimiento o de qué procesador es mejor, sino cuál me viene mejor para usar ASM sin problemas.  Como recién empiezo con ASM, si alguien programa algo en su pc de procesador Intel, lo puedo correr sin problemas en mi amd?

Gracias de antemano :-)
3  Programación / Ingeniería Inversa / Pointer a función (C y VB6) en: 12 Noviembre 2013, 20:11 pm
Hola nuevamente foreros. Estoy intentando llamar una función de un proceso externo. Tengo 2 procesos, uno está en C y el otro en VB6. Las funciones de ambos serían algo así:

VB6:
Código
  1. Public Function Sumar(ByVal a As Integer, ByVal b As Integer) As Integer
  2.    Sumar = a + b
  3. End Function
  4.  

C:
Código
  1. int sumar(int a, int b)
  2. {
  3.    return a + b;
  4. }

En el primer programa (VB6), Sumar() se encuentra en la dirección 0x0401BD0. En el segundo (C), sumar() está en 0x0401334.

Ahora bien, creo una DLL en C y hago lo siguiente:

Código
  1. typedef int (__stdcall *exe_sumar_ptr)(int, int);
  2. ...
  3. char result[50] = "";
  4. exe_sumar_ptr exe_sumar;
  5. exe_sumar = (exe_sumar_ptr)(0x0401334);
  6. sprintf(result, "Resultado: %d\n", exe_sumar(5, 5));
  7. MessageBox(0, result, "Resultado", MB_OK);
  8. ...

La inyecto en el programa en C y funciona perfectamente, llama a la función sumar() y devuelve como valor 10 (5+5, correcto!). Ahora el problema es en el programa de VB6. Recompilo la DLL con la nueva dirección (0x0401BD0) y la función siempre retorna 0. Según la MSDN, el equivalente del tipo Integer de VB6 es long, así que intenté lo siguiente:

Código
  1. typedef long (__stdcall *exe_sumar_ptr)(long, long);

Pero el problema persiste. Alguna idea de que puede estar sucediendo?

Les agradezco de antemano su ayuda y saludos!!
4  Programación / Ingeniería Inversa / Pointers & Offests MHS5 en: 9 Noviembre 2013, 16:49 pm
Hola foreros, les cuento que estoy intentando hallar el pointer y su respectivo offset de una dirección de memoria dinamica de un programa. Para hacerlo segui este tutorial http://foro.elhacker.net/empty-t342767.0.html. El problema es este: una vez que consigo la direccion de memoria del valor que quiero (dinamica), por ejemplo 48fba3cc voy a Search > Pointer Search y busco desde 48fb0000 hasta 48fba3cc. Una vez que hago esto siempre me salen aprox 70 resultados, entonces pruebo desde 48fba000 hasta 48fba3cc, pero igual me salen unos 50 resultados. Entonces empiezo a sumarle a la primera direccion, por ejemplo 48fba100 hasta 48fba3cc, 48fba200 hasta 48fba3cc, 48fba300 hasta 48fba3cc, 48fba400 hasta 48fba3cc, y asi sucesivamente, hasta que llega un momento que me salen unos 7 resultados de los cuales hay 1 solo que esta en color verde, asi que supongo que ese es el valor que busco (por ejemplo FF0B23CC). Entonces ahi supuestamente ya tengo el pointer en la columna "value" y el offset en la columna "Distance from". Entonces hago la prueba y sumo value + offset y me da como resultado la primera direccion de todas, entonces hasta ahora va todo bien. Luego cierro el programa y vuelvo a abrirlo para comprobar que sea la direccion que busco, pero resulta que FF0B23CC sigue teniendo el mismo valor que la vez anterior, entonces si sumo la columna value + offset (distance from) me sigue dando la primera direccion de todas (que ya no tiene el mismo valor porque era dinamica). Entonces, si la direccion que contiene el pointer siempre tiene el mismo valor, si le sumo el offset siempre me da el mismo resultado, que es la primera direccion de todas (pero como era dinamica una vez que volvi abrir el programa ya cambio). Como voy a obtener una nueva direccion de memoria haciendo la suma del pointer + offset si estos dos siempre tienen el mismo valor? Estoy haciendo algo mal?  :huh:

Gracias!! :)
5  Programación / Programación Visual Basic / Listar Procesos en: 18 Diciembre 2011, 19:09 pm
Buenas a todos, he encontrado diversas maneras de listar procesos (como con WMI) pero quisiera saber si hay alguna manera de listarlos con sus respectivas direcciones. Por ejemplo, si estoy ejecutando el proceso msnmsgr.exe, que lo liste de la siguiente manera: C:\Archivos de programa\Windows Live\Messenger\msnmsgr.exe.

Gracias! :)
6  Programación / Ingeniería Inversa / Pointers & Offsets en: 11 Diciembre 2011, 22:42 pm
Hola a todos !  :D. Bueno, ya estoy dentro del tema memoria de los programas, dinamico o estático, pointers & offsets, etc. Estos conceptos ya los tengo claros, pero tengo algunas dudas. Primero quisiera saber si los offsets son SIEMPRE estáticos, o puede que cambien, y si estos son propios de cada programa o propios de cada porción de memoria (dinamica o estatica). El tema es el siguiente. Tengo un programa el cual cuenta con memoria totalmente dinamica, al volver a ejecutarlo cambian los adresses de memoria, como todos saben. Ahora, se que para no tener que obtener el adress de memoria de cada variable de mi programa cada vez que lo ejecuto, utilizo los pointers y offsets. Tengo claro que los adresses de memoria dinamica se almacenan en otros adresses que son estáticos (esto es lo que no puedo obtener) pero no se almacenan TALCUAL nosotros podemos verlos; si no que hay una especie de "cuenta" en los cuales intervienen los offsets y los pointers. Bueno, voy al grano, en este programa obtengo la direccion de memoria dinamica de una variable (con CE), de esta misma obtengo su offset y pointer (con MHS5). Pero no logro encontrar alguna funcion para obtener la memoria estatica en donde se almacena la memoria dinamica (por asi decirlo).

También cabe aclarar que cada vez que vuelvo a buscar los pointers y offsets que pertenecen a una direccion de memoria dinamica de una variable, estos mismos son diferentes a las busquedas anteriores, aunque la variable siempre sea la misma (pero no la direccion de memoria).

Bueno, si logran ayudarme, estaria muy agradecido :)

P.D: Creo que este es el foro correcto para crear este tema ^^. De no ser así por favor haganmelo saber :P
7  Programación / Programación Visual Basic / [VB6] Memoria en: 10 Diciembre 2011, 19:54 pm
Bueno, les explico: Estoy leyendo unas porciones de memoria de un programa con las siguientes funciones...

Código
  1. Public Function ReadAnInt(gamewindowtext As String, address As Long, valbuffer As Integer)
  2. Dim hwnd As Long
  3. Dim pid As Long
  4. Dim phandle As Long
  5. hwnd = FindWindow(vbNullString, gamewindowtext)
  6. GetWindowThreadProcessId hwnd, pid
  7. phandle = OpenProcess(PROCESS_ALL_ACCESS, False, pid)
  8. ReadProcessMem phandle, address, valbuffer, 2, 0&
  9. CloseHandle hProcess
  10. End Function
  11.  
  12. Public Function ReadAByte(gamewindowtext As String, address As Long, valbuffer As Byte)
  13. Dim hwnd As Long
  14. Dim pid As Long
  15. Dim phandle As Long
  16. hwnd = FindWindow(vbNullString, gamewindowtext)
  17. GetWindowThreadProcessId hwnd, pid
  18. phandle = OpenProcess(PROCESS_ALL_ACCESS, False, pid)
  19.  
  20. ReadProcessMem phandle, address, valbuffer, 1, 0&
  21. CloseHandle hProcess
  22. End Function
  23.  

Estas me funcionan perfectamente, pero no he encontrado alguna para leer porciones de memoria las cuales devuelvan una cadena (string), en vez de un valor numérico. Si me pueden ayduar... estaría muy agradecido  :)

Gracias  :D
8  Programación / Programación C/C++ / GetCursorPos [C] en: 22 Octubre 2011, 16:50 pm
Hola, alguno me podría dejar un ejemplo claro (con declaración y todo) sobre GetCursorPos en C? Porque, realmente, no lo he podido encontrar. Si alguien es tan amable se lo agradezco muchísimo.

Gracias!
9  Programación / Programación General / ¿Qué lenguaje? en: 3 Octubre 2011, 04:19 am
Bueno, miren estoy en una etapa de elección y de prueba, ando probando de todo... he tocado algo de C y C++, pero principalmente programo y los tengo bien claro Python y Basic (no .NET). No se, ustedes que me dicen? En qué lenguaje me centro? Mis intereses están en el entorno de Windows, por ahora. Estaba pensando en empezar un poco con .NET pero es muy parecido a VB6 así que no se si valdrá la pena. También he chequeado un poco C#, ya que me gusta lo Visual. Como verán no he mencionado nada de programación Web, si también pensaba en Java pero solo pensaba, nunca lo he tocado  :xD. Pero bueno... los dejo a ustedes que comenten a ver que me vendría bien, también podría ser un lenguaje que no haya mencionado.
10  Programación / Scripting / [Python] Error con Sockets en: 2 Octubre 2011, 18:46 pm
Hola, estoy creando un capturador de paquetes. Mi programa usa socket.py, funciona como servidor, recibe los paquetes y los imprime en pantalla (print). Esto funciona perfectamente, pero cuando quiero capturar paquetes de otro programa, coloco la IP a donde envía los paquetes así también los recibe mi programa, y me encuentro con el siguiente error:

Traceback (most recent call last):
   File "Servidor.py", line 8, in <module>
     s.bind(("xxx.xxx.x.xxx", xxxx))
   File "C:\Python27\lib\socket.py", line 224, in meth
     return getattr(self._sock,name)(*args)
socket.error: [Errno 10049] La dirección solicitada no es válida en este contexto

Bien, ese es el error TALCUAL, aclaro que el servidor al cual me conecto no está caido ni nada por el estilo.

Gracias.
Páginas: [1] 2
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines