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

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


  Mostrar Mensajes
Páginas: 1 2 3 4 [5] 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ... 28
41  Programación / Programación C/C++ / Re: Game screenshot win vista/7 en: 31 Agosto 2011, 14:25 pm
tenes que llamar a esta API:

http://msdn.microsoft.com/en-us/library/aa969510%28v=vs.85%29.aspx

antes de capturar la pantalla...

Código
  1. bool ManageTheme(bool a){
  2. return (DwmEnableComposition(a?DWM_EC_ENABLECOMPOSITION:DWM_EC_DISABLECOMPOSITION)==S_OK);
  3. }

S2
42  Programación / Programación C/C++ / Re: PROGRAMACION EN C CON WINBGIM en: 31 Agosto 2011, 04:05 am
tu problema es al no definir el índice...

Código
  1. char x[20];
  2. int i=0;
  3.  
  4. outtextxy(200,200,"introduce tu nombre: ");
  5. for(;;){
  6.  char c=getch();
  7.  if(c==13)//enter
  8.    break;
  9.  x[i++]=c;
  10. }

S2
43  Seguridad Informática / Análisis y Diseño de Malware / Re: como hacen los malware para executarse con inyeccion y sin DLL? en: 30 Agosto 2011, 20:19 pm
y si por ejemplo quisiera iniciar un socket?

tendria que llamar la api de socket, darle los parametros a la estructura iDat y ejecutarlo desde la funcion Resident?

porque bueno, logro hacer todo esto que coloque... y si lo entiendo, pero tendria que hacer todo lo que necesite con estructuras, por ejemplo

pipe, socket, etc...?

y funciones extras como Send y Recv o conect, etc?, donde las colocaria?, eso es lo que no entiendo, como o donde colocar todo lo demas que necesite?

espero darme a entender, las apis se como usarlas y donde van, pero los demas parametros no se donde colocarlos

y si, ese es el problema de usar ese método (por eso te comenté primero lo de inyección del executable donde solo tenes que preocuparte de "inyectarlo bien"), el tema de los parámetros tendrías que hacer algo así:

Código
  1. typedef struct funciones{
  2.  PVOID func1;//no necesariamente PVOID, solo para ejemplo
  3.  PVOID CreateFile;
  4.  PVOID recv;
  5.  //...
  6.  PVOID funcN;
  7. };
  8.  
  9. typedef struct datos{
  10.  HANDLE hFile;
  11.  SOCKET s;
  12.  CHAR nombre[XX];
  13.  PVOID buffer[512];//etc...
  14. };
  15.  
  16. struct me{
  17.  funciones f;
  18.  datos d;
  19. };
  20.  
  21. void X(struct me *yo){
  22.  yo->d.hFile=yo->f.CreateFile(yo->d.nombre/*...*/);
  23.  //....
  24.  yo->f.recv(yo->d.s,yo->d.buffer,512,0);
  25. }

e incluso podrías tener varias funciones (aunque tendrías que hacer una especie de "relocado")

Código
  1. typedef struct mefunc{
  2.  PVOID init;
  3.  PVOID dosomething;
  4. }
  5.  
  6. struct me{
  7.  mefunc m;
  8.  funciones f;
  9.  datos d;
  10. };
  11.  
  12. void init(){
  13.  return;
  14. }
  15.  
  16. //...
  17. me.m.init=init;
  18. //...
  19. me.m.init+=-mebaseaddres+inyectionaddress;
  20. //...

donde baseaddress sería la dirección de la primera función (suponiendo que estén en orden secuncial) e inyectionaddress la dirección que te devuelve virtualalloc (en la víctima)...

otro ejemplo

aqui podria usar un for( ; ; ) ? y si puedo donde o como lo hago funcionar desde la inyeccion?, porque se que no puedo hacer esto

Código:
DWORD Resident(iDat *base)
{
base->pCreateMutex(NULL, 0, base->Mutex);
for(i = 0; i<2, i++);
};

espero esto pueda hacer mas facil enteder mi duda, soy malo explicando jaja

