Tool per il recupero della password di file video .rf cifrati prodotti dai DVR Raysharp.
I DVR Raysharp utilizzano il software di gestione VMS Pro per l'esportazione dei video. Quando un utente esporta un video dal sistema e imposta una password, il file .rf viene automaticamente cifrato con:
- Algoritmo: AES-256-CBC
- Derivazione chiave: PBKDF2-HMAC-SHA256 (9999 iterazioni)
- Player: VideoPlayer (fornito da Raysharp)
Le 9999 iterazioni PBKDF2 sono obbligatorie per ogni tentativo di decifrazione e rappresentano il collo di bottiglia delle performance.
Questo tool permette di recuperare la password dimenticata sfruttando direttamente la libreria RSPlay.dll del produttore.
- ✅ Modalità CLI per automazione e scripting
- ✅ Modalità GUI con finestre di selezione file
- ✅ Attacco a 3 fasi: wordlist → PIN 4 cifre → PIN 6 cifre
- ✅ Shellcode custom per chiamate thiscall alla DLL
- ✅ Velocità ottimizzata (~1.2 tentativi/secondo, limitata da PBKDF2)
- Windows 10/11 (32/64 bit)
- Go 1.26 o superiore
Questo tool funziona esclusivamente su Windows perché dipende da RSPlay.dll, una libreria nativa Windows fornita con il software VideoPlayer di Raysharp. Non esistono versioni Linux/macOS di questa dipendenza.
# Scarica il binario pre-compilato
bin/windows/rfcrack.exe# Imposta architettura x86 (obbligatorio per compatibilità DLL)
set GOARCH=386
set CGO_ENABLED=0
# Compila
go build -o rfcrack.exe rfcrack.goℹ️ Nota: La compilazione deve essere x86 (32-bit) perché RSPlay.dll è una DLL a 32 bit.
# Uso base
rfcrack.exe video.rf passwords.txt
# Con wordlist DVR comuni
rfcrack.exe video.rf dvr_passwords.txt
# Help
rfcrack.exe --help# Avvia interfaccia grafica
rfcrack.exeLa GUI aprirà due finestre di dialogo per selezionare:
- File video
.rfcifrato - File wordlist password
Il file delle password deve contenere una password per riga:
admin
123456
password
0000
example123
Il tool esegue automaticamente 3 fasi di attacco:
- Fase 1 - Wordlist: Prova tutte le password dal file fornito
- Fase 2 - PIN 4 cifre:
0000→9999(10.000 combinazioni) - Fase 3 - PIN 6 cifre:
000000→999999(1.000.000 combinazioni)
- Wordlist: ~1.2 tentativi/secondo (0.8s per tentativo)
- PIN 4 cifre: ~2.2 ore (10.000 tentativi × 0.8s)
- PIN 6 cifre: ~9.3 giorni (1.000.000 tentativi × 0.8s)
ℹ️ Nota importante: Ogni tentativo richiede 9999 iterazioni PBKDF2 per la derivazione della chiave AES. Questo è un limite tecnico imposto dall'algoritmo di cifratura di Raysharp e non dipende dall'ottimizzazione del codice Go.
Il tool carica RSPlay.dll dalla stessa directory dell'eseguibile:
./RSPlay.dll (inclusa nel progetto)
Non è più richiesta l'installazione di VideoPlayer.
La funzione OpenPlayFile della DLL usa la calling convention thiscall (C++).
Il tool include shellcode x86 per convertire da stdcall a thiscall:
push ebp
mov ebp, esp
mov ecx, [ebp+8] ; this = handle
mov eax, [ecx] ; eax = vtable
push [ebp+0x10] ; push password
push [ebp+0x0C] ; push filename
call [eax+0x68] ; call vtable[26] = OpenPlayFile
pop ebp
ret 0x0C ; stdcall cleanupIl tool usa la DLL come "oracolo":
- Return 0: Password corretta ✅
- Return -7: Password errata ❌
Non reimplementa la crittografia, sfrotta direttamente la logica del produttore.
È incluso dvr_passwords.txt con le 50 password più comuni usate nei sistemi DVR:
- Password di default factory
- Combinazioni numeriche (0000, 1234, etc.)
- Password basate su anni (2024, 2025, 2026)
- Termini comuni (admin, password, etc.)
Causa: RSPlay.dll non è presente nella stessa directory di rfcrack.exe. Soluzione: Assicurati che RSPlay.dll sia nella stessa cartella dell'eseguibile.
Causa: Permessi insufficienti. Soluzione: Eseguire come amministratore.
Causa: Antivirus blocca l'accesso alla DLL. Soluzione: Aggiungere eccezione per rfcrack.exe.
- Funziona solo su Windows (richiede DLL Windows)
- Non estrae la chiave AES (solo recupero password)
- Non converte i video (solo password recovery)
Questo tool è destinato a:
- Recuperare password dimenticate di propri file
- Test di sicurezza su propri sistemi DVR
- Ricerca forense con autorizzazione
Non utilizzarlo su file di terzi senza autorizzazione esplicita.
MIT License - vedere file LICENSE per dettagli.
- Linguaggio: Go (x86)
- Dipendenze: Solo librerie standard Windows
- Shellcode: 23 byte per bridge thiscall
- Memoria: VirtualAlloc con PAGE_EXECUTE_READWRITE
- Thread: runtime.LockOSThread() per compatibilità DLL