Buy me a coffeeBuy me a coffee

È possibile il reverse engineering di un'app fatta con Codename One per risalire al codice sorgente?

Ultimo aggiornamento: 29 Dicembre 2019
> INDICE DEL CORSO

Avvertenza: questa pagina non rientra nel modulo introduttivo del corso. E' rivolta a chi ha già un po' di esperienza con Codename One.

Argomenti:


È possibile il reverse engineering di un'app fatta con Codename One per risalire al codice sorgente?

Risposta breve: no, in generale la protezione del codice offerta da Codename One è robusta (nel proseguo di questo articolo analizzo le app Android, iOS e Javascript fatte con Codename One), ma ciò non preclude comunque ad un attaccante di studiarsi quel che riesce a decompilare e di provare a modificarlo. Crackers e hackers sono molto appassionati nella loro "professione" e sanno già molto più di quanto si possa insegnare loro: sono capaci di starsene per ore e giorni davanti a un computer finché non riescono a impadronirsi di un sistema. Non sarebbe la prima volta che un ragazzo o una ragazza adolescenti riescano a entrare in sistemi iper-protetti. Neanche i big dell'informatica sono riusciti a prevenire importanti fughe di dati riservati.

Risposta lunga: guardando più in dettaglio la questione, con specifico riferimento alle app fatte con Codename One, posso osservare che:

Negli incasinamenti di codice… trovare una direzione

Ultimo aggiornamento: 2 Gennaio 2020
> INDICE DEL CORSO

Avvertenza: questa pagina non rientra nel modulo introduttivo del corso. E' rivolta a chi ha già un po' di esperienza con Codename One.

How to write good codeDurante le nostre attività di coding, è normale dover modificare il codice scritto da noi (anche a distanza di tempo) o da altri per aggiungere, togliere o modificare funzionalità, correggere bug, tentare migliorie. Il problema è che spesso è difficile capire da che parte iniziare e come proseguire, specialmente su progetti complessi fatti da centinaia di classi e da una moltitudine di metodi interagenti tra di loro. Provo qui a riunire alcune mie riflessioni e indicazioni, riferite alle app multipiattaforma fatte con Codename One, con l’auspicio che almeno uno dei punti sotto indicati possa tornare utile a qualcuno.

In futuro potrei ritoccare questa lista o aggiungere suggerimenti che qualcuno dei miei lettori vorrà condividere. Per il momento non inserisco esempi di codice, questa lista è una sorta di brainstorming personale che regalo ai miei lettori.

Sviluppare app multipiattaforma - Indice del corso introduttivo

Ultimo aggiornamento: 2 Gennaio 2020

Questo è un corso introduttivo molto discorsivo, per chi parte da zero, con esercizi finali, principalmente focalizzato su Codename One.
E' un corso in divenire, nel quale raccolgo articoli scritti in momenti diversi. Probabilmente pubblicherò altri articoli.

Presentazione di questo corso (pubblicata sul blog di Codename One):
"Preliminary course for mobile cross-platform development with Java and Codename One"

Presentazione dell'autore:
"Le mie attività di sviluppatore e di didattica del software".

Modulo Introduttivo

Approfondimenti

Riflessioni varie

Sviluppare app multipiattaforma - Le basi: l’algoritmo e il codice (quarta parte)

Ultimo aggiornamento: 21 Dicembre 2019
> INDICE DEL CORSO
< Articolo precedente: Sviluppare app multipiattaforma - Le basi: l’algoritmo e il codice (terza parte)

Creazione di un'app con Codename OneNel precedente articolo, abbiamo visto quel che occorre, a livello di hardware, software, servizi cloud, manuali, ecc., per iniziare lo sviluppo di app multipiattaforma con Codename One + Java.

Qui do per scontato che tu abbia un'installazione di Netbeans + Oracle Java 8 + Codename One plugin, come da precedenti indicazioni. Riprendo il problema già visto nella seconda parte, quello del calcolo dello spazio percorso da un'automobile, per trasformarlo in un'app molto semplice, per Android e iPhone, qui mostrata nella foto.

Argomenti:


Idee di base della programmazione ad oggetti e il nostro problema dell'automobile

Ci tengo a sottolineare il carattere introduttivo di quanto segue, rimandando alle già citate guide per gli opportuni approfondimenti.

Sviluppare app multipiattaforma - Le basi: l’algoritmo e il codice (terza parte)

Ultimo aggiornamento: 21 Dicembre 2019
> INDICE DEL CORSO
< Articolo precedente: Sviluppare app multipiattaforma - Le basi: l’algoritmo e il codice (seconda parte)

Nel precedente articolo, abbiamo visto un po' di codice iniziale, un assaggino di Java. Qui, invece, mi soffermo su ciò che è necessario prima di andare avanti, al fine di evitare smarrimenti o sgradite sorprese strada facendo.

Argomenti:


Gli attrezzi del mestiere, ovvero la (costosa) dotazione software, hardware e cloud

Per sviluppare app multipiattaforma, un buon ambiente di lavoro potrebbe essere il seguente:

Malattie infettive debellate senza vaccini e malattie create dai vaccini

Ultimo aggiornamento: 13 Dicembre 2019

Malattie infettive (un tempo mortali) debellate senza vaccini, video "COMBATTIAMO LA PAURA - Dario Miedico, a Pensiero Libero - 30/11/2019", fonte:

DOWNLOAD MP4

Riguardo ai dati Istat citati nel video, riporto un grafico con un asse temporale più lungo, che ho preso sul sito ufficiale dell'Istat, intitolato "La mortalità dei bambini ieri e oggi", scritto in collaborazione con l'Unicef (fonte).