puedes usar cualquier * instrucción del lenguaje sin problemas, el probema es con las llamadas intermodulares (funciones en otros espacios de memoria [dll's])

S2

El * es porque "en teoría" no deberías tener problemas dado que esas instrucciones son traducidas como saltos relativos (en el caso de C++ new y delete obviamente no van a estar disponibles).
44  Seguridad Informática / Análisis y Diseño de Malware / Re: como hacen los malware para executarse con inyeccion y sin DLL? en: 30 Agosto 2011, 19:06 pm
no entendí muy bien lo que querés hacer (si es inyectar tu EXE a otro proceso y llamar a API's, etc, fijate el post que te comenté), si por otro lado, querés inyectar código a otro proceso y que use API's y/o que te inyecte/cargue a vos mismo (EXE o DLL) ya es más complejo, pero en resumidas cuentas los pasos serían los del ejemplo de EON (pero con más API's), si no es ninguno de los dos pues trata de explicarte mejor porque no te entiendo  :P

acá tenes otro ejemplo de más o menos lo mismo: http://foro.elhacker.net/programacion_cc/inyeccion_dll-t169870.0.html

S2
45  Seguridad Informática / Análisis y Diseño de Malware / Re: codigos de las instrucciones en memoria ¿donde conseguirlas? en: 30 Agosto 2011, 18:01 pm
otro más resumido  :P

http://ref.x86asm.net/coder32.html

S2
46  Seguridad Informática / Análisis y Diseño de Malware / Re: como hacen los malware para executarse con inyeccion y sin DLL? en: 30 Agosto 2011, 17:57 pm
hay un post en este foro del user [ZERO] (si mal no recuerdo) que explica como hacerlo, buscalo  :P

S2
47  Programación / Programación C/C++ / Re: Fallo de segmentacion en: 28 Agosto 2011, 04:51 am
jejeje gracias seguire luchando haber que onda, lo trato de hacer diferente ahora.
Uso la memoria dinamica del amigo malloc, y me aguanta el casteo, pero no la llamada a la funcion.

si no me equivoco ese es justamente el problema, tenés permisos de lectura sobre el espacio de memoria pero no de ejecución... eso en windows se puede cambiar con virtualprotect, en linux no sé.

S2
48  Programación / Programación C/C++ / Re: Prevenir la introducción de un valor de punto flotante en un entero en: 26 Agosto 2011, 14:34 pm
Por problemas de la precisión que tiene el tipo float, podria llegar a dar que un numero es decimal, cuando es entero. Lo mismo con el codigo de karman.

Lo mejor q se puede hacer en este caso es leer el input como un string, validar que sea lo que quiere, y después, en caso de que sea valido, realizar las conversiones que correspondan.

si, es cierto (por eso aclaré que era una solución rara), pero para el tipo de problema (obtener un número dentro de un rango acotado) utilizaría esa solución, ahora si hay problemas de precisión incluso podría usar "double" para estirar un poco más su funcionalidad, me parece que comprobar/realizar conversiones es más para problemas más complejos (que requieran justamente más precisión)

S2
49  Programación / Programación C/C++ / Re: Prevenir la introducción de un valor de punto flotante en un entero en: 26 Agosto 2011, 02:52 am
Resulta que tengo un problema, tengo una variable entera, al introducir un numero que sea por ejemplo, .1, el programa, al momento de ejecutar se cicla y no hay manera de pararlo(solo con Ctrl + c). Eh intentado un montón de cosas pero ninguna funciona

en windows no pasa nada, solo retorna la parte entera (0), de todas formas, fijate si esta solución (media rara) te sirve:

Código
  1. int n=0;float f;
  2. printf("numero de elementos para el vector: ");
  3. do{
  4.  scanf("%f",&f);
  5.  if(f!=(int)f)
  6.    printf("el número no es entero, ingrese un número entero: ");
  7. }while(f!=(int)f);
  8. n=f;

S2
50  Programación / Programación C/C++ / Re: Simple programa super pesadoo!?? porq?? en: 25 Agosto 2011, 05:52 am
vale tio yo ce que no so programador ce c++ pero estoy leendo el manual interaccion c++ y vb6 :P y llege a esa parte pero me dio curiosidad de saber porq pasa eso alguna explicacion debe de ser :P gracias a los dos :)

PD:

busque en el foro y encontre un usuario que tenia la misma duda :P lo que le recomendaron fue que lo comprimiera con upx :xD :P

como lo mensioné en este post hay un tema legal de por medio, pero en resumidas cuentas, si programas en Windows en un compilador distinto de Visual C++ y usas características de C++ tus ejecutables van a terminar siendo bastante más pesados (aclaración, esto es irrelevante dado que en memoria terminan pesando lo mismo)

S2
Páginas: 1 2 3 4 [5] 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ... 28
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines