11. april 2005 - 21:06Der er
41 kommentarer og 1 løsning
Er dette sikkert nok ?
Hej eksperter.
Jeg har lavet denne login form...
Private Sub Command1_Click() Dim FilIndhold As String Dim FF As Long Dim strPath As String FF = FreeFile If File1.ListIndex >= 0 Then 'skal kun virke når du har MARKERET en fil strPath = File1.Path If Right(strPath, 1) <> "\" Then strPath = strPath & "\" Open strPath & File1.FileName For Input As #FF Line Input #FF, FilIndhold Close #FF If FilIndhold = "fjdskaj435684629/*4564*464g+254354+34*54364" And Text1.Text = "kode" Then Form2.Show Me.Hide Else Form2.Hide Me.Show MsgBox "Kunne ikke logge på kodeord eller fil er forkert !" & FilIndhold, vbCritical, "Fejl 1.01" End If Else MsgBox "Du skal først markere en fil !" End If End Sub
Jeg ville egentlig bare høre om den var sikker nok, om der er nogle måder man kan "hacke" sig ind på form2 ?
Hvem vil du sikre dig mod? En som har styr på sin debugger, kommer nok relativt nemt forbi.
Første forhindring: hvor i din kode laver du kontrollen? Det er relativt nemt at finde. Der kan f.eks. sættes breakpoint når filen indlæses, henter teksten i boksen, eller når du viser din msgbox.
Anden forhindring: hvad skal der stå i filen og textboksen? Det er også nemt, da du sammenligner direkte med det, som der skal stå. Her laver man typisk en masse sjove beregninger, hvor resultatet skal passe med det der indtastes.
som jeg læser din kode har du hard-coded kodeordet - dvs at man ikke kan komme ind med mindre man kender denne kode - yderst sikkert, da koden vil forekomme binært i din eksekverbare fil = umulig at knække! Men modsat kan du jo heller ikke ændre koden ud at re-kompilere dit program!
men jeg synes selv at jeg har lavet det smart med en nøglefil...som heder key.encode er der andet jeg kan kalde den efter key. ? Jeg vil ikke bare kalde den en txt fil...som man bare kan åbne i notesblok !
sålænge at der blot står tekst i filen er det ligemeget hvad du kalder den - den vil altid kunne åbnes af en teksteditor. Ellers skal du kryptere teksten - fx ved at lægge 2 bogstaver til hvert tegn når du skriver filen og trække dem fra igen når du læser den (find selv på en krypteringsalgoritme der er smart)
kan du ikke hjælpe mig "lidt" med det...forstår det NOGENLUNDE fx..hvis jeg har koden ABC så bliver den til AjjBjjCjj ? Hvordan klarer jeg det i vb (se min kode i spørgsmålet) ?
ubrydelig.. det kan man ikke, så vil du heller ikke selv kunne bruge den..
men du kan gøre din "kode" usynlig...
Option Explicit
Private Sub Form_Load() Dim i As Integer Dim intAsc As Integer Dim strOut As String Dim strKode As String
strKode = "Eksperten.dk" ' <- Her skriver du den kode som skal være usynlig.
For i = 1 To Len(strKode) intAsc = Asc(Mid$(strKode, i, 1)) strOut = strOut & " Chr$(" & intAsc & ") &" Next strOut = "strKode =" & Left$(strOut, Len(strOut) - 2)
' Den stump kode som kommer ud her, skal du bare bruge i dit program. Text1.Text = strOut
'------------- Her er den stump kode du skal bruge i dit program ------------- ' fx. her står der Eksperten.dk i strKode men du kan ikke se det før du køre dit program.. strKode = Chr$(69) & Chr$(107) & Chr$(115) & Chr$(112) & Chr$(101) & Chr$(114) & _ Chr$(116) & Chr$(101) & Chr$(110) & Chr$(46) & Chr$(100) & Chr$(107) End Sub
sjh, men den er stadig gemt som clear text. Arnes metode med md5 er meget bedre, da det her kræver bruteforcing eller ændring i koden for at knække det
Eftersom det er mig der har skrevet 75% af ovenstående kode, må jeg vel komme emd en kommentar ;o)
Lav en algoritme. Brug f.eks. ASC-værdierne på kodeorder. Meget simpelt:
Kodeoret er "Hej".
Når kodeordet tastes i programmet når det køres, læser du det tegn for tegn.
Hvis fx:
Ansi-koden for det første tegn svarer til et "H" Ansikoden for det næste tegn + 2 svarer til "g" Ansikoden for det sidste tegn minus ansikoden for det midterste er 5 længden af kodeordet er 3
Så accepteres kodeordet...
Om det kan klares med en debugger ved jeg ikke, kender ikke noget til det ranglen har gang i, men jeg tvivler!
Til ovenstående skal du bruge Asc() funktionen i VB - den er indbygget. Men vær opfindsom, find selv på en snedigere algoritme. F.eks. kan du konvertere en ansikode til et hexi-decimal tal, tage sinus til længden af kodeordet eller hvad ved jeg
Man kan formentligt komme et godt stykke vej med en hjemmebrygget obfuskering.
Men hvorfor sidde og hjemmebrygge noget, når nogle af verdens bedste matematikere har arbejdet på at udvikle systemer som er meget bedre.
Meget bedre fordi: - de er meget grundigt testede - der er (for de flestes vedkommende) ikke bedre angreb en brute force - sikkerheden afhænger ikke af algoritmens hemligholdelse
ranglen > det du siger med "stadig gemt som clear text" det passer nu ikke.. du kan jo prøve at MAKE denne kode stump, og prøv at se om du kan finde den i din exe-file
sorry jeg tager pointsne selv...men mit spørgsmål er desværre kommet lidt for langt ned blandt de andre...jeg opretter et nyt med flere points !
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.