Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
peer-tweet — Feed decentralizzati che utilizzano il DHT di BitTorrent. Idea di Arvid e The_8472 "DHT RSS feeds" http://libtorrent.org/dht_rss.html | Kitploit
Strumenti/GitHubGitHub/lmatteis/peer-tweet
OSINT (Open Source Intelligence)Raccolta InformazioniCrittografia
GitHublmatteis/peer-tweet

peer-tweet

Feed decentralizzati che utilizzano il DHT di BitTorrent. Idea di Arvid e The_8472 "DHT RSS feeds" http://libtorrent.org/dht_rss.html

Vedi Repository
8643410 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

PeerTweet

Feed decentralizzati utilizzando il DHT di BitTorrent. Idea di Arvid e The_8472 "DHT RSS feeds" http://libtorrent.org/dht_rss.html

Schermata

PeerTweet

Collegamenti rapidi

  • Scarica gli ultimi binari dalla pagina delle release.
  • Trova e condividi indirizzi PeerTweet dalla pagina degli indirizzi.

Cos'è PeerTweet?

Il DHT di BitTorrent è probabilmente una delle reti più resilienti e resistenti alla censura su internet. PeerTweet utilizza questa rete per permettere agli utenti di trasmettere tweet a chiunque stia ascoltando. Quando avvii PeerTweet, genera un hash @33cwte8iwWn7uhtj9MKCs4q5Ax7B che è simile al tuo nome utente Twitter (es. @lmatteis). La differenza è che hai il controllo totale su ciò che può essere pubblicato perché solo tu possiedi la chiave privata associata a tale indirizzo. Inoltre, grazie al DHT, ciò che pubblichi non può essere fermato da alcun governo o istituzione.

Una volta trovati altri indirizzi PeerTweet di cui ti fidi (e che non sono spam), puoi seguirli. Questo configura il tuo client per memorizzare i tweet di quell'utente e trasmetterli al DHT ogni tanto per mantenere vivo il loro feed. Questa cooperazione di seguire account permette ai feed di rimanere attivi nella rete DHT. Il protocollo PeerTweet pubblica anche le tue azioni come I just followed @919c.. o I just liked @9139.. e I just retweeted @5789... Questo offre la possibilità a nuovi utenti di trovare altri indirizzi di cui fidarsi; se mi fido dell'utente @6749.. e lui segue @9801.., allora posso segnare @9801.. come non spam. Questa idea di twittare pubblicamente le proprie azioni permette anche una potente analisi futura di crawling di questo grafo sociale.

Come funziona?

PeerTweet segue la maggior parte delle linee guida di implementazione fornite dalla proposta DHT RSS feed http://libtorrent.org/dht_rss.html. Lo abbiamo implementato sopra l'attuale proposta BEP44 che fornisce funzionalità get() e put() sulla rete DHT. Ciò significa che, invece di usare il DHT solo per annunciare quali torrent si stanno scaricando, possiamo usarlo anche per mettere e ottenere piccole quantità di dati (circa 1000 byte).

PeerTweet distingue due tipi di elementi:

  1. La testa del tuo feed. Che è l'unico elemento mutabile del tuo feed, ed è ciò che i tuoi follower usano per scaricare i tuoi elementi e trovare aggiornamenti. L'hash della tua testa è ciò che i tuoi follower usano per sapere degli aggiornamenti - è la tua identità e può essere usato per far conoscere il tuo feed ad altri (simile al tuo handle @lmattes). La testa del feed è approssimativamente strutturata come segue:
root@kitploit:~
{
  "d": <unsigned int of minutes passed from epoch until head was modified>,
  "next": <up to 80 bytes of the next 4 items in the feed, directly 1,2,3 and 4 hops away. 20 bytes each.>,
  "n": <utf8 name of the feed>,
  "a": <utf8 http url of an image to render as your avatar>,
  "i": <utf8 description of your feed>
}
  1. I tuoi elementi del feed. Questi sono elementi immutabili che contengono i tuoi tweet effettivi e sono strutturati:
root@kitploit:~
{
  "d": <unsigned int of minutes passed from epoch until when item was created>,
  "next": <up to 80 bytes of the next 4 items in the feed, 1, 2, 4 and 8 hops away. 20 bytes each.>,
  "t": <utf8 contents of your tweet. up to 140 chars>
}

Skip lists

Il motivo per cui gli elementi hanno più puntatori ad altri elementi nella lista è per consentire ricerche parallele. La nostra implementazione della skip list differisce dalle implementazioni regolari ed è mirata alle ricerche di rete, dove ogni elemento contiene 4 puntatori in modo che quando riceviamo un elemento, possiamo emettere 4 richieste get() in parallelo verso altri elementi della lista. Questo è cruciale per accedere ai feed degli utenti in modo tempestivo perché le ricerche DHT hanno tempi di risposta imprevedibili.

Seguire

Quando segui qualcuno, stai essenzialmente informando il tuo client di scaricare il suo feed e ripubblicarlo ogni tanto. La rete DHT non è persistente, e gli elementi escono rapidamente dalla rete dopo circa 30 minuti. Per mantenere le cose in vita, avere molti follower è cruciale per il tempo di attività del tuo feed. Altrimenti puoi comunque avere un server da qualche parte in esecuzione 24/7 che mantiene vivo il tuo feed ripubblicando gli elementi ogni 30 minuti.

Installazione

Installa le dipendenze.

root@kitploit:~
$ npm install

Installazione dei moduli nativi

L'app viene fornita con alcuni binding nativi. Ho usato questo codice per farla funzionare sul mio computer:

Source: https://github.com/atom/electron/blob/master/docs/tutorial/using-native-node-modules.md

root@kitploit:~
npm install --save-dev electron-rebuild

# Every time you run "npm install", run this
./node_modules/.bin/electron-rebuild

# On Windows if you have trouble, try:
.\node_modules\.bin\electron-rebuild.cmd

Per far funzionare ed25519-supercop su Windows ho anche dovuto installare node-gyp e tutto il materiale Python2.7 e Visual Studio di cui node-gyp ha bisogno: https://github.com/nodejs/node-gyp

Poi esegui questi comandi per compilarlo su Windows:

root@kitploit:~
npm install -g node-gyp
cd ./node_modules/ed25519-supercop/
HOME=~/.electron-gyp node-gyp rebuild --target=0.36.9 --arch=x64 --dist-url=https://atom.io/download/atom-shell

Esecuzione

Esegui questi due comandi simultaneamente in schede della console diverse.

root@kitploit:~
$ npm run hot-server
$ npm run start-hot

Nota: richiede una versione di node >= 4 e una versione di npm >= 2.

Attiva/disattiva Chrome DevTools

  • OS X: Cmd Alt I o F12
  • Linux: Ctrl Shift I o F12
  • Windows: Ctrl Shift I o F12

Vedi electron-debug per maggiori informazioni.

Attiva/disattiva Redux DevTools

  • Tutte le piattaforme: Ctrl+H

Vedi redux-devtools-dock-monitor per maggiori informazioni.

Esterni

Se usi librerie di terze parti che non possono essere costruite con webpack, devi elencarle nel tuo webpack.config.base.js:

root@kitploit:~
externals: [
  // put your node 3rd party libraries which can't be built with webpack here (mysql, mongodb, and so on..)
]

Puoi trovare quelle righe nel file.

Supporto per CSS Modules

Importa file css come css-modules usando .module.css.

Creazione del pacchetto

root@kitploit:~
$ npm run package

Per creare pacchetti per tutte le piattaforme:

root@kitploit:~
$ npm run package-all

Opzioni

  • --name, -n: Nome dell'applicazione (predefinito: ElectronReact)
  • --version, -v: Versione di Electron (predefinito: ultima versione)
  • --asar, -a: Supporto asar (predefinito: false)
  • --icon, -i: Icona dell'applicazione
  • --all: crea pacchetto per tutte le piattaforme

Usa electron-packager per creare il pacchetto della tua app con le opzioni --all per le piattaforme darwin (osx), linux e win32 (windows). Dopo la build, li troverai nella cartella release. Altrimenti, ne troverai solo uno per il tuo sistema operativo.

test, tools, release folder e devDependencies in package.json saranno ignorate per impostazione predefinita.

Moduli ignorati predefiniti

Aggiungiamo alcune peerDependencies dei moduli all'opzione di ignorare come predefinito per la riduzione delle dimensioni dell'applicazione.

  • babel-core è richiesto da babel-loader e la sua dimensione è ~19 MB
  • node-libs-browser è richiesto da webpack e la sua dimensione è ~3MB.

Nota: Se vuoi usare uno dei moduli sopra in fase di esecuzione, ad esempio: require('babel/register'), dovresti spostarli da devDependencies a dependencies.

Creazione di app Windows da piattaforme non Windows

Consulta Building windows apps from non-windows platforms.

Interfaccia utente simile a nativa

Se vuoi avere un'interfaccia utente simile a nativa (OS X El Capitan e Windows 10), react-desktop potrebbe fare al caso tuo.

Manutentori

Questo è un fork del progetto https://github.com/chentsulin/electron-react-boilerplate.

Licenza

MIT

Scarica lo strumento