Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
Cryptography & Encryption Ver- und Entschlüsselung, Algorithmen, Kryptoanalyse ? Kryptographie in der Praxis. Blowfish, Triple-DES, XOR u.a.

Selbstprogrammierter Filecrypther [FriZa]

Diskussion: Selbstprogrammierter Filecrypther [FriZa] im Forum Cryptography & Encryption, in der Kategorie Security Area; Anzeige So ich bin hier mal neu im Board und habe einen eigenen FileCryphter programmiert, da ich für die sicherheit ...

Antwort
Alt 26.03.08, 23:48   #1 (permalink)
 
Registriert seit: 26.03.08
R4z0r1989 Leistung: Facit NTK
Likes: 0
Standard Selbstprogrammierter Filecrypther [FriZa]

Anzeige

So ich bin hier mal neu im Board und habe einen eigenen FileCryphter programmiert,
da ich für die sicherheit garantieren will,
such ich natürlich Leute die es versuchen sollen zu knacken.

Ich hoffe ich bin hier richtig,
um jemanden zu finden der es versucht zu knacken.

So hier die verschlüsselte Datei:
>>hier<<
(Rechtsklick -> Speichern Unter)

Und hier mein Programm:
>>hier<<

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Den File aufbau geb ich erstmal nicht bekannt,
ausser es ist von nöten. (werd ich ja dann merken)
Die Codier und Encodier routine geb ich auch noch nicht bekannt,
ausser es ist ebenfalls von nöten. (werd ich ebenfalls merken)


Viel Glück und Fun

Danke und Greetz R4z0r1989

R4z0r1989 ist offline   Mit Zitat antworten
Alt 27.03.08, 02:17   #2 (permalink)
Senior Member
 
Registriert seit: 27.06.04
Cyberm@ster Leistung: Facit NTK
Likes: 0
Standard

Laut Kerckhoff's Prinzip darf die Sicherheit eines Verschlüsselungsverfahrens einzig und allein auf der Geheimhaltung des Schlüssels basieren und nicht auf der Geheimhaltung des Algorithmus (Security by obscurity).

Man kann selbst eine Datei verschlüsseln und den Plain- mit dem Cyphertext vergleichen. Ausserdem kann man mit dem nötigen Aufwand dein Programm reverse engineeren um es nachzuvollziehen. Es bringt also nichts deinen Quellcode nicht zu veröffentlichen. Ausserdem wer soll das Programm nachher benutzen wenn man nicht weiss was es tut und ob es Backdoors gibt?
Cyberm@ster ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 27.03.08, 14:27   #3 (permalink)
Themenstarter
 
Registriert seit: 26.03.08
R4z0r1989 Leistung: Facit NTK
Likes: 0
Standard

@ Cyberm@aster

Das war mir soweit klar aber ich hab mir eben genau das gedacht dass ihr das eben über das Programm rausfinden könnt,
mich hätt dazu eben intresiert wie lang ihr dafür wirklich brauchen würden,
Der Dateiaufbau ist auch recht simple gehalten,
aber den werd ich im Laufe des Tages hier schreiben!

THX and GREETZ R4
R4z0r1989 ist offline   Mit Zitat antworten
Alt 27.03.08, 15:04   #4 (permalink)
Senior Member
 
Registriert seit: 27.06.04
Cyberm@ster Leistung: Facit NTK
Likes: 0
Standard

Ich persönlich kenn mich überhaupt nicht mit reverse Engineering aus, daher kann ich keine Angaben machen wie lange das dauert. Was ich dir damit sagen will ist, dass du den Leuten damit ihre wertvolle Zeit raubst, da es nur mühseelig ist, jedoch nichts über die Sicherheit deines Programms aussagt.
Cyberm@ster ist offline   Mit Zitat antworten
Alt 27.03.08, 15:48   #5 (permalink)
 
Registriert seit: 15.09.06
Banur Leistung: Facit NTK
Likes: 0
Standard

Nicht nur das es mühselig ist, wenn viele Leute das Programm nutzen, dann steigt das Interesse, den Algo zu knacken. Aber nicht nur die Sicherheit durch die Geheimhaltung des Algos zu "schaffen" ist fatal, auch die Möglichkeit eines Backdoors oder eines Fehlers im Code ist nicht ausgeschlossen.
Banur ist offline   Mit Zitat antworten
Alt 27.03.08, 19:01   #6 (permalink)
Themenstarter
 
Registriert seit: 26.03.08
R4z0r1989 Leistung: Facit NTK
Likes: 0
Standard

ne den Algo will ich ja nicht geheimhalten,
aber ich will ihn eben nicht ausgeben,
falls ich eben nochmal was dran ändere,
aber ich kann den algo natürlich freigeben!
R4z0r1989 ist offline   Mit Zitat antworten
Alt 27.03.08, 19:18   #7 (permalink)
Senior Member
 
Registriert seit: 03.09.05
Lesco Leistung: Facit NTK
Likes: 0
Standard

Veröffentliche einfach den Sourcecode dann wird man dir auch sagen wie sicher das ist. Es werden nur wenige Leute dein Programm reversen, bloß um deiner Bitte nach Feedback nachzukommen. Wie schon gesagt, die Sicherheit darf nicht auf der Unkenntnis des Algorithmus beruhen, daher macht es keinerlei Sinn, den Sourcecode geheimzuhalten, dann wäre das Ganze eine Übung für Reverse Engineering und nur teilweise eine Überprüfung der Sicherheit(auch fehleranfälliger).

Zitat:
ne den Algo will ich ja nicht geheimhalten,
aber ich will ihn eben nicht ausgeben,
falls ich eben nochmal was dran ändere,
aber ich kann den algo natürlich freigeben!
Das sind jetzt 4 Zeilen und 2 Widersprüche. Wenn du den Algorithmus nicht geheimhalten willst, warum willst du ihn dann nicht ausgeben(ändern geht auch danach noch, z.B. nach Verbesserungsvorschlägen)? Wenn du den Algorithmus "natürlich freigeben" kannst, warum sagst du dann 2 Zeilen zuvor, dass du ihn nicht ausgeben willst? Gibt's 'nen Unterschied zwischen freigeben und ausgeben?
Lesco ist offline   Mit Zitat antworten
Alt 27.03.08, 22:56   #8 (permalink)
CDW
Moderator
 
Benutzerbild von CDW
 
Registriert seit: 20.07.05
CDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: Opteron
Likes: 202
Standard

Wenn man viele Wiederholungen im Text hat, enthält man (trotz längerer Passwörter) genau dieselben Muster im verschlüsselten Text:
Code:
db 44,79,62,64,98,29,110,61,14,47,64,98,29,111,34,2
db 44,79,62,64,98,29,110,61,14,47,64,98,29,111,34,2
db 44,79,62,64,98,29,110,61,14,47,64,98,29,111,34,2
db 44,79,62,64,98,29,110,61,14,47
alleine das sollte schon disqualifizierend sein und eine "Known Plain Text Attack" ermöglichen, ansonsten scheint es eine Art Vignere zu sein, sofern ich das überhaupt beurteilen kann:

Das Passwort wird mit sich selbst aufgefüllt (effektiv wohl 16 Buchstaben, zumindest soviele werden verwendet) und in einer abgewandelten Form verwendet (kein Hash, sondern irgendwelches rumgeschifte, wobei imho der effektiv nutzbare Bereich dadurch sehr stark eingeschränkt wird ),
das wird dann zum verschlüsselten Text addiert/subtrahiert (byte für byte), wobei das scheinbar in einem 10Byte großen Buffer passiert, der dann rückwärts geschrieben wird.
Bsp für 00 Datei mit "a" als passwort:
Code:
119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119
db 119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119
db 119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119
db 119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119
db 119,119,119,119,119,119,119,119,119,119
mit "abc"
Code:
db 120,136,151,119,136,153,120,137,151,120,119,135,153,121,137,151
db 120,136,151,119,136,153,120,137,151,120,119,135,153,121,137,151
db 120,136,151,119,136,153,120,137,151,120,119,135,153,121,137,151
__________________
Noch mal, für alle Pseudo-Geeks: 1+1=0. -> 10 wäre Überlauf!
Selig, wer nichts zu sagen hat und trotzdem schweigt.
CDW ist offline   Mit Zitat antworten
Alt 28.03.08, 00:27   #9 (permalink)
Themenstarter
 
Registriert seit: 26.03.08
R4z0r1989 Leistung: Facit NTK
Likes: 0
Standard

wow O.O das war gut...
nein es sind keine 10 sondern 16 byte weil es sich um ein 16 byte chifre handelt!

ok hier der Source:

Code:
Global quit

Enumeration
  #Window_0
EndEnumeration

;- Gadget Constants
;
Enumeration
  #String_search
  #Button_search
  #Text_search
  #String_saveto
  #Button_saveto
  #Text_saveto
  #Radio_ver
  #Radio_ent
  #Track_save
  #Text_save
  #ProgressBar
  #Button_go
  #Text_pw
  #Text_pw2
  #String_pw
  #String_pw2
  #Text_time
  #List_info
EndEnumeration

Procedure Quersumme(zahl.q)
  Protected Result.l
 
  If zahl < 0 : zahl * -1 : EndIf
  While zahl
    Result + zahl % 10
    zahl / 10
  Wend
 
  ProcedureReturn Result
EndProcedure

Procedure.s FriZaV(*text,pawo$,save)

Dim text.w(5,5)
Dim pawo.w(5,5)

For y = 1 To 4
  For x = 1 To 4
    z = y + ((x-1) * 4)
    text(x,y) = PeekC(*text+z-1)
    pawo(x,y) = Asc(Right(Left(pawo$,z),1))
  Next x
Next y

For y = 1 To 4
  For x = 1 To 4
    hex$ = RSet(Hex(text(x,y)), 2, "0")
    taus0$ = Left(hex$,1)
    taus1$ = Right(hex$,1)
    hex$ = taus1$ + taus0$
    text(x,y) = Hex2Dec(hex$)
  Next x
Next y

For y = 1 To 4
  For x = 1 To 4
    byte = text(x,y)
    byte = byte + pawo(x,y)
    If byte > 255
      byte - 256
    EndIf
    text(x,y) = byte
  Next x
Next y

For y = 1 To 4
  For x = 1 To 4
    hex$ = RSet(Hex(text(x,y)), 2, "0")
    taus0$ = Left(hex$,1)
    taus1$ = Right(hex$,1)
    hex$ = taus1$ + taus0$
    text(x,y) = Hex2Dec(hex$)
  Next x
Next y

For z = 1 To save

  For Spalte = 4 To 2 Step -1
    Swap text(1,Spalte) , text(1,Spalte-1)
  Next
  For Spalte = 1 To 3 Step 1
    Swap text(3,Spalte) , text(3,Spalte+1)
  Next
  For Spalte = 1 To 2 Step 1
    Swap text(4,Spalte) , text(4,Spalte+2)
  Next
  For Zeile = 1 To 2 Step 1
    Swap text(Zeile,1) , text(Zeile+2,1)
    Swap text(Zeile,2) , text(Zeile+2,2)
    Swap text(Zeile,3) , text(Zeile+2,3)
    Swap text(Zeile,4) , text(Zeile+2,4)
  Next
  
  pwcount = 0
  For pwd = 1 To 4
    pwcount = pwcount + 1
    pwrand1 = (Asc(Right(Left(pawo$,pwcount),1)) % 3) + 1
    pwcount = pwcount + 1
    pwrand2 = (Asc(Right(Left(pawo$,pwcount),1)) % 3) + 1
    pwcount = pwcount + 1
    pwrand3 = (Asc(Right(Left(pawo$,pwcount),1)) % 3) + 1
    pwcount = pwcount + 1
    pwrand4 = (Asc(Right(Left(pawo$,pwcount),1)) % 3) + 1
    Swap text(pwrand1,pwrand2) , text(pwrand3,pwrand4)
  Next pwd

Next z

For y = 1 To 4
  For x = 1 To 4
    byte = text(x,y)
    byte = byte + pawo(x,y)
    If byte > 255
      byte - 256
    EndIf
    text(x,y) = byte
  Next x
Next y

For y = 1 To 4
  For x = 1 To 4
    hex$ = RSet(Hex(text(x,y)), 2, "0")
    taus0$ = Left(hex$,1)
    taus1$ = Right(hex$,1)
    hex$ = taus1$ + taus0$
    text(x,y) = Hex2Dec(hex$)
  Next x
Next y

For x = 1 To 4
  For y = 1 To 4
    PokeC(*text+y+x*4-5, text(x,y))
  Next y
Next x

EndProcedure

Procedure.s FriZaE(*text,pawo$,save)

Dim text.w(5,5)
Dim pawo.w(5,5)

For y = 1 To 4
  For x = 1 To 4
    z = y + ((x-1) * 4)
    text(x,y) = PeekC(*text+z-1)
    pawo(x,y) = Asc(Right(Left(pawo$,z),1))
  Next x
Next y

For y = 1 To 4
  For x = 1 To 4
    hex$ = RSet(Hex(text(x,y)), 2, "0")
    taus0$ = Left(hex$,1)
    taus1$ = Right(hex$,1)
    hex$ = taus1$ + taus0$
    text(x,y) = Hex2Dec(hex$)
  Next x
Next y

For y = 1 To 4
  For x = 1 To 4
    byte = text(x,y)
    byte = byte - pawo(x,y)
    If byte < 0
      byte + 256
    EndIf
    text(x,y) = byte
  Next x
Next y

For z = 1 To save

  pwcount = 17
  For pwd = 1 To 4
    pwcount = pwcount - 1
    pwrand1 = (Asc(Right(Left(pawo$,pwcount),1)) % 3) + 1
    pwcount = pwcount - 1
    pwrand2 = (Asc(Right(Left(pawo$,pwcount),1)) % 3) + 1
    pwcount = pwcount - 1
    pwrand3 = (Asc(Right(Left(pawo$,pwcount),1)) % 3) + 1
    pwcount = pwcount - 1
    pwrand4 = (Asc(Right(Left(pawo$,pwcount),1)) % 3) + 1
    Swap text(pwrand4,pwrand3) , text(pwrand2,pwrand1)
  Next pwd

  For Zeile = 4 To 3 Step -1
    Swap text(Zeile,4) , text(Zeile-2,4)
    Swap text(Zeile,3) , text(Zeile-2,3)
    Swap text(Zeile,2) , text(Zeile-2,2)
    Swap text(Zeile,1) , text(Zeile-2,1)
  Next
  For Spalte = 2 To 4 Step 1
    Swap text(1,Spalte) , text(1,Spalte-1)
  Next
  For Spalte = 3 To 1 Step -1
    Swap text(3,Spalte) , text(3,Spalte+1)
  Next
  For Spalte = 2 To 1 Step -1
    Swap text(4,Spalte) , text(4,Spalte+2)
  Next

Next z

For y = 1 To 4
  For x = 1 To 4
    hex$ = RSet(Hex(text(x,y)), 2, "0")
    taus0$ = Left(hex$,1)
    taus1$ = Right(hex$,1)
    hex$ = taus1$ + taus0$
    text(x,y) = Hex2Dec(hex$)
  Next x
Next y

For y = 1 To 4
  For x = 1 To 4
    byte = text(x,y)
    byte = byte - pawo(x,y)
    If byte < 0
      byte + 256
    EndIf
    text(x,y) = byte
  Next x
Next y

For y = 1 To 4
  For x = 1 To 4
    hex$ = RSet(Hex(text(x,y)), 2, "0")
    taus0$ = Left(hex$,1)
    taus1$ = Right(hex$,1)
    hex$ = taus1$ + taus0$
    text(x,y) = Hex2Dec(hex$)
  Next x
Next y

For x = 1 To 4
  For y = 1 To 4
    PokeC(*text+y+x*4-5, text(x,y))
  Next y
Next x

EndProcedure

Procedure FileKeyV(File.s,Saveto.s,password.s,save.l)
  fsize = FileSize(File.s)
  MD5$ = MD5FileFingerprint(File.s)
  If ReadFile(1,File.s) = 0
    ProcedureReturn 2
  EndIf
  SetGadgetAttribute(#ProgressBar, #PB_ProgressBar_Maximum, fsize)
  If CreateFile(2,Saveto.s) = 0
    CloseFile(1)
    ProcedureReturn 3
  EndIf
  
  pwlength = Len(password.s)
  pointer = 0
  temp = 0
  
  If pwlength = 0
    CloseFile(1)
    CloseFile(2)
    ProcedureReturn 5
  ElseIf pwlength < 16
    Repeat
      password = password + password
    Until Len(password) >= 16
    Left(password,16)
  Else
    Left(password,16)
  EndIf
  
  If save > 20
    CloseFile(1)
    CloseFile(2)
    ProcedureReturn 4
  EndIf
  
  WriteCharacter(2,70):WriteCharacter(2,114):WriteCharacter(2,105):WriteCharacter(2,90):WriteCharacter(2,97)
  WriteLong(2, fsize)
  WriteCharacter(2, save)
  rest   = fsize % 16
  runnin = (fsize - rest + 16) / 16
  elapsed= ElapsedMilliseconds()
  elapsed2=ElapsedMilliseconds()
  show   = 500
  slow   = 10
  
  
  For x = 1 To runnin
    
    If x < runnin
      *buffer = AllocateMemory(16)
      ReadData(1, *buffer, 16)
      FriZaV(*buffer,password,save)
      WriteData(2, *buffer, 16)
      FreeMemory(*buffer)
    ElseIf x = runnin
      *buffer = AllocateMemory(16)
      fullup = fsize - Loc(1)
      ReadData(1, *buffer, fsize - Loc(1))
      For rand = fullup To 15
        PokeC(*buffer+rand, Random(255))
      Next rand
      FriZaV(*buffer,password,save)
      WriteData(2, *buffer, 16)
      FreeMemory(*buffer)
    EndIf
    
    
    pointer = pointer + 16
    temp = temp + 16
    If x = runnin
      SetGadgetState(#ProgressBar,pointer)
      temp = 0
    ElseIf temp >= 10000
      SetGadgetState(#ProgressBar,pointer)
      temp = 0
    EndIf
    
    If ElapsedMilliseconds() - elapsed2 >= 1000
      unterschied = x-oldx
      kbs = unterschied * 16 / 1024
      oldx = x
      elapsed2=ElapsedMilliseconds()
    EndIf
    
    If x >= show
      If slow = 10
        tneed = ElapsedMilliseconds() - elapsed
        tleft = tneed * (runnin - x) / 1000 / 500
        If Round(tleft/60, 0) > 999
          rsetval = 4
        ElseIf Round(tleft/60, 0) > 99
          rsetval = 3
        Else
          rsetval = 2
        EndIf
        SetGadgetText(#Text_time,"Geschätzte Dauer : " + RSet(Str(Round(tleft/60, 0)),rsetval,"0")+":"+RSet(Str(tleft%60),2,"0")+" bei "+Str(kbs)+" kb/s")
        slow = 0
      EndIf
      elapsed= ElapsedMilliseconds()
      slow = slow + 1
      show = x + 500
    EndIf 
    
    Event = WindowEvent()
    If Event = #PB_Event_CloseWindow
      CloseFile(1)
      CloseFile(2)
      DeleteFile(Saveto.s)
      Quit = 1
      ProcedureReturn 7
    ElseIf Event = #PB_Event_Gadget Or Event = #PB_Event_Menu 
    
      Select EventGadget()
    
        Case #Button_go
          CloseFile(1)
          CloseFile(2)
          DeleteFile(Saveto.s)
          ProcedureReturn 6
      EndSelect
    EndIf
    
  Next x
  
  WriteString(2,MD5$)
  
  CloseFile(1)
  CloseFile(2)
  
  ProcedureReturn 1

EndProcedure

Procedure FileKeyE(File.s,Saveto.s,password.s)
  fsize = FileSize(File.s)
  If ReadFile(1,File.s) = 0
    ProcedureReturn 2
  EndIf
  SetGadgetAttribute(#ProgressBar, #PB_ProgressBar_Maximum, fsize)
  If CreateFile(2,Saveto.s) = 0
    CloseFile(1)
    ProcedureReturn 3
  EndIf
  
  pwlength = Len(password.s)
  pointer = 0
  temp = 0
  elapsed= ElapsedMilliseconds()
  show   = 500
  slow   = 10
  
  If pwlength = 0
    CloseFile(1)
    CloseFile(2)
    ProcedureReturn 6
  ElseIf pwlength < 16
    Repeat
      password = password + password
    Until Len(password) >= 16
    Left(password,16)
  Else
    Left(password,16)
  EndIf
  
  friza1 = ReadCharacter(1)
  friza2 = ReadCharacter(1)
  friza3 = ReadCharacter(1)
  friza4 = ReadCharacter(1)
  friza5 = ReadCharacter(1)
  efsize = ReadLong(1)
  save   = ReadCharacter(1)
  rfsize = fsize - 42
  runnin = rfsize / 16
  
  If friza1 <> 70 Or friza2 <> 114 Or friza3 <> 105 Or friza4 <> 90 Or friza5 <> 97
    CloseFile(1)
    CloseFile(2)
    ProcedureReturn 4
  EndIf
  
  If save > 20
    CloseFile(1)
    CloseFile(2)
    ProcedureReturn 5
  EndIf
  
  For x = 1 To runnin
    
    If x < runnin
      *buffer = AllocateMemory(16)
      ReadData(1, *buffer, 16)
      FriZaE(*buffer,password,save)
      WriteData(2, *buffer, 16)
      FreeMemory(*buffer)
    ElseIf x = runnin
      *buffer = AllocateMemory(16)
      ReadData(1, *buffer, 16)
      FriZaE(*buffer,password,save)
      WriteData(2, *buffer, efsize)
      FreeMemory(*buffer)
    EndIf
    
    efsize = efsize - 16
    
    pointer = pointer + 16
    temp = temp + 16
    
    If fsize - pointer = 0
      SetGadgetState(#ProgressBar,pointer)
      temp = 0
    ElseIf temp >= 10000
      SetGadgetState(#ProgressBar,pointer)
      temp = 0
    EndIf
    
    If ElapsedMilliseconds() - elapsed2 >= 1000
      unterschied = x-oldx
      kbs = unterschied * 16 / 1024
      oldx = x
      elapsed2=ElapsedMilliseconds()
    EndIf
    
    If x >= show
      If slow = 10
        tneed = ElapsedMilliseconds() - elapsed
        tleft = tneed * (runnin - x) / 1000 / 1000
        If Round(tleft/60, 0) > 999
          rsetval = 4
        ElseIf Round(tleft/60, 0) > 99
          rsetval = 3
        Else
          rsetval = 2
        EndIf
        SetGadgetText(#Text_time,"Geschätzte Dauer : " + RSet(Str(Round(tleft/60, 0)),rsetval,"0")+":"+RSet(Str(tleft%60),2,"0")+" bei "+Str(kbs)+" kb/s")
        slow = 0
      EndIf
      elapsed= ElapsedMilliseconds()
      slow = slow + 1
      show = x + 500
    EndIf
    
    Event = WindowEvent()
    If Event = #PB_Event_CloseWindow
      CloseFile(1)
      CloseFile(2)
      DeleteFile(Saveto.s)
      Quit = 1
      ProcedureReturn 9
    ElseIf Event = #PB_Event_Gadget Or Event = #PB_Event_Menu 
    
      Select EventGadget()
    
        Case #Button_go
          CloseFile(1)
          CloseFile(2)
          DeleteFile(Saveto.s)
          ProcedureReturn 8
      EndSelect
    EndIf
    
  Next x
  
  MD5$ = ReadString(1)
  
  CloseFile(1)
  CloseFile(2)
  
  If MD5FileFingerprint(Saveto.s) <> MD5$
    DeleteFile(Saveto.s)
    ProcedureReturn 7
  EndIf
  
  ProcedureReturn 1

EndProcedure

Procedure Open_Window_0()
  If OpenWindow(#Window_0, 216, 0, 390, 280, "FileKey",  #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_TitleBar )
    If CreateGadgetList(WindowID(#Window_0))
      AddKeyboardShortcut(#Window_0, #PB_Shortcut_Return,#Button_go)
      TextGadget(#Text_search, 10, 10, 150, 20, "Datei auswählen :")
      StringGadget(#String_search, 10, 40, 150, 20, "")
      ButtonGadget(#Button_search, 170, 40, 20, 20, "...")
      TextGadget(#Text_saveto, 200, 10, 150, 20, "Datei speichern :")
      StringGadget(#String_saveto, 200, 40, 150, 20, "")
      ButtonGadget(#Button_saveto, 360, 40, 20, 20, "...")
      TextGadget(#Text_pw, 10, 70, 50, 20, "Passwort :")
      StringGadget(#String_pw, 70, 70, 120, 20, "",#PB_String_Password)
      TextGadget(#Text_pw2, 200, 70, 50, 20, "nochmal :")
      StringGadget(#String_pw2, 260, 70, 120, 20, "",#PB_String_Password)
      OptionGadget(#Radio_ver, 10, 100, 90, 20, "Verschlüsseln")
      OptionGadget(#Radio_ent, 100, 100, 90, 20, "Entschlüsseln")
      TrackBarGadget(#Track_save, 200, 100, 160, 20, 1, 20) 
      TextGadget(#Text_save, 350, 100, 20, 20, "1", #PB_Text_Right)
      ProgressBarGadget(#ProgressBar, 10, 130, 370, 20, 0, 10)
      TextGadget(#Text_time,10,160,370,20,"Geschätzte Dauer : 00:00 bei 0 kb/s")
      ButtonGadget(#Button_go, 10, 190, 370, 20, "Start")
      ListViewGadget(#List_info, 10, 220, 370, 50)
      
    EndIf
  EndIf
EndProcedure

Open_Window_0()

SetGadgetState(#Radio_ver,1)

SetActiveGadget(#String_pw)

para$ = ProgramParameter()
If para$ <> ""
  SetGadgetState(#Radio_ent,1)
  SetGadgetText(#String_search,para$)
  SetGadgetText(#String_saveto,Left(para$,Len(para$)-4))
  DisableGadget(#Track_save,1)
  HideGadget(#Text_save,1)
  DisableGadget(#String_pw2,1)
  HideGadget(#Text_pw2,1)
EndIf

Repeat

  Event = WindowEvent() 
  If Event = #PB_Event_CloseWindow 
    Quit = 1 
  ElseIf Event = #PB_Event_Gadget Or Event = #PB_Event_Menu 
    
    Select EventGadget()
    
      Case #Button_go
        DisableGadget(#String_search,1)
        DisableGadget(#Button_search,1)
        DisableGadget(#String_saveto,1)
        DisableGadget(#Button_saveto,1)
        DisableGadget(#Radio_ver,1)
        DisableGadget(#Radio_ent,1)
        DisableGadget(#Track_save,1)
        DisableGadget(#String_pw,1)
        DisableGadget(#String_pw2,1)
        #String_saveto
        SetGadgetText(#Button_go,"Stop")
        SetGadgetText(#Text_time,"Geschätzte Dauer : 00:00 bei 0 kb/s")
        If GetGadgetState(#Radio_ver) = 1
          file$ = GetGadgetText(#String_search)
          save$ = GetGadgetText(#String_saveto)
          If file$ <> "" And save$ <> ""
            If GetGadgetText(#String_pw) = GetGadgetText(#String_pw2)
              preturn = FileKeyV(file$,save$,GetGadgetText(#String_pw),GetGadgetState(#Track_save))
              If preturn = 1
                ClearGadgetItemList(#List_info) 
                AddGadgetItem(#List_info, 0, "--------------------------------------------------")
                AddGadgetItem(#List_info, 0, "    Die Datei wurde erfolgreich verschlüsselt!")
                AddGadgetItem(#List_info, 0, "Erfolgreich:")
              ElseIf preturn = 2
                ClearGadgetItemList(#List_info) 
                AddGadgetItem(#List_info, 0, "--------------------------------------------------")
                AddGadgetItem(#List_info, 0, "    Datei konnte nicht gelesen werden!")
                AddGadgetItem(#List_info, 0, "Error:")
              ElseIf preturn = 3
                ClearGadgetItemList(#List_info) 
                AddGadgetItem(#List_info, 0, "--------------------------------------------------")
                AddGadgetItem(#List_info, 0, "    Datei konnte nicht erstellt werden!")
                AddGadgetItem(#List_info, 0, "Error:")
              ElseIf preturn = 4
                ClearGadgetItemList(#List_info) 
                AddGadgetItem(#List_info, 0, "--------------------------------------------------")
                AddGadgetItem(#List_info, 0, "    Datei weist zuviele Verschlüsselungsrunden auf!")
                AddGadgetItem(#List_info, 0, "Error:")
              ElseIf preturn = 5
                ClearGadgetItemList(#List_info) 
                AddGadgetItem(#List_info, 0, "--------------------------------------------------")
                AddGadgetItem(#List_info, 0, "    Bitte geben Sie ein Passwort an!")
                AddGadgetItem(#List_info, 0, "Error:")
              ElseIf preturn = 6
                ClearGadgetItemList(#List_info) 
                AddGadgetItem(#List_info, 0, "--------------------------------------------------")
                AddGadgetItem(#List_info, 0, "    Verschlüsselung wurde erfolgreich abgebrochen!")
                AddGadgetItem(#List_info, 0, "Erfolgreich:")
              EndIf
              If quick = 1
                End
              EndIf
            Else
              MessageRequester("Error","Die Passwörter stimmen nicht überein!")
            EndIf
          Else
            MessageRequester("Error","Bitte geben sie den Dateipfad an!")
          EndIf
          DisableGadget(#String_search,0)
          DisableGadget(#Button_search,0)
          DisableGadget(#String_saveto,0)
          DisableGadget(#Button_saveto,0)
          DisableGadget(#Radio_ver,0)
          DisableGadget(#Radio_ent,0)
          DisableGadget(#Track_save,0)
          DisableGadget(#String_pw,0)
          DisableGadget(#String_pw2,0)
          SetGadgetText(#Button_go,"Start")
        ElseIf GetGadgetState(#Radio_ent) = 1
          file$ = GetGadgetText(#String_search)
          save$ = GetGadgetText(#String_saveto)
          If file$ <> "" And save$ <> ""
            preturn = FileKeyE(file$,save$,GetGadgetText(#String_pw))
            If preturn = 1
              ClearGadgetItemList(#List_info) 
              AddGadgetItem(#List_info, 0, "--------------------------------------------------")
              AddGadgetItem(#List_info, 0, "    Die Datei wurde erfolgreich entschlüsselt!")
              AddGadgetItem(#List_info, 0, "Erfolgreich:")
            ElseIf preturn = 2
              ClearGadgetItemList(#List_info) 
              AddGadgetItem(#List_info, 0, "--------------------------------------------------")
              AddGadgetItem(#List_info, 0, "    Datei konnte nicht gelesen werden!")
              AddGadgetItem(#List_info, 0, "Error:")
            ElseIf preturn = 3
              ClearGadgetItemList(#List_info) 
              AddGadgetItem(#List_info, 0, "--------------------------------------------------")
              AddGadgetItem(#List_info, 0, "    Datei konnte nicht erstellt werden!")
              AddGadgetItem(#List_info, 0, "Error:")
            ElseIf preturn = 4
              ClearGadgetItemList(#List_info) 
              AddGadgetItem(#List_info, 0, "--------------------------------------------------")
              AddGadgetItem(#List_info, 0, "    Datei ist keine gültige -V- Datei!")
              AddGadgetItem(#List_info, 0, "Error:")
            ElseIf preturn = 5
              ClearGadgetItemList(#List_info) 
              AddGadgetItem(#List_info, 0, "--------------------------------------------------")
              AddGadgetItem(#List_info, 0, "    Datei weist zuviele Verschlüsselungsrunden auf!")
              AddGadgetItem(#List_info, 0, "Error:")
            ElseIf preturn = 6
              ClearGadgetItemList(#List_info) 
              AddGadgetItem(#List_info, 0, "--------------------------------------------------")
              AddGadgetItem(#List_info, 0, "    Bitte geben Sie ein Passwort an!")
              AddGadgetItem(#List_info, 0, "Error:")
            ElseIf preturn = 7
              ClearGadgetItemList(#List_info) 
              AddGadgetItem(#List_info, 0, "--------------------------------------------------")
              AddGadgetItem(#List_info, 0, "  Passwort falsch!")
              AddGadgetItem(#List_info, 0, "Error:")
            ElseIf preturn = 8
              ClearGadgetItemList(#List_info) 
              AddGadgetItem(#List_info, 0, "--------------------------------------------------")
              AddGadgetItem(#List_info, 0, "    Entschlüsselung wurde erfolgreich abgebrochen!")
              AddGadgetItem(#List_info, 0, "Error:")
            EndIf
          Else
            MessageRequester("Error","Bitte geben sie den Dateipfad an!")
          EndIf
          DisableGadget(#String_search,0)
          DisableGadget(#Button_search,0)
          DisableGadget(#String_saveto,0)
          DisableGadget(#Button_saveto,0)
          DisableGadget(#Radio_ver,0)
          DisableGadget(#Radio_ent,0)
          DisableGadget(#String_pw,0)
          SetGadgetText(#Button_go,"Start")
        EndIf
        
        
      Case #Button_search
        pfad$ = OpenFileRequester("Datei wählen...","","Alle Dateien (*.*)|*.*",0)
        SetGadgetText(#String_search,pfad$)
        If Right(pfad$,4) = ".-V-"
          SetGadgetText(#String_saveto,Left(pfad$,Len(pfad$)-4))
        Else
          SetGadgetText(#String_saveto,pfad$+".-V-")
        EndIf
        
      Case #Button_saveto
        If GetGadgetText(#String_search) = ""
          pfad$ = SaveFileRequester("Speicherort wählen",GetFilePart(pfad$),"Alle Dateien (*.*)|*.*",0)
        ElseIf Right(GetGadgetText(#String_search),4) = ".-V-"
          pfad$ = SaveFileRequester("Speicherort wählen",GetFilePart(pfad$),"Alle Dateien (*.*)|*.*",0)
        Else
          pfad$ = SaveFileRequester("Speicherort wählen",GetFilePart(pfad$),"-V- Dateien (*.-V-)|*.-V-",0)
          If Right(pfad$,4) <> ".-V-"
            pfad$ = pfad$ + ".-V-"
          EndIf
        EndIf
        If pfad$ = ".-V-"
          pfad$ = GetGadgetText(#String_saveto)
        EndIf
        SetGadgetText(#String_saveto,pfad$)
        
      Case #Track_save
        SetGadgetText(#Text_save,Str(GetGadgetState(#Track_save)))
      
      Case #Radio_ver
        DisableGadget(#Track_save,0)
        HideGadget(#Text_save,0)
        DisableGadget(#String_pw2,0)
        HideGadget(#Text_pw2,0)
        
      Case #Radio_ent
        DisableGadget(#Track_save,1)
        HideGadget(#Text_save,1)
        DisableGadget(#String_pw2,1)
        HideGadget(#Text_pw2,1)

    EndSelect 
  EndIf
  
  Delay(1)
  
Until Quit
Wenn mir jemand sagt wie ich das hier in einen Kasten ähnlich wie quote bekomm wär ich dankbar!

Naja mal gucken ob jemand das bild wieder raus bekommt...

EDIT: Danke wegen dem [_code] tipp!
R4z0r1989 ist offline   Mit Zitat antworten
Alt 28.03.08, 00:33   #10 (permalink)
 
Registriert seit: 15.09.06
Banur Leistung: Facit NTK
Likes: 0
Standard

Geht ganz einfach mit [_code] <deinen Code> [_/code], nur halt ohne die Unterstriche.
Die weiteren Möglichkeiten sind hier zu finden.
Banur ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Security Area » Cryptography & Encryption » Selbstprogrammierter Filecrypther [FriZa]
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61