Si parla di IcedTea, della macchina virtuale Java completamente libera e degli altri strumenti. Vengono spiegate le differenze tra lapproccio con interprete, compilatore e macchina virtuale. Si racconta di quali macchine virtuali ci sono per quali linguaggi. Vengono descritte le peculiarit di IcedTea e si prendono in esame le differenze tra HotSpot Zero Assembly con la macchina virtuale di Oracle, HotSpot. Si parla di quali linguaggi possano essere compilati per macchina virtuale Java.
Android is NOT just 'Java on Linux'.
Android uses Linux kernel. But only kernel. I show you how different Android is from normal Linux systems.
Visit this page.
http://kobablog.wordpress.com/2011/05/22/android-is-not-just-java-on-linux/
際際滷 del webinar Intel rivolte a tutti coloro che, avendo gi una conoscenza base della programmazione NDK per Android, vogliono esplorare gli strumenti necessari per compilare codice nativo espressamente dedicato a dispositivi basati su processori Intel. E' affrontato il porting di codice c/c++ per dispositivi basati su architettura Intel originariamente creato su altre architetture. Sono presentati 3 casi duso, mostrando con livelli di difficolt crescenti il processo completo di creazione di una semplice applicazione Android basata su NDK, confrontando i flag di compilazione necessari per ottimizzare un'applicazione Android basata su NDK affinch辿 sia utilizzabile su dispositivi basati su architettura Intel.
Le slide accompagnatorie della presentazione tenuta dal Founder Ruggero Borgonovo durante l'evento "Next Step IBMi" di Faq400, tenuto all'IBM Client Center di Segrate
potete seguire il filmato con lo speech qui:
https://www.youtube.com/watch?v=0SikD-oFggw&feature=youtu.be
Carlo Milanesi, nel Linux Day dedicato al coding, presenta una rassegna dei principali linguaggi di programmazione presenti e passati. Dopo aver elencato i 30 linguaggi di programmazione pi湛 usati in assoluto, ha esposto quali di essi sono pi湛 usati per scrivere software open-source. Inoltre, per ogni linguaggio, ha esposto per quali ambiti applicativi risultano preferibili, in base alle loro caratteristiche tecniche e commerciali.
Implementation of a Brute Force attack on the cryptosystem D.E.S. through an infrastructure of distributed and parallel computing.
Implementazione di un attacco a Forza Bruta sul Crittosistema D.E.S. tramite uninfrastruttura di calcolo distribuito e parallelo
Presentazione architettura ed ambiente di sviluppo per dispositivi mobile dotati di SO Android. Verr mostrata la struttura di un'applicazione creata con l'IDE Eclipse.
An overview of technologies and best practices for the development of a full-stack web application using JavaScript. How to realize an entire Application Server with a single programming language, the use of event-driven logic and the potential of Node.js.
Event: Giffoni Open Makers Day 2013
Speaker: Valentina Pelliccia
Android 竪 un sistema operativo open-source basato su kernel Linux e progettato per dispositivi mobili come smartphone e tablet. Il progetto Open Source Android guidato da Google dispone di una vasta comunit di sviluppatori divenendo in pochi anni uno dei leader nel mercato mobile.
Presentazione per Codemotion Milan 2014
La piattaforma Ubuntu, quali sono le tecnologie utilizzate da Ubuntu per la nuova piattaforma.
Da dove partire a sviluppare nuove app per Ubuntu Touch e Desktop con l'Ubuntu SDK. Piccola introduzione al linguaggio QML.
Come contribuire alle Core Apps e come mettersi in contatto con la community di Ubuntu-it
SkyMedia: La tecnologia al servizio dell'intrattenimentoMavigex srl
油
Mavigex parla al #WhyMCA 2012 e presenta l'architettura del sistema #SkyMedia.
Un gruppo di aziende provenienti da tutta Europa sta mettendo a punto un sistema tecnologicamente innovativo per dare una marcia in pi湛 agli eventi sportivi, combinando tecnologie all'avanguardia come droni volanti, schermi immateriali, telecamere 3D, applicazioni mobili per iPhone iPad e Android e tracciamento delle prestazioni degli atleti in tempo reale.
Tutte queste tecnologie sono combinate assieme per fornire ad atleti e spettatori una visione a 360 gradi dell'evento, con una prospettiva mai vista fino ad ora. Le prime dimostrazioni delle potenzialit di questo sistema sono state messe a disposizione della Maratona di Torino gia' dall'edizione 2011.
Una peculiarit 竪 la potenziale versatilit di tale sistema e la sua applicabilit a diversi scenari sportivi. Altri sport infatti potrebbero trarre vantaggio da queste tecnologie, quali il ciclismo, l'arrampicata sportiva e lo sci.
Il talk illustrer l'architettura e i componenti del sistema, e come sia stato possibile rendere accessibili al grande pubblico tecnologie fino ad ora limitate all'ambito di ricerca.
Maggiori informazioni sul progetto al sito http://ict-skymedia.eu/skymedia/
This document discusses techniques for discovering hostnames and virtual hosts through DNS enumeration, service fingerprints, application layers, and passive methods. It lists tools that can be used for reconnaissance like DNSenum, DNSrecon, Maltego, Nmap, and TheHarvester. The document provides examples of hostname discovery through DNS records, SSL certificates, HTTP response banners, redirects, and public data sources.
Le slide accompagnatorie della presentazione tenuta dal Founder Ruggero Borgonovo durante l'evento "Next Step IBMi" di Faq400, tenuto all'IBM Client Center di Segrate
potete seguire il filmato con lo speech qui:
https://www.youtube.com/watch?v=0SikD-oFggw&feature=youtu.be
Carlo Milanesi, nel Linux Day dedicato al coding, presenta una rassegna dei principali linguaggi di programmazione presenti e passati. Dopo aver elencato i 30 linguaggi di programmazione pi湛 usati in assoluto, ha esposto quali di essi sono pi湛 usati per scrivere software open-source. Inoltre, per ogni linguaggio, ha esposto per quali ambiti applicativi risultano preferibili, in base alle loro caratteristiche tecniche e commerciali.
Implementation of a Brute Force attack on the cryptosystem D.E.S. through an infrastructure of distributed and parallel computing.
Implementazione di un attacco a Forza Bruta sul Crittosistema D.E.S. tramite uninfrastruttura di calcolo distribuito e parallelo
Presentazione architettura ed ambiente di sviluppo per dispositivi mobile dotati di SO Android. Verr mostrata la struttura di un'applicazione creata con l'IDE Eclipse.
An overview of technologies and best practices for the development of a full-stack web application using JavaScript. How to realize an entire Application Server with a single programming language, the use of event-driven logic and the potential of Node.js.
Event: Giffoni Open Makers Day 2013
Speaker: Valentina Pelliccia
Android 竪 un sistema operativo open-source basato su kernel Linux e progettato per dispositivi mobili come smartphone e tablet. Il progetto Open Source Android guidato da Google dispone di una vasta comunit di sviluppatori divenendo in pochi anni uno dei leader nel mercato mobile.
Presentazione per Codemotion Milan 2014
La piattaforma Ubuntu, quali sono le tecnologie utilizzate da Ubuntu per la nuova piattaforma.
Da dove partire a sviluppare nuove app per Ubuntu Touch e Desktop con l'Ubuntu SDK. Piccola introduzione al linguaggio QML.
Come contribuire alle Core Apps e come mettersi in contatto con la community di Ubuntu-it
SkyMedia: La tecnologia al servizio dell'intrattenimentoMavigex srl
油
Mavigex parla al #WhyMCA 2012 e presenta l'architettura del sistema #SkyMedia.
Un gruppo di aziende provenienti da tutta Europa sta mettendo a punto un sistema tecnologicamente innovativo per dare una marcia in pi湛 agli eventi sportivi, combinando tecnologie all'avanguardia come droni volanti, schermi immateriali, telecamere 3D, applicazioni mobili per iPhone iPad e Android e tracciamento delle prestazioni degli atleti in tempo reale.
Tutte queste tecnologie sono combinate assieme per fornire ad atleti e spettatori una visione a 360 gradi dell'evento, con una prospettiva mai vista fino ad ora. Le prime dimostrazioni delle potenzialit di questo sistema sono state messe a disposizione della Maratona di Torino gia' dall'edizione 2011.
Una peculiarit 竪 la potenziale versatilit di tale sistema e la sua applicabilit a diversi scenari sportivi. Altri sport infatti potrebbero trarre vantaggio da queste tecnologie, quali il ciclismo, l'arrampicata sportiva e lo sci.
Il talk illustrer l'architettura e i componenti del sistema, e come sia stato possibile rendere accessibili al grande pubblico tecnologie fino ad ora limitate all'ambito di ricerca.
Maggiori informazioni sul progetto al sito http://ict-skymedia.eu/skymedia/
This document discusses techniques for discovering hostnames and virtual hosts through DNS enumeration, service fingerprints, application layers, and passive methods. It lists tools that can be used for reconnaissance like DNSenum, DNSrecon, Maltego, Nmap, and TheHarvester. The document provides examples of hostname discovery through DNS records, SSL certificates, HTTP response banners, redirects, and public data sources.
Introduzione all'analisi forense nell'informatica. Scopi e
utilizzi. Metodologie e finalita'. Individuazione, acquisizione e
analisi di dati. Tipologie di analisi forense. Svolgimento tecnico
dell'analisi. Tecniche anti-analisi. Strumenti Open Source.
Talk tenuto da Alessandro Tanasi (http://www.tanasi.it)
Il motore di database MySQL, suo funzionamento e utilizzo. Strumenti di amministrazione e ausili per il programmatore.
Talk tenuto da Alessandro Tanasi (http://www.tanasi.it)
Il motore di database MySQL, suo funzionamento e utilizzo. Le novita' introdotte dalla versione 5.
Talk tenuto da Alessandro Tanasi (http://www.tanasi.it)
Introduzione alle metodologie e tipologie di strumenti per il rilevamento di intrusioni informatiche.
Talk tenuto da Alessandro Tanasi (http://www.tanasi.it)
La sicurezza informatica negli uffici, in particolare negli studi legali, dalla sicurezza fisica alla sicurezza dei sistemi.
Un'introduzione ai concetti della sicurezza informatica nell'utilizzo dei sistemi informativi di tutti i giorni.
Talk tenuto da Alessandro Tanasi (http://www.tanasi.it)
Android: Introduzione all'architettura, alla programmazione e alla sicurezza
1. Android
Introduzione allarchitettura, alla
programmazione e alla sicurezza
Alessandro Tanasi - http://www.tanasi.it - alessandro@tanasi.it
2. Fun & profit
Fun
Sviluppo applicazioni
Invenzione di nuove applicazioni per soddisfare
vecchie e nuove esigenze
Attivit di ricerca
Profit
Vendita delle applicazioni
Sviluppo applicazioni su commissione
Vendita o abuso dei risultati di ricerca
Alessandro Tanasi - alessandro@tanasi.it LUG油Trieste
4. Android
Software stack per device mobili
Sistema operativo
Linux con kernel 2.6
Driver per l'hardware (GPS, accelerometri, ..)
Middleware
Librerie
Android runtime
Application framework
Applicazioni
Native: telefono, contatti, browser,
Di terze parti
Alessandro Tanasi - alessandro@tanasi.it LUG油Trieste
5. Kernel
Linux kernel e driver che fanno da hardware
abstraction layer
Core system services per security, memory
management, process management, network
stack
Alessandro Tanasi - alessandro@tanasi.it LUG油Trieste
6. Librerie e runtime
Librerie (per la gran parte in linguaggio
nativo) esposte attraverso l'application
framework
Android runtime: Dalvik Virtual Machine e
sue librerie core
Alessandro Tanasi - alessandro@tanasi.it LUG油Trieste
7. Application framework
API ad alto livello
Le applicazioni native Android e quelle di
terze parti usano le stesse API
Alessandro Tanasi - alessandro@tanasi.it LUG油Trieste
8. Sequenza di avvio
Il bootloader carica il
kernel
Demoni per la
gestione low level
dell'hardware
Zygote e Dalvik VM
Il service manager
viene avviato (binders
e comunicazioni IPC)
Altri manager
App rimanenti
Alessandro Tanasi - alessandro@tanasi.it LUG油Trieste
9. Dalvik Virtual Machine
Bytecode interpreter (no JIT)
Lente CPU (250-500 MHz), poca RAM (64MB)
Senza swap
Register based
Alta densit semantica
Istruzioni speciali
Ottimizzata per istanze multiple
Ottimizzata per avere un memory footprint
minimale
Esegue file .dex su OS POSIX compliant
Si appoggia al kernel per threading e
memory management di basso livello
Alessandro Tanasi - alessandro@tanasi.it LUG油Trieste
10. Dalvik Executable Format
Riduzione delle dimensioni
Sostanziale differenza semantica con il
bytecode Java
Nessuna compressione
Comunque minori di un JAR nel caso medio
Vengono gestiti in modo efficace da mmap()
Dexdump, undx
http://www.dalvikvm.com/
http://sites.google.com/site/io/dalvik-vm-internals
Alessandro Tanasi - alessandro@tanasi.it LUG油Trieste
11. Compilazione e building
Compilazione con il compilatore standard
Java
Conversion in .dex con l'utility dx
Nel caso si usino IPC, processing AIDL
Le risorse sono incluse nel package apk
Alessandro Tanasi - alessandro@tanasi.it LUG油Trieste
13. Android SDK
Android API
Development tools
Emulatore Android
Dalvik Debug Monitoring Service (DDMS)
Documentazione ed esempi
http://developer.android.com/sdk/1.6_r1/index.html
Alessandro Tanasi - alessandro@tanasi.it LUG油Trieste
14. Native Development Kit (NDK)
Permettono l'utilizzo di componenti in codice
nativo ( C o C++)
Cross-toolchains (compilatori, linkers, etc..)
per generare binari ARM
Libc, libm, OpenGL ES 1.1, JNI interface, libz
Non permette di creare applicazione native-
only
Il runtime applicativo rimane la Dalvik VM
http://developer.android.com/sdk/ndk/1.6_r1/index.html
Alessandro Tanasi - alessandro@tanasi.it LUG油Trieste
15. Android Scripting Environment
Programmare in Python, Perlm, Jruby,
BeanShell, Lua..
Per casi particolare in cui bisogna adottare
paradigmi di programmazione diversi da
quelli imposti dall'SDK
Accesso semplificato e non completo alle
API
Es: web server in 4 righe di python
http://code.google.com/p/android-scripting/
Alessandro Tanasi - alessandro@tanasi.it LUG油Trieste
16. Development Tools
Eclipse Plugin: Andreoid Dev Tools
Compila e crea il pacchetto automaticamente
Lancia l'emulatore in debugging mode
CLI: activityCreator.py
Genere la struttura del progetto
Ant build.xml file
IntelliJ project files
DroidDraw, SensorSimulator
Alessandro Tanasi - alessandro@tanasi.it LUG油Trieste
17. Esempio
Alessandro Tanasi - alessandro@tanasi.it LUG油Trieste
19. Lego per costruzioni
Activity: Componente UI (tipicamente una
schermata, presentation layer)
Service: Task in background
Content Provider: Gestisce e condivide dati
tra applicazioni
Intent: Messaggistica asincrona
Intent filter: Dichiarazione XML dei
messaggi che possono essere gestiti
Broadcast Receiver: attende intents
broadcast che corrispondono a certi criteri
(Intent filter)
Manifest: Propriet dell'applicazione
Alessandro Tanasi - alessandro@tanasi.it LUG油Trieste
20. User interface
Composta da oggetti View e ViewGroup (vari
tipi)
Layout definito in file XML
Stringhe memorizzate separatamente
Sottoscrizione agli eventi dell'UI tramite
listener o overriding callback
Definizione dei menu e loro creazione
automatica
Notifiche
Adapter per le viste dinamicamente
Stili e temi
Alessandro Tanasi - alessandro@tanasi.it LUG油Trieste
21. Esempio
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello, I am a TextView" />
<Button android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello, I am a Button" />
</LinearLayout>
Alessandro Tanasi - alessandro@tanasi.it LUG油Trieste
22. Resource e asset
Generalmente sono elementi esterni
referenziati dall'applicazione
Immagini, audio, video, stringhe di testo,
layout, temi
Directory per resource (res/) e directory per
asset (assets/)
La differenza 竪 nel metodo di accesso
I18n
Alessandro Tanasi - alessandro@tanasi.it LUG油Trieste
23. Data Storage
Tecniche differenti per memorizzare dati
Shared preferences: meccanismo per
memorizzare strutture chiavi-valore
SQLite: DBMS relazionale per
memorizzare dati articolati
Files: RW di file sulla memoria locale ed SD
card
Network: Utilizzando java.net.* e
android.net.*
Alessandro Tanasi - alessandro@tanasi.it LUG油Trieste
24. Multimedia
Grafica 2D e grafica 3D con OpenGL ES API
Offre funzioni built-in di encoding/decoding
per alcuni media types
MediaPlayer e MediaRecorder
android.location e Google Maps library
Accelerometro, bussola
Alessandro Tanasi - alessandro@tanasi.it LUG油Trieste
25. AndroidManifest.xml
Ogni applicazione deve avere un
AndroidManifest.xml file
Descrive l'applicazione:
Nome del package Java
Descrive i suoi componenti
Permessi richiesti dall'applicazione
Permessi richiesti per interagire con i suoi
componenti
Opzionali informazioni per testing (profiling)
Dipendenza dalla versione delle android API
Librerie utilizzate
Alessandro Tanasi - alessandro@tanasi.it LUG油Trieste
27. Life Cycle
Le applicazioni running sono gestite in una
gerarchia:
foreground process (priorit critica)
visible process (alta priorit)
service process (bassa priorit)
background process
empty process
Le Activity sono mantenute in un activity
stack (LIFO)
Un activity ha tre stati: running o active,
paused, stopped
Alessandro Tanasi - alessandro@tanasi.it LUG油Trieste
28. Life cycle in dettaglio
http://code.google.com/android/reference/android/app/Activity.html#ActivityLifecycle
Alessandro Tanasi - alessandro@tanasi.it LUG油Trieste
29. Pubblicare un'applicazione
Iscriversi al market come sviluppatore (25)
Dare un numero di versione
Firmare il pacchetto
Pubblicare l'applicazione
Google trattiene il 30% degli incassi
Alessandro Tanasi - alessandro@tanasi.it LUG油Trieste
31. Android Security Model
Ogni processo viene eseguito in una DVM
separata
File non condivisi tra applicazioni
Linux + Android permission model
UID e GID distinti assegnati all'installazione
Stack address randomization
Alessandro Tanasi - alessandro@tanasi.it LUG油Trieste
32. Android Permissions
Limite alle funzionalit di un software:
android.permission
Granularit sulle azioni e sull'accesso ai dati
Specificate nel file manifest
<uses-permission
android:name="android.permission.READ_CONTACTS">
</uses-permission>
<uses-permission
android:name="android.permission.WRITE_CONTACTS">
</uses-permission>
Alessandro Tanasi - alessandro@tanasi.it LUG油Trieste
33. Ma ...
Bypass memory protections
Vunerabilit riscontrate
La sandbox 竪 abbastanza granulare per far
girare applicazioni non trusted?
Marketing profiling, E.T. chiama sempre casa
Non conoscenza del funzionamento interno
di un'applicazione (client HTTP o HTTPS?)
Rootkit, managed code rootkit
Alessandro Tanasi - alessandro@tanasi.it LUG油Trieste
35. Conclusioni
L'architettura 竪 disegnata pensando anche
allo sviluppatore
Lo sviluppo 竪 semplice e veloce
Sistemi di security granulari allo scopo di
isolare le applicazioni in una sandbox
Lo sviluppo pu嘆 essere divertente e redditizio
C'竪 ampio spazio per la ricerca
Alessandro Tanasi - alessandro@tanasi.it LUG油Trieste