Hi leute ich beschäftige mich zur zeit mit Pe Header und diese sachen.
würde mich sehr um Hilfe freuen
mfg Lazeboy
edit:
PROBLEM GELÖST
danke trotzdem
Edit2:
so da mein dumper jetzt funktioniert und ich jetzt alles im pe bearbeiten kann hab ich ein weiteres problem. Wie kann ich den iat wieder herstellen also ich hab da nicht wirklich son ansatz
Code:
unsigned char *fileBuff;
FILE *inFile;
inFile = fopen(file,"r+b");
fseek(inFile, 0, SEEK_END);
DWORD fileSize = ftell(inFile);
fseek(inFile, 0L, SEEK_SET);
fileBuff = (unsigned char*)malloc(fileSize);
fread(fileBuff, 1, fileSize, inFile);
IMAGE_DOS_HEADER *pDosheader = (PIMAGE_DOS_HEADER)fileBuff;
if (pDosheader->e_magic != IMAGE_DOS_SIGNATURE)
{
// CloseFileMapping(Mapping);
return false;
}
//cout << hex<< Mapping.pBaseAddr << endl << endl;
PIMAGE_NT_HEADERS pNtheader = (PIMAGE_NT_HEADERS)(fileBuff + pDosheader->e_lfanew);
if (pNtheader->Signature != IMAGE_NT_SIGNATURE)
{
// CloseFileMapping(Mapping);
return false;
}
DWORD Importdatarva = pNtheader->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress;
PIMAGE_SECTION_HEADER pCurrentsection = (PIMAGE_SECTION_HEADER)IMAGE_FIRST_SECTION(pNtheader);
cout << endl << hex <<((DWORD)&pDosheader + pCurrentsection->PointerToRawData) << endl << endl <<endl << endl;
DWORD dwSectioncount = pNtheader->FileHeader.NumberOfSections;
out << "Image Base: " << pNtheader->OptionalHeader.ImageBase << endl;
out << "Image Size: " << pNtheader->OptionalHeader.SizeOfImage << endl;
out << "Entry: " << pNtheader->OptionalHeader.AddressOfEntryPoint << endl;
int count = 0 ;
for(int i = 0; i < dwSectioncount;i++)
{
strcpy((char*)pCurrensection[i].Name,"aaaa");
}
dann hier irgendwie ne datei schreiben nur weis ich da nicht weiter XD
mfg Lazeboy
edit:
PROBLEM GELÖST
danke trotzdem
Edit2:
so da mein dumper jetzt funktioniert und ich jetzt alles im pe bearbeiten kann hab ich ein weiteres problem. Wie kann ich den iat wieder herstellen also ich hab da nicht wirklich son ansatz

Zuletzt bearbeitet: