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


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


Páginas: 1 2 3 4 5 [6] 7 8 9 10
 51 
 en: 23 Enero 2026, 21:29 pm 
Iniciado por Infernoid - Último mensaje por Infernoid
Hola, aunque llevo unos meses atareado con varios proyectos, hay uno que terminé la v1.0 hace unas semanas. HackMyBugs es una app web vulnerable para practicar vulnerabilidades tanto por el lado del cliente como por el del servidor. Puse mucho esfuerzo en incluir algunas de las vulnerabilidades más comunes en esta área, así como en que aparecieran en un entorno "realista". Para más información, visiten el repo del proyecto:
https://github.com/infernoidpl4y/HackMyBugs

Gracias por leer ;D.

 52 
 en: 22 Enero 2026, 21:04 pm 
Iniciado por Novedades - Último mensaje por Novedades
Si, parche son actualizaciones.
Aunque segun leo, Windows 10 era azul , y windows 11 negro

https://www.digitalcitizen.life/ctrl-alt-delete/


Eres un crack

Muchas gracias  ;-) ;-) ;-)

 53 
 en: 22 Enero 2026, 20:49 pm 
Iniciado por El_Andaluz - Último mensaje por El_Andaluz


En un contexto tan digitalizado como el nuestro, los estafadores encuentran cada vez más vías para ocultar sus engaños. Así, muchos de ellos se apoyan en la suplantación de organismos oficiales con el fin de ganar credivilidad. Mensajes fraudulentos, correos electrónicos y enlaces engañosos se han convertido en una herramienta habitual; y, para ello, se aprovechan de la falta de información o de la vulnerabilidad que les lleva a obtener los datos personales y bancarios de sus víctimas.

El Servicio Público de Empleo Estatal (SEPE) ha vuelto a advertir a la ciudadanía sobre una nueva estafa que está circulando a través de sus supuestas comunicaciones. En concreto, los ciberdelincuentes se hacen pasar por el organismo para contactar con personas desempleadas o beneficiarias de alguna prestación. El objetivo no es otro que el de robar información sensible. Por ello, desde el SEPE, insisten en la necesidad de extremar las precauciones y recuerdan que la entidad nunca solicita datos confidenciales fuera de sus canales oficiales.




 54 
 en: 22 Enero 2026, 20:45 pm 
Iniciado por Novedades - Último mensaje por Mr.Byte
Si, parche son actualizaciones.
Aunque segun leo, Windows 10 era azul , y windows 11 negro

https://www.digitalcitizen.life/ctrl-alt-delete/

 55 
 en: 22 Enero 2026, 12:24 pm 
Iniciado por Novedades - Último mensaje por Novedades
Parches es actualizaciones ?

Y se pueden cambiar para tenerlo como antes ?

Saludos

 56 
 en: 22 Enero 2026, 08:12 am 
Iniciado por Novedades - Último mensaje por Mr.Byte
A mi tambien me pasa, creo qie se debe a las ultimos parches.

 57 
 en: 22 Enero 2026, 00:04 am 
Iniciado por El_Andaluz - Último mensaje por El_Andaluz


El episodio se registró durante una sesión del Parlamento Europeo en Estrasburgo, Francia, cuando el eurodiputado Anders Vistisen tomó la palabra para rechazar las aspiraciones de Donald Trump de adquirir Groenlandia, territorio autónomo que forma parte del Reino de Dinamarca.

En medio de su intervención, el político danés apuntó directamente contra el mandatario norteamericano y lanzó: "Váyase a la *****".

Tras el exabrupto, el vicepresidente del Parlamento Europeo, Nicolae Ștefănuță, interrumpió el discurso y le recordó al legislador que ese tipo de lenguaje no es apropiado en el ámbito institucional, dando por finalizada su exposición de manera abrupta.



 58 
 en: 21 Enero 2026, 18:16 pm 
Iniciado por fary - Último mensaje por fary
Sigo intentando avanzar esto... Aquí algunas capturar con ejecutable x64... la calculadora de windows de ejemplo:



Secciones del ejecutable:



