[Crypt This!] Criptazione file, primo tentativo by The_Fox xD

« Older   Newer »
  Share  
Th3_F0x
CAT_IMG Posted on 20/5/2010, 14:32     +1   -1




Premetto che nn mi sono sforzato troppo per fare la gui xD
Comunque, il programma se premete "Crypt" dovrebbe:
1-Chiedervi di sciegliere un file ( fatelo con una jpg o un exe così poi vedete subito se funziona )
2-creare 4 file: uno denominato ceck che è il file originale convertito in binario e subito riconvertito in stringa ( apritelo e se è uguale al file originale allora non ci sono problemi per la codifica ), il secondo file ha lo stesso nome dell' originale ma è codificato in binario con estensione ".rvs", il terzo file è un INI file che contiene le " matrici di codifica ", il quarto ed ultimo file è il file codificato vero e proprio che ha come prefisso "compressed.".
Se invece premete "De-Crypt" dovrebbe:
1-chiedervi di aprire un file con estensione ".rvsc" ( ovvero il file criptato )
2-creare 2 file, il primo è il fille esteso in formato binario ( ovvero decodificato ma ancora in binario ) ed in fine un file chiamato ceck ma con estensione ".rvsc", se cancellate il file ceck con estensione originale e cambiate estensione al nuovo file, con quella del file che in origine avete scelto di codificare.... come per magia ( se! XD ) riavrete il file decodificato.
La codifica è casuale e le matrici vengono salvate nell' ini file. dunque senza quel file ini è impossibile decodificare, ciò è utile se si vuole diffondere il file creiptato lasciando nelle proprie mani la matrice originale, in modo da poterlo decodificare solo noi.

Provatelo ^^ ( si potevo togliere i file inutili e lasciare solo quelli criptati e decriptati, ma ho lasciato il programma come l'ho ideato in partenza, così che se qualcuno vuole analizzarne il procedimento, puo' farlo step to step )
p.s. eseguite il tutto all' interno della stessa cartella ( meglio se sul desktop ;))
CODICE:
SPOILER (click to view)
CODICE
#Include <File.au3>
#include <GUIConstantsEx.au3>
GUICreate("Crypt This!",140,100)
$c=GUICtrlCreateButton("Crypt",5,5,130,40)
$d=GUICtrlCreateButton("De-Crypt",5,50,130,40)
GUISetState(@sw_show)
while 1
       Switch GUIGetMsg()
       Case $GUI_EVENT_CLOSE
               Exit
       Case $c
               _c()
       Case $d
               _d()
       EndSwitch
       
WEnd

Func _c()
;============Per criptaz file===========By The fox===========
;~ #Include <File.au3>
Global $dirdrive,$dir,$FName,$ext
$open=FileOpenDialog("",@scriptdir,"All (*.*)")
_PathSplit($open,$dirdrive,$dir,$FName,$ext)
$file=FileOpen($open,0+16)
$read=FileRead($file)
FileWrite(@scriptdir&"\"&$FName&$ext&".rvs",StringToBinary($read))
;============================================================
$file=FileOpen(@scriptdir&"\"&$FName&$ext&".rvs",0+16)
$read=FileRead($file)
FileClose($file)
FileWrite(@scriptdir&"\Ceck"&$ext,"")
$file=FileOpen(@scriptdir&"\Ceck"&$ext,2+16)
FileWrite($file,BinaryToString($read))
ConsoleWrite(binarylen($read))
;============Per criptaz file===========By The fox===========
$read=FileRead(@scriptdir&"\"&$FName&$ext&".rvs")
Global $symb[20]
$start=85000
$symb[1]="\"
$symb[2]="!"
$symb[3]="£"
$symb[4]="$"
$symb[5]="%"
$symb[6]="&"
$symb[7]="/"
$symb[8]="("
$symb[9]=")"
$symb[10]="="
$symb[11]="?"
$symb[12]="^"
$symb[13]="["
$symb[14]="]"
$symb[15]="@"
$symb[16]="#"
$symb[17]="«"
$symb[18]="»"
$symb[19]="<"
For $k=1 To 19
while 1
$i=Chr(Random(Asc("A"), Asc("F"), 1))&random(1,9,1)
If StringInStr($read,$i) Then
$arr=StringSplit($read,$i)        
ConsoleWrite($arr[0]&" - "&$i&" @ "&$start&@CRLF)
if $arr[0] > $start Then
ConsoleWrite($arr[0]&" CONFIRMED"&@CRLF)
ExitLoop
Else
$start-=1000
EndIf
EndIf
sleep(10)
WEnd        
$read=StringReplace($read,$i,$symb[$k])
IniWrite(@scriptdir&"\"&$Fname&".ini","S1",$i,$symb[$k])
Next
FileWrite(@scriptdir&"\Compressed."&$Fname&".rvsc",$read)
;~ Exit
FileClose($file)
EndFunc

Func _d()
Global $dirdrive,$dir,$FName,$ext
$open=FileOpenDialog("",@scriptdir,"Compressed rvs (*.rvsc)")
$read=FileRead($open)
_PathSplit($open,$dirdrive,$dir,$FName,$ext)
$arrName=StringSplit($Fname,".")
$arrINI=IniReadSection(@ScriptDir&"\"&$arrName[2]&".ini","S1")
For $i=1 to 19
sleep(10)
$read=StringReplace($read,$arrINI[$i][1],$arrINI[$i][0])
ConsoleWrite($arrINI[$i][1]&" to: "&$arrINI[$i][0]&@CRLF)
Next
FileWrite(@ScriptDir&"\"&$arrName[2]&".Extended.rvse",$read)
$file=FileOpen(@ScriptDir&"\"&$arrName[2]&".Extended.rvse",0+16)
$read=FileRead($file)
FileClose($file)
FileWrite(@scriptdir&"\Ceck"&$ext,"")
$file=FileOpen(@scriptdir&"\Ceck"&$ext,2+16)
FileWrite($file,BinaryToString($read))
ConsoleWrite(binarylen($read))        
FileClose($file)
EndFunc
 
Top
0 replies since 20/5/2010, 14:32   326 views
  Share