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

 

 


Tema destacado: Estamos en la red social de Mastodon


  Mostrar Mensajes
Páginas: 1 2 3 4 5 [6] 7 8
51  Informática / Electrónica / Re: Programar calculadora no programable en: 29 Marzo 2011, 22:41 pm
 :laugh: :laugh: :laugh: :laugh: Si fueras un poco más explicito a lo mejor te tendería(mos) (?).
52  Programación / Programación General / ¿GetModuleHandleEx Equivalente? [Delphi] en: 26 Marzo 2011, 22:36 pm
Hola tíos, pues, eso... ¿Alguien sabe de algún equivalente para GetModuleHandleEx?.

Si bien sabemos, su valor de retorno es el identificador de modulo (en un entero/cardinal) de algún modulo especificado y su incremento de la cuenta de referencias de los modulos, a menos que le especifiquemos GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT.

El problema aquí es que: El módulo debe haber sido cargado por el proceso de llamada, por ende no puedo saber el identificador de algún modulo diferente a la API de Windows (módulos globales): Ej: Kernel32.dll, User32.dll, etc... de un proceso externo. Y esa es la razón por la cual vengo a pediros ayuda.

¿Habrá alguna otra manera de conseguir el MID de otro proceso en ejecución (ej: El módulo 'notepad.exe')?.

Después de investigar por varias horas en google, encontré que debía usar EnumProcessModules, tal API jamás la he usado, y no encuentro documentación para delphi acerca de ella, así que... ¿Alguien acá la habrá usado antes?, ¿Será esta API la equivalente a GetModuleHandleEx?.

