Forum: Win32/Win64 API (native code)
Delphi
by Arnulf,
2. Jul 2008
Ok dann will ich es mal so halbwegs selbst beantworten - soweit es eben stimmt.
das hier dürfte als so halbwegs stimmen um die position der section zu bestimmen
rawCodePosition := SHD^.PointerToRawData;
virtualCodeSize := SHD^.Misc.VirtualSize;
wobei sich der startpointer dann so berechnet:
startpos := offset + rawCodePosition;
offset ist in dem fall einfach der begin...
Forum: Win32/Win64 API (native code)
Delphi
by Arnulf,
26. Jun 2008
Ich hab es noch nicht ganz da ich nie sicher bin, dass es so stimmt.
kurzfassung:
// pointer to nt header
INH := Pointer(Cardinal(IDH) + Cardinal(IDH^._lfanew));
// pointer to sectionheader
SHD := pointer(cardinal(@(INH^.OptionalHeader)) + INH^.FileHeader.SizeOfOptionalHeader);
ich dachte eigentlich ich müsste nur den image_nt_header überspringen und wäre dirrekt bei den section...
Forum: Win32/Win64 API (native code)
Delphi
by Arnulf,
20. Jun 2008
Hi
Soweit ich die sourcen auseinander gepfriemelt habe durchsuchst du in einem prozess alle module bzw. deren codesection nach einem "command".
Ich denke ich kann mir schon irgendwie zusammenbastelnd die sections eines programms bzw. einer .dll zu durchsuchen aber warum durchsuchst du nur die readable sections?
if (Section.Size >= NameSize) and Section.IsReadable and
not...