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