Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
peer-tweet — BitTorrent의 DHT를 사용하는 탈중앙화 피드. Arvid와 The_8472의 "DHT RSS 피드"에서 아이디어를 얻음 http://libtorrent.org/dht_rss.html | Kitploit
도구/GitHubGitHub/lmatteis/peer-tweet
OSINT (Open Source Intelligence)Information GatheringCryptography
GitHublmatteis/peer-tweet

peer-tweet

BitTorrent의 DHT를 사용하는 탈중앙화 피드. Arvid와 The_8472의 "DHT RSS 피드"에서 아이디어를 얻음 http://libtorrent.org/dht_rss.html

저장소 보기
8643410년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

PeerTweet

BitTorrent의 DHT를 사용하는 분산형 피드. Arvid와 The_8472의 "DHT RSS 피드" 아이디어를 기반으로 합니다. http://libtorrent.org/dht_rss.html

스크린샷

PeerTweet

빠른 링크

  • 릴리즈 페이지에서 최신 바이너리를 다운로드하세요.
  • 주소 이슈 페이지에서 PeerTweet 주소를 찾고 공유하세요.

PeerTweet이란 무엇인가요?

BitTorrent의 DHT는 아마도 인터넷에서 가장 탄력적이고 검열에 강한 네트워크 중 하나일 것입니다. PeerTweet은 이 네트워크를 사용하여 사용자가 청취 중인 모든 사람에게 트윗을 브로드캐스트할 수 있도록 합니다. PeerTweet을 시작하면 Twitter 사용자 이름(예: @lmatteis)과 유사한 해시 @33cwte8iwWn7uhtj9MKCs4q5Ax7B가 생성됩니다. 차이점은 해당 주소와 연결된 개인 키를 소유한 사람만 게시할 수 있는 내용을 완전히 제어할 수 있다는 것입니다. 또한 DHT 덕분에 게시한 내용은 어떤 정부나 기관도 막을 수 없습니다.

신뢰할 수 있는 (스팸이 아닌) 다른 PeerTweet 주소를 찾으면 팔로우할 수 있습니다. 그러면 클라이언트가 해당 사용자의 트윗을 저장하고 DHT에 주기적으로 다시 브로드캐스트하여 피드를 계속 유지하게 됩니다. 이러한 계정 팔로우 협력을 통해 DHT 네트워크에서 피드가 살아 있을 수 있습니다. PeerTweet 프로토콜은 또한 I just followed @919c.. 또는 I just liked @9139.., I just retweeted @5789..와 같은 사용자의 행동을 게시합니다. 이를 통해 새 사용자가 신뢰할 수 있는 다른 주소를 찾을 수 있습니다. 사용자 @6749..를 신뢰하고 해당 사용자가 @9801..을 팔로우한다면, @9801..을 스팸이 아닌 것으로 표시할 수 있습니다. 이렇게 공개적으로 행동에 대해 트윗하는 아이디어는 향후 소셜 그래프에 대한 강력한 크롤링 분석을 가능하게 합니다.

어떻게 작동하나요?

PeerTweet은 DHT RSS 피드 제안(http://libtorrent.org/dht_rss.html)에서 제공하는 대부분의 구현 지침을 따릅니다. 현재 DHT 네트워크에서 get() 및 put() 기능을 제공하는 BEP44 제안 위에 구현했습니다. 즉, DHT를 현재 다운로드 중인 토렌트를 알리는 데만 사용하는 대신 작은 양의 데이터(약 1000바이트)를 put 및 get하는 데도 사용할 수 있습니다.

PeerTweet은 두 가지 유형의 항목을 구분합니다.

  1. 피드 헤드. 피드에서 유일하게 변경 가능한 항목이며, 팔로워가 항목을 다운로드하고 업데이트를 찾는 데 사용합니다. 헤드의 해시는 팔로워가 업데이트를 알게 하는 데 사용되며, 이는 사용자의 신원이며 피드를 다른 사람에게 알리는 데 사용할 수 있습니다(@lmattes 핸들과 유사). 피드 헤드는 대략 다음과 같이 구성됩니다.
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. 피드 항목. 실제 트윗을 포함하는 변경 불가능한 항목이며 구조는 다음과 같습니다.
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>
}

스킵 리스트

항목이 목록의 다른 항목에 여러 포인터를 갖는 이유는 병렬 조회를 허용하기 위해서입니다. 스킵 리스트 구현은 일반적인 구현과 다르며 네트워크 조회를 대상으로 합니다. 각 항목에는 4개의 포인터가 포함되어 있어 항목을 수신할 때 목록의 다른 항목에 대해 4개의 get() 요청을 병렬로 발행할 수 있습니다. DHT 조회의 응답 시간을 예측할 수 없기 때문에 사용자 피드에 적시에 액세스하려면 이 기능이 중요합니다.

팔로우

누군가를 팔로우하면 기본적으로 클라이언트가 해당 피드를 다운로드하고 일정 시간마다 다시 게시하도록 지시합니다. DHT 네트워크는 영구적이지 않으며, 항목은 약 30분 후에 네트워크에서 빠르게 사라집니다. 피드를 계속 살아 있게 하려면 많은 팔로워가 중요합니다. 그렇지 않으면 피드를 30분마다 다시 게시하여 24시간 내내 실행되는 서버를 보유할 수도 있습니다.

설치

의존성을 설치합니다.

root@kitploit:~
$ npm install

네이티브 모듈 설치

앱에는 일부 네이티브 바인딩이 포함되어 있습니다. 제 컴퓨터에서 실행하기 위해 다음 코드를 사용했습니다.

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

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

# "npm install"을 실행할 때마다 다음을 실행하세요.
./node_modules/.bin/electron-rebuild

# Windows에서 문제가 있는 경우 시도해보세요.
.\node_modules\.bin\electron-rebuild.cmd

Windows에서 ed25519-supercop를 작동시키려면 node-gyp와 node-gyp가 요구하는 모든 Python2.7 및 Visual Studio 구성 요소도 설치해야 했습니다. https://github.com/nodejs/node-gyp

그런 다음 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

실행

다음 두 명령을 동시에 다른 콘솔 탭에서 실행합니다.

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

참고: node 버전 >= 4 및 npm 버전 >= 2 필요.

Chrome DevTools 전환

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

자세한 내용은 electron-debug를 참고하세요.

Redux DevTools 전환

  • 모든 플랫폼: Ctrl+H

자세한 내용은 redux-devtools-dock-monitor를 참고하세요.

외부 모듈

webpack으로 빌드할 수 없는 타사 라이브러리를 사용하는 경우 webpack.config.base.js에 나열해야 합니다:

root@kitploit:~
externals: [
  // webpack으로 빌드할 수 없는 node 타사 라이브러리를 여기에 넣으세요 (mysql, mongodb 등)
]

해당 줄은 파일에서 찾을 수 있습니다.

CSS 모듈 지원

.module.css를 사용하여 css-modules로 css 파일을 가져옵니다.

패키징

root@kitploit:~
$ npm run package

모든 플랫폼용 앱 패키징:

root@kitploit:~
$ npm run package-all

옵션

  • --name, -n: 애플리케이션 이름 (기본값: ElectronReact)
  • --version, -v: Electron 버전 (기본값: 최신 버전)
  • --asar, -a: asar 지원 (기본값: false)
  • --icon, -i: 애플리케이션 아이콘
  • --all: 모든 플랫폼 패키징

electron-packager를 --all 옵션과 함께 사용하여 darwin (osx), linux, win32 (windows) 플랫폼용 앱을 패키징합니다. 빌드 후 release 폴더에서 찾을 수 있습니다. 그렇지 않으면 현재 OS용만 찾을 수 있습니다.

test, tools, release 폴더와 package.json의 devDependencies는 기본적으로 무시됩니다.

기본 무시 모듈

애플리케이션 크기 축소를 위해 일부 모듈의 peerDependencies를 기본적으로 무시 옵션에 추가했습니다.

  • babel-core는 babel-loader에 필요하며 크기는 ~19 MB입니다.
  • node-libs-browser는 webpack에 필요하며 크기는 ~3MB입니다.

참고: 런타임에 위 모듈을 사용하려면(예: require('babel/register')) devDependencies에서 dependencies로 이동해야 합니다.

비 Windows 플랫폼에서 Windows 앱 빌드

비 Windows 플랫폼에서 Windows 앱 빌드를 확인하세요.

네이티브 스타일 UI

네이티브 스타일 사용자 인터페이스(OS X El Capitan 및 Windows 10)를 원한다면 react-desktop이 완벽하게 적합할 수 있습니다.

관리자

이 프로젝트는 https://github.com/chentsulin/electron-react-boilerplate 프로젝트의 포크입니다.

라이선스

MIT

도구 다운로드