2017-01-23 2 views
0

Ich arbeite mit pe-Dateien Analyzer-Software wie exeinfoPe und in Abschnitt Liste Teil gibt es beide. Text und CODE Abschnitt Typen, die wir sie verwenden können, zum Beispiel ändern .Data-Namen zu .text oder CODE oder andere Abschnittsnamen. Sind diese Sektionstypen identisch? Was ist der Unterschied zwischen ihnen?Unterschied zwischen .text und .code Abschnitt Name

+0

Siehe [Codesegment] (https://en.wikipedia.org/wiki/Code_segment) und [Datensegment] (https://en.wikipedia.org/wiki/Data_segment). Manchmal können sie gleich sein. –

+1

Ich glaube, Sie sprechen über Abschnittsnamen, keine Flags. Es gibt einige allgemeine Abschnittsnamen, die jedoch nicht benötigt werden. Was zählt sind die Flags (wie ausführbar oder schreibbar). – Jester

+0

ja ich habe mich geirrt. danke für deine antwort und erinnerung. Ich korrigiere die Frage. @ Jester –

Antwort

3

Es gibt keinen funktionalen Unterschied zwischen den Abschnitten .text und .code einer Binärdatei.

In fast allen Fällen sind sie völlig gleichbedeutend (was bedeutet, dass sie auf dem gleichen Abschnitt beziehen), aber selbst wenn sie nicht (zB aufgrund der tatsächlichen Reihenfolge der Abschnitte in der binären), sie sind semantisch identisch.

Dies ist der Abschnitt der Objektdatei oder des Adressraums, der ausführbare Anweisungen ("code") enthält, die als einfacher Text ("text") gespeichert werden. Es ist fast immer schreibgeschützt, anders als der Abschnitt .data.

In der Dokumentation für Ihren Assembler, Compiler, Linker oder Disassembler finden Sie, welchen Namen es bevorzugt. Das PE-Format verwendet .text.

+0

Wie könnten Anweisungen beschreibbar sein? Wenn sie das wären, wäre das ein Signal für eine ernsthafte Verwundbarkeit des Systems, nicht wahr? Jemand könnte möglicherweise ihren Code in die .code-Sektion einfügen? Wird das möglich sein? Könnten Sie Ihre Gedanken dazu ausarbeiten? Vielen Dank. –

0

Es gibt keinen semantischen Unterschied zwischen den Abschnitten .CODE und .TEXT. Genau wie im Assembler MASM wird die Befehlsraumadresse durch .CODE Abschnitt benannt, und in anderen Compilern wird von .CODE benannt.

Also, wenn Sie Ihren Code mit MASM montieren werden Sie .CODE Abschnitt sowie .TEXT sehen.

Verwandte Themen