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

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 [16] 17 18 19 20
151  Seguridad Informática / Análisis y Diseño de Malware / Re: [ASM] Find Kernel Base Address (XP,Vista,7 - x86, x64) en: 2 Mayo 2011, 06:09 am
Código genérico:
Código
  1. .386    
  2. .model flat, stdcall
  3. option casemap:none
  4. assume fs:nothing
  5.  
  6. .data
  7. var1 db 'k',0,'e',0,'r',0,'n',0,'e',0,'l',0,'3',0,'2',0
  8. var2 db 'K',0,'E',0,'R',0,'N',0,'E',0,'L',0,'3',0,'2',0
  9.  
  10. .code
  11. start:
  12. mov eax, fs:[030h]
  13. mov eax, [eax + 0ch]
  14. mov eax, [eax + 0ch]
  15. xor edx, edx
  16. mov esi, 0Fh
  17.  
  18. KERNEL:
  19. mov eax, [eax]
  20. mov ebx, [eax + 030h]
  21.  
  22. CMPSTR1:
  23. mov cl, byte ptr [ebx + edx]
  24. cmp byte ptr [offset var1 + edx], cl
  25. jnz CMPSTR2
  26. inc edx
  27. cmp edx, esi
  28. jz EXIT
  29. jmp CMPSTR1
  30.  
  31. CMPSTR2:
  32. mov cl, byte ptr [ebx + edx]
  33. cmp byte ptr [offset var2 + edx], cl
  34. jnz KERNEL
  35. inc edx
  36. cmp edx, esi
  37. jz EXIT
  38. jmp CMPSTR1
  39.  
  40. EXIT:
  41. mov eax, [eax + 018h]
  42.  
  43. end start

Código con filtro:
Código
  1. mov eax, fs:[030h]
  2. mov eax, [eax + 0ch]
  3. mov eax, [eax + 0ch]
  4. KERNEL:
  5. mov eax, [eax]
  6. mov ebx, [eax + 030h]
  7. mov ecx, 00320033h
  8. cmp ecx, [ebx + 0ch]
  9. JNZ KERNEL
  10. mov eax, [eax + 018h]
152  Seguridad Informática / Análisis y Diseño de Malware / [ASM] Find Kernel Base Address (XP,Vista,7 - x86, x64) en: 1 Mayo 2011, 18:31 pm
Código
  1. mov eax, fs:[030h]
  2. mov eax, [eax + 0ch]
  3. mov eax, [eax + 0ch]
  4. mov eax, [eax]
  5. mov eax, [eax]
  6. mov eax, [eax + 018h]

Bueno leyendo un poco acerca de la PEB y entendiendo como localizaban el BaseAddress de kernel32, recordé que había un código que hicieron rehicieron y mejor dicho xD, bueno ese código dejo de funcionar en 7 donde se agrego Kernelbase.dll y obligó a cambiar el código. Tras pruebas mi código se baso en buscar el orden de carga de las librerías, y ese orden se respeta desde XP hasta 7 tanto en 64 como 32 bits. ;)

Un agradecimiento a Lord, y ya implementaré un método genérico  :P.
Saludos!
153  Programación / Programación C/C++ / Re: Subir un archivo a un FTP en: 14 Febrero 2011, 20:56 pm
Amigo, primeramente 2 detalles te recomendaría que llames a la función especificando el tipo de códificación de caracteres ANSI o UNICODE respectivamente A y W.
Ejemplo:

Código:
InternetOpenA
InternetConnectA
FtpPutFileA
FtpSetCurrentDirectoryA

Ahora tu problema además puede deberse a que no estableces el directorio donde escribir el archivo para ello te recomiendo FtpSetCurrentDirectoryA
Prueba y nos comentas..
Saludos


154  Seguridad Informática / Análisis y Diseño de Malware / Re: Programar virus que consuma la memoria en: 5 Febrero 2011, 04:02 am
Hola, lamento replicar en un tema algo antiguo pero quisiera aportar una experiencia que quizá también vaya de acuerdo a el objeto que se busca.

Hace algún tiemp trabajando en una función por accidente deje un número muy amplio y escribí en un archivo esa cantidad de bytes, esa cantidad se acerco a 6GB, y en un instante el PC se trabó y empezo a consumir toda la ram progresivamente, llego a 1GB rapidamente cuando llegí apenas a escribir 1 GB, y lo mejor que el proceso se volvió imparable, la unica opción fue reiniciar.

La verdad esta experiencia me encanto y pues esperemos ver que opinan.
Saludos, y rectifico S.O : Windows 7 Ultimate, programado en C.

