Français
Stammtisch & le café

MASM32 et Profan

 
- page 1 -


Ha quelqu'un quelque chose genauere données um combien MASM32 plus rapide ist comme Profan? Hat cela la fois quelqu'un getestet?
 
28.01.2005  
 



 
- page 2 -



Frank
Abbing
Hi,

alles bien sûr, mach la fois. je sehs mir à.
 
29.01.2005  
 



Schaut la fois...

[...] 

Salve, iF
 
29.01.2005  
 



Besten Dank. Überschlagen hat ego déjà, bloß qui Tabelle fehlte mir encore. sans Wörterbücher sommes alors allerhöchstens 7-8 Buchstaben drin.
KompilierenMarqueSéparation
Die Prozedur PWCHECK soll in die DLL

Proc PWCHECK

    Parameters PPPR$,ANSTRING$,AbbruchbuttonHandle&,AnfangsZeichen$,Zeichen_im_Wort$,PWWORT$,Ausgabefenster&,Buchstabenanzahl&
    1.Parameter=zu startendes Programm
    2.Parameter=Name des Users dessen Passwort ermittelt werden soll
    3.Parameter=Handle des Abbruchbuttons auf dem Hauptfenster
    4.Parameter=Welche Buchstaben als ersten Buchstaben setzen (Groß-/Kleinschreibung)?
    5.Parameter=Welche Buchstaben für die anderen Buchstaben im Wort setzen (Kleinschreibung)
    6.Parameter=Passwort, falls schon bekannt
    7.Parameter=Wo soll das Passwort ausgegeben werden?
    8.Parameter=Anzahl der durchzurechnenden Buchstaben
    DECLARE COUNT%,Zähler%[41]
    Declare BYTE%,PW$,PW#,DomainN#,SIDT#,DNSize#,NDomain$,PHTOKEN#,SIDAN#,SIDS#
    Declare ENDE%,FERGEBNIS&,ACP&,PW2$,MESS%,StartZeit$,StartDatum$,PANTWORT%
    Declare lpStartupinfo#,lpProcessInformation#,lpCommandLine#
    Declare PPROGRAMM#,PUSERNAME#,PPASSWORT#,Domainw#
    Declare Anfangszeichen#,Zeichen#,PLUS%
    DIM DOMAINN#,256
    DIM SIDT#,4
    DIM SIDS#,4
    DIM DNSize#,4
    DIM SIDAN#,800
    DIM PHTOKEN#,4
    Dim lpStartupInfo#,68
    Dim lpProcessInformation#,16
    Dim lpCommandLine#,(@len(PPPR$)*2)+1
    DIM PPROGRAMM#,(@LEN(PPPR$)*2)+1
    DIM PUSERNAME#,(@LEN(ANSTRING$)*2)+1
    DIM PPASSWORT#,256
    DIM Anfangszeichen#,300
    DIM Zeichen#,300
    Bei der LSA besonders wichtig - alle Variablen mit Null füllen
    Clear DOMAINN#,SIDT#,DNSize#,SIDAN#,PHTOKEN#
    Clear lpStartupinfo#,lpProcessInformation#,lpCommandLine#
    Clear Anfangszeichen#,Zeichen#
    Strings werden in Bereiche geschrieben
    String Anfangszeichen#,0=Anfangszeichen$
    String Zeichen#,0=Zeichen_im_Wort$
    LONG DNSize#,0=256
    LONG SIDS#,0=800
    Long lpStartupInfo#,0=68
    In diese API stecke ich Usernamen und bekomme die Domain und den SID heraus
    @External("advapi32","LookupAccountNameA",0,@ADDR(ANSTRING$),SIDAN#,SIDS#,DomainN#,DNSize#,SIDT#)
    LET NDOMAIN$=@STRING$(DOMAINN#,0)
    Ich brauche einen Unicode String und dimensioniere die Variable für den Domain String entsprechend
    DIM Domainw#,(@LEN(NDOMAIN$)*2)+1
    LET StartZeit$=@TIME$(0) Kann evtl. weg
    LET STARTDATUM$=@DATE$(0) Kann evtl. weg
    DIM PW#,256
    CLEAR PW#
    LET COUNT%=0
    Ich wandele hier die Strings in Unicode Strings um
    LET ACP&=@EXTERNAL("kernel32","GetACP")
    @EXTERNAL("kernel32","MultiByteToWideChar",ACP&,2,@addr(PPPR$),-1,PPROGRAMM#,(@LEN(PPPR$)*2)+1)
    @EXTERNAL("kernel32","MultiByteToWideChar",ACP&,2,@addr(NDomain$),-1,Domainw#,(@LEN(NDomain$)*2)+1)
    @EXTERNAL("kernel32","MultiByteToWideChar",ACP&,2,@addr(ANSTRING$),-1,PUSERNAME#,(@LEN(ANSTRING$)*2)+1)
    LET Zähler%[0]=1
    LET COUNT%=0
    LET BYTE%=0
     $D "",PWWORT$

    WHILENOT ENDE%

        SET("FastMode",0) Streichen
        Vierzig Buchstaben reicht

        IF COUNT%>Buchstaben&

            LET ENDE%=1

        endif

        Wenn im Hauptfenster Abbruch gedrückt wurde soll beendet werden

        IF @GT(sendmessage(Button&,$00F2,0,0),40)

            Messagebox wäre schön, muß aber nicht sein
            LET PANTWORT%=@MESSAGEBOX("Test befindet sich im Augenblick bei "+@STRING$(pw#,0)+".
            Test wurde am "+STARTDATUM$+" um "+StartZeit$+" gestartet.","Wollen Sie den Test wirklich abbrechen?",292)
            CASE PANTWORT%=6 : LET ENDE%=1

        ENDIF

        SET("FastMode",1)
        Alle möglichen Bustabenkombinationen sollen durchgegangen werden

        IF PWWORT$=""

            IF Count%=0

                LET BYTE%=@BYTE(Anfangszeichen#,Zähler%[COUNT%]-1)

            else

                LET BYTE%=@BYTE(Zeichen#,Zähler%[COUNT%]-1)

            endif

            IF BYTE%=0

                WHILE BYTE%=0

                    LET Zähler%[COUNT%]=1
                    BYTE pw#,COUNT%=Zähler%[COUNT%]
                    INC COUNT%
                    LET Zähler%[COUNT%]=Zähler%[COUNT%]+1
                    LET BYTE%=@BYTE(Zeichen#,Zähler%[COUNT%]-1)

                WEND

            else

                LET Zähler%[COUNT%]=Zähler%[COUNT%]+1

            endif

            BYTE pw#,COUNT%=BYTE%

        ELSE

            String pw#,0=PWWORT$
            LET ENDE%=1

        endif

        LET PW2$=@STRING$(pw#,0)
        LET COUNT%=0
        Ich brauche wieder einen Unicode String
        @EXTERNAL("kernel32","MultiByteToWideChar",ACP&,2,@addr(PW2$),-1,PPASSWORT#,256)
        Die Funktion gibt nur 1 zurück, wenn das Passwort richtig war
        LET FERGEBNIS&=@External("advapi32","CreateProcessWithLogonW",PUSERNAME#,Domainw#,PPASSWORT#,0,0,PPROGRAMM#,0,0,0,lpStartupInfo#,lpProcessInformation#)

        IF FERGEBNIS&=1

            LET ENDE%=1
            LET PW$=@STRING$(PW#,0)

        ENDIF

        CASE COUNT%=0 : LET Zähler%[COUNT%]=Zähler%[COUNT%]+1

    wend

    SET("FastMode",0)
    DISPOSE PW#
    DISPOSE DOMAINN#
    DISPOSE SIDT#
    DISPOSE DNSize#
    DISPOSE SIDAN#
    DISPOSE PHTOKEN#
    DISPOSE SIDS#
    DISPOSE lpStartupInfo#
    DISPOSE lpProcessInformation#
    DISPOSE lpCommandLine#
    Settext Ausgabefenster&,PW$

ENDPROC

Das soll nicht in die DLL
WINDOWSTYLE 31+512
WINDOWTITLE "Passworttest"
WINDOW 0,0-640,440
Declare Button&,EDIT&,START&,IN$
LET EDIT&=@CREATEEDIT(%HWND,"",20,20,200,20)
LET Start&=@CREATEBUTTON(%HWND,"Start",20,300,150,30)
LET Button&=@CREATEBUTTON(%HWND,"Abbruch",200,300,150,30)
Enablewindow Button&,0

Whilenot @or(@GT(@sendmessage(Start&,$00F2,0,0),40),%MENUITEM=-2)

    Waitinput

WEND

Enablewindow Edit&,0
Enablewindow Start&,0
Enablewindow Button&,1
LET IN$=@GETTEXT$(EDIT&)
Usecursor 2
PWCHECK $WINPATH+"NOTEPAD.EXE",IN$,Button&,"ABCDEFGHIHKLMNOPQRSTUVWXYZÄÖÜßäöüabcdefghijklmnopqrstuvwxyz","ßäöüabcdefghijklmnopqrstuvwxyz
,»,Edit&,7 Usecursor 0

peut-être pourrait on une Kombination aus beidem verwenden...
 
29.01.2005  
 




Frank
Abbing
Hi,

dein Codoe produziert Deklarierungsfehler et Buttons volonté déjà aktiviert, si le souris par-dessus fährt. Ausserdem fonctionne es ewig plus, selbst chez Minipasswörtern comment z.B. F.
Schaus doch la fois pour.

si tout autor allez, qui Zeit la fois trop testen, peux je volontiers une kurzen Test avec Masm écrivons.

encore une Frage: Soll qui Funktion gefundene marque abhacken? alors cela erste marque sur Gleichheit absuchen, cela cela Zweite, usw..
ou bien alle Buchstaben toujours plus durchdrehen, jusqu'à qui beiden Passwörter irgenwann juste sommes?
 
29.01.2005  
 



allô Frank...

Besten Dank, qui du dir den Code déjà la fois angesehen la hâte. là habe je mir wirlich quelques Anfängerschnitzer incorporé.
- Einen Variablennamen faux geschrieben,
- une überflüssige Addition drin,
- XP Neuerungen pas attentive,
- Variable pas richtig gelöscht

je veux la fois espérer, qui qui Message pour qui Buttonabfrage sous XP sich pas geändert hat (il y a sur jeden le cas Werte dazugekommen) - sonst prends zur Not dans Profan @GETFOCUS. je hätte mir eigentlich penser peut, qui cela so pas klappt => euer Problem avec den ToolTipps sous XP.

qui Fehlermeldung chez CreateProcessWithLogonW était quelque chose komplizierter. si on pas chaque la fois auparavant dien le contenu qui deux letzten paramètre löscht, peux es vorkommen (je pour dem, quoi sonst encore Text im Code steht), qui cet Variablen avec Sinnlosem Code pleine volonté. ils doivent c'est pourquoi chaque la fois avant dem Aufruf qui Funktion sur zéro gesetzt volonté (stand aussi déjà im Voir le texte source).

je veux la fois espérer cela es maintenant aussi chez dir funktioniert et je pas encore plus Mist incorporé habe:
qui Procédure PWCHECK soll dans qui DLL

Proc PWCHECK

    Paramètres PPPR$,ANSTRING$,AbbruchbuttonHandle&,AnfangsZeichen$,Zeichen_im_Wort$,PWWORT$,Ausgabefenster&,Buchstabenanzahl&
    1.paramètre=trop startendes Programme
    2.paramètre=nom des Users dessen Mot de passe ermittelt volonté soll
    3.paramètre=Handle des Abbruchbuttons sur dem Hauptfenster
    4.paramètre=quelle Buchstaben comme ersten Buchstaben mettons (large-/Kleinschreibung)?
    5.paramètre=quelle Buchstaben pour qui anderen Buchstaben im mot mettons (Kleinschreibung)
    6.paramètre=Mot de passe, si déjà bekannt
    7.paramètre=wohin soll cela Mot de passe ausgegeben volonté?
    8.paramètre=Anzahl qui durchzurechnenden Buchstaben
    DECLARE COUNT%,Zähler%[41]
    Déclarer BYTE%,PW$,PW#,DomainN#,SIDT#,DNSize#,NDomain$,PHTOKEN#,SIDAN#,SIDS#
    Déclarer ENDE%,FERGEBNIS&,ACP&,PW2$,MESS%,StartZeit$,StartDatum$,PANTWORT%
    Déclarer lpStartupinfo#,lpProcessInformation#
    Déclarer PPROGRAMM#,PUSERNAME#,PPASSWORT#,Domainw#
    Déclarer Anfangszeichen#,marque#,PLUS%
    DIM DOMAINN#,256
    DIM SIDT#,4
    DIM SIDS#,4
    DIM DNSize#,4
    DIM SIDAN#,800
    DIM PHTOKEN#,4
    Faible lpStartupInfo#,68
    Faible lpProcessInformation#,16
    DIM PPROGRAMM#,(@LEN(PPPR$)*2)+1
    DIM PUSERNAME#,(@LEN(ANSTRING$)*2)+1
    DIM PPASSWORT#,256
    DIM Anfangszeichen#,300
    DIM marque#,300
    chez qui LSA besonders important - alle Variablen avec zéro füllen
    Claire DOMAINN#,SIDT#,DNSize#,SIDAN#,PHTOKEN#
    Claire PPROGRAMM#,PPASSWORT#,Anfangszeichen#,marque#
    @Externe("Kernel32","RtlZeroMemory",lpProcessInformation#,16)
    @Externe("Kernel32","RtlZeroMemory",lpStartupinfo#,68)
    Cordes volonté dans Bereiche geschrieben
    String Anfangszeichen#,0=Anfangszeichen$
    String marque#,0=Zeichen_im_Wort$
    LONG DNSize#,0=256
    LONG SIDS#,0=800
    dans cet API stecke je Usernamen et bekomme qui Domain et den SID heraus
    @Externe("advapi32","LookupAccountNameA",0,@ADDR(ANSTRING$),SIDAN#,SIDS#,DomainN#,DNSize#,SIDT#)
    LET NDOMAIN$=@STRING$(DOMAINN#,0)
    je brauche une Unicode String et dimensioniere qui Variable pour den Domain String entsprechend
    DIM Domainw#,(@LEN(NDOMAIN$)*2)+1
    LET StartZeit$=@TIME$(0) peux peut-être weg
    LET STARTDATUM$=@DATE$(0) peux peut-être weg
    DIM PW#,256
    CLEAR PW#
    LET COUNT%=0
    je wandele ici qui Cordes dans Unicode Cordes um
    LET ACP&=@EXTERNAL("kernel32","GetACP")
    @EXTERNAL("kernel32","MultiByteToWideChar",ACP&,0,@addr(PPPR$),-1,PPROGRAMM#,(@LEN(PPPR$)*2)+1)
    @EXTERNAL("kernel32","MultiByteToWideChar",ACP&,0,@addr(NDomain$),-1,Domainw#,(@LEN(NDomain$)*2)+1)
    @EXTERNAL("kernel32","MultiByteToWideChar",ACP&,0,@addr(ANSTRING$),-1,PUSERNAME#,(@LEN(ANSTRING$)*2)+1)
    LET Zähler%[0]=1
    LET COUNT%=0
    LET BYTE%=0
    Long lpStartupInfo#,0=68

    WHILENOT ENDE%

        SET("Fastmode",0) Streichen
        quarante Buchstaben reicht

        IF COUNT%>Buchstabenanzahl&

            LET ENDE%=1

        endif

        si im Hauptfenster Abbruch gedrückt wurde soll finissez volonté

        IF @sendmessage(Button&,$00F2,0,0)=108

            Messagebox wäre joli, doit mais pas son
            LET PANTWORT%=@MESSAGEBOX("Test est sich im Augenblick chez "+@STRING$(pw#,0)+".
            Test wurde am "+STARTDATUM$+" um "+StartZeit$+" gestartet.»voulons vous den Test wirklich démolir?",292)
            CASE PANTWORT%=6 : LET ENDE%=1

        ENDIF

        SET("Fastmode",1)
        Alle möglichen Bustabenkombinationen devoir durchgegangen volonté

        IF PWWORT$=»

            IF Count%=0

                LET BYTE%=@BYTE(Anfangszeichen#,Zähler%[COUNT%]-1)

            d'autre

                LET BYTE%=@BYTE(marque#,Zähler%[COUNT%]-1)

            endif

            IF BYTE%=0

                WHILE BYTE%=0

                    LET Zähler%[COUNT%]=1
                    BYTE pw#,COUNT%=Zähler%[COUNT%]
                    INC COUNT%
                    LET Zähler%[COUNT%]=Zähler%[COUNT%]+1
                    LET BYTE%=@BYTE(marque#,Zähler%[COUNT%]-1)

                WEND

            d'autre

                LET Zähler%[COUNT%]=Zähler%[COUNT%]+1

            endif

            BYTE pw#,COUNT%=BYTE%

        ELSE

            String pw#,0=PWWORT$
            LET ENDE%=1

        endif

        LET PW2$=@STRING$(pw#,0)
        LET COUNT%=0
        je brauche wieder une Unicode String
        @EXTERNAL("kernel32","MultiByteToWideChar",ACP&,0,@addr(PW2$),-1,PPASSWORT#,256)
        qui Funktion gibt seulement 1 zurück, si cela Mot de passe richtig était
        SET("Fastmode",0)
        @Externe("Kernel32","RtlZeroMemory",lpProcessInformation#,16)
        @Externe("Kernel32","RtlZeroMemory",lpStartupinfo#,68)
        Long lpStartupInfo#,0=68
        LET FERGEBNIS&=@Externe("advapi32","CreateProcessWithLogonW",PUSERNAME#,Domainw#,PPASSWORT#,0,0,PPROGRAMM#,0,0,0,lpStartupInfo#,lpProcessInformation#)

        IF FERGEBNIS&=1

            LET ENDE%=1
            LET PW$=@STRING$(PW#,0)

        ENDIF

    Wend

    SET("Fastmode",0)
    DISPOSE PW#
    DISPOSE DOMAINN#
    DISPOSE SIDT#
    DISPOSE DNSize#
    DISPOSE SIDAN#
    DISPOSE PHTOKEN#
    DISPOSE SIDS#
    DISPOSE lpStartupInfo#
    DISPOSE lpProcessInformation#
    Settext Ausgabefenster&,PW$

ENDPROC

cela soll pas dans qui DLL
WINDOWSTYLE 31+512
WINDOWTITLE "Passworttest"
WINDOW 0,0-640,440
Déclarer Button&,EDIT&,START&,IN$
LET EDIT&=@CREATEEDIT(%HWND,»,20,20,200,20)
LET Start&=@CREATEBUTTON(%HWND,"Start",20,300,150,30)
LET Button&=@CREATEBUTTON(%HWND,"Abbruch",200,300,150,30)
Enablewindow Button&,0

Whilenot @or(@sendmessage(Start&,$00F2,0,0)=108,%MENUITEM=-2)

    Waitinput

WEND

Enablewindow Edit&,0
Enablewindow Start&,0
Enablewindow Button&,1
LET IN$=@GETTEXT$(EDIT&)
Usecursor 2
PWCHECK @shortname$($WINPATH+"Notepad.EXE"),IN$,Button&,"ABCDEFGHIHKLMNOPQRSTUVWXYZÄÖÜßäöüabcdefghijklmnopqrstuvwxyz","ßäöüabcdefghijklmnopqrstuvwxyz",»,Edit&,7
Usecursor 0

non, es volonté aucun Buchstaben abgehakt sonder toujours wieder gedreht. cela Ganze ist rien d'autre comme Zählen, ici mais pas im Binär-, Octal- ou bien Hexalsystem sonder ici avec 26 jusqu'à maximum 255 unterschiedlichen États pro Stelle.
 
30.01.2005  
 




Frank
Abbing
Hi,

[quote-part:806là4d370]non, es volonté aucun Buchstaben abgehakt sonder toujours wieder gedreht. cela Ganze ist rien d'autre comme Zählen, ici mais pas im Binär-, Octal- ou bien Hexalsystem sonder ici avec 26 jusqu'à maximum 255 unterschiedlichen États pro Stelle.[/quote-part:806là4d370]
oui, verstanden.

Dein Progrämmchen findet pour comment avant rien. qui Abbruch-Button hat aussi aucun Wirkung.
Hab momentan pas viel Zeit, mais je mach cela Assemblersuchen fertig, si es wieder allez.
 
30.01.2005  
 



allô Frank...

tu dois deinen Accountnamen eingeben, pas den Namen, den dir WindowsXP anzeigt. exposition la fois im Dossier Dokunente et Einstellungen pour den là vorhandenen Verzeichnisnamen, ce sont qui sous anderem qui Accountnamen. Aussi J'ai eu encore une falschen paramètre chez MultiByteToWideChar drin. qui 2 doit weg et une 0 rein (je ändere es dessus).
ici la fois encore quoi avec Anzeigeoption:
qui Procédure PWCHECK soll dans qui DLL

Proc PWCHECK

    Paramètres PPPR$,ANSTRING$,AbbruchbuttonHandle&,AnfangsZeichen$,Zeichen_im_Wort$,PWWORT$,Ausgabefenster&,Buchstabenanzahl&,ANZ&
    1.paramètre=trop startendes Programme
    2.paramètre=nom des Users dessen Mot de passe ermittelt volonté soll
    3.paramètre=Handle des Abbruchbuttons sur dem Hauptfenster
    4.paramètre=quelle Buchstaben comme ersten Buchstaben mettons (large-/Kleinschreibung)?
    5.paramètre=quelle Buchstaben pour qui anderen Buchstaben im mot mettons (Kleinschreibung)
    6.paramètre=Mot de passe, si déjà bekannt
    7.paramètre=wohin soll cela Mot de passe ausgegeben volonté?
    8.paramètre=Anzahl qui durchzurechnenden Buchstaben
    DECLARE COUNT%,Zähler%[41]
    Déclarer BYTE%,PW$,PW#,DomainN#,SIDT#,DNSize#,NDomain$,PHTOKEN#,SIDAN#,SIDS#
    Déclarer ENDE%,FERGEBNIS&,ACP&,PW2$,MESS%,StartZeit$,StartDatum$,PANTWORT%
    Déclarer lpStartupinfo#,lpProcessInformation#
    Déclarer PPROGRAMM#,PUSERNAME#,PPASSWORT#,Domainw#
    Déclarer Anfangszeichen#,marque#,PLUS%
    DIM DOMAINN#,256
    DIM SIDT#,4
    DIM SIDS#,4
    DIM DNSize#,4
    DIM SIDAN#,800
    DIM PHTOKEN#,4
    Faible lpStartupInfo#,68
    Faible lpProcessInformation#,16
    DIM PPROGRAMM#,(@LEN(PPPR$)*2)+1
    DIM PUSERNAME#,(@LEN(ANSTRING$)*2)+1
    DIM PPASSWORT#,256
    DIM Anfangszeichen#,300
    DIM marque#,300
    chez qui LSA besonders important - alle Variablen avec zéro füllen
    Claire DOMAINN#,SIDT#,DNSize#,SIDAN#,PHTOKEN#
    Claire PPROGRAMM#,PPASSWORT#,Anfangszeichen#,marque#
    @Externe("Kernel32","RtlZeroMemory",lpProcessInformation#,16)
    @Externe("Kernel32","RtlZeroMemory",lpStartupinfo#,68)
    Cordes volonté dans Bereiche geschrieben
    String Anfangszeichen#,0=Anfangszeichen$
    String marque#,0=Zeichen_im_Wort$
    LONG DNSize#,0=256
    LONG SIDS#,0=800
    dans cet API stecke je Usernamen et bekomme qui Domain et den SID heraus
    @Externe("advapi32","LookupAccountNameA",0,@ADDR(ANSTRING$),SIDAN#,SIDS#,DomainN#,DNSize#,SIDT#)
    LET NDOMAIN$=@STRING$(DOMAINN#,0)
    je brauche une Unicode String et dimensioniere qui Variable pour den Domain String entsprechend
    DIM Domainw#,(@LEN(NDOMAIN$)*2)+1
    DIM PW#,256
    CLEAR PW#
    LET COUNT%=0
    je wandele ici qui Cordes dans Unicode Cordes um
    LET ACP&=@EXTERNAL("kernel32","GetACP")
    @EXTERNAL("kernel32","MultiByteToWideChar",ACP&,0,@addr(PPPR$),-1,PPROGRAMM#,(@LEN(PPPR$)*2)+1)
    @EXTERNAL("kernel32","MultiByteToWideChar",ACP&,0,@addr(NDomain$),-1,Domainw#,(@LEN(NDomain$)*2)+1)
    @EXTERNAL("kernel32","MultiByteToWideChar",ACP&,0,@addr(ANSTRING$),-1,PUSERNAME#,(@LEN(ANSTRING$)*2)+1)
    LET Zähler%[0]=1
    LET COUNT%=0
    LET BYTE%=0
    Long lpStartupInfo#,0=68

    WHILENOT ENDE%

        SET("Fastmode",0)

        IF @or(@sendmessage(Button&,$00F2,0,0)=108,COUNT%>Buchstabenanzahl&)

            LET ENDE%=1

        ENDIF

        SET("Fastmode",1)

        IF PWWORT$=»

            IF Count%=0

                LET BYTE%=@BYTE(Anfangszeichen#,Zähler%[COUNT%]-1)

            d'autre

                LET BYTE%=@BYTE(marque#,Zähler%[COUNT%]-1)

            endif

            IF BYTE%=0

                WHILE BYTE%=0

                    LET Zähler%[COUNT%]=1
                    BYTE pw#,COUNT%=Zähler%[COUNT%]
                    INC COUNT%
                    LET Zähler%[COUNT%]=Zähler%[COUNT%]+1
                    LET BYTE%=@BYTE(marque#,Zähler%[COUNT%]-1)

                WEND

            d'autre

                LET Zähler%[COUNT%]=Zähler%[COUNT%]+1

            endif

            BYTE pw#,COUNT%=BYTE%

        ELSE

            String pw#,0=PWWORT$
            LET ENDE%=1

        endif

        LET PW2$=@STRING$(pw#,0)
        LET COUNT%=0
        @EXTERNAL("kernel32","MultiByteToWideChar",ACP&,0,@addr(PW2$),-1,PPASSWORT#,256)
        CASE @Getcheck(Anz&) : SETTEXT Ausgabefenster&,PW2$
        @Externe("Kernel32","RtlZeroMemory",lpStartupinfo#,68)
        Long lpStartupInfo#,0=68
        LET FERGEBNIS&=@Externe("advapi32","CreateProcessWithLogonW",PUSERNAME#,Domainw#,PPASSWORT#,0,0,PPROGRAMM#,0,0,0,lpStartupInfo#,lpProcessInformation#)

        IF FERGEBNIS&=1

            LET ENDE%=1
            LET PW$=@STRING$(PW#,0)

        ENDIF

    Wend

    SET("Fastmode",0)
    DISPOSE PW#
    DISPOSE DOMAINN#
    DISPOSE SIDT#
    DISPOSE DNSize#
    DISPOSE SIDAN#
    DISPOSE PHTOKEN#
    DISPOSE SIDS#
    DISPOSE lpStartupInfo#
    DISPOSE lpProcessInformation#
    Settext Ausgabefenster&,PW$

ENDPROC

cela soll pas dans qui DLL
WINDOWSTYLE 31+512
WINDOWTITLE "Passworttest"
WINDOW 0,0-640,440
Déclarer Button&,EDIT&,START&,IN$,BA&,BI&,Ausgabe&,Anzeigen&
LET EDIT&=@CREATEEDIT(%HWND,»,20,20,200,20)
LET Ba&=@CREATEEDIT(%HWND,"ABCDEFGHIHKLMNOPQRSTUVWXYZÄÖÜßäöüabcdefghijklmnopqrstuvwxyz",20,50,200,20)
LET Bi&=@CREATEEDIT(%HWND,"ßäöüabcdefghijklmnopqrstuvwxyz",20,80,200,20)
LET Anzeigen&=@CREATECheckbox(%HWND,"Verlauf Anzeigen",20,110,200,20)
LET Ausgabe&=@CREATEText(%HWND,»,20,150,200,20)
LET Start&=@CREATEBUTTON(%HWND,"Start",20,300,150,30)
LET Button&=@CREATEBUTTON(%HWND,"Abbruch",200,300,150,30)
Enablewindow Button&,0

Whilenot @or(@sendmessage(Start&,$00F2,0,0)=108,%MENUITEM=-2)

    Waitinput
    Cas %MENUITEM=-2 : FIN

WEND

Enablewindow Edit&,0
Enablewindow Ba&,0
Enablewindow Bi&,0
Enablewindow Start&,0
Enablewindow Button&,1
LET IN$=@GETTEXT$(EDIT&)
Usecursor 2
Localiser 20,0
Imprimer "Funktion wurde am "+@Date$(1)+" um "+@TIME$(0)+" montre gestartet..."
PWCHECK @shortname$($WINPATH+"Notepad.EXE"),IN$,Button&,@GetText $(Ba&),@GetText $(Bi&),»,Ausgabe&,7,Anzeigen&
Usecursor 0
Waitinput
 
30.01.2005  
 



ah oui...

BUTTON :roll:

en supplément la fois un Test:
cls
Déclarer Button&
Laisser Button&=@createbutton(%HWND,"OK",10,10,100,30)

Tandis que 0=0

    Drawtext 0,100,@str$(@sendmessage(Button&,$00F2,0,0))+"                          "
    sleep 10

Wend


qui Message Fragt den Status des Buttons ab. Folgende Werte gibt vous chez mir zurück:
- Button pas gedrückt=0
- Mauscursor liegt sur Button=keine Changement
- Button gedrückt=108
- Concentrer liegt sur Button=8
- Concentrer liegt pas sur Button=0

j'ai den le doute cela XProfan avec Manifest ici autre et encore plus Werte zurückgiebt. si oui, pourrait cela aussi qui Grund pour cela Tooltipp Problem sous XP son...
 
30.01.2005  
 




Frank
Abbing
Hi,

mais qui Tooltippgeschichte wird doch de Windows verwaltet...
 
30.01.2005  
 



[quote-part:c026f5ab54]
mais qui Tooltippgeschichte wird doch de Windows verwaltet...
[/quote-part:c026f5ab54]
qui Status des Buttons doch aussi, ou bien? je vais la fois entier stark en aus, qui qui Status des Buttons, si il encore pas gedrückt wurde et qui Mauscursor sur ihm ruht pas 512 ist - ist cela richtig?
oui c'est ca là liegt wohl cela Problem avec den Tooltipps - je kanns malheureusement pas testen, mais je denke je hab droite.

PS: Entfern cela Manifest et mon Voir le texte source fonctionne.
 
30.01.2005  
 




Frank
Abbing
Hi,

Du irrst toi. il ist ensuite 512. comment déjà geschrieben
Hab den MASM-Code fertig et Poste ihn juste.
 
30.01.2005  
 




Frank
Abbing
Hi,

so, ici cela Testprogramm. Passwörter doit Großbuchstaben son. qui Zeiten zum Errechnen decken sich avec den Werten de qui Webpage, qui iF ici posté hatte, pour 26il Passwörter.

qui Assemblercode ist encore pas optimiert et benutzt zum comparaison qui Cordes qui API lstrcmp(), qui mais très vite arbeitet.

2 kB
Hochgeladen:30.01.2005
Downloadcounter165
Download
 
30.01.2005  
 




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

26.125 Views

Untitledvor 0 min.

Themeninformationen



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