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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 13 [14] 15 16
131  Programación / Ingeniería Inversa / Re: [Keygenme] Litrico en: 27 Enero 2013, 22:04 pm
Prueba ahora a ver, a mi ya me funciona. Gracias, me has servido de mucho.

Era que habia subido otro .exe

Sa1uDoS
132  Programación / Ingeniería Inversa / Re: [Keygenme] Litrico en: 27 Enero 2013, 20:55 pm
Ok, luego lo subo, tuve alguna clase de problema jaja

En mi PC funcionaba perfecto pero mirando en otro me da siempre bien xD

Gracias por avisar avesudra.

Sa1uDoS
133  Programación / Ingeniería Inversa / [Keygenme] Litrico en: 27 Enero 2013, 19:24 pm
Otro crackme.

Dificultad: [3/10] (Espero que asi sea jaja)
Lenguaje: FASM
Objetivo: Hacer un Keygen
Packer: No

[Crackme] Litrico

Espero que les guste. Para los mas desconfiados se que aqui tengo pocos mensajes, pero soy un usuario de fiar en otras comunidades. mr.blood

Sa1uDoS
134  Programación / Programación C/C++ / Re: [src]problema con fflush() en: 27 Enero 2013, 11:34 am
Te dejo este codigo, compilado con GCC a mi me funciona sin problema alguno.

Puedes usar setbuff o setbuffer para limpiar el buffer de entrada ;).

Código
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5. char a,b;
  6.  
  7. printf("Which character is bigger?\n");
  8. printf("Type a single character:");
  9. a=getchar();
  10. setbuf(stdin, 0x0); // o fflush(stdin);
  11. printf("Type another character:");
  12. b=getchar();
  13.  
  14. if(a > b)
  15. {
  16.   printf("'%c' is greater than '%c'!\n",a,b);
  17. }
  18. else if(b > a)
  19. {
  20.   printf("'%c' is greater than '%c'!\n",b,a);
  21. }
  22. else
  23. {
  24.   printf("Next time don't press the same character\n");
  25. }
  26. return(0);
  27. }
  28.  

Sa1uDoS
135  Seguridad Informática / Análisis y Diseño de Malware / Re: [Libreria C] Hook a la IAT en: 23 Enero 2013, 20:57 pm
Ah bueno jaja. Pero esto es una funcion, que cada uno la use como mas conveniente crea.

Sa1uDoS

P.D.: Que gusto da este foro, la gente comenta.
136  Seguridad Informática / Análisis y Diseño de Malware / Re: [Libreria C] Hook a la IAT en: 23 Enero 2013, 19:34 pm
Si, es la desventaja de este tipo de Hooks, si usan GetProcAddress no los "engancha", hay que hookear GetProcAddress tambien.

Gracias por el comentario ;).

Pero a mi es el tipo de Hook que mas me gusta



Como recomendación para su uso, seria recomendable hacer el hook al inicio de la aplicaccion

¿A que te refieres con eso?

Sa1uDoS
137  Seguridad Informática / Análisis y Diseño de Malware / [Libreria C] Hook a la IAT en: 23 Enero 2013, 16:40 pm
Por si a alguien le ayuda. Es mejorable, no tiene ningun control de errores era solo para mostrar la idea ;).

No se si esto va en esta sección o en la de Programacion en C. Creo que esta mas relacionado con esto.

hookiat.c
Código
  1. #include "hookiat.h"
  2.  
  3. void HookIAT(char *tohooklibrary, char *tohookfunc, void *newfunc)
  4. {
  5. DWORD image_base=GetModuleHandleA(0);
  6. PIMAGE_DOS_HEADER DOS;
  7. PIMAGE_NT_HEADERS NT;
  8. PIMAGE_IMPORT_DESCRIPTOR IT;
  9. PIMAGE_IMPORT_BY_NAME *IMPORTED_FUNCTIONS;
  10. PIMAGE_THUNK_DATA Funcion;
  11. DWORD *IMPORTED_DLL_NAME;
  12. DWORD *IMPORTED_FUNCTION_NAME;
  13. unsigned int i=0;
  14.  
  15. DOS=(PIMAGE_DOS_HEADER)image_base;
  16. NT=(PIMAGE_NT_HEADERS)(DOS->e_lfanew + image_base);
  17. IT=(PIMAGE_IMPORT_DESCRIPTOR)(NT->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress + image_base);
  18. IMPORTED_DLL_NAME=(DWORD *)(IT->Name + image_base);
  19.  
  20. while( (IT->Name) != 0 )
  21. {
  22. IMPORTED_DLL_NAME=(DWORD *)(IT->Name + image_base);
  23. if(!strcmp((char *)IMPORTED_DLL_NAME, tohooklibrary))
  24. {
  25. break;
  26. }
  27. IT++;
  28. }
  29.  
  30. IMPORTED_FUNCTIONS=(PIMAGE_IMPORT_BY_NAME *)(IT->Characteristics + image_base);
  31.  
  32. for(i=0;;i++)
  33. {
  34. IMPORTED_FUNCTION_NAME=(DWORD *)((*IMPORTED_FUNCTIONS)->Name + image_base);
  35. if(((*IMPORTED_FUNCTIONS)!=0) && (!strcmp((char *)IMPORTED_FUNCTION_NAME, tohookfunc)))
  36. {
  37. break;
  38. }
  39. IMPORTED_FUNCTIONS++;
  40. }
  41.  
  42. Funcion=(PIMAGE_THUNK_DATA)(IT->FirstThunk + image_base);
  43. Funcion+=i;
  44. ORIGINAL_FUNCTION=(void *)Funcion->u1.Function;
  45. Funcion->u1.Function=(DWORD)newfunc;
  46. }
  47.  

hookiat.h
Código
  1. #include <string.h>
  2. #include <windows.h>
  3.  
  4. void *ORIGINAL_FUNCTION;
  5.  
  6. void HookIAT(char *tohooklibrary, char *tohookfunc, void *newfunc);
  7.  

Sa1uDoS
138  Programación / Programación C/C++ / [C] Buscando una funcion de la IAT en: 23 Enero 2013, 16:36 pm
Pues traigo un programa que busca X funcion en X libreria en su propia Import Address Table. No hay mucha explicacion. Esta bastante chapucero solo queria que pudieran ver un codigo sencillo que haga esto ya que yo no encontre nada estos dias.

Código
  1. #include <string.h>
  2. #include <stdio.h>
  3. #include <windows.h>
  4.  
  5. int main()
  6. {
  7.        const char libreria[]="KERNEL32.dll";
  8.        const char funcion[]="ExitProcess";
  9.        DWORD image_base=(DWORD)GetModuleHandleA(0);
  10.        PIMAGE_DOS_HEADER DOS;
  11.        PIMAGE_NT_HEADERS NT;
  12.        PIMAGE_IMPORT_DESCRIPTOR IT;
  13.        PIMAGE_IMPORT_BY_NAME *IMPORTED_FUNCTIONS;
  14.        PIMAGE_THUNK_DATA Funcion;
  15.        DWORD *IMPORTED_DLL_NAME;
  16.        DWORD *IMPORTED_FUNCTION_NAME;
  17.        unsigned int i=0;
  18.  
  19.        DOS=(PIMAGE_DOS_HEADER)image_base;
  20.        NT=(PIMAGE_NT_HEADERS)(DOS->e_lfanew + image_base);
  21.        IT=(PIMAGE_IMPORT_DESCRIPTOR)(NT->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress + image_base);
  22.        IMPORTED_DLL_NAME=(DWORD *)(IT->Name + image_base);
  23.  
  24.        while( (IT->Name) != 0 )
  25.        {
  26.                IMPORTED_DLL_NAME=(DWORD *)(IT->Name + image_base);
  27.                if(!strcmp((char *)IMPORTED_DLL_NAME, libreria))
  28.                {
  29.                        printf("%s\n", (char *)IMPORTED_DLL_NAME);
  30.                        break;
  31.                }
  32.                IT++;
  33.        }
  34.  
  35.        IMPORTED_FUNCTIONS=(PIMAGE_IMPORT_BY_NAME *)(IT->Characteristics + image_base);
  36.  
  37.        for(i=0;;i++)
  38.        {
  39.                IMPORTED_FUNCTION_NAME=(DWORD *)((*IMPORTED_FUNCTIONS)->Name + image_base);
  40.                if(((*IMPORTED_FUNCTIONS)!=0) && (!strcmp((char *)IMPORTED_FUNCTION_NAME, funcion)))
  41.                {
  42.                        printf("\t%s\n", (char *)IMPORTED_FUNCTION_NAME);
  43.                        break;
  44.                }
  45.                IMPORTED_FUNCTIONS++;
  46.        }
  47.  
  48.        Funcion=(PIMAGE_THUNK_DATA)(IT->FirstThunk + image_base);
  49.        Funcion+=i;
  50.        printf("\t\tDireccion funcion: %p \t Addr en IT: %p\n", *Funcion, Funcion);
  51.        getchar();
  52.        return 0;
  53. }
  54.  

Sa1uDoS
139  Programación / ASM / Re: [Micro-rutina] strlen - ANSI en: 21 Enero 2013, 19:44 pm
No se si ya se puede acortar mas... yo creo que no.

13 bytes 14 bytes

Código
  1. include 'C:\FASM\include\win32ax.inc'
  2. .data
  3. Mensaje db "mrblood",0
  4. .code
  5. start:
  6. push Mensaje
  7. call strlen
  8. ret
  9. strlen:
  10. pop ebx
  11. pop edi
  12. mov eax,edi
  13. buc:
  14. inc eax
  15. cmp byte [eax],0
  16. jne buc
  17. sub eax,edi
  18. jmp ebx
  19.  
  20. .end start

EDITO:

Olvidadlo, no retorna correctamente. Lo mas corto son 14 bytes hasta el momento.

P.D.: Drinky, quiero ese beso xD

Sa1uDoS
140  Foros Generales / Noticias / Re: Portugal infiltrará archivos en redes P2P para denunciar a los usuarios que ... en: 3 Marzo 2011, 14:45 pm
Osea que yo no tengo derecho para vulnerar la intimidad de nadie, pero ellos pueden colarte un programa que recoge informacion sobre ti (troyano) y tu te tienes que quedar de brazos cruzados ???

Me parece indignante... malditas discograficas y su afan de ganar mas dinero. Sabeis como se evitaria mucha pirateria ??? Bajando los precios !!. No pueden prenteder que pague ESTOS PRECIOS cuando en cualquier P2P esta gratis. A nadie nos gusta robar,y al menos a mi, me gusta tener las cosas originales... pero si para eso tengo que pagar 15€ pues... DOWNLOADING...

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