Proudly debugging the system since 1981

Categoria: debugging (Pagina 1 di 11)

RustDesk su Raspberry Pi 5

Questo titolo ha troppe R. Comunque visto che ho dovuto mettere insieme un po tanti pezzi per fare andare RustDesk, un ottima alternativa free ad AnyDesk, sul mio nuovissimo Raspberry Pi 5 condivido alcune informazioni.

L’obbiettivo era avere RustDesk funzionante, con avvio automatico, sul raspberry non collegato ad alcun monitor (modalità headless).

Per ottenere il risultato desiderato con la versione disponibile al momento della scrittura ( 1.2.3-aarch64 ) si deve:

Configurare il server grafico con X11. Con wayland non ho trovato alcun modo. Si fa da raspi-config -> advanced option -> Wayland

Configurare il boot con terminale. Sempre raspi-config -> System -> Boot / Autologin. X non deve partire in automatico.

Raspi-config per configuare boot e auto login

Installare il pacchetto xserver-xorg-video-dummy ( rif: https://github.com/rustdesk/rustdesk/pull/3902 ) … il resto dovrebbe gia esserci.

Rustdesk deve essere configurato per l’accesso non sorvergliato e con una password fissa.

Fatto questo si puo staccare riavviare, staccare monitor e tastiera, e accedere da remoto.

Il Calco

Non ho mai capito perchè la passione per il “calco” sia cosi diffusa tra gli informatici.

Il calco è un procedimento di formazione delle parole che consiste nel coniare nuovi termini riprendendo le strutture della lingua di provenienza. Si tratta di una forma particolare di prestito, spesso utile per colmare lacune lessicali (soprattutto nel campo della scienza e della tecnologia); altre volte si tratta di fenomeni spontanei, privi di una funzione vera e propria, dato che il termine sarebbe già disponibile. Si distingue in genere il calco semantico da quello morfologico. Da https://it.wikipedia.org/wiki/Calco_linguistico

Immagine da https://twitter.com/latraduzionedim/status/1546469483782586375

Candele antizanzare

Non alla citronella. Vorrei trovare un prodotto in forma di candela che rilasci un principio attivo certificato che funzioni contro le zanzare. I classici zampironi funzionano ma sono scomodi. Qualcuno sa consigliarmi un prodotto?

Perché non mi interessano candele alla citronella? Beh perché non servono a nulla.

Una cosa che sapevo e una che ho scoperto

Un problema abbastanza comune: io non riesco a mantenere l’attenzione su quello che sto facendo mentre ci sono voci di altre persone. Sentire parlare qualcuno automaticamente sposta parte della mia attenzione da quello che sto facendo a quello che sento anche se non sono io il desiderio del messaggio.

In una certa misura credo che capiti a tutti, a chi più a chi meno. Per me è più.

E inevitabilmente accade anche con la musica.

Una cosa che sapevo è che si possono usare i noise generator per offuscare il parlato e isolarsi. MyNoise ne ha una collezione enorme e personalizzabile.

Una cosa che non conoscevo, e che sto apprezzando molto, sono le stazioni LoFi Hip Hop. Ne scegli una e la fai andare per ore. Fantastico.

Un ulteriore consiglio non richiesto: per ascolti prolungati è meglio un paio di cuffie grandi, vecchia maniera, piuttosto che gli auricolari in-ear, se poi sono dotate di cancellazione attiva del rumore l’effetto isolamento è ancora migliore.

Dagli all’untore

Alla primavera non frega nulla dei nostri problemi.

Probabilmente mi ha fatto male rileggere i Promessi Sposi di recente, e constatare che a distanza di 2 secoli dalla scrittura, e 4 dai supposti eventi narrati poco è cambiato. L’unica cosa che vedo di differente è che la Medicina è una scienza un po più matura e che ha dei dati oggettivi da produrre e capacita analitica sul male.

La peste prima è stata sottovalutata e sminuita dalla autorità, poi chi assisteva i malati è stato lasciato a se stesso, poi in tutta fretta si sono individuati luoghi in cui mettere i malati e alla fine molti di quelli che assistevano i malati si sono ammalati a loro volta. Alla fine si è salvato chi è stato isolato e chi fortunatamente ne è uscito con le sue forze. Gran parte degli sforzi tardivi delle autorità hanno fatto più male che bene.

Ma il punto è che la ggente (con due g) ancora cerca l’untore. Per semplicità: avere un nemico visibile ti mette in pace con i tuoi pochi neuroni. Prima il cinese, poi il passeggiatore di cani, ultimamente si è eletto a categoria untrice il runner. Probabilmente non sarà l’ultima categoria. E perché non il corriere o la cassiera? Vedremo. Non sono tempi noiosi.

Solo non affidatevi all’astrologia, e tenete acceso il cervello. Le soluzioni semplici non esistono. Le soluzioni estreme sono sempre un estremo sbaglio.

Hacking YI Dome / YI Home Ip camera – 4° Puntata

Diversamente da quanto detto nella puntata precedente mi sono concentrato sul verificare l’algoritmo di codifica della password, realizzando un programmino allo scopo:

package net.b0sh.yiCameraClient.test;

import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import java.security.InvalidKeyException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Base64;

public class EncryptionTest {

    public static void main(String[] params) {

        String toBoFound = "OMESSO";
        String cleanPassword = "OMESSO";
        byte[] secret = "secret".getBytes();

        if (digest(cleanPassword, "SHA-256").equals(toBoFound)) {
            System.out.println("success");
        }
        if (digest(cleanPassword, "SHA-1").equals(toBoFound)) {
            System.out.println("success");
        }
        if (digest(cleanPassword, "MD5").equals(toBoFound)) {
            System.out.println("success");
        }
        if (hmac(cleanPassword,"HmacSHA256",secret).equals(toBoFound)) {
            System.out.println("success");
        }
    }

    private static String digest(String password, String alg) {
        try {
            MessageDigest md = MessageDigest.getInstance(alg);
            byte[] bytes = md.digest(password.getBytes());

            System.out.println(alg + " Bytes " + new String(bytes));

            System.out.println(alg + " Base64 " + new String(Base64.getEncoder().encode(bytes)));

            return new String(Base64.getEncoder().encode(bytes));

        } catch (NoSuchAlgorithmException e) {
            System.out.println("NoSuchAlgorithmException");
            return "";
        }
    }

    private static String hmac(String password, String alg, byte[] secret) {

        try {
            SecretKeySpec keySpec = new SecretKeySpec(secret, alg);
            Mac mac = Mac.getInstance(alg);
            mac.init(keySpec);
            mac.update(password.getBytes());

            byte[] bytes = mac.doFinal();


            System.out.println(alg + " Bytes " + new String(bytes));

            System.out.println(alg + " Base64 " + new String(Base64.getEncoder().encode(bytes)));

            return new String(Base64.getEncoder().encode(bytes));

        } catch (NoSuchAlgorithmException e) {
            return "";
        } catch (InvalidKeyException i) {
            return "";
        }

    }

}

Avendo definitiva conferma che l’algoritmo utilizzato è HMAC SHA256, quindi un hash “salato” con un segreto. Il problema quindi resta individuare il segreto. HashCat pare supportare il bruteforce del sale dell’HmacSHA256. Qualcuno ha qualche PetaFLOP da prestarmi?

« Articoli meno recenti

© 2024 b0sh.net

Tema di Anders NorenSu ↑