Quote:
Originally Posted by mydoom
Das spielt so gesehen keine Rolle. Wenn du weißt, wie du ein Auto zusammenbaust wirst du wahrscheinlich auch wissen, wie man es auseinanderbaut.
|
Doch spielt es, da braucht du ihn auch nicht ironisch Meister zu nennen, er hat völlig recht.
Wenn du ASM lernst, um darin programmieren zu können, ist das etwas völlig anderes.
Du programmierst nämlich den ASM Code so, wie du ihn für richtig hälst und natürlich würdest du ihn, wenn du das Programm disassemblierst, wieder verstehen, aber das hat 0 mit "Real-World Programmen" zutun.
Durch zahlreiche Compileroptimierungen, durch Klassen und andere Sprachkonstrukte und durch sehr viele fehlende Informationen ist es sehr schwer, den Programmfluss zu verstehen, auch wenn du die Sprache kannst.
Ist ähnlich wie mit großen Code Bibliotheken in einer Sprache, die du programmieren kannst; verstehen musst du den Code anderer noch lange nicht und dazu kommt wie gesagt das niedrige Abstraktionslevel von ASM.
Wenn du dich speziell auf Reverse Engineering konzentrierst lernst du auch direkt zahlreiche Tricks, um an die Informationen zu kommen, die du haben möchtest, das hat rein gar nichts mit ASM Programmieren zutun.
Andersherum gilts genau so, du musst nicht wissen, wie du nun bestimmte Programme in ASM programmieren kannst (zb. wie du nun Variablen usw. deklarierst), um den Code im Debugger zu verstehen.
Natürlich sollte ein Grundverständnis der Sprache auch fürs Reverse Engineering vorhanden sein.