A pag. 22, si trova il grafico "Tasso di mortalità sotto i 5 anni in Italia dal 1895 al 2008 - Morbillo", qui riportato con l'aggiunta di una freccia per indicare l'anno in cui è stato reso disponibile il primo vaccino per il morbillo (1963 negli Stati Uniti, in Italia solo successivamente nel 1976, per essere poi raccomandato dal nostro Ministero della Salute nel 1979, quando ormai la malattia - senza vaccino - non era più in problema già da tempo):

Malattie create dai vaccini (a cominciare dalla patologia della scienza, gravemente infettata da falsità, ormai quasi morente), video "La ricerca imbavagliata - Stefano Montanari e Antonietta Gatti", fonte:

DOWNLOAD MP4

Morti da vaccinoComunque i morti da vaccino ci sono e come se ci sono. La foto qui a destra è stata scattata a Verona (fonte)

Rimando ai miei precedenti articoli:

Come scrisse Marcello Pamio: «[...] La cecità dell’essere umano e l’incapacità della “scienza” da lui stesso creata ci hanno impedito di osservare la Natura e la sua perfezione. Ed oggi rimaniamo ciechi di fronte ad evidenze impossibili da non vedere. Interveniamo, senza alcun rispetto, attraverso la chimica in un sistema che usa la chimica come secondo messaggero, senza neppure conoscerne meccanismi, funzionamento e regole. E’ lecito, o forse no qualora vi siano dei sintomi, ma in assenza di un problema alcuno, introdurre sostanze chimiche nel corpo è, se non altro, privo di ogni razionalità. [...]»

Francesco Galgani,
13 dicembre 2019

Sviluppare app multipiattaforma - Le basi: l’algoritmo e il codice (seconda parte)

Ultimo aggiornamento: 20 Dicembre 2019
> INDICE DEL CORSO
< Articolo precedente: Sviluppare app multipiattaforma - Le basi: l’algoritmo e il codice (prima parte)

Nel precedente articolo, ho sinteticamente concettualizzato un algoritmo come un’entità che fa qualcosa e, nella pratica quotidiana, questa entità non è altro che un "pezzo" di codice (detto in maniera estremamente grossolana, ma concreta). Ho poi meglio precisato che un algoritmo è un elenco di istruzioni eseguibili da una macchina, in un tempo finito, per fare una determinata cosa. Non tutti i problemi hanno un algoritmo risolutivo, non sempre tra possibili algoritmi diversi per affrontare lo stesso problema è facile capire qual è il migliore e non sempre ci sono indicazioni o documentazione adeguate sui problemi che dobbiamo affrontare.

In questo articolo faremo un primo assaggio del codice, partendo dal caso semplice del calcolo della spazio percorso da un'automobile.

Argomenti:


Matematica e algoritmi: l'arte perduta di discernere i dati, le incognite e l'algoritmo

Ho un caro ricordo delle ore di matematica alle scuole elementari e medie, sia perché parte della matematica, soprattutto quella algebrica, mi ha sempre affascinato (per chi non lo conosce, segnalo il mio sito www.storia-matematica.net), sia perché l’approccio matematico scolastico da me conosciuto è molto in sintonia con il concetto di algoritmo. Ricordo ancora la maestra alle elementari che, per insegnarci come risolvere i problemi di matematica, dopo aver dato la descrizione del problema, procedeva sempre nell’indicarci quali fossero i dati e quali le incognite, prima di iniziare lo svolgimento vero e proprio; da noi bambini e bambine pretendeva la stessa cosa. Anche alle scuole medie il metodo era sempre lo stesso: dati, incognite e svolgimento.

Nel proseguo dei miei studi, però, già alle scuole superiori l’approccio di identificare dati e incognite, di per sé al limite del banale, ma sempre utile per modellizzare i problemi, andava sfumando, per poi sparire completamente all’università, dove non ho mai visto un docente affrontare un problema matematico (o affrontabile con la matematica, ad es. un problema di fisica) identificando per prima cosa quali fossero i dati e quali le incognite. Ognuno aveva il suo approccio, ognuno faceva come meglio gli pareva… peccato, perché una delle principali cause di smarrimento nella risoluzione dei problemi (compresi i problemi di programmazione) è proprio in una modellizzazione sbagliata o in assunzioni sbagliate. In questo senso, nel titolo di questo paragrafo, ho considerato il discernimento di dati, incognite e svolgimento come un'arte perduta.

Per scrivere algoritmi al computer, è meglio procedere come alle scuole elementari. Faccio un esempio pratico.

Problema:
Un'automobile procede alla velocità costante di 108 km/h. Quanti metri percorre in 10 minuti?

Luce tra le nuvole

Ultimo aggiornamento: 10 Dicembre 2019

Luce tra le nuvole

Nel buio dell’umanità,
triste schiava d’un’avidità,
che ci immonda l’esistenza
e infanga dignità,

prego per noi,
per il presente
e quel che sarà,
affinché sia sorridente,

meglio ancor gioiente,
prodigo di virtù
per l’anima arricchente,
per viver meglio assai di più.

Tra i nuvoloni neri,
carichi d’un folle diluvio,
s’affaccia un sole
che di salvezza è preludio.

Siamo qui per allenare
speranza e voglia d’amare,
ormai le nostre esistenze
non possono che migliorare.

Grazie!

(Francesco Galgani, 9 dicembre 2019, www.galgani.it)

Pagine

Abbonamento a Informatica Libera - Blog di Francesco Galgani RSS