Ergebnis 1 bis 10 von 56

Baum-Darstellung

  1. #11
    OpCodeKiddy Avatar von EBFE
    Registriert seit
    30.03.2009
    Beiträge
    442

    Standard

    Also:
    Code:
    # printf("\nFlags \t[HEX]: \t%X",VS);
    #     printf("\nFlags \t[DEZ]: \t%u\n",VS);
    #     fseek(stream,e_lfanew+point,SEEK_SET);
    #     VS+=0x80000000;
    Flag setzten tut man immer noch am besten mit OR:
    VS|=0x80000000;
    Denn sollte dieses Flag schon zufällig gesetzt sein, bekommst du durch eine Addition einen Überlauf und als Ergebnis sowas wie 0x20 oder 0x40 - was dann natürlich zu "unerklärbaren" Fehlern führt.

    Außerdem:
    Code:
    if(xcount==1) RO_VS_fuenf+=VS;
    das ermittelt ja praktisch den neuen EP. Der wird aber irgendwie auf VirtualSize+5 gesetzt. Ergibt für mich keinen Sinn. Sollte eher (wenn es die letze Section sein soll) so gehen: RO_VS_fuenf=VirtualOffset+VirtualSize (die Werte ließt du ja eher ein, in der großen Schleife. Allerdings komme ich wegen der total komischen Einrückung sowie Benutzung gleicher Variablennamen (VS) für alle möglichen Werte (warum überhaupt? warum nicht aussagekräftige Variablen nutzen? ) nicht zu recht, daher musst du schon selber schauen, wo du den Code am besten platzierst).
    Jedenfalls, wenn man RO_VS_fuenf=VirtualOffset+VirtualSize macht, wird es korrekterweise nach dem "Sectionloop" die Adresse der letzen Section+Sectionsize (also die Adresse des "letzen" Bytes) beinhalten. Wenn man nun eine Stub dranhängt, zeigt RO_VS_fuenf (und damit der neue EP) korrekterweise auf diese Stub.
    Geändert von EBFE (07.06.2009 um 16:29 Uhr)

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •