• Viernes 23 de Mayo de 2025, 01:09

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - Eternal Idol

Páginas: 1 ... 109 110 [111] 112 113 ... 205
2751
VB .NET / Re: Aplicaciones Echa En Una Maquina De 32 Bits
« en: Domingo 4 de Marzo de 2007, 18:58 »
Depuralo entonces, no es razon para que falle.

2752
VB .NET / Re: Aplicaciones Echa En Una Maquina De 32 Bits
« en: Domingo 4 de Marzo de 2007, 17:47 »
Sin duda, ya que seguramente te referis a x86-64, estas maquinas arrancan igual que uno de los antiguos 8086, pasa a modo protegido como las viejas 386 y solo si tienen un S.O. de 64 bits pasan a long mode asi que funcionan exactamente igual que una maquina de 32 bits si tienen un S.O. de 32 bits.

Lo mas probable es que no tengas instalado el framework de .NET ...

2753
C/C++ / Re: Ayuda???
« en: Domingo 4 de Marzo de 2007, 16:13 »
Cita de: "pabloreda"
asi que windows hace sus propios hook, o sea que ni el mismo SO sabe que hace exactamente cada llamada... :D
No exactamente, lo que hacen es parchear, lo que hace la funcion es simpre lo mismo solo que la segunda version es correcta (en teoria). Esto es lo que se usa para aplicar un parche en tiempo de ejecucion y no necesitar reiniciar la maquina si o si, es muy util para la linea de server que tienen que estar on-line todo el tiempo. Despues cuando sea que reinicie la nueva copia del archivo se reemplazara, obviamente no podemos reemplazar en tiempo de ejecucion Kernel32.dll por ejemplo al estar cargada en todos los procesos practicamente.

2754
C/C++ / Re: Ayuda???
« en: Domingo 4 de Marzo de 2007, 09:12 »
Como decis API voy a centrarme en modo Usuario. Existen diferentes tecnicas pero se basan en dos fundamentos:

A. Aprovechar el formato PE
B. Sobreescribir el mismo codigo

La primera es mas simple al no necesitar saber nada sobre assembly para poder implementarla. Para esta como te decia tenes que buscar informacion sobre el formato PE (mas especificamente sobre las tablas IAT y EAT por ejemplo).

La segunda manera implica, para hacerla bien, implementar al menos un codigo que se encargue de calcular el tamaño de cualquier instruccion. Esto se debe a que normalmente lo que se hace es esto:

Teniendo como ejemplo CreateFileW, normalmente se usaria ZwCreateFile/NtCreateFile (tienen exactemante la misma direccion, una es alias de la otra) pero en este caso no sirven para demostrar el problema del tamaño de las instrucciones:

Código: Text
  1.  
  2. CreateFileW:
  3. 77e4ba58 55              push    ebp
  4. 77e4ba59 8bec            mov     ebp,esp
  5. 77e4ba5b 83ec58          sub     esp,58h
  6. 77e4ba5e 8b4518          mov     eax,dword ptr [ebp+18h]
  7. 77e4ba61 48              dec     eax
  8. 77e4ba62 0f8477e40000    je      kernel32!FindAtomA+0x10 (77e59edf)
  9. 77e4ba68 48              dec     eax
  10. 77e4ba69 0f8401050000    je      kernel32!WriteFile+0xb9 (77e4bf70)
  11.  
  12.  

El objetivo es cambiar esas instrucciones del comienzo por un jmp a donde este nuestro "hook", entonces esto quedaria asi:

Código: Text
  1.  
  2. CreateFileW:
  3. 77e4ba58 e98bec83ec      jmp     6468a6e8 <<hacemos de cuenta que esta es la direccion nuesta funcion "hook"
  4. 77e4ba5d 58              pop     eax
  5. 77e4ba5e 8b4518          mov     eax,dword ptr [ebp+18h]
  6. 77e4ba61 48              dec     eax
  7. 77e4ba62 0f8477e40000    je      kernel32!FindAtomA+0x10 (77e59edf)
  8. 77e4ba68 48              dec     eax
  9. 77e4ba69 0f8401050000    je      kernel32!WriteFile+0xb9 (77e4bf70)
  10. 77e4ba6f 48              dec     eax
  11.  
  12.  

Al haber "destruido" las primeras instrucciones de esta funcion lo que tenemos que hacer en nuestro "hook" si queremos llamar a la funcion original es justamente reproducir estas instrucciones (lo mas facil es reservar memoria y copiarlas) para posteriormente saltar a la primera instruccion bien formada que haya justo despues del jmp que insertamos. Para poder copiar las instrucciones necesarias y saber donde hay que saltar para continuar necesitamos el codigo que calcule el tamaño de las instrucciones.

Finalmente tendriamos en memoria esto:

Código: Text
  1.  
  2. CreateFileW_Trampoline:
  3. push    ebp
  4. mov     ebp,esp
  5. sub     esp,58h
  6. jmp 77e4ba5e
  7.  
  8.  

Como se puede ver ahi arriba, ejecutamos 6 bytes (las tres primeras instrucciones) y saltamos justo a la cuarta que no fue destruida al comenzar en el 7 byte (nosotros modificamos 5 bytes PERO necesitamos 6 al menos para ejecutar instrucciones completas (en este caso).

Entonces desde nuestro hermoso "hook" en C/C++ podemos hacer:

Código: Text
  1.  
  2. HANDLE __stdcall CreateFileW_Hook(LPCWSTR lpFileName,  DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile)
  3. {
  4.     //hacemos una comprobacion
  5.     if (!dejarArchivo(lpFileName))
  6.     {
  7.         SetLastError(ACCESS_DENIED)
  8.         return INVALID_HANDLE_VALUE;
  9.     }
  10.     //llamamos a la funcion original
  11.     return CreateFile_Trampoline(lpFileName, dwDesiredAccess, dwShareMode, lpSecurityAttributes, dwCreationDisposition, dwFlagsAndAttribues, hTemplateFile);
  12. }
  13.  
  14.  

IMPORTANTE es nunca olvidarse de respetar la convencion de llamada de la funcion "hookeada", en este caso y en el 99% de la API de Windows se usa stdcall.

En algunas versiones de Windows mas recientes podemos comprobar que muchas funciones comienzan con mov edi, edi este par de instrucciones que no hacen nada estan por una razon: poder hacer lo que Microsoft denomina "hotpatching" que basicamente es aplicar un parche en tiempo real usando un metodo de "hooking". Esas dos instrucciones se combinan con un la adicion de varios bytes al final de una funcion con lo cual podemos hacer un salto corto a la direccion de estos bytes y en la misma poner un salto a donde queramos.

Existen mas tecnicas de sobreescritura pero con esas me parece que tenes de sobra y son la mas "limpias".

2755
C/C++ / Re: Ayuda???
« en: Sábado 3 de Marzo de 2007, 09:07 »
Sin con hook te referis a interceptar codigo explica exactamente que queres hacer.

2756
Visual C++ / Re: Templates
« en: Viernes 2 de Marzo de 2007, 21:18 »
Cita de: "SteelX"
Tuve problemas como el tuyo al utilizar templates.

Aunque por organizacion siempre se hacen declaraciones en el .h y deficiniones en el .cpp, los templates es mejor definirnos en el .h y hacer su declaracion en el mismo .h o por el contrario deberas utilizar export con las funciones para definir el template.
No es raro que hayas tenido esos problemas; las dos opciones fueron dadas pero el export que yo sepa SOLO funciona con un compilador (con VC++ SEGURO que no funciona).

2757
Virus / Re: Google Maps Es Utilizado Por Un Virus Troyano
« en: Viernes 2 de Marzo de 2007, 16:51 »
Cita de: "Angel_K_ido"
¿Exagerada la noticia o exagerado el virus?  :ph34r:
La noticia, no saben donde estoy con mi ip ni por casualidad, ni siquiera sacan la ciudad.

2758
Virus / Re: Google Maps Es Utilizado Por Un Virus Troyano
« en: Viernes 2 de Marzo de 2007, 16:33 »
Me parece que es un poco (tal vez muy) exagerado ...

2759
Visual C++ / Re: Templates
« en: Viernes 2 de Marzo de 2007, 14:33 »
De nadas  B)

2760
Visual C++ / Re: Templates
« en: Viernes 2 de Marzo de 2007, 12:55 »
El AppTreeNode.cpp no compila, esto tambien esta mal:
Código: Text
  1.  
  2. appTreeNode<int> *AlarmTree;   //creo el arbol de ints
  3. AlarmTree->AddSon(0);              //le añado un 0
  4.  
  5.  

main.cpp(9) : warning C4700: local variable 'AlarmTree' used without having been initialized

Ese warning se produce por una razon: estas declarando un puntero sin inicializarlo y despues lo usas, AlarmTree tiene un valor indefinido.

Tambien fijate la declaracion de AddSon (hace que sea parte de la plantilla).

El verdadero problema que es de enlazado es bastante complejo:
http://www.codeproject.com/cpp/stdexport.asp

http://www.codeproject.com/cpp/templatesourceorg.asp

Ya que export no es soportado por casi nadie yo te sugiero usar la solucion mas "simple":

Código: Text
  1.  
  2. #include "appTreeNode.cpp"
  3. template class appTreeNode <int>;
  4.  
  5.  
       

En templates.cpp o directamente seguir usando solo los .H ...

2761
Visual C++ / Re: Templates
« en: Viernes 2 de Marzo de 2007, 11:22 »
Si redujeras el codigo a la minima expresion (un codigo "compilable" donde solo se produzca el error que te interesa) seguramente seria mas facil ayudarte.

2762
La taberna del BIT / Re: Colombia, Nos Quedamos Sin Mundial
« en: Viernes 2 de Marzo de 2007, 10:59 »
Cita de: "Angel38"
Lo dije como sarcasmo, pero no entendieron  :P
El problema es que tu humor es muy sutil  :rolleyes:

2763
ASM (Ensamblador) / Re: Programa Forma Oculta
« en: Viernes 2 de Marzo de 2007, 09:39 »
No se que tal andara eso sobre un Windows ... tene en cuenta que si es la gama NT el ejecutable esta corriendo emulado, yo no perderia ni un minuto en estas tecnicas arcaicas pero aca tenes informacion al respecto:

http://foros.solocodigo.com/index.php?show...41&hl=residente

2764
Visual C++ / Re: Esconder Proceso En Administrador De Tareas (vc+)
« en: Jueves 1 de Marzo de 2007, 19:53 »
No se como creeras que haces eso en VB pero CUALQUIER cosa que puedas hacer en VB la podes hacer en C.

2765
La taberna del BIT / Re: Colombia, Nos Quedamos Sin Mundial
« en: Jueves 1 de Marzo de 2007, 16:29 »
A veces hay que escuchar mas de una sola campanada:
http://www.todoslosmundiales.com.ar/mundia...-ceder-sede.htm

2766
La taberna del BIT / Re: Colombia, Nos Quedamos Sin Mundial
« en: Jueves 1 de Marzo de 2007, 15:27 »
Una pena, como ya dije en su momento si hubiera justicia le corresponderia a Colombia por lo del 86'.

2767
Dudas informáticas / Re: Ver Proceso Y Ejecutarlo Desde Otra Pc
« en: Jueves 1 de Marzo de 2007, 14:46 »
Cita de: "dBase3"
Creo que no me han leido al otro pc sin tomar control del teclado. "sin tomar el control de la otra pc"
O sea una cosa es mover el ratón y usar el teclado remotamente estilo escritorio remoto, y otra muy diferente ejecutar (inyectar) un proceso/programa "sin molestar al ratón y teclado".
Te lei y mi respuesta a tu cita es correcta, con el VNC podes ejecutar procesos en otra maquina. Aunque es cierto, es muy diferente y mucho mas complejo proveer la funcionalidad del VNC.

Por cierto el termino inyectar en este ambito no tiene cabida.

2768
Dudas informáticas / Re: Ver Proceso Y Ejecutarlo Desde Otra Pc
« en: Jueves 1 de Marzo de 2007, 14:05 »
Cita de: "dBase3"
El Vnc no te arranca programas o procesos directamente en el otro pc.
Si que lo hace, te permite controlar el escritorio de otra maquina.

http://en.wikipedia.org/wiki/Vnc

2769
C/C++ / Re: Buscar Una Palabra En Una Cadena
« en: Miércoles 28 de Febrero de 2007, 19:23 »
Usa strstr y comproba los caracteres anterior y posterior.

2770
C/C++ / Re: Api De Windows
« en: Miércoles 28 de Febrero de 2007, 18:18 »
Cita de: "AnioN"
Es mas simple usar la API que la MFC?
Eso dependera de tus conocimientos y soltura en C++, la MFC es una libreria que expone clases para encapsular el funcionamiento de la API de Windows que son funciones hechas compatibles con C.

2771
CONCURSO / Re: Miembros - 1 Gb
« en: Miércoles 28 de Febrero de 2007, 18:01 »
66666

2772
Visual C++ / Re: Codigo Consume Cpu
« en: Miércoles 28 de Febrero de 2007, 15:14 »
Eso normalmente no tarda nada ... aunque claro si tenes algun modulo que intenta ocultar DLLs de alguna manera y cada vez esta comparando el nombre de la DLL solicitada ... sino es totalmente ilogico lo que comentas. Depuralo ...

2773
ASM (Ensamblador) / Re: Variables Local
« en: Martes 27 de Febrero de 2007, 23:28 »
Cita de: "Enko"
O sea, no es que no se pueda, pero en los ejemplos de FAsm que da el autor no se usan porque no le gustan :P
Variables globales ... en fin ... no hay nada como un buen namespace de C++  :P

2774
ASM (Ensamblador) / Re: Bubble Sort En Assembly
« en: Martes 27 de Febrero de 2007, 22:26 »
Busca el pseudo-codigo e implementalo en assembly. No pidas que te den soluciones por e-mail, para algo esta el foro y esas respuestas le pueden servir a otras personas.

2775
ASM (Ensamblador) / Re: Programa Forma Oculta
« en: Martes 27 de Febrero de 2007, 19:27 »
Cita de: "podrrido"
Yo digo un programa en ensamblador para DOS que se oculte solito por si se va a tardar o sea de que no salga en la barra, que se ejecute de forma que no se vea
-y programas residentes me refiero al asm del DOS
A si mismo obviamente no puede ya que no puede interactuar con el S.O. y por los residentes busca en el foro creo que ya hay informacion.

Páginas: 1 ... 109 110 [111] 112 113 ... 205