ich hab mich mal ran gesetzt fürs antidebugging nich immer die methoden direkt in den source zu hauen, sondern mit nem tool alles rein basteln!
im groben läufts auch, ich kann ordentlich was ändern (z.b. pointertorawdata der sections)
wenn ich dann das programm starte gehts noch!
wenn ich aber ne section dran hängen will failed es!
ich hänge also als erstes den sectionheader hinter den letzten standard sectionheader, setze von meiner section pointertorawdata auf letztesection.PointerToRawData+letztesection.SizeO fRawData, VirtualAddress so ziemlich das gleiche (abgesehen vom section alignment)
section characteristics habe ich auf IMAGE_SCN_MEM_READ|IMAGE_SCN_MEM_WRITE!
wenn ich das ganze dann mit ida anschaue, gibt das immerhin in ida keine fehler! (section wird auch in ida richtig angezeigt, 4096 0en)
wenn ich mir das auch mit hxd anschaue passen auch die fileoffsets!
in meine updateNtHeader func hab ich
da meine section nur IMAGE_SCN_MEM_READ und IMAGE_SCN_MEM_WRITE hat wird hier auch NUR zu SizeOfImage dazu gerechnet...
kann mir also jemand sagen wo mein fehler liegt?
im groben läufts auch, ich kann ordentlich was ändern (z.b. pointertorawdata der sections)
wenn ich dann das programm starte gehts noch!
wenn ich aber ne section dran hängen will failed es!
ich hänge also als erstes den sectionheader hinter den letzten standard sectionheader, setze von meiner section pointertorawdata auf letztesection.PointerToRawData+letztesection.SizeO fRawData, VirtualAddress so ziemlich das gleiche (abgesehen vom section alignment)
section characteristics habe ich auf IMAGE_SCN_MEM_READ|IMAGE_SCN_MEM_WRITE!
wenn ich das ganze dann mit ida anschaue, gibt das immerhin in ida keine fehler! (section wird auch in ida richtig angezeigt, 4096 0en)
wenn ich mir das auch mit hxd anschaue passen auch die fileoffsets!
in meine updateNtHeader func hab ich
Code:
this->pNtHeader->OptionalHeader.SizeOfImage+=this->pSections.at(i).header.SizeOfRawData; if(this->pSections.at(i).header.Characteristics&IMAGE_SCN_CNT_CODE) this->pNtHeader->OptionalHeader.SizeOfCode+=this->pSections.at(i).header.Misc.VirtualSize; else if(this->pSections.at(i).header.Characteristics&IMAGE_SCN_CNT_INITIALIZED_DATA) this->pNtHeader->OptionalHeader.SizeOfInitializedData+=this->pSections.at(i).header.Misc.VirtualSize; else if(this->pSections.at(i).header.Characteristics&IMAGE_SCN_CNT_UNINITIALIZED_DATA) this->pNtHeader->OptionalHeader.SizeOfUninitializedData+=this->pSections.at(i).header.Misc.VirtualSize;
kann mir also jemand sagen wo mein fehler liegt?
mh hab schon rausgefunden... ne verkackt if abfrage...






