martedì 31 marzo 2020

Phishing via SMS

Oggi mi e' arrivato questo SMS apparentemente proveniente dalla mia banca



ho cliccato sul link e si e' aperta una pagina con la richiesta di inserire le credenziali perche' il conto era stato limitato. Da cellulare la schermata era questa


Mi sono insospettito della URL ripristino-datiweb.com e mi sono spostato sul PC.
Una volta copiata la URL (https://ripristino-datiweb.com/verificapsd2/it/persone-e-famiglie/login-page.php?&sessionid=74c7228a6ce06a2603aa2b54e3237a8a&securessl=true) il browser mi reindirizzava in automatico a Google.com e non vedevo la schermata di login del cellulare

Lanciando la URL https://ripristino-datiweb.com la pagina era bianca con la sola scritta "Nice try :-("

(nessun altro codice ne' html ne' javascript)

Tra le altre cose sembra che il redirect basato sull'UserAgent sia gestito direttamente da Apache e non da una pagina web via Javascript con  qualche regola del tipo quella indicata a questo sito 


una ricerca sul whois riportata che la registrazione del sito e' su GoDaddy ed e' stato creato oggi

Domain Name: RIPRISTINO-DATIWEB.COM
Registry Domain ID: 2509476000_DOMAIN_COM-VRSN
Registrar WHOIS Server: whois.godaddy.com
Registrar URL: http://www.godaddy.com
Updated Date: 2020-03-31T16:07:06Z
Creation Date: 2020-03-31T16:07:06Z
Registry Expiry Date: 2021-03-31T16:07:06Z
Registrar: GoDaddy.com, LLC
Registrar IANA ID: 146
Registrar Abuse Contact Email: abuse@godaddy.com




sabato 28 marzo 2020

QTSensors su Ubuntu Touch (UBPorts) in QML

Visto che sto imparando a programmare UBPorts ho voluto provare a convertire questo progetto Android/Kotlin per QML. In pratica si tratta di leggere i valori dell'accelerometro e, ad intervalli regolari, inviare i dati ad server web con una richiesta GET


Per abilitare l'utilizzo della rete nella app si deve modificare il file apparmor
apparmor
===========================================
{
    "policy_groups": ["networking"],
    "policy_version": 16.04
}

===========================================


Main.qml
===========================================
/*
 * Copyright (C) 2020  Your FullName
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; version 3.
 *
 * ubuntu-calculator-app is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

import QtQuick 2.7
import Ubuntu.Components 1.3
//import QtQuick.Controls 2.2
import QtQuick.Layouts 1.3
import Qt.labs.settings 1.0

import QtSensors 5.0



MainView {
    id: root
    objectName: 'mainView'
    applicationName: 'acc2.luca.innocenti'
    automaticOrientation: true
   
    // variabili globali
    readonly property double radians_to_degrees: 180 / Math.PI
    property double pitch: 0.0
    property double roll: 0.0

    width: units.gu(45)
    height: units.gu(75)

    // un evento ogni 5 secondi
    Timer {
          interval: 5000
          running: true
          repeat: true
          onTriggered: {
            console.log("Timer")
            var xmlHttp = new XMLHttpRequest();
            xmlHttp.open("GET", "http://192.168.1.102/index.php?pitch="+pitch.toFixed(3)+"&roll="+roll.toFixed(3), true); // false for synchronous request
            xmlHttp.send();

          }
      }


    Accelerometer {
        id: accel
        dataRate: 100
        active:true

        onReadingChanged: {
            var x = accel.reading.x
            var y = accel.reading.y
            var z = accel.reading.z
            pitch = calcPitch(x,y,z)
            roll = calcRoll (x,y,z)
            //etichetta.text=""+accel.reading.x+"\n"+accel.reading.y+"\n"+accel.reading.z
            etichetta.text = "Pitch : "+pitch.toFixed(1)+"\nRoll : "+roll.toFixed(1)

            function calcPitch(x,y,z) {
                return Math.atan2(y, z)*radians_to_degrees;

                }
            function calcRoll(x,y,z) {
                return Math.atan2(-x, Math.sqrt((y*y)+(z*z)))*radians_to_degrees;
                }

          }


        }



    Page {
        anchors.fill: parent

        header: PageHeader {
            id: header
            title: i18n.tr('acc2')
        }


        Label {
            anchors {
                top: header.bottom
                left: parent.left
                right: parent.right
                bottom: parent.bottom
            }
            id: etichetta
            text: i18n.tr('Luca')

            verticalAlignment: Label.AlignVCenter
            horizontalAlignment: Label.AlignHCenter
        }

    }
}

QML Mandelbrot in UBPorts / Ubuntu Touch

Ovviamente, visto che mi sono messo a studiare UBPorts, non poteva mancare un porting di Mandelbrot. La prima scelta e' stata QML che in pratica e' un sottoinsieme di HTML5 per quanto riguarda il codice

Il progetto completo in Clickable si trova a questo link
https://github.com/c1p81/lucainnoc-gmail.com

Piccola nota: il progetto e' dannatamente lento


Le icone nel progetto sono in formato .svg (Gimp non supporta direttamente questo formato)


===================================================================
/*
 * Copyright (C) 2020  Your FullName
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; version 3.
 *
 * ubuntu-calculator-app is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

import QtQuick 2.7
import Ubuntu.Components 1.3
//import QtQuick.Controls 2.2
import QtQuick.Layouts 1.3
import Qt.labs.settings 1.0
import QtQuick.Window 2.2


MainView {
    id: root
    objectName: 'mainView'
    applicationName: 'pixel.luca.innocenti'
    automaticOrientation: true

    width: Screen.width
    height: Screen.height

    Page {
        anchors.fill: parent

        header: PageHeader {
            id: header
            title: i18n.tr('Mandelbrot QML')
        }

Canvas {
id: canvas
width:  Screen.width
height:  Screen.height
  onPaint: {
      var context=canvas.getContext("2d")
           context.fillStyle="rgb(0,0,0)";
           context.fillRect(0, 0, width, height);
           var re_min = -2.0;
           var im_min = -1.2;
           var re_max = 0.7;
           var im_max = 1.2;
           var iterazioni = 25;
           var colori = ["#FFFFFF","#FF0000","#00FF00","#0000FF","#FF00FF","#FFFF00","#00FFFF","#FFaa00","#abcedf","#fedc0a","#ab16dd","#d00fba","#edabcc","#ddacff"];

           var r;
           var a,b;
           var x,y,x_new,y_new;
           var test;
           var k,j,i;
           var re_factor = (re_max-re_min);
           var im_factor = (im_max-im_min);
           for (var i=0;i<width;i++)
            {
            for (var j=0;j<height;j++)
             {
                 a = re_min+(j*re_factor/height);
                 b = im_min+(i*im_factor/width);
                 x = 0;
                 y = 0;
                 test = 0;
                 for (var k=0;k<iterazioni;k++)
                      {
                      x_new = (x*x)-(y*y)+a;
                      y_new = (2*x*y)+b;
                      if (((x_new*x_new)+(y_new*y_new))>4)
                            {
                              // colora il punto
                              r = k%12;
                              context.beginPath();
                              context.fillRect(i-1,j-1,1,1);
                              context.fillStyle=colori[r];
                              context.stroke();
                              break;
                            }
                      x = x_new;
                      y = y_new;
                      }
             }
           }
      }
}
}
}




giovedì 26 marzo 2020

Log su Ubuntu Touch (Ubports)

Uno degli aspetti piu' critici per sviluppare le applicazione UBPorts con Clickable e' riuscire a fare il debug.  La cosa piu' semplice e' loggarsi in SSH in shell sul tablet ed andare nella directory

/home/phablet/.cache/upstart

in questa directory ci sono i file di log. Il file di log per esempio della applicazione acc2.luca.innocenti sviluppata con Clickable avra' un nome file del tipo application-click-{nome_app}.{versione}.log ovvero

application-click-acc2.luca.innocenti_acc2_1.0.0.log 

Altrimenti si puo' usare la app LogViewer  https://open-store.io/app/logviewer.neothethird ma l'uso e' decisamente piu' scomodo (e con molto meno dettaglio)




mercoledì 25 marzo 2020

Linux Alpine su Ipad

Uno dei miei sogni e' diventato realta', una distribuzione Linux, seppur minima, che gira direttamente su Ipad


Per usare al meglio iSh e' quasi obbligatorio l'uso della tastiera fisica

Il progetto si chiama https://ish.app/ e fa girare una ambiente Alpine Linux in shell con la possibilita' di installare software tramite apk (sono attivi solo i repository main e community, non il world)


il programma e' open source e si puo' installare al momento tramite TestFlight

Editor Nano 
Apk



martedì 24 marzo 2020

Cambio della batteria IPhone SE con sorpresa

Viste le pessime condizioni della batteria del mio Iphone SE mi sono deciso a prendere il coraggio a due mani e provare a sostituire la batteria. Ho visto un po' di tutorial (iFixIt per primo) ed ho iniziato.

Appena sollevato lo schermo con la ventosa la sorpresa....il pulsante Home non si e' sollevato assieme
allo schermo (come era previsto) 


ed al di sotto dello schermo non si vede la batteria ma c'e' una placca metallica che ricopre sia la batteria che tutta l'elettronica




Per scrupolo ho riacceso e si'....il software conferma che si tratta di un Iphone SE

Questo e' cio' che mi sarei dovuto trovare davanti


Come si vede lo schermo di un Iphone originale ha una serie di gancetti ed il pulsante Home rimane solidale con lo schermo



Questi Iphone lo ho comprato anni fa ricondizionato su Ebay ed ha sempre funzionato in modo corretto...mi sa che quanto meno lo schermo era stato sostituito ma non escludo anche altre parti

Quando la batteria morira' del tutto allora ci riprovero' ma per adesso ho rimontato tutto per non fare danni irreversibili (del resto la batteria le sue 15 ore le regge)

lunedì 23 marzo 2020

Errore Pitch, Roll, Azimuth su Android Nexus 5

Volevo fare un po' di test sull'accuratezza dei dati degli accelerometri di un telefono (nello specifico un Nexus 5) e per fare cio' mi sono scritto questa applicazione in Kotlin che cerca di disabilitare il Doze Mode per fare lavorare in continuo la app

Di seguito i risultati



Ogni punto sul grafico e' dato dalla media di 20000 misure ed e' rappresentativo di circa 7.5 minuti

Misura 1
nr punti : 144
durata minuti : 1080
Std.dev pitch : 0.33 gradi decimali
Std.dev roll : 0.36 gradi decimali
St.dev azimuth : 0.65 gradi decimali


Misura 2
nr punti : 39
durata minuti : 273
Std.dev pitch : 0.1 gradi decimali
Std.dev roll : 0.09 gradi decimali
St.dev azimuth : 0.067 gradi decimali

Misura 3
nr punti : 122
durata minuti : 812
Std.dev pitch : 0.19 gradi decimali
Std.dev roll : 0.17 gradi decimali
St.dev azimuth : 0.1 gradi decimali

Misura 4
nr punti : 84
durata minuti : 574
Std.dev pitch : 0.4 gradi decimali
Std.dev roll : 0.14 gradi decimali
St.dev azimuth : 0.21 gradi decimali


In generale la standard deviation rimane sotto (anche abbondantemente) a 0.5 gradi decimali.. non male

L'unico aspetto che mi ha lasciato un po' perplesso e' il fatto che durante la prova 4 le misure evidenziano un chiaro trend crescente





Feature Matching OpenCv

Il problema e' il seguente: trovare le differenze tra le due foto. Le due immagini sono state riprese a distanza di oltre un anno ed il ...