Passwort übergeben

Anfängerfragen zum Programmieren mit PureBasic.
Aspirant
Beiträge: 101
Registriert: 19.10.2006 12:19

Passwort übergeben

Beitrag von Aspirant »

Hallo ich Versuche ein Passwort das aus einer SQL kommt und nutzer abhängig ist an ein nicht PB-Programm zu übergeben

was eigentlich auch geht.

erster versuch über durch Zwischenablage geht ohne Probleme.

Code: Alles auswählen

ClearClipboard() : SetClipboardText(ipplan(para)\ippass)
Ist nur Blöd weil die Nutzer so an das Passwort kommen

aber so bekomme ich es nicht hin:

Code: Alles auswählen

Procedure SendAKey(key.s) 
 Debug key ;zeichen Kontrollausgabe
  vk = VkKeyScan_(Asc(key)) 
  If vk>320:keybd_event_(#VK_LSHIFT,1,0,0):EndIf 
  Debug keybd_event_(vk,1,0,0) 
  Debug keybd_event_(vk,1,#KEYEVENTF_KEYUP,0) 
  If vk>320 
    keybd_event_(#VK_LSHIFT,1,0,0) 
    keybd_event_(#VK_LSHIFT,1,#KEYEVENTF_KEYUP,0) 
  EndIf 
EndProcedure
also das Problem betrifft die Zeichen >!< >"< >§< sie werden einfach nicht richtig übergeben einen übergabe mittels chr(33),chr(34),chr(167) schlägt auch Fehl.

also bei der Kontrollausgabe werde die Zeichen richtig ausgegeben.

Wenn mir jemand helfen könnte wäre das sehr schön. Dank
Ich würde mich ja gerne geistig mit dir duellieren, aber wie ich sehe bist du unbewaffnet.
================================
WinXP Pro, W2k3, Eisfair
-----------------------------
PB 4.40 auf WinXPpro kauf
Benutzeravatar
Konne
Beiträge: 764
Registriert: 30.03.2005 02:20
Kontaktdaten:

Beitrag von Konne »

Hexe das Password oder benutze den Base64Encoder um dumme zeichen zu entfernen.
Aspirant
Beiträge: 101
Registriert: 19.10.2006 12:19

Beitrag von Aspirant »

Sorry wie meinst du das? mit base64Encoder?

nur damit es noch mal klar ist.

Passwort wird lokal an einen Fremden PC vergeben mit den vorgaben.

10 Zeichen davon 3 Sonderzeichen erlaubt ist fast alles was die Tastatur her gibt.

was Bedeutet das meine 3 Zeichen auch 3 andere hätte sein können.

ich hoffe jetzt ist es klarer
Ich würde mich ja gerne geistig mit dir duellieren, aber wie ich sehe bist du unbewaffnet.
================================
WinXP Pro, W2k3, Eisfair
-----------------------------
PB 4.40 auf WinXPpro kauf
a14xerus
Beiträge: 1440
Registriert: 14.12.2005 15:51
Wohnort: Aachen

Beitrag von a14xerus »

ich glaube er meint, das du das pw nicht als original versenden sollst, sondern zb mit base64 encodieren sollst und der Empfänger decodiert es wieder.
Da sind dann keine Sonderzeichen drin und es ist noch ein BISSCHEN sicherer
Benutzeravatar
Thalius
Beiträge: 476
Registriert: 17.02.2005 16:17
Wohnort: Basel / Schweiz

Beitrag von Thalius »

Base64 ist Rückverschlüsselbar... für das nimm lieber MD5 / DES / Blowfish etc.

Aber um über das Zeichenproblem in der regel wegzukommen sollte mal ein Base64 en / decode helfen.

hmmm da es sich nicht um ein PB Prog handelt ... Mehr infos zu dem Programm könnten helfen ;)

EDIT: Whoa, meine Sätze heute wieder.... keine Ahnung von Recktszchreipunk der guhte ... errr ... :mrgreen:

Thalius
Aspirant
Beiträge: 101
Registriert: 19.10.2006 12:19

Beitrag von Aspirant »

es ist eine Client-Server Anwendung zur Maschinen Kontrolle aus dem Bereich SPS-Automatisierung (ABB)

Es gibt 3 Passwort ebnen und 4 Options ebnen

Server läuft Logischerweise in der Anlage ein weiteres Tool stellt die IP und den Port bereit zum I-Net Connect der Client läuft Local und nimmt Verbindung über IP+Port auf, soweit kein Problem. Über eine Vorauswahl werden nun die Optionen festgelegt, die der User treffen soll, was wir hier aber nicht wollen und PB in Spiel kommt.

Der User starte das PB Tool
welche sich die rechte des User hold und die Einstellungen des Clints vornimmt soweit so gut, wenn der Client jetzt zu verbinden versucht will er eins der 3 Passwörter
was der User nicht weis.

Code: Alles auswählen

Procedure.s sehen()
aminparameter ="/connect:"+ipplan(para)\ipip+":"+ipplan(para)\ipport+" /noinput"
                      ;ClearClipboard() : SetClipboardText(ipplan(para)\ippass)
                      SetWindowState(0, #PB_Window_Minimize)
                      RunProgram(adminpath+admin, aminparameter, adminpath, #PB_Program_Write)
 ; WinTitle$ = "Enter password for "+ipplan(para)\ipip                             
Delay(1000) 
handle.l=FindWindow_(0, "Enter password for "+ipplan(para)\ipip) 
If handle>0 
  OpenIcon_(handle) 
  SetForegroundWindow_(handle) 
  SetActiveWindow_(handle) 
  Delay(1000) 
  a$= ipplan(para)\ippass
  For r=1 To Len(a$)
   Debug Asc(Mid(a$,r,1))
   SendAKey(Mid(a$,r,1)) 
  Next
  ;SendAKey(Chr(13)) 
EndIf
Wie hier jetzt hoffentlich deutlich wird wir erwarte der Client eine Locale Passworteingabe über die Tastatur welche PB erledigen soll und mit einem chr(13) abschließt was ja auch geht bist halt die blöden Sonderzeichen
Ich würde mich ja gerne geistig mit dir duellieren, aber wie ich sehe bist du unbewaffnet.
================================
WinXP Pro, W2k3, Eisfair
-----------------------------
PB 4.40 auf WinXPpro kauf
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Mithilfe von AutoIt3.dll solltest Du alle Zeichen senden können, einschließlich
Unicode. http://purebasic.ts-soft-online.de/dl/autoitx3.zip

Der Wrapper includiert die DLL, ist zwar schon etwas älter aber für PB4
Dt. Hilfe ist auch bei
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Aspirant
Beiträge: 101
Registriert: 19.10.2006 12:19

Beitrag von Aspirant »

Jo also die >>AutoIT3.dll<< hat zum erfolg geführt, für interessierte hier nun der Code:

Code: Alles auswählen

Procedure passwort() 
       handle.l =0
         Repeat: Until (handle = FindWindow_(0, "Enter password for "+ipplan(para)\ipip)) > 0 ;Wartet auf das Fenster zur passwort eingabe 
      OpenIcon_(handle) 
      SetForegroundWindow_(handle) 
      SetActiveWindow_(handle) 
      Delay(50) 
      AutoItX3_Init()
        AU3_Send(ipplan(para)\ippass, 1) ; übergibt Passwort
      AutoItX3_Init()
        AU3_Send(Chr(13), 1)             ; Übergabe Return

EndProcedure
bei fragen helfe ich gern im Rahmen meiner möglichkeiten
Ich würde mich ja gerne geistig mit dir duellieren, aber wie ich sehe bist du unbewaffnet.
================================
WinXP Pro, W2k3, Eisfair
-----------------------------
PB 4.40 auf WinXPpro kauf
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Code: Alles auswählen

AutoItX3_Init()
Nur einmal am Codeanfang!
Am ende noch:

Code: Alles auswählen

 AutoItX3_End()
um DLL und Speicher freizugeben
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Antworten