WObliczanie plik przesunięcie punktu wejścia w pliku PE
http://en.redinskala.com/finding-the-ep/
nie ma informacji o tym, jak znaleźć plik przesunięcie punktu wejścia w plik EXE.
Tutaj można przeczytać, że
EP (Plik) = AddressOfEntryPoint - BaseOfCode + .text [PointerToRawData] + FileAlignment
Jednak, kiedy zostały obliczenia ten sam (użyłem kilka różnych plików exe) Doszedłem do wniosku, że
Przesunięcie punktu wejścia w pliku EXE = AddressOfEntryPoint + .text [Pointe rToRawData] - .text [VirtualAddress]
przypadku AddressOfEntryPoint jest pobierana z IMAGE_OPTIONAL_HEADER i dwie inne wartości z IMAGE_SECTION_HEADER.
Czy informacje na tej stronie są fałszywe? Dodanie FileAlignment, tak jak oni wydaje się po prostu źle, to nie ma sensu. Czy to prawda? Wyrównanie pliku sugeruje, że powinienem użyć modulo lub czegoś, aby obliczyć wartość. Jeśli BaseOfCode i FileAlignment mają tę samą wartość (w większości są), nie przeszkadzałoby to dodawać ich do obliczeń, ale jak miałoby to sens?
Musiałbym ponownie przeczytać specyfikację PE, ale dodanie wyrównania pliku wydaje się nie tak. Jeśli niewspółliniowe przesunięcie to 'x', wybrałbym' x - x% FileAlignment'. –