Nach erstem programm start variable festlegen

  • Hey,

    ich hab mich gefragt ob es möglich ist zB die HWID beim ersten programmstart auszulesen und dann in das programm einzuschreiben

    Beispiel :

    [autoit]


    $HWID = ""
    $Start = keine Ahnung

    [/autoit][autoit][/autoit][autoit]

    If $Start = 0 Then

    [/autoit][autoit][/autoit][autoit]

    $HWID_get = _GetHWID()

    [/autoit][autoit][/autoit][autoit]

    $HWID_encrypt = _MD5($HWID_get)
    $HWID = $HWID_encrypt
    $Start = "1"
    Else
    $HWID_get = _GetHWID()
    $HWID_encrypt = _MD5($HWID_get)
    If $HWID_encrypt = $HWID
    Then
    ...
    Else
    MsgBox(0,"","Dieses Programm kann nicht auf diesem Computer ausgeführt werden.")
    EndIf
    EndIf

    [/autoit]

    Weiß wer was bei variable $Start hinkommen könnte?

    2 Mal editiert, zuletzt von Newbie321 (8. August 2012 um 23:07)

  • Schreib einen REG-Eintrag oder erstell eine Ini. Damit du weißt, dass es der erste Programmstart ist.

  • Schreib einen REG-Eintrag oder erstell eine Ini. Damit du weißt, dass es der erste Programmstart ist.


    das löst aber nicht mein problem^^ registry eintrag oder ini ist leicht zu umgehen möchte das die variable sich nachdem ersten start festlegt und danach nicht mehr änderbar ist

  • Die variable wird mein starten immer initialisiert. D.h. du MUSST es schon extern speichern.

  • Die variable wird mein starten immer initialisiert. D.h. du MUSST es schon extern speichern.


    Okay, schade dann geht das leider nicht so wie ich es mir gedacht habe^^

  • Hi,
    du kannst auch Daten direkt in der EXE-Datei ändern (patchen).
    Die erste Sektion des PE-Headers ist immer auf 512 Byte Größe aufgepumpt, egal wie viele Segmente die EXE verwendet. In diesen "leeren" Speicherbereich kann man beliebige Daten oder Code einfügen bzw ändern.

  • Zitat

    Aaah, das wusste ich ja auch noch garnicht. Wie geht das denn?

    Datei öffnen, Daten schreiben, Datei schliessen....wie sonst? :D
    Guck dir mal mit einem Hexeditor die ersten 2-3Kb einer Exe-Datei an, da siehst du dann die "leeren" Bereiche.

  • Ja ich kann mir schon vorstellen wie das aussieht. Nur das das geht, obwohl sie ja grade in Benutzung ist.

    Edit: Hab das jetzt mal gemacht. Also ich sehe am Anfang keine 512 freien Bytes.