¡Gracias antes que todo!; SaludOS;
53  Programación / .NET (C#, VB.NET, ASP) / Re: Alguien q me corrija el codigo..? en: 26 Marzo 2011, 02:00 am
¡Qué desorden de código hermano!.

Te recomendaría que leyeras un manual al menos básico sobre C#, éste te recomendaría encarecidamente, antes de volver a hacer un código así.
54  Programación / Programación Visual Basic / Re: Dificultar que 'crackeen' mi exe en: 25 Marzo 2011, 20:49 pm
Te recomendaría cifrar tales datos y ¡Zasca!. Se le hará dificil a más de uno.
55  Programación / Ingeniería Inversa / Re: Visual DuxDebugger (debugger desensamblador 64 bit) en: 25 Marzo 2011, 19:51 pm
¿Debuguea drivers en kernel mode?, ¿Algo parecido a SoftICE?.
56  Programación / Programación Visual Basic / Re: Interceptar Winsocks en: 25 Marzo 2011, 18:46 pm
.
VB6 es un IDE claro esta pero el lenguaje es Basic y ese no se esta muriendo...

Solo voy a decir esto y me largo.
[retorica]Para que lanzar perlas a los cerdos[/retorica]

Dulces Lunas!¡.

¿Para qué discutir con alguien que siempre creerá tener la razón?.

Mejor sigue tu rumbo, pensando que VB es imparable, y que por cada defecto tiene dos mejoras.
57  Programación / Programación Visual Basic / Re: Interceptar Winsocks en: 25 Marzo 2011, 16:40 pm
.
Si mencionas a C/C++ y lo relacionas con APIS, entonces tendras que toquetear APIS y/o ASM, de igual manera se puede hacer en VB6. es decir C/C++ son instrucciones y funciones basicas que no hacen practicamente nada funciones y librerias de C/C++, hay librerias no Standart pero aun asi esas no Stantart se pueden hacer. es decir C/C++ No es magia negra.

Lo que quiero decir es que si sabes hacer algo en PseudoCodigo lo puedes migrar a cualquier lenguaje (Exeptuando lenguajes que nesesiten interpretes como PHP con este caso en particular, o quien sabe...)

Dulces Lunas!¡.

Por más que defendáis VB, es perdido...

¿Para qué defender lo indefendible?... Un lenguaje que todos saben acerca de su reputación... Es pérdida de tiempo intentar hacer andar un motor de Ferrari en un Volkswagen jajaja.
58  Foros Generales / Noticias / Re: Mozilla lanzará Firefox 4, Firefox 5, Firefox 6 y Firefox 7 en este mismo año en: 25 Marzo 2011, 16:36 pm
Podrán hablar, sacar, publicar, crear marketing, etc... y Opera les sigue dando en el zorrito :laugh:.
59  Programación / Programación Visual Basic / Re: Editar Memoria en: 25 Marzo 2011, 16:11 pm
El Cheat Engine no tiene ningún editor hexadecimal, lo que si tiene es un visor de memoria, donde, cómodamente visualizas los bytes de X bloque de memoria. Que puedas editarlos a parte, no le da el papel de editor hexadecimal, eso déjaselo a Hex Edit, etc...

A ver, antes de ponerte a buscar offset's y demás, deberías fijarte si tu dirección es estática o dinámica... Intenta guardar la dirección de memoria donde apunta a tal IP, cierra y abre el juego, y revisa si la dirección de memoria aún guarda la dirección donde se mantiene el IP.

Si es así, pues tenéis medio trabajo hecho, tu address es estático (a simple vista) y nada más tendrías que liarte con modificarle, cosa no muy dificil si de C/C++ hablamos.

Un básico ejemplo sería el siguiente (no es muy complejo, pues no soy programador de C/C++, pero es una base y es bastante entendible a mi juicio):

Código
  1. #include <windows.h>
  2. #include <iostream>
  3.  
  4. using namespace std;
  5.  
  6. void EnableDebugPriv(); //Nos aumentamos los privilegios, para evitar problemas con permisos... (Ring 3)
  7.  
  8. void main() {
  9.  
  10. BYTE newvalue[] = {0x31, 0x00, 0x32, 0x00, 0x37, 0x00, 0x2E, 0x00, 0x30, 0x00, 0x2E, 0x00, 0x30, 0x00, 0x2E, 0x00, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; //Este es el valor en hexadecimal, de la cadena: 1 2 7 . 0 . 0 . 1 (rellenamos con 0 los numeros del IP antiguo sobrantes)
  11.  
  12. HWND hwnd = FindWindow(0, "Solitario"); //Buscamos la ventana de nuestro juego/proceso (Yo hice la prueba con Solitario)
  13.  
  14. DWORD pid;//Declaramos la variable PID para almacenar el ID de nuestro juego/proceso
  15.  
  16. if(!hwnd) //Si no encontramos la ventana (el handle es nulo)
  17. {
  18. cout << "Error: No se pudo encontrar la ventana!" << endl;
  19. system("pause");
  20. exit(0);
  21. }
  22. else
  23. {
  24. GetWindowThreadProcessId(hwnd, &pid); //Obtenemos el Id del proceso (PID) en base al handle que nos devuelve FindWindow
  25.  
  26. HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid); //Abrimos el proceso con acceso total (lectura, escritura)
  27.  
  28. if(!hProcess) //Si no encontramos el juego/proceso (...)
  29. {
  30. cout << "Error: No se pudo abrir el handle" << endl;
  31. system("pause");
  32. exit(0);
  33. }
  34. else //En caso contrario
  35. {
  36. if (WriteProcessMemory(hProcess, //Juego/Proceso a modificar
  37. (LPVOID)0x0100700C, //Direccion de memoria a modificar (Que en tu caso, si no es dinamica deberia ser: 0x0028B244)
  38. &newvalue, //Nuevos bytes a cambiar (en tu caso el nuevo IP)
  39. sizeof(newvalue), //Tamano de los bytes a modificar
  40. NULL)) //Este parametro lo podemos dejar nulo
  41.  
  42. cout << "Memoria editada con exito!" << endl; //Exito!
  43. else
  44. cout << "Fallo al editar la memoria!" << endl; //Memoria no existente o protegida
  45. }
  46. CloseHandle(hProcess); //Cerramos el handle abierto anteriormente
  47. }
  48. system("pause");
  49. }
  50.  
  51. void EnableDebugPriv()
  52. {
  53. HANDLE hToken;
  54. LUID sedebugnameValue;
  55. TOKEN_PRIVILEGES tkp;
  56. OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken);
  57. LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &sedebugnameValue);
  58. tkp.PrivilegeCount = 1;
  59. tkp.Privileges[0].Luid = sedebugnameValue;
  60. tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
  61. AdjustTokenPrivileges(hToken, false, &tkp, sizeof tkp, NULL, NULL);
  62. CloseHandle(hToken);
  63. }

Con eso ya tienes tu IP cambiada, espero os funcione.

Y... en caso que sea dinámica la dirección que apunta al IP, avisadme y te doy algunos tips de cómo encontrar su puntero.

Edito:
Tío, no respondo MP's que puedan ser resueltos en el mismo tema, pues mira con un bucle, durarías horas enteras buscando perdiendo tiempo, por tal... Es mejor que puntees tal dirección.

Y ahora dirás ¿Eh que cojones? xD... Pues vale, te toca conseguir la dirección de memoria que apunta al IP, esto puede parecer un tanto dificil, pero, créeme una vez lo aprendes no lo es.

Así que, para no extenderme, te dejaré un video donde explican como puntear direcciones de memoria, el video está en inglés, pero no es muy dificil de entender (y de hecho, enseñan como puntear direcciones usando el mismo Cheat Engine ya que es la manera más fiable de hacerlo).

Si se te hace dificil, decidme y te hago un manual a parte.

Aquí el video: http://www.youtube.com/watch?v=Eo_thbmfFIU

Espero me respondas en el foro, ¿Para eso es el mismo no? xD...
60  Programación / Ingeniería Inversa / Re: Curso de Ingeniería Inversa en: 25 Marzo 2011, 09:44 am

Muy, muy cierto... Prefiero aprender poco a poco, sin perder dinero, a que me esten apurando, para darme un cartoncito (o quizá no) que no me servirá de nada en una empresa :xD...
Páginas: 1 2 3 4 5 [6] 7 8
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines