Exemplo n.º 1
0
bool IniParser::ReadFromFile(const string& filename)
{
 string content;
 if(FileGetContent(filename,content))
    return ReadFromString(content);
 return false;
}
Exemplo n.º 2
0
//
// MAIN
//
int
main(int argc, char **argv) {


    // Load the file into memory
    unsigned char * data;
    size_t s;
    data = FileGetContent(argv[1], &s);
    if(data == NULL) {
        fprintf(stderr, "file not found\n");
        return 1;
    }


    // Check if this is a PE file
    if(*(short *)data != *(short *)"MZ") {
        puts("To nie jest plik PE\n");
        return 2;
    }
    // HEADERS
    IMAGE_DOS_HEADER *DosHeader = (IMAGE_DOS_HEADER *)data;
    IMAGE_NT_HEADERS *NtHeaders = (IMAGE_NT_HEADERS *)(data + DosHeader->e_lfanew);
    IMAGE_SECTION_HEADER *SectionHeader = (IMAGE_SECTION_HEADER *)(data + DosHeader->e_lfanew + sizeof(IMAGE_NT_HEADERS));
     
    // INFORMATION OUTPUT
    int i;
    printf("Adres naglowka PE: 0x%lx\n", DosHeader->e_lfanew);
    printf("Ilosc sekcji: %d\n", i = NtHeaders->FileHeader.NumberOfSections);
    
    while(i-- > 0) {
             printf("Nazwa sekcji: %s\n", SectionHeader++->Name);                       
    }
    
    printf("Adres wejscia (EP): 0x%x\n", NtHeaders->OptionalHeader.AddressOfEntryPoint);
    printf("ImageBase: 0x%x\n", NtHeaders->OptionalHeader.ImageBase);
    printf("Subsystem: %d\n", NtHeaders->OptionalHeader.Subsystem);
    
    
    return 0;
}