39225_1

Lemur zaprasza

Strona: [  >  ]  z  1     










Autor
Temat: Bezpieczne INI...











Viper87






Typ:
neutral

Postów: 490

Zarejestrowany: Oct 2002





Bezpieczne INI...


Mam pytanie-czy kto¶ wie jak zapisać dane do pliku (taj jak do INI czy rejestru), ale w taki sposób, żeby użytkownik programu nie mógł "podejrzeć", co w takim pliku program zapisał?
Innymi słowy: Chcę utajnić przed użytkownikiem to, co program zapisuje sobie w plikach INI .



_____________________________________________
Viper

"Savoir c`est prevoir, prevoir c`est prevenir". 
(Wiedzieć to przewidzieć, przewidzieć to zapobiegać) 







12-01-2003 21:26



 
    














Jelcyn

Admin forum






Typ:
admin

Postów: 895

Zarejestrowany: Apr 2002







Przykładowy niebezpieczny plik INI
Splash=1
AutoOpen=1
Music=0
MaxOpenWindows=20

Przykladowy zabezpieczony plik INI
1,1,0,20

Jak program ma 100 opcji to nikt sie nie skapnie co je co, ale ma to wade, ze Ty bedziesz mial problem bo 1 pomysla i caly program zglupieje. Mozesz np. co 3 bajt wpisywac losowa liczbe dla zmylenia przeciwnika



_____________________________________________
Jelcyn
vb4all(małpka)canpol.pl
*






13-01-2003 19:50



 
        
270849979   

6237704














Viper87






Typ:
neutral

Postów: 490

Zarejestrowany: Oct 2002







Jelcyn-wybacz, ale nie kapuję . Możesz ja¶niej? Ja korzystam z sampla, którego Ci posłałem do zapisywania informacji do plików INI...



_____________________________________________
Viper

"Savoir c`est prevoir, prevoir c`est prevenir". 
(Wiedzieć to przewidzieć, przewidzieć to zapobiegać) 







13-01-2003 21:42



 
    














Viper87






Typ:
neutral

Postów: 490

Zarejestrowany: Oct 2002







Może wyłożę kawę na ławę-chcę napisać program, do odpytywania kogos ze slowek. Tak to sobie pomyslalem, żeby tam był tryb nauczyciela i ktos podaje słówka w obcym języku i w naszym ich znaczenie. I tu jest problem-jak zapiszę to do zwykłego ini, to odpytywana osoba wystarczy, że taki plik INI podejrzy i KAPUT> Rozumiesz? Wiem, że np. w Delphi da się zrobić pliki o własnym rozszerzeniu-wygl±daj± po otwarciu jak np DLL i s± w nich krzaczki, a program je dekoduje... A w VB czy da się co¶ takiego zrobić?



_____________________________________________
Viper

"Savoir c`est prevoir, prevoir c`est prevenir". 
(Wiedzieć to przewidzieć, przewidzieć to zapobiegać) 







13-01-2003 23:02



 
    














Viper87






Typ:
neutral

Postów: 490

Zarejestrowany: Oct 2002







Dzięki. Tylko:
a.) jak tak± baże doł±czyć do VB?
b.)Co to jest XOR, ajk go użyć, je¶li to program (a chyba nie), to sk±d go ¶ci±gn±ć, jak to zaimplemetntować w programie?



_____________________________________________
Viper

"Savoir c`est prevoir, prevoir c`est prevenir". 
(Wiedzieć to przewidzieć, przewidzieć to zapobiegać) 







14-01-2003 15:45



 
    














err404






Typ:
neutral

Postów: 14

Zarejestrowany: Nov 2002





Jedyne co możesz zrobić to.....


Zacz±ć pliki szyfrować a jak to możesz zrobić hmmm

poniżej zamieszcam ci kody modułów które pozwol± ci na bezpieczne szyfrowanie zawarto¶ci plików(szyfrowanie przez fukcje asc i chr - czyli operacje na wartosciach ASCII , może się skończyć Ľle jeżeli czytasz plik liniami, bo chr(13) to enter )

Kod modułu szyfrowania:
'---------------------------------------
Option Explicit
Function EncodeData(Text As String) As String

    Dim i As Integer, a As Integer
    Dim znakA As String, znakB As String, tmp As String
    Dim SubRepA As Integer, SubRepB As Integer, RepStr As Integer
    Dim LocalKey As String
    tmp = ""
    LocalKey = ""
    'ta petla pozwala na wygenerowanie klucza potrzebnego do zakodowania
    'ciagu znaku dowolnej dlugosci
    Do While Len(LocalKey) < Len(Text)
        LocalKey = LocalKey + Key
    Loop
    'Ta petla wykonuje kodowania
    For i = 1 To Len(Text)
        znakA = Mid(LocalKey, i, 1)
        SubRepA = InStr(1, Alphabet, znakA, vbBinaryCompare)
       
        znakB = Mid(Text, i, 1)
        SubRepB = InStr(1, Alphabet, znakB, vbBinaryCompare)
       
        RepStr = SubRepB + SubRepA
        If RepStr > Len(Alphabet) Then RepStr = RepStr - Len(Alphabet)
        tmp = tmp + Mid(Alphabet, RepStr, 1)
    Next i
    EncodeData = tmp
    Debug.Print tmp
End Function
'---------------------------------------
Kod Modułu deszyfrowania:
'---------------------------------------
Option Explicit
Function DecodeData(Text As String) As String

    Dim i As Integer
    Dim znakA As String, znakB As String, tmp As String
    Dim SubRepA As Integer, SubRepB As Integer, RepStr As Integer
    Dim LocalKey As String
    tmp = ""
    LocalKey = ""
    Do While Len(LocalKey) < Len(Text)
        LocalKey = LocalKey + Key
    Loop
    For i = 1 To Len(Text)
        znakA = Mid(LocalKey, i, 1)
        SubRepA = InStr(1, Alphabet, znakA, vbBinaryCompare)
       
        znakB = Mid(Text, i, 1)
        SubRepB = InStr(1, Alphabet, znakB, vbBinaryCompare)
     
        RepStr = SubRepB - SubRepA
        If RepStr < 1 Then RepStr = RepStr + Len(Alphabet)
        tmp = tmp + Mid(Alphabet, RepStr, 1)
    Next i
    DecodeData = tmp
End Function
'---------------------------------------
Kod modułu zmiennych globalnych
Option Explicit
Global Const Alphabet As String = "a±bcćdeęfghijklłmnńoópqrs¶tuvwxyzżĽAˇBCĆDEĘFGHIJKLŁMNŃOÓPQRS¦TUVWXYZŻ¬0123456789~`!@#$%^&*()-=_+{}[]|:;',.<>/? """
Global Const Program_Key As String = "AxDf93fo9d1ueJpQtMslJdaU94yaiIpW"
Global User_Key As String
Global Key As String
'---------------------------------------
Kod modułu zarz±dzania kluczem
'---------------------------------------

Option Explicit

Sub ExtractKey()
    Dim i As Integer, a As Integer
    Dim znakA As String, znakB As String
    Dim SubRepA As Integer, SubRepB As Integer, RepStr As Integer
    Key = ""
    For i = 1 To 32
        znakA = Mid(Program_Key, i, 1)
        SubRepA = InStr(1, Alphabet, znakA, vbBinaryCompare)
       
        znakB = Mid(User_Key, i, 1)
        SubRepB = InStr(1, Alphabet, znakB, vbBinaryCompare)
       
        RepStr = SubRepA + SubRepB
        If RepStr > Len(Alphabet) Then RepStr = RepStr - Len(Alphabet)
        Key = Key + Mid(Alphabet, RepStr, 1)
    Next i
End Sub
Sub GenerateUserKey()
    'Funkcja generuje losowy klucz
    Dim i As Integer
    User_Key = ""
    For i = 1 To 32
        User_Key = User_Key + Mid(Alphabet, Int(Rnd * Len(Alphabet)) + 1, 1)
    Next i
   
End Sub
'---------------------------------------

ok jak już skopiujesz sobie te kody do jaki¶ modułów to.....