Un ojo a las funciones que importa:



Buscando funciones sospechosas:



Probando el  visor de Export Table en una DLL x64 (NTDLL.DLL):




El código practicamente esta ya ordenado en diferentes archivos en un proyecto en Code::Blocks, poco a poco lo iré avanzando segun tenga tiempo...

Si hay algún interesado en participar, ya sabeís. y para el que quiera probar esta versión tan primeriza dejo el ejecutable.


https://www.mediafire.com/file/3wqvx8h9acz8v5m/Visor_PE_compilado.rar/file

saludos.


 59 
 en: 20 Enero 2026, 16:14 pm 
Iniciado por fary - Último mensaje por fary
Bueno, pues retomando un poco el maravilloso formato PE  :rolleyes: Me estoy lanzando a crear un visor PE con GUI y con modo consola en C :)

Este es el código del modo consola  :D

Código
  1. // Sencillo Visor PE  Consola v0.1
  2. // codigo por Fary
  3. // foro.elhacker.net
  4.  
  5. #include <windows.h>
  6. #include <stdio.h>
  7. #include <stdlib.h>
  8.  
  9. int MostrarSecciones(void * Mapa); // Muestra los datos de las secciones
  10. int MostrarImportaciones(void * Mapa); //Muestra las imports
  11. int MostrarExportaciones(void * Mapa); // Muestra las exports
  12.  
  13. int RVAToOffset(int IDDVirtual, int ISHVirtual, int ISHRaw); // Convierte direccion virtual en offset fisico
  14. DWORD AltRVAToOffset(DWORD RVA, void *Mapa); // AltRVAToOffset -> Convierte direccion virtual en offset fisico, version mejorada.
  15.  
  16.  
  17. HANDLE Consola;
  18.  
  19. int main()
  20. {
  21.    HANDLE archivo;
  22.    HANDLE marchivo;
  23.    DWORD TamanoArchivo;
  24.    LPVOID MapaArchivo;
  25.    int Opcion = 0;
  26.    char ruta[MAX_PATH] = {0};
  27.  
  28.    Consola = GetStdHandle(STD_OUTPUT_HANDLE);
  29.    printf("Indica la ruta del archivo (La Ruta no puede tener espacios): \n");
  30.    scanf("%s", &ruta);
  31.  
  32.    archivo = CreateFile(ruta, GENERIC_READ | GENERIC_WRITE,  0,0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); // abrimos el archivo EXE
  33.  
  34.    if(archivo == INVALID_HANDLE_VALUE)
  35.    {
  36.        printf("Error: No se pudo abrir el archivo.\n");
  37.        return 1;
  38.    }
  39.  
  40.    TamanoArchivo = GetFileSize(archivo,0);
  41.  
  42.    marchivo = CreateFileMappingA(archivo, 0 ,PAGE_READWRITE, 0, TamanoArchivo,0);
  43.  
  44.    if (marchivo == NULL)
  45.    {
  46.        printf("No se puede abrir el mapeo del archivo\n");
  47.        CloseHandle(archivo);
  48.        return 1;
  49.    }
  50.  
  51.    MapaArchivo = MapViewOfFile(marchivo, FILE_MAP_ALL_ACCESS, 0, 0, 0);
  52.  
  53.    IMAGE_DOS_HEADER  * idh = (IMAGE_DOS_HEADER*)&MapaArchivo[0]; // Rellenamos el IMAGE_DOS_HEADER
  54.  
  55.    if (idh->e_magic != IMAGE_DOS_SIGNATURE)
  56.    {
  57.        printf("No es un PE Valido\n");
  58.        CloseHandle(archivo);
  59.        CloseHandle(marchivo);
  60.        return 0;
  61.    }
  62.  
  63.    IMAGE_NT_HEADERS * INTH = (IMAGE_NT_HEADERS*)&MapaArchivo[idh->e_lfanew];
  64.  
  65.    while(1)
  66.    {
  67.    system("CLS");
  68.    if(INTH->FileHeader.Machine == IMAGE_FILE_MACHINE_I386) // Mostrador el parametro machine
  69.    {
  70.        printf("FileHeader->Machine: x86\n");
  71.    }else if(INTH->FileHeader.Machine == IMAGE_FILE_MACHINE_AMD64)
  72.    {
  73.        printf("FileHeader->Machine: x64\n");
  74.    }
  75.  
  76.    if (INTH->FileHeader.Characteristics == IMAGE_FILE_EXECUTABLE_IMAGE) // Characteristics
  77.    {
  78.        printf("FileHeader->Characteristics: EXE");
  79.    }else if(INTH->FileHeader.Characteristics == IMAGE_FILE_DLL)
  80.    {
  81.        printf("FileHeader->Characteristics: DLL");
  82.    }else if(INTH->FileHeader.Characteristics == IMAGE_FILE_32BIT_MACHINE)
  83.    {
  84.        printf("FileHeader->Characteristics: 32-Bit\n");
  85.    }
  86.  
  87.    printf("FileHeader->NumberOfSections: 0x%x\n",INTH->FileHeader.NumberOfSections);
  88.  
  89.  
  90.    printf("OptionaHeader->AddressOfEntryPoint: 0x%x\n", INTH->OptionalHeader.AddressOfEntryPoint);
  91.    printf("OptionalHeader->ImageBase: 0x%x\n", INTH->OptionalHeader.ImageBase);
  92.    printf("OptionalHeader->SectionAlignment: 0x%x\n",INTH->OptionalHeader.SectionAlignment);
  93.    printf("OptionalHeader->FileAlignment: 0x%x\n",INTH->OptionalHeader.FileAlignment);
  94.    printf("OptionalHeader->SizeOfImage: 0x%x\n", INTH->OptionalHeader.SizeOfImage);
  95.    printf("OptionalHeader->SizeOfHeaders: 0x%x\n",INTH->OptionalHeader.SizeOfHeaders);
  96.  
  97.    printf("\nSelecciona que quieres hacer ahora: \n");
  98.    printf("1 - Ver secciones.\n");
  99.    printf("2 - Ver Import Table.\n");
  100.    printf("3 - Ver Export Table.\n");
  101.    printf("4 - Salir.\n->");
  102.    scanf("%i", &Opcion);
  103.  
  104.    switch(Opcion)
  105.    {
  106.        case 1:
  107.            system("CLS");
  108.            MostrarSecciones(MapaArchivo);
  109.            break;
  110.        case 2:
  111.            system("CLS");
  112.            MostrarImportaciones(MapaArchivo);
  113.            break;
  114.        case 3:
  115.            system("CLS");
  116.            MostrarExportaciones(MapaArchivo);
  117.            break;
  118.        case 4:
  119.            CloseHandle(archivo);
  120.            CloseHandle(marchivo);
  121.            return 0;
  122.    }
  123.    system("PAUSE");
  124.    }
  125.    return 0;
  126. }
  127.  
  128. int MostrarExportaciones(void * Mapa)
  129. {
  130.    IMAGE_DOS_HEADER * IDH = (IMAGE_DOS_HEADER*)&Mapa[0];
  131.    IMAGE_NT_HEADERS * INTH = (IMAGE_NT_HEADERS*)&Mapa[IDH->e_lfanew];
  132.    IMAGE_SECTION_HEADER * ISH;
  133.  
  134.    IMAGE_DATA_DIRECTORY * IDD = (IMAGE_DATA_DIRECTORY*)&(INTH->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT]);
  135.  
  136.    if (IDD->VirtualAddress == 0)
  137.    {
  138.        printf("No hay ExportTable.\n");
  139.        return 1;
  140.    }
  141.  
  142.    int i;
  143.  
  144.  
  145.    DWORD exportRaw = AltRVAToOffset(IDD->VirtualAddress, Mapa);
  146.  
  147.    IMAGE_EXPORT_DIRECTORY *IED = (IMAGE_EXPORT_DIRECTORY *)&Mapa[exportRaw];
  148.  
  149.    int a = AltRVAToOffset(IED->AddressOfNames, Mapa);
  150.  
  151.    DWORD * NombreFuncion = &Mapa[a];
  152.  
  153.    int e = AltRVAToOffset(IED->AddressOfFunctions, Mapa);
  154.    DWORD * DirFuncion = &Mapa[e];
  155.  
  156.    int z = AltRVAToOffset(IED->AddressOfNameOrdinals, Mapa);
  157.    WORD * Ordinal = &Mapa[z];
  158.  
  159.    for (i = 0; i < IED->NumberOfNames; i++)
  160.    {
  161.        DWORD nameOffset = AltRVAToOffset(NombreFuncion[i], Mapa);
  162.        char * funcName = (char*)&Mapa[nameOffset];
  163.  
  164.        DWORD dirfun = DirFuncion[Ordinal[i]];
  165.  
  166.        printf("%s -> 0x%x\n",funcName, dirfun);
  167.    }
  168.  
  169.    return 0;
  170. }
  171.  
  172. int MostrarImportaciones(void * Mapa)
  173. {
  174.    system("CLS");
  175.  
  176.    IMAGE_DOS_HEADER * IDH = (IMAGE_DOS_HEADER*)&Mapa[0];
  177.    IMAGE_NT_HEADERS * INTH = (IMAGE_NT_HEADERS*)&Mapa[IDH->e_lfanew];
  178.    IMAGE_DATA_DIRECTORY * IDD = (IMAGE_DATA_DIRECTORY*)&(INTH->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT]);
  179.    IMAGE_SECTION_HEADER * ISH;
  180.  
  181.    if (IDD->VirtualAddress == 0)
  182.    {
  183.        printf("No se encontro tabla de importaciones.\n");
  184.        return 1;
  185.    }
  186.  
  187.  
  188.    int i;
  189.  
  190.    ISH = IMAGE_FIRST_SECTION(INTH);
  191.  
  192.    for (i = 0; i < INTH->FileHeader.NumberOfSections; i++)
  193.    {
  194.        //ISH = (IMAGE_SECTION_HEADER*)&Mapa[IDH->e_lfanew+sizeof(IMAGE_NT_HEADERS)+sizeof(IMAGE_SECTION_HEADER)*i];
  195.  
  196.        if(IDD->VirtualAddress >= ISH[i].VirtualAddress && IDD->VirtualAddress < (ISH[i].VirtualAddress + ISH[i].Misc.VirtualSize))
  197.        {
  198.            break;
  199.        }
  200.    }
  201.  
  202.    DWORD Offset = AltRVAToOffset(IDD->VirtualAddress, Mapa);//DWORD Offset = RVAToOffset(IDD->VirtualAddress,ISH[i].VirtualAddress, ISH[i].PointerToRawData);//(IDD->VirtualAddress - ISH->VirtualAddress) + ISH->PointerToRawData;
  203.  
  204.    IMAGE_IMPORT_DESCRIPTOR * IID = (IMAGE_IMPORT_DESCRIPTOR*)&Mapa[Offset];
  205.  
  206.    while (IID->Name != NULL)
  207.    {
  208.        DWORD nameOffset = AltRVAToOffset(IID->Name, Mapa);//RVAToOffset(IID->Name, ISH[i].VirtualAddress, ISH[i].PointerToRawData);//(IID->Name - ISH->VirtualAddress) + ISH->PointerToRawData;
  209.        char *dllName = (char*)&Mapa[nameOffset];
  210.  
  211.        SetConsoleTextAttribute(Consola, FOREGROUND_RED);
  212.        printf("DLL: %s\n", dllName);
  213.        SetConsoleTextAttribute(Consola, 0x0F);
  214.  
  215.        DWORD ThunkOffset = AltRVAToOffset(IID->OriginalFirstThunk,Mapa);//RVAToOffset(IID->OriginalFirstThunk,ISH[i].VirtualAddress, ISH[i].PointerToRawData);
  216.        IMAGE_THUNK_DATA * ITD = (IMAGE_THUNK_DATA*)&Mapa[ThunkOffset];
  217.  
  218.        while (ITD->u1.AddressOfData != NULL)
  219.        {
  220.            DWORD dirNombreFuncion = AltRVAToOffset(ITD->u1.AddressOfData, Mapa);//RVAToOffset(ITD->u1.AddressOfData,ISH[i].VirtualAddress, ISH[i].PointerToRawData);
  221.            IMAGE_IMPORT_BY_NAME *IIBN = (IMAGE_IMPORT_BY_NAME*)&Mapa[dirNombreFuncion];
  222.            printf("Funcion: %s\n",IIBN->Name);
  223.            ITD++;
  224.        }
  225.  
  226.        IID++;
  227.    }
  228.    return 0;
  229.  
  230. }
  231.  
  232.  
  233. DWORD AltRVAToOffset(DWORD RVA, void *Mapa)
  234. {
  235.    BYTE *base = (BYTE *)Mapa;
  236.  
  237.    IMAGE_DOS_HEADER *IDH = (IMAGE_DOS_HEADER *)base;
  238.    IMAGE_NT_HEADERS *INTH =
  239.        (IMAGE_NT_HEADERS *)(base + IDH->e_lfanew);
  240.  
  241.    IMAGE_SECTION_HEADER *ISH =
  242.        IMAGE_FIRST_SECTION(INTH);
  243.  
  244.    // Caso: RVA en headers
  245.    if (RVA < INTH->OptionalHeader.SizeOfHeaders)
  246.        return RVA;
  247.  
  248.    for (WORD i = 0; i < INTH->FileHeader.NumberOfSections; i++)
  249.    {
  250.        DWORD va   = ISH[i].VirtualAddress;
  251.        DWORD size = max(ISH[i].Misc.VirtualSize,
  252.                          ISH[i].SizeOfRawData);
  253.  
  254.        if (RVA >= va && RVA < va + size)
  255.        {
  256.            return (RVA - va) + ISH[i].PointerToRawData;
  257.        }
  258.    }
  259.  
  260.    // No encontrado
  261.    return 0;
  262. }
  263.  
  264. int RVAToOffset(int IDDVirtual, int ISHVirtual, int ISHRaw)
  265. {
  266.    return ((IDDVirtual - ISHVirtual) +  ISHRaw);
  267. }
  268.  
  269. int MostrarSecciones(void * Mapa)
  270. {
  271.    IMAGE_DOS_HEADER * IDH = (IMAGE_DOS_HEADER*)&Mapa[0];
  272.    IMAGE_NT_HEADERS * INTH = (IMAGE_NT_HEADERS*)&Mapa[IDH->e_lfanew];
  273.  
  274.  
  275.    IMAGE_SECTION_HEADER * ISH = IMAGE_FIRST_SECTION(INTH);
  276.  
  277.    int i;
  278.    for (i = 0; i < INTH->FileHeader.NumberOfSections; i++)
  279.    {
  280.        SetConsoleTextAttribute(Consola, FOREGROUND_RED);
  281.        printf("Name: %.8s\n", ISH[i].Name);
  282.        SetConsoleTextAttribute(Consola, 0x0F);
  283.        printf("VirtualAddress: 0x%x\n", ISH[i].VirtualAddress);
  284.        printf("SizeOfRawData: 0x%x\n",ISH[i].SizeOfRawData);
  285.        printf("PointerToRawData: 0x%x\n",ISH[i].PointerToRawData);
  286.    }
  287.  
  288.    return 0;
  289. }
  290.  


Se aceptan sugerencias de mejora y gente que quiera aprender junto a mí.

saludos.

 60 
 en: 20 Enero 2026, 14:53 pm 
Iniciado por El_Andaluz - Último mensaje por Songoku
Pero joio si en la captura te lo dice bien claro, en tu caso la carpeta 'Default' se llama 'Profile 1'. En la imagen te lo indico:



Entra en esa carpeta 'Profile 1' (que está en C:\Users\Usuario\AppData\Local\Google\Chrome\User Data\) y allí tienes los marcadores y demás por si quieres guardarlos antes de borrar la carpeta 'Google'.
Saludos...

Songoku

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