Tworzenie nazwy sekcji PE

0

Jak zapisać tutaj nazwę sekcji taką jak .text lub .data?

    IMAGE_SECTION_HEADER section;
    section.Name[IMAGE_SIZEOF_SHORT_NAME]               = ??????????;               // <-  tutaj
    section.SizeOfRawData           = 0x00015000;
    section.PointerToRawData        = 0x00000400;
    section.PointerToLinenumbers    = 0x00000000;
    section.NumberOfRelocations     = 0x0000;
    section.NumberOfLinenumbers     = 0x0000;
    section.Characteristics         = IMAGE_SCN_CNT_INITIALIZED_DATA 
                                    + IMAGE_SCN_ALIGN_32BYTES 
                                    + IMAGE_SCN_MEM_READ
                                    + IMAGE_SCN_MEM_WRITE;

Struktura wygląda tak

    typedef struct _IMAGE_SECTION_HEADER {
      BYTE Name[IMAGE_SIZEOF_SHORT_NAME];
      union {
    DWORD PhysicalAddress;
    DWORD VirtualSize;
      } Misc;
      DWORD VirtualAddress;
      DWORD SizeOfRawData;
      DWORD PointerToRawData;
      DWORD PointerToRelocations;
      DWORD PointerToLinenumbers;
      WORD NumberOfRelocations;
      WORD NumberOfLinenumbers;
      DWORD Characteristics;
    } IMAGE_SECTION_HEADER,*PIMAGE_SECTION_HEADER;
0

Spróbuj w taki sposób:

section.Name = new BYTE[] { 'x', 'y', 'z' };
0

Dzięki za odpowiedź ale to nie zadziałało.
Kod który działa wygląda tak:

CopyMemory(section.Name, ".text", 8); 
0

Jak na to patrzę do wygląda strasznie podejrzanie.

  • _IMAGE_SECTION_HEADER oraz typy jego pól sugerują zapisywanie obrazu na dysku.
  • natomiast pola odnoszące sie do adresu wskazują, że to musi być coś innego, w przeciwnym razie czeka cię wielki ból naruszania ochrony pamięci.

Patrząc na "rozwiązanie" widać, że jesteś bardzo początkujący (bo to są podstawy), a patrząc na to za co się bierzesz, to po prostu nie masz pojęcia co robisz.
Tylko czekać na następną prośbę o pomoc, jak zaczniesz odczytywać te dane.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0