Muszisz podać Programowi twój kod użytkownika(zastanawiasz się po chuj takie to skomplikowane - a ja ci mówie że to zabezpiecza przed odczytaniem hex edytorem bo program w czasie pracy generuje wszystkie klucze a nie ma ich zapisanych w sobie)
ok tak czy inaczej to musi być jaki¶ string
w zasadzie dowolny (powinien miec 32 znaki-jeżeli nie to musisz zmienić kod w module odpowiedzialnym za generowanie i wyciaganie nowego klucza), bo fukcje szyfrowania i tak sobie go wydłuż±(jezeli nic nie zmieniasz w kodzie wyciagajacym klucz to ta opcja działa tylko jeżeli kodujesz co¶ dłuższego niż 32 znaki) do długo¶ci szyfrowanych danych
ok teraz robisz taki patent w sekcji gdzie umie¶ciłem zmienne globalne możesz do User_Key
dopisać co¶ w stylo Global Const User_Key ="Kocham Magde i Visual Basica"
albo lepiej zrobić patent taki że
w pierwszej linijce pliku zawrzeć jaki¶ string który będzie twoim kluczem
i teraz to będzie wygl±dało tak
Sub LoadPlik()
Dim Filen as integer
Dim myStr as string
Filen=FreeFile'pobieramy nr uchwytu(pierwszy wolny normalnie 1 ale jak otwartych plikow jest wiecej niz 1 to juz nie jest tak wesolo free file zabezpiecza nas przed błedami)
open "plik.txt" for input as #filen'otwieramy plik do odczytu
  line input #filen, user_key'pobieramy klucz uzytkownika z pliku
  call ExtractKey()'tu prgram generuje klucz wlasciwy z klucza uzytkownika i klucza programu
  line input #filen, myStr'wczytuje linie do myStr
  myStr=Decode(myStr)i dekoduje ja w oparciu o klucze
'no i jaki¶ kod tam dalej
Close #filen
End Sub
Sub SavePlik()
Dim Filen as integer
Dim myStr as string
Filen=FreeFile
open "plik.txt" for output as #filen
  call GenerateUserKey()'generuje losowy klucz(dobra sprawa bo ciezko potencjalnemu crackerowi wpasc co sie zmienia bo zamienia sie cala zawartosc pliku przyy zapisie dzieki dynamicznej zmianie zawartosci klucza)
  print #filen, user_key' drukujemy klucz do pierwszej lini
  call ExtractKey()' karzemy sklecic nowy klucz z nowo wygenerowanego klucza uzytkownika
  myStr=Encode(myStr)'kodujemy dane
  print #filen, myStr'i fruuu je do pliku
  'no i jaki¶ kod tam dalej
Close #filen
End Sub


[Post edytowany dnia 15-01-2003 16:27 przez err404]






15-01-2003 16:01



 
      

1306176














err404






Typ:
neutral

Postów: 14

Zarejestrowany: Nov 2002







czasami zmienne tekstowe szyfrować możesz podwójnie potrójnie a nawet więcej razy
dim ms as string
ms="Ola"
ms=Encode(ms)'Pierwsze szyfrowanie
debug.print ms
ms=Encode(ms)'drugie
debug.print ms
Pamiętaj jedynie że logika nakazuje że przy dekodowaniu danym musisz cał± droge przej¶ć wstecz
P.S. nie szyfruj kluczy(chyba że jakimi¶ stałymi kluczami), bo zaszyfrowany klucz jest nie doodczytania przez program







15-01-2003 16:18



 
      

1306176














Viper87






Typ:
neutral

Postów: 490

Zarejestrowany: Oct 2002







Bardzo Ci dziękuję za ten post i ten o napisach na filmie-muszę przyzanć, że nie wiem czy je od razu zrozumiem. Na razie nie mam czasu. Trochę dużo tego



_____________________________________________
Viper

"Savoir c`est prevoir, prevoir c`est prevenir". 
(Wiedzieć to przewidzieć, przewidzieć to zapobiegać) 







15-01-2003 16:32



 
    













Wszystkich odpowiedzi: 7 :: Maxymalnie na stronę: 20










Strona: [  >  ]  z  1     
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • teen-mushing.xlx.pl
  • WÄ…tki
    Powered by wordpress | Theme: simpletex | © Lemur zaprasza