EternalIdol  ;-) muy buen ejemplo.

155  Programación / Programación C/C++ / Re: Seguir mejorando la programacion en C en: 30 Enero 2011, 09:01 am
Un 70% no sería mucho!  :xD
+1 Leo!
156  Programación / Programación C/C++ / Re: Descargar archivo de FTP (wininet) en: 30 Enero 2011, 00:20 am
Para saber exactamente por que no funciona te recomiendo leas los enlaces e informan en valor que debe retornar cada API, usa GetLastError y así identificaras el problema.

Saludos!
157  Programación / Programación C/C++ / Re: Descargar archivo de FTP (wininet) en: 29 Enero 2011, 19:36 pm
Hola, que tal amigo, mira hace muy poco me tope con estas API, y te hago 2 preguntas

Primero, debes especificar si usaras la API para unicode o ansi, te recomiendo ANSI y llamarías a las API así:
InternetOpenA
InternetConnectA
FtpGetFileA

Pesta.png esta en root del FTP de donde lo quieres bajar?, si no es así debes pasarle el path completo.

"C:\A.png" -> Aquí tienes otro error recuerda que \ se representa en \\, así que te deberia quedar así:
"C:\\A.png".

Aquí te dejo más información sobre las API, te recomiendo leer un poquito más.
http://msdn.microsoft.com/en-us/library/aa385096(v=vs.85).aspx
http://msdn.microsoft.com/en-us/library/aa384363(v=vs.85).aspx
http://msdn.microsoft.com/en-us/library/aa384157(v=vs.85).aspx

Saludos.
158  Programación / Programación C/C++ / Re: pasar int to char y Viceversa en: 29 Enero 2011, 19:03 pm
Espero que más de que te sirva la función, la analices y aprendas de ella, seguramente así será más de utilidad.

Saludos y me alegra que te aya servido pero toma en cuenta lo que te dije.
159  Programación / Programación C/C++ / Re: pasar int to char y Viceversa en: 29 Enero 2011, 18:54 pm
Hola amigo buen día, analice tu problema, y creo que alguna vez me tope con algo así, el hecho de esto es que hay sacar el número de números que compongan a la cifra, para esto usamos el operador mod y reducimos el archivo en su ultima cifra hasta llegar al último, te hice un ejemplo sencillo en una función espero te sea de útilidad, cualquier duda avisanos. Saludos

Código
  1. #include <stdio.h>
  2.  
  3. char * Cadena(int number, char * cadena);
  4.  
  5. int main(void)
  6. {
  7.    printf("%s ", Cadena(1667,"abcdefgh")); //return "affg"
  8.    getchar();
  9. }
  10.  
  11. char * Cadena(int number, char * cadena)
  12. {
  13.     int i = 0;
  14.     int tNum = 0;
  15.     int ilen = 0;
  16.     int altNum = number;
  17.     int * n = NULL;
  18.     char * cadenareturn;
  19.     while (number > 0)
  20.     {
  21.           tNum = number % 10;
  22.           number = number / 10;
  23.           ilen++;
  24.     }
  25.     n = (int *) malloc (sizeof(int) * ilen);
  26.     for (i = (ilen - 1); i >= 0; i--)
  27.     {
  28.         n[i] = altNum % 10;
  29.         altNum /= 10;
  30.     }
  31.     cadenareturn = (char *) malloc(ilen);
  32.     memset(cadenareturn, 0, ilen + 1);
  33.     for (i = 0; i < ilen; i++)
  34.     {
  35.         cadenareturn[i] = cadena[n[i]-1];
  36.     }
  37.     free(n);
  38.     return cadenareturn;
  39. }
160  Programación / Programación C/C++ / Re: [C] Realign PE function en: 27 Enero 2011, 04:26 am
Vale BlackZeroX te explico.
Te lo pongo de la siguiente forma, las secciones definen la estructura del archivo, entendiendo de tal forma que la suma de todas ellas, más los parámetros (Cabecera PE) dan como resultado el peso del archivo, cuando se agrega información extra al final del archivo, la suma de los valores de las secciones mas la cabecera no dará el peso final del archivo, por ende antivirus suelen poner firmas al detectar este desbalance como Avira o F-PROT, Así que lo que este código hace es detectar el tamaño de la información extra agregada y la balancea en base al FileAlignment, luego se actualizan los valores de la ultima sección (VirtualSize y SizeOfRawData) y el SizeOfImage, balanceando el archivo como si fuera información natural de la última sección, evitando así detecciones.

Espero que te aya quedado claro, cualquier duda con gusto tendrá su respuesta.
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 [16] 17 18 19 20
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines