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 ... 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 [20] 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 ... 122
191  Programación / Programación C/C++ / Re: Obtener ruta y nombre de archivo por el PID en: 12 Enero 2011, 17:09 pm
Claro que va a fallar. Tenes que usar GetModuleFileNameEx, no GetModuleFileName. De hecho ni siquiera son los mismos parámetros, lee la documentación de la MSDN.

Código
  1. DWORD WINAPI GetModuleFileNameEx(
  2.  __in      HANDLE hProcess,
  3.  __in_opt  HMODULE hModule,
  4.  __out     LPTSTR lpFilename,
  5.  __in      DWORD nSize
  6. );


Citar
To locate the file for a module that was loaded by another process, use the GetModuleFileNameEx function.

hModule [in, optional]

    A handle to the module. If this parameter is NULL, GetModuleFileNameEx returns the path of the executable file of the process specified in hProcess.



Citar
Igualmente de esta manera hay que hacer un openproces con lo que no podre abrir cualquier proceso, por ejemplo el lsa.exe y no podre obtener su ruta.

En el ejemplo yo puse PROCESS_ALL_ACCESS para escribir menos pero lo correcto es utilizar solo lo necesario, lo cual en el caso de GetModuleFileNameEx es PROCESS_QUERY_INFORMATION y PROCESS_VM_READ por lo que no debería haber demasiado problema con la mayoría de los procesos y en caso de haberlo te basta con ajustar los privilegios correctamente.

Por otro lado, obviamente existe una limitación al querer hacerlo desde modo usuario, pero eso es un tema aparte. La limitación la instalas vos desde un principio al querer hacerlo desde modo usuario.

Saludos
192  Programación / Programación C/C++ / Re: Obtener ruta y nombre de archivo por el PID en: 12 Enero 2011, 16:12 pm
Código
  1.  ProcessHandle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, Pid);
  2.  if (ProcessHandle)
  3.    if (GetModuleFileNameEx(ProcessHandle, NULL, FileName, sizeof FileName))
  4.         cout << FileName << endl;
193  Programación / Programación C/C++ / Re: Detectar injeccio a un proceso. en: 12 Enero 2011, 15:51 pm
El tema es bastante amplio, lo ideal seria que leas Windows Internals desde cero para comprender como funciona el sistema en detalle.


Detecting code injection by hooking system calls in Windows Kernel mode.


Saludos
194  Programación / Programación C/C++ / Re: Minimizar ventana al lado del reloj en la barra de tareas. en: 12 Enero 2011, 15:41 pm
http://msdn.microsoft.com/en-us/library/ff468877%28v=VS.85%29.aspx
http://msdn.microsoft.com/en-us/library/ms645606%28v=vs.85%29.aspx
195  Foros Generales / Sugerencias y dudas sobre el Foro / Re: Subforo(s) de codigo abierto en: 11 Enero 2011, 20:06 pm
En C/C++ pueden/podes ponerlos en este hilo.

Saludos
196  Programación / Programación C/C++ / Re: duda simple en: 11 Enero 2011, 19:53 pm
castig: No se que es, me suena a un usuario del foro. Tal vez hayas querido decir casting.

static_cast: Generalmente se utiliza cuando se conoce de antemano los tipos de datos involucrados en la conversión; porciones de código criticas donde el rendimiento importa sobremanera. Este tipo de casteo no chequea en tiempo de ejecución por lo tanto no tiene tanta sobrecarga de rendimiento pero a la vez son inseguros si se utilizan de mala forma, puesto que los chequeos debe hacerlos el programador.

dynamic_cast: Explicar dynamic_cast es un tanto mas complicado, ya que involucra muchos otros conceptos de C++. Para resumirlo se podría decir que se utiliza con punteros y/o referencias y que en este caso si se hace un chequeo en tiempo de ejecución, por lo tanto son mas seguros pero a la vez tienen cierta sobrecarga en el rendimiento (aunque hay excepciones).

const-ness: A grandes rasgos son medidas que ayudan a los programadores a evitar posibles escrituras indeseadas. Es decir, si una variable A es const, al intentar modificar su contenido se recibe un error en tiempo de compilación. De esta forma se puede ahorrar mucho tiempo y se evitan muchos fallos.
Resumiendo, se trata de utilizar el especificador const para evitar que objetos constantes sean modificados, por ejemplo:

Código
  1. Obj const* Ptr //Ptr apunta a un Obj const
Obj no puede modificarse mediante Ptr.

Código
  1. Obj* const Ptr // Ptr es un puntero const que apunta hacia Obj
No podes modificiar el puntero Ptr, pero podes modificar Obj mediante Ptr.

Son solo ejemplos, ya sea el concepto de casting o el concepto de const-ness, ambos abarcan mucho mas que lo que te he mencionado, así que si quieres involucrarte mas lo ideal es que leas algún libro sobre el tema.

Saludos!
197  Programación / Programación C/C++ / Re: Minimizar ventana al lado del reloj en la barra de tareas. en: 10 Enero 2011, 23:03 pm
Funcionar va a funcionar siempre y cuando generes el ejecutable correspondiente para cada plataforma, es decir, si compilas el código en Windows obviamente en Linux no va a funcionar -al menos que hayas montado un entorno de compilación cruzada-

Saludos
198  Programación / Programación C/C++ / Re: Minimizar ventana al lado del reloj en la barra de tareas. en: 10 Enero 2011, 21:45 pm
Lo ideal seria que primero te tomes un tiempo en conocer el lenguaje y luego te adentres en el desarrollo de interfaces. Pasa por este hilo.

Lo que queres hacer es relativamente sencillo y lo podes hacer directamente tirando de la API del sistema o utilizando alguna librería multiplataforma como Qt. Acá tenes un ejemplo en Qt y otro con la WINAPI.

Saludos

199  Programación / Programación C/C++ / Re: Simulando una clave de acceso en C++ en: 10 Enero 2011, 19:14 pm
Sumado a que no es recomendable utilizar conio, "main" debe declararse "int main". La declaración de "iostream.h" es obsoleta, debe declararse "iostream". Cuidado con las variables globales innecesarias; son una mala practica.

Por otro lado, el código es bastante inseguro:

1) La forma en la que implementas el valor correcto es insegura. Es fácilmente accesible ya sea leyendo el proceso o debuggeando el ejecutable.

2) No limitas los intentos, por lo tanto en ultima instancia se podría hacer fuerza bruta.

Saludos

200  Programación / Programación C/C++ / Re: programacion C/C++ se sigue utilizando para asuntos hacker o ya casi no? en: 7 Enero 2011, 18:23 pm
hola

tengo una pregunta... programacion C aun seguira siendo buena para asuntos hackers?, ya que cada vez mas veo mas lenguajes de programacion, cuando buscaba exploits en milw0rm veia mas cosas hechas con Ruby, Perl, Python y casi nada en C, a menos de que sea una DLL... ahorita me he dado cuenta que es un poco mas sencillo programar un exploit en python que hacerlo en C.

Depende que tipo de exploit pero si, lenguajes como Python te ahorran bastante tiempo ya que en reglas generales puedes hacer mas en menos lineas. Digo reglas generales porque cada caso es un mundo y como tal hay que analizarlo en forma detallada.

Citar
Yo tengo la costumbre de hacer las cosas en programacion C incluso ahorita hice un programa en python y quiero buscar la manera de hacerlo con el otro, pero como les menciono... ya hacer cosas como exploits, troyanos, worms, etc... son mejor con otros lenguajes como python o aun sigue siendo mejor C o C++ para eso?

Depende a que te refieres con mejor. Realmente el termino "mejor" es muy amplio.

Citar
O acaso ya solo C/C++ son buenos cuando vas a hacer un programa de escritorio como photoshop, messenger, un reproductor de musica, etc... o solo es mi imaginacion y esos lenguales son aun los mejores para cualquier cosa?

Para cualquier cosa definitivamente no. Hoy en día no haces un webservice en C (por mas que puedas).
En la mayoría de los casos donde se necesite buen rendimiento y un optimo manejo de recursos, C++ es la opción. En el caso de software mas especifico como drivers, kernels, y demas, C es la opción. Esto es casi una regla que casi nunca se suele omitir.

Citar
Lo pregunto porque siempre me ha gustado intentar hacer exploit, troyanos, etc, pero luego he visto comentarios que dicen que es muy laborioso hacerlo en C y que la mejor opcion es python o Perl.

pero bueno, espero me puedn dar una opinion

salu2

Los "asuntos hacker" van un poco mas allá de codificar exploits y troyanos (si es que codificar un troyano se puede llamar "asunto hacker"). No obstante si te refieres a la forma de pensar y de resolver problemas, el mejor lenguaje es con el/los que mejor te lleves, y partiendo de eso analizar cual es el mas apto para la situación especifica.

Saludos
Páginas: 1 ... 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 [20] 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 ... 122
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines