Français
Forum

MapFileAndCheckSum

 

Georg
Teles
allô Allerseits,
hab mich ici depuis qui Anmeldung malheureusement nie geblickt, mais hobbymäßig quand même quelques Programme geschrieben (peut-être Poste je qui chez Gelegenheit la fois), nu hab je une Frage
sais quelqu'un comment qui Funktion MapFileAndCheckSum oui c'est ca funktioniert ?
KompilierenMarqueSéparation
DEF MapFileAndCheckSum(3) ! "Imagehlp","MapFileAndCheckSumA"
>

... par essayer habe je une Code geschrieben, mais chez gewissen Größen rechnet il mir qui "Checksumme" faux um: (dans Byte) 8, 12, 16, 20, 28, 32, ... 722 plus hab je pas ausprobiert ...

jusqu'à dahin hab je es avec Textdateien probiert, mais aussi avec anderen Dateitypen, EXE JPG et dabei hat il aussi chez einigen Fichiers richtig, chez anderen faux gerechnet ...

... qui Grund wozu ch cela brauche ist, dass je anstatt chaque la fois qui Dossier trop écrivons um cet avec qui dessus genannten Funktion abzurufen, cet Funktion mittels Bereich interne berechnen laisser voudrais.

ici naturellement qui ganze Code inclusivement la fenêtre Drag & Drop et alles Schnickschnack, qui Funktion, qui "MapFileAndChecksum" ersetzen soll, heisst "CR2", qui Werte volonté dans qui liste sous "meine CRC" aufgelistet, qui avec "MapFileCheckSum" sous "CheckSum" naturellement
KompilierenMarqueSéparation
 $H windows.ph
'Set("ErrorLevel", 0)
Def DragAcceptFiles(2) !"SHELL32","DragAcceptFiles"
Def DragFinish(1) !"SHELL32","DragFinish"
Def DragQueryFile(4) !"SHELL32","DragQueryFileA"
DEF MapFileAndCheckSum(3) ! "Imagehlp","MapFileAndCheckSumA"
Declare HeadSum&,CheckSum&
Declare E%, PFn#, anz&, zah&, B01%, lstB&, winico&, lst$
WinMain(510,260)
Cls ~Getsyscolor(15)
Objects()
Activities()

Proc WinMain

    Parameters x&,y&
    Windowtitle "Checksum - Drag & Drop"
    Windowstyle 8+16+512
    Window ((%MaxX/2)-(x&/2)),((%MaxY/2)-(y&/2))-x&,y&
    winico& = Create("hIcon",Par$(0),0)
    SendMessage(%hwnd,$80,1,winico&)
    ~SetWindowLong(%hwnd,-16,$92CA0000)
    PopUp "&Datei"
    AppendMenu 100,"Öffne Liste"
    AppendMenu 101,"Speichere Liste"
    Separator
    AppendMenu 102,"Beenden"
    PopUp "&Liste"
    AppendMenu 200,"Auswahl löschen"
    AppendMenu 201,"Löschen"

Endproc

Proc Objects

    lstB& = Create("GridBox",%HWnd,"Datei;0;115;Größe in Byte;1;100;CheckSum;1;80;meine CRC;1;80;Vergleich;1;75",2,5,5,493,200)
    DragAcceptFiles(%HWnd,1)

EndProc

Proc Activities

    Usermessages 563
    CheckList
    Clear E%

    WhileNot E%

        Waitinput

        If %Message = 563

            Drag()

        ElseIf %Key = 2

            Inc E%

        ElseIf MenuItem(100)

            lst$ = LoadFile$("Öffne Datei:","Alle Dateien |*.*")

            If %Button = 1

                op_(lst$)

            EndIf

        ElseIf MenuItem(101)

            sa_()

        ElseIf MenuItem(102)

            Inc E%

        ElseIf MenuItem(200)

            del_(GetCount(lstB&),1)

        ElseIf MenuItem(201)

            del_(GetCount(lstB&))

        EndIf

        CheckList()

    Endwhile

    DragAcceptFiles(%HWnd,0)

EndProc

Proc Drag

    DIM PFn#,261
    anz& = DragQueryFile(&UWParam,$FFFFFFFF,PFn#,261)
    Clear zah&

    While zah&<anz&

        Clear PFn#
        DragQueryFile(&UWParam,zah&,PFn#,261)
        Ad_(String$(PFn#,0))
        Inc zah&

    EndWhile

    Dispose PFn#
    DragFinish(&UWParam)

EndProc

Proc op_

    parameters file$, z$
    Assign #1,file$
    Reset #1

    If %IOResult

        Messagebox("Datei kann nicht gelesen werden!","Fehler",16)

    Else

        WhileNot EOF(#1)

            Input #1, z$
            AddString(lstB&,z$)

        EndWhile

    EndIf

    Close #1

EndProc

Proc sa_

    Parameters file$
    file$ = $progdir+"list_"+Date$(3)+"_"+Left$(Time$(0),2)+"."+Right$(Time$(0),2)+"."+Left$(Time$(1),2)+".txt"
    Assign #1,file$
    OpenRw #1
    Close #1
    Assign #1,file$
    Append #1

    WhileLoop 0,GetCount(lstB&)-1

        Print #1,GetText$(lstB&,&loop,0)+"|"+GetText$(lstB&,&loop,1)+"|"+GetText$(lstB&,&loop,2)+"|"+GetText$(lstB&,&loop,3)+"|"+GetText$(lstB&,&loop,4)

    EndWhile

    Close #1

EndProc

Proc Ad_

    Parameters file$, size&, crc&, cr2&, msg$
    crc& = crc(file$)
    cr2& = cr2(file$)
    size& = FileSize(file$)
    file$ = SubStr$(file$,-1,"\\")

    If crc& = cr2&

        msg$ = "gleich"

    Else

        msg$ = "UNgleich"

    EndIf

    AddString(lstB&,file$+"|"+Str$(size&)+"|"+Str$(crc&)+"|"+Str$(cr2&)+"|"+msg$)

EndProc

Proc crc

    Parameters File$
    Clear Headsum&, Checksum&
    MapFileAndCheckSum(Addr(File$),addr(Headsum&),addr(Checksum&))
    Return Checksum&

EndProc

Proc cr2

    Parameters File$,fs&,fs#,p%
    Clear fs&,p%
    fs& = Filesize(file$)
    Dim fs#, fs&
    Clear fs#
    Assign #2,file$
    Openrw #2
    Blockread(#2,fs#,0,fs&)
    Close #2

    WhileLoop 0,fs&\2

        p% = p%+word(fs#,&loop*2)

        If p% >= 65535

            p% = (p%-65535)

        endif

    EndWhile

    p% = (p%+fs&)
    Dispose fs#
    Return p%

EndProc

proc del_

    Parameters c&, p&

    If p& = 1

        WhileLoop 0,(c&-1)

            If GetState(lstB&,(c&-1)-&loop) >= 2

                DeleteString(lstB&,(c&-1)-&loop)

            EndIf

        EndWHile

    Else

        WhileLoop 0,(c&-1)

            DeleteString(lstB&,(c&-1)-&loop)

        EndWHile

    EndIf

EndProc

Proc CheckList

    If GetCount(lstB&)

        EnableMenu 200,0
        EnableMenu 201,0

    Else

        EnableMenu 200,1
        EnableMenu >201,1

    EndIf

ENDPROC

FIN

qui Funktion scheint pas simple trop son, mais plus que essayer peux je pas, im Netz steht aussi pas plus par-dessus.
 
XProfan 10
TC-Programming [...] 
XProfan 8.0 - 10.0 - X2 - X3 - X4

16.03.2013  
 



allô Georg,

comment je es verstehe ca va tout autor de Exen ou bien DLL une Signatur trop erzeugen,
plutôt pas de anderen Fichiers.
MSDN
This function is used by any application that creates or modifies à executable image. Checksums sont required for kernel-mode drivers and some system DLL.


quoi oui c'est ca vouloir Du letztendlich erzielen?
 
17.03.2013  
 




Georg
Teles
Hi iF,

oui korrekt, es handelt sich um DLL et EXE, qui Checksumme wird sous Anderem im En-tête qui DLL / EXE "mitgeschleppt" et avant dem Effectuer wird qui Checksumme gebildet et qui verglichen, es wird alors geprüft, si cela Programme manipuliert wurde bzw si es überhaupt kompatibel ist am jeweiligen PC, es wäre oui unschön si es beim Effectuer des Programms zum Absturz des PC venons serait neech ...

früher hab je une Beitrag ici gelesen, es ging tout autor cet Funktion trop nutzen, um eigene Programme ou bien Fichiers trop protéger, ändert on wenigstens 1 Byte, so ändert sich qui komplette somme, et cet "Summe" ist cela quoi je mon, cet Funktion peux on scheinbar pour jeden Dateityp verwenden, seulement wird cet somme pas dans qui Dossier hinterlegt beispiel TXT, il peut profan dit qui somme de beliebigen Fichiers bilden.

quoi je erzielen voudrais erkläre je nochmal kurz: là qui CheckSum Funktion zwangsläufig une Pfad zur Dossier nécessaire voudrais je mittels qui eigenen Funktion cela gleiche Ergebnis erziehen, à einem Bereichs anstatt qui Dossier.

qui Funktion soll plan interne im Programme qui Checksumme bilden peut sans une Dossier trop écrivons ... je merke justement, dass es chez größeren Fichiers assez longtemps dauert jusqu'à je qui somme habe ... bof égal, j'ai avant une Archivierer trop écrivons, et cet Funktion veux je pour très kleine Bereiche verwenden, et zwar pour cela Mot de passe j'ai bereits 2 Archivierer geschrieben, einer avec Passwortschutz mais den speichert il malheureusement avec, et je veux cet Funktion irgendwie anstatt des Passwortes nutzen ...

je merke oui encore quoi, je coutume qui Funktion so oui garnicht comment Checksum, es funktioniert oui déjà comment je es veux, je teste la fois si il richtig kodiert et dekodiert ...
 
XProfan 10
TC-Programming [...] 
XProfan 8.0 - 10.0 - X2 - X3 - X4

17.03.2013  
 



peut-être wäre quoi Findus ici posté hat hilfreich(il): [...] 
 
17.03.2013  
 




Georg
Teles
plus beau Code, malheureusement arbeite je avec XProfan 10 et "encode64" gibt es là pas
bof cela Beispiel zeigt Textverschlüsselung par Umsortieren, cela veux je oui vermeiden, passt déjà, je tüftel la fois plus ...
 
XProfan 10
TC-Programming [...] 
XProfan 8.0 - 10.0 - X2 - X3 - X4

17.03.2013  
 



prends doch FreeProfan: [...] 
 
17.03.2013  
 




Georg
Teles
merci iF, 64 Bit gibt es oui aussi Juhuuuu

hab maintenant qui Solution ...
mon Funktion pouvoir oui c'est ca cela, quoi MapFileAndCheckSum aussi allerdings très lente, pour 1 MByte braucht cela Programme 22,875 Sekunden, mais c'est égal, je wende cela seulement pour kleine Bereiche à

Anscheinend rechnet qui Funktion den reste qui somme einer Dossier WORD pour WORD zusammen...
BZW so comment je es verstanden habe, sobald qui somme des ersten WORD avec dem zweiten Max. erreicht ou bien größer ist (65535), wird es abgezogen, après wird qui reste qui bleibt avec dem prochain WORD addiert, pour chacun somme wird es wieder geprüft, si qui somme Max. erreicht ou bien größer ist, dans diesem le cas wird qui Wert wieder abgezogen usw ...
KompilierenMarqueSéparation
Proc cr2

    Parameters File$,fs&,fs#,p%,s%
    Clear fs&,p%,s%
    fs& = Filesize(file$)
    Dim fs#, fs&
    Clear fs#
    Assign #2,file$
    Openrw #2
    Blockread(#2,fs#,0,fs&)
    Close #2

    If fs& MOD 2 = 0

        s% = (fs&\2)-1

    ElseIf fs& MOD 2 = 1

        s% = (fs&\2)

    EndIf

    WhileLoop 0,s%

        p% = p%+word(fs#,&loop*2)

        If p% > 65534

            p% = (p%-65535)

        endif

    EndWhile

    p% = (p%+fs&)
    Dispose fs#
    Return p%

ENDPROC

 
XProfan 10
TC-Programming [...] 
XProfan 8.0 - 10.0 - X2 - X3 - X4

21.03.2013  
 



ensuite serait je qui Funktion (qui partie qui rechnet) dans un nProc saisir -

cela allez ensuite plus rapide comme qui Blitz.
 
21.03.2013  
 




Georg
Teles
allô, ensuite werde je la fois ici cela Thema auffrischen hab la fois pour meinen Archivierer un Passwortsystem überlegt, funktioniert dans etwa pour diesem Prinzip...

qui Lust zum Testen hat ^ ^ qui Test écrit seulement den Head meines Archivierers et Mot de passe + ouvrir et Passwortabfrage ... es wird une Dossier angelegt asd.tew

Télécharger

214 kB
Hochgeladen:07.05.2013
Downloadcounter160
Download
 
XProfan 10
TC-Programming [...] 
XProfan 8.0 - 10.0 - X2 - X3 - X4

07.05.2013  
 



je suis pas sûrement, si cela Mot de passe sûrement hinterlegt wird.

si Je l' Bytewert eines individuel Passwortzeichens um 1 erhöhe ensuite
sollte sich dans qui Dossier pas aussi simple seulement 1 Bytewert um 1 erhöhen. So
sollte cela Mot de passe selbst garnicht dans qui Dossier stehen mais plutôt une
Prüfsumme et seulement si Prüfsummen übereinstimmen ensuite stimmen qui
Passworte überein.
 
07.05.2013  
 




Georg
Teles
bof c'est oui qui l'affaire, dass cela Passowrt garnicht avec drin ist peux fois le Dossier avec Notepad ouvrir et pour den Mot de passe chercher, là findest du rien.

habe presque oublier qc, un Leerzeichen sollte on pas benutzen, cela funktioniert ensuite la plus part du temps pas, je teste la fois plus ...

Éditer: drin steht aussi seulement qui Prüfsumme, allerdings ist vous avec allen Anderen Parametern verknüpft sodass si on versucht den En-tête trop manipuler, wird cela Programme puis aussi réagir, theoretisch hab je mir cela déjà überlegt
 
TC-Programming [...] 
XProfan 8.0 - 10.0 - X2 - X3 - X4

07.05.2013  
 



répondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

11.020 Views

Untitledvor 0 min.
Georg Teles25.07.2023
Michael W.01.03.2023
RudiB.27.10.2021
Thomas Zielinski23.10.2021
plus...

Themeninformationen

cet Thema hat 2 participant:

Georg Teles (6x)
iF (5x)


Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie