Translate

venerdì 31 maggio 2013

Kcal Calculator v2

Salve a tutti.
Purtroppo, nonostante mi riprometta continuamente di dedicare maggior tempo a questo mio piccolo blog, non riesco mai per
svariati motivi.
Durante gli scorsi mesi, ho comunque portato avanti alcuni progetti. Il più interessante dei quali è ancora in corso d'opera e vi anticipo che riguarda l'ambito della sicurtezza.
Nel frattempo ho pensato di proporvi la nuova versione del mio Kcal Calculator, a cui, a seguito di diverse richieste, ho finalmente creato un'idonea, seppure minimale, interfaccia grafica.

La cosa interessante è che ho deciso di cogliere l'occasione per provare ad esplorare Autoit, un linguaggio di scripting per sistemi Windows che si sta diffondendo sempre più grazie alla propria semplicità d'uso.
Se voleste cimentarvi con questo simpatico e immediato linguaggio, è sufficiente che scarichiate editor e compilatore direttamente dal sito ufficiale.

Kcal Calculator è un programma ideato per permettere di calcolare facilmente e velocemente il proprio fabbisogno calorico giornaliero, permettendovi di regolare la vostra alimentazione di conseguenza così da mantenere una discreta forma fisica.
Originariamente nato pensando al settore del fitness è però adatto ad ogni tipologia di utente.

Come al solito vi lascio sia un link per il download diretto dell'applicativo, sia il codice sorgente per chi volesse andare oltre il semplice uso del programma.





Le informazioni divulgate sono da ritenersi a scopo puramente informativo. L'autore non si assume nessuna responsabilità riguardante l'uso improprio-illegale delle stesse.

venerdì 25 gennaio 2013

BodyBuilding Kcal Calculator v1.0

Salve a tutti miei cari amici e lettori.
Probabilmente, essendo passato molto tempo dall'ultimo articolo pubblicato, vi stupirete che scelga di riprendere a scrivere proprio con un articolo che interessa in particolare i pochi praticanti di quello che è uno degli sport più discussi e fraintesi dei nostri giorni. Ma essendomi ultimamente interessato all'argomento e trovandolo molto interessante ho pensato di scrivere qualcosa in proposito.

Ebbene si, BodyBuilding è troppo spesso sinonimo di anabolizzanti e utilizzo di sostanze dopanti. Bisogna però sapere che non tutti i praticanti ne fanno uso. Vi è una branca di questo sport, il Natural BodyBuilding, dove l'utilizzo delle suddette sostanze è vietato e dove i concorrenti gareggiano senza mettere a rischio la propria salute.

In ogni caso, sia che si appartenga all'una o all'altra categoria, se si vuole progredire ed ottenere dei buoni risultati, è necessario curare ogni aspetto della propria vita.
In primis è necessario abbandonare ogni attività poco salutare, che si tratti dell'alcol serale o della discoteca fino alle 3 del mattino, curare la propria alimentazione in maniera quasi maniacale e assicurarsi un numero sufficiente di ore di sonno.
Per ottimizzare al meglio tutto questo è necessario, qualora si sia interessati a raggiungere il massimo del proprio potenziale, avere una buona conoscenza di biochimica e biomeccanica. Ecco perché, al di la della predisposizione genetica, coloro che si allenano sono molti, ma i campioni sono veramente pochissimi.
Elemento di primaria importanza è la dieta. Se infatti ci si allena in palestra, ci si sviluppa a riposo e solo se si ha il necessario apporto di macro e micro nutrienti. Un eccesso porterebbe ad un aumento di massa grassa, una mancanza ad un rallentamento, o addirittura allo stop, dello sviluppo muscolare.
Fondamentale è quindi stabilire il proprio fabbisogno calorico giornaliero.

Leggendo sui forum del settore molte richieste su come sia possibile calcolarlo e vedendo che le equazioni necessarie, per quanto semplici, scoraggino dal proprio intento gli utenti meno determinati, ho pensato di automatizzare il tutto.
Per il calcolo vi verranno chiesti alcuni dati, tra cui età, sesso, altezza, ore di allenamento aerobico, ore di allenamento anaerobico, stile di vita....
Una volta ottenuti, questi dati, vengono utilizzati come variabili in alcune equazioni, sviluppate dal Sistema Sanitario Nazionale, che utilizzano alcuni parametri standardizzati (e quindi non precisi al 100%).
Il risultato dovrebbe essere una buona approssimazione del proprio fabbisogno giornaliero in Kcal. Naturalmente non ha la presunzione di sostituire un esame specifico in laboratorio da parte di personale specializzato ma per coloro senza particolari problemi nutrizionali o senza pretese agonistiche dovrebbe andare benone.
Come sempre sono felice di ricevere il vostro feedback ed eventuali critiche o consigli.

Vi fornisco sia un link al download diretto sia l'accesso al codice sorgente.





Le informazioni divulgate sono da ritenersi a scopo puramente informativo. L'autore non si assume nessuna responsabilità riguardante l'uso improprio-illegale delle stesse.

domenica 4 novembre 2012

2° Lezione: Architettura dei processori, Assembly x86 e tecniche di Exploiting

Dopo diverso tempo senza la pubblicazione di alcun articolo, eccoci giunti finalmente a questa 2° lezione. Proseguiremo nei nostri studi ed inizieremo ad utilizzare un debugger, il noto GDB, per analizzare i diversi aspetti dell'esecuzione di un programma. Se non aveste ancora letto la 1° lezione, vi invito a farlo.

Cos'è dunque un debugger?
Un debugger è il coltellino svizzero del programmatore e dell'appassionato di sicurezza.
Più esattamente un debugger permette di analizzare l'esecuzione di un programma in ogni suo aspetto, analizzare come la memoria viene utilizzata e modificare a propria scelta ogni dettaglio esaminato.
Per questi motivi può essere utilizzato per risolvere problemi presenti nei propri softwares che potrebbero essere altrimenti difficilmente individuabili.
Oltre a questa funzione originaria per cui fu ideato, può essere anche utilizzato per effettuare test al fine di trovare vulnerabilità e generare risultati imprevisti dal programmatore del software analizzato.

GDB è un programma gratuito e multipiattaforma, solitamente è incluso nell'istallazione di GCC e di altri tools per sviluppatori.
Vediamo quindi come utilizzarlo al fine di analizzare un semplice programma che avevamo già introdotto la scorsa lezione:
Come vedete si tratta di un semplice programma che si occupa di stampare a schermo la scritta "Hello, world!" per 10 volte. Una volta salvato il sorgente compilatelo con il seguente comando:
gcc sorgente.c -o a.out -g
Colgo l'occasione per ricordarvi che il comando -g serve per includere nell'eseguibile alcune informazioni utili per un eventuale processo di debugging.
Ora che abbiamo sia l'eseguibile da analizzare che il debugger, iniziamo a lavorare. Per farlo diamo il comando:
gdb a.out -q
Come si può notare la sintassi è molto semplice. Si richiama il programma e si indica il nome del file da analizzare. L'output sarà il seguente:
$ gdb a.out -q
Reading symbols from /root/Desktop/a.out...done.
(gdb)

Vi elenco ora qualche simpatico comando che GDB mette a nostra disposizione:
  • list                                              Mostra il file sorgente del file analizzato
  • disassemble <funzione>       Restituisce il codice disassemblato della funzione
  • break <funzione>                   Imposta un breakpoint all'inizio della funzione
  • run                                              Avvia il programma target
Oltre a queste istruzioni principali ve ne sono altre utilizzate per analizzare e modificare la memoria, i registri e l'esecuzione stessa.
Prima di illustrarvi anche quelle iniziamo a comprendere meglio queste prime quattro. Nel mentre ve lo spiego vi invito a provare di persona sul nostro programmino, così che "toccando con mano" vi rimanga più chiaramente impresso.

Il comando "list" restituisce il sorgente del file analizzato solo qualora sia stato incluso nell'eseguibile. Per essere più chiaro se non avessimo utilizzato il parametro "-g" durante la compilazione con GCC, questo comando non funzionerebbe.

Il comando "disassemble <funzione>" restituisce il codice disassemblato, quindi in linguaggio Assembly, della funzione chiamata. Proviamo a fare un tentativo, digitate:
disassemble main
L'output sarà simile a questo:
Grazie alla precedente lezione riconoscerete chiaramente anche voi che si tratta di codice assembly.

Il comando "break <funzione>" imposta, come già detto, un breakpoint all'inizio della funzione. Ma cos'è un breakpoint? Un breakpoint è semplicemente un indicazione per il compilatore che gli dice di arrestare l'esecuzione del programma, non appena ne incontra uno. In realtà l'esecuzione non viene propriamente arrestata, ma viene semplicemente messa in pausa, così da poter proseguire quando necessario. Questo ci permette di analizzare profondamente il processo e le memorie passaggio dopo passaggio, istruzione dopo istruzione, comprendendone a pieno i meccanismi.

Il comando "run" avvia il programma all'interno del disassembler, permettendoci di analizzarne l'esecuzione. Solitamente quindi è necessario impostare dei breakpoint nei punti che riteniamo più interessanti, prima di utilizzare questo comando.

Facciamo un esempio. Digitiamo in sequenza questi 3 comandi:
break main
run
info register eip
Il risultato sarà qualcosa di simile:
Come potete notare, tralasciando il warning, il programma ci informa su dove è stato impostato il breakpoint, fornendoci la riga di sorgente relativa.
Successivamente ho utilizzato il comando: info register eip
Il comando vero e proprio è solamente "info", che ci permette di ottenere informazioni su di un determinato elemento. Indicando "register" gli indichiamo che vogliamo informazioni su di un registro, e con "eip" specifichiamo quale.

Come abbiamo imparato la scorsa lezione il registro EIP o "Istruction Pointer", indica quale istruzione deve essere eseguita. In questo caso, siccome l'esecuzione del programma è stata bloccata dal nostro breakpoint prima dell'esecuzione della funzione "main", l'istruzione a cui il registro punta, ossia quella memorizzata all'indirizzo "0x8048435", è la prima istruzione della funzione "main".
Se adesso andate a controllare il risultato del precedente "disassemble main", noterete che prima di questa istruzione ve ne sono altre, queste istruzioni precedenti sono dette il "prologo della funzione". Ne tratteremo più avanti poiché al momento esula eccessivamente dalla nostra spiegazione e poiché essendo generate automaticamente dal compilatore, sono solitamente di scarso interesse.

Vediamo adesso come analizzare un indirizzo della memoria e scoprire che cosa contiene.
Per fare questo esiste il comando "examine" che per comodità, come molti altri comandi, può essere abbreviato, è quindi sufficiente scrivere "x" seguito dall'indirizzo target e da alcuni parametri.
Purtroppo oggi non ho il modo ed il tempo di illustrarvi i molti e diversi parametri di questo comando. Vi mostrerò però una delle molte possibilità.
Proviamo a digitare:
x/i 0x8048435
Prima di analizzarne l'output vediamo un attimo la sintassi del comando. "x" richiama examine, lo slash indica che successivamente specificheremo sotto che forma vogliamo visualizzare i dati contenuti nella memoria. Utilizzando "/i" indichiamo che vogliamo vederli sotto forma di istruzioni, anche se come vedremo in seguito, le possibilità sono molte e diverse, ad esempio con "/x" lo vedremmo sotto forma esadecimale. In fine "0x8048435" è semplicemente l'indirizzo da analizzare. Potremmo anche indicare direttamente il registro poiché il debugger autonomamente ci restituisce il valore a cui esso sta puntando. Quindi in questo caso scrivere "x/i 0x8048435" o scrivere "x/i $eip" produce lo stesso risultato.
Ecco in fine l'output:
Come potete notare l'istruzione restituita è, confrontandola con il codice disassemblato, correttamente la prima della funzione main.

Purtroppo anche questa volta siamo giunti alla fine, alla prossima allora!



Le informazioni divulgate sono da ritenersi a scopo puramente informativo. L'autore non si assume nessuna responsabilità riguardante l'uso improprio-illegale delle stesse.

martedì 25 settembre 2012

TraiDoor v1.5: C FUD reverse backdoor + keylogger

Salve a tutti!
Ormai da tempo sono finite le vacanze estive ed il mio tempo libero va sempre più assottigliandosi. E' questo il motivo per cui mi ritrovo a poter scrivere meno spesso.
Oggi, dopo molto tempo che non pubblicavo qualche articolo, vi presento TraiDoor v1.5

TraiDoor v1.5

Si tratta di una leggerissima backdoor interattiva scritta in C.
La sua compatibilità sia con sistemi Unix che con sistemi Windows la rende molto versatile.
E' completamente undetected da qualsiasi antivirus e si occupa di bypassare eventuali firewalls.
Come ogni backdoor è composta da 2 differenti parti:
  1. Il client   (permette di controllare la backdoor da remoto)
  2. Il server  (la backdoor vera e propria che infetterà il sistema)
Mantenendo la logica della precedente versione il codice è stato però quasi completamente riscritto, presentandosi molto più performante e stabile. Numerosi bug sono stati fixati e alcune nuove funzioni inserite. Per avere un'idea più precisa di quest'ultime continuate a leggere.
Funzioni gia presenti nelle precedenti versioni:
  • Esecuzione di comandi direttamente nella shell di sistema
  • DNS Spoofer, per dirottare la navigazione del sistema infettato
  • DNS Cleaner, per ripristinare la cache DNS
  • Elencatore di processi attivi
  • Terminatore di processi attivi
  • Utilizzo di connessione reverse per bypassare eventuali firewalls e routers
Nuove funzioni aggiunte:
  • Uploader per caricare files sul sistema infettato
  • Downloader per scaricare files dal sistema infettato
  • Keylogger  (attualmente compatibile solo con sistemi Win)
  • Possibilità di utilizzare servizi quali NO-IP per ricevere le connessioni

Requisiti per la compilazione:
  • Un compilatore (consiglio l'uso di GCC disponibile sia su Unix che su Win)
  • Su qualsiasi sistema si compili è necessario utilizzare il parmatero -lpthread
  • Se si compila su sistemi Windows utilizzando GCC bisogna utilizzare anche il parametro -lws2_32

Server:
Client:


Le informazioni divulgate sono da ritenersi a scopo puramente informativo. L'autore non si assume nessuna responsabilità riguardante l'uso improprio-illegale delle stesse.

venerdì 7 settembre 2012

[PY] CoD MW2 Auto QuickScoper v1

Salve a tutti!
Tra tutti i miei hobby quello più deleterio è sicuramente legato ai videogiochi. Ecco quindi che oggi, coniugando la mia migliore passione (la programmazione) al mio peggior hobby, ho pensato bene di creare un "hack" per Call of Duty Modern Warfare 2.

Vi presento quindi Auto QuickScoper v1.
Questo "hack" o "cheat" o "trucco" o come vogliate chiamarlo, si occuperà di rendere perfetti i vostri QuickScope. Non prenderà la mira per voi, ma si occuperà della parte più difficile, ossia calcolare il giusto tempismo mentre eseguirà automaticamente le seguenti operazioni:
  • Aprire il mirino
  • Sparare
  • Chiudere il mirino
Questo vi permetterà di sparare sempre in maniera perfetta e precisa. Come molti dei miei progetti, li sviluppo ma non li utilizzo, in ogni caso è divertente se volete strabiliare un vostro amico con la vostra abilità o se volete imparare a simulare la pressione di tasti della tastiera utilizzando Python.

Per chi non lo sapesse il QuickScope è una tecnica che in ambito videoludico indica lo sparare con un fucile da cecchino prima ancora di aver completamente aperto l'ottica e preso la mira.
Esempio:
 


Ed ecco il sorgente del programma:



Le informazioni divulgate sono da ritenersi a scopo puramente informativo. L'autore non si assume nessuna responsabilità riguardante l'uso improprio-illegale delle stesse.

Twitter Delicious Facebook Digg Stumbleupon Favorites More