Init
This commit is contained in:
commit
0d1e48d717
|
@ -0,0 +1,3 @@
|
||||||
|
node_modules
|
||||||
|
npm-debug.log
|
||||||
|
docker-compose.yml
|
|
@ -0,0 +1,3 @@
|
||||||
|
docker-compose.yml
|
||||||
|
node_modules
|
||||||
|
output
|
|
@ -0,0 +1,19 @@
|
||||||
|
FROM node:16
|
||||||
|
|
||||||
|
# Create app directory
|
||||||
|
WORKDIR /usr/src/app
|
||||||
|
|
||||||
|
# Install app dependencies
|
||||||
|
# A wildcard is used to ensure both package.json AND package-lock.json are copied
|
||||||
|
# where available (npm@5+)
|
||||||
|
COPY package*.json ./
|
||||||
|
|
||||||
|
RUN npm install
|
||||||
|
# If you are building your code for production
|
||||||
|
# RUN npm ci --only=production
|
||||||
|
|
||||||
|
# Bundle app source
|
||||||
|
COPY . .
|
||||||
|
|
||||||
|
# EXPOSE 8080
|
||||||
|
CMD [ "node", "index.js" ]
|
|
@ -0,0 +1,7 @@
|
||||||
|
I am not responsible for your actions using this software. Just because you can steal someones Ethereum doesn't mean you should.... Plus statistically you will never find an address with a balance.
|
||||||
|
|
||||||
|
This software will forever check random Ethereum private keys for a balance. When one is found it will be emailed to you. Currently only Gmail as the sender is allowed, and you will have to allow unsecure apps in your google settings.
|
||||||
|
|
||||||
|
Check docker-compose.sample.yml for configuration and environment options. Found addresses and private keys will also be logged to /output/output.txt
|
||||||
|
|
||||||
|
Docker image hosted on Docker Hub https://hub.docker.com/repository/docker/ericpelland/random_ethereum_scanner
|
|
@ -0,0 +1,11 @@
|
||||||
|
version: "3.4"
|
||||||
|
|
||||||
|
services:
|
||||||
|
random_ethereum_scanner:
|
||||||
|
image: ericpelland/random_ethereum_scanner
|
||||||
|
environment:
|
||||||
|
- EMAIL_USER=email@website.com
|
||||||
|
- EMAIL_PASS=GOOGLE-APP-PASSWORD # See https://stackoverflow.com/questions/71477637/nodemailer-and-gmail-after-may-30-2022
|
||||||
|
- EMAIL_TO=email@website.com
|
||||||
|
volumes:
|
||||||
|
- ./output:/output
|
|
@ -0,0 +1,76 @@
|
||||||
|
let Web3 = require("web3");
|
||||||
|
let ethNetwork = 'https://cloudflare-eth.com';
|
||||||
|
let ethscan = require('@mycrypto/eth-scan');
|
||||||
|
let web3 = new Web3(new Web3.providers.HttpProvider(ethNetwork));
|
||||||
|
let fs = require('fs');
|
||||||
|
let nodemailer = require("nodemailer");
|
||||||
|
|
||||||
|
let transporter = nodemailer.createTransport({
|
||||||
|
service: 'gmail',
|
||||||
|
auth: {
|
||||||
|
user: process.env.EMAIL_USER,
|
||||||
|
pass: process.env.EMAIL_PASS
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
function makeMoney(count = 0){
|
||||||
|
console.log('\033[2J');
|
||||||
|
console.log("Addresses checked: " + count)
|
||||||
|
|
||||||
|
// let accounts = [{address: '0x8735015837bD10e05d9cf5EA43A2486Bf4Be156F', privateKey: 'fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364150'}]
|
||||||
|
|
||||||
|
let accounts = []
|
||||||
|
let x = 0
|
||||||
|
while(x < 100) {
|
||||||
|
accounts.push(web3.eth.accounts.create())
|
||||||
|
count++
|
||||||
|
x++
|
||||||
|
}
|
||||||
|
|
||||||
|
search(accounts, count)
|
||||||
|
}
|
||||||
|
|
||||||
|
function search(accounts, count) {
|
||||||
|
let addresses = accounts.map((account) => { return account.address })
|
||||||
|
ethscan.getEtherBalances(web3, addresses).then(balanceMap => {
|
||||||
|
for (const [key, value] of Object.entries(balanceMap)) {
|
||||||
|
if(BigInt(value) > 0) {
|
||||||
|
message = key + ": " + accounts[addresses.indexOf(key)].privateKey + "\n"
|
||||||
|
writeToFile('/output/output.txt', message)
|
||||||
|
transporter.sendMail({
|
||||||
|
from: '"Random Ethereum Scanner" <foo@example.com>',
|
||||||
|
to: process.env.EMAIL_TO, // Test email address
|
||||||
|
subject: "$$$ We Found Ethereum!",
|
||||||
|
text: message,
|
||||||
|
}).catch(emailError)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
makeMoney(count)
|
||||||
|
}).catch(emailError)
|
||||||
|
}
|
||||||
|
|
||||||
|
function emailError(err){
|
||||||
|
transporter.sendMail({
|
||||||
|
from: '"Random Ethereum Scanner" <foo@example.com>',
|
||||||
|
to: process.env.EMAIL_TO, // Test email address
|
||||||
|
subject: "Error detected",
|
||||||
|
text: err.toString(),
|
||||||
|
}).catch((err)=>{writeToFile('/output/err.txt', err.toString())})
|
||||||
|
}
|
||||||
|
|
||||||
|
function writeToFile(filename, message) {
|
||||||
|
fs.appendFile(filename, message, err => {
|
||||||
|
if (err) {
|
||||||
|
console.log(err)
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
transporter.sendMail({
|
||||||
|
from: '"Random Ethereum Scanner" <foo@example.com>',
|
||||||
|
to: process.env.EMAIL_TO, // Test email address
|
||||||
|
subject: "Scanner Started",
|
||||||
|
text: "Random Ethereum Scanner Started Successfully",
|
||||||
|
}).catch((err)=>{writeToFile('/output/err.txt', err.toString())})
|
||||||
|
|
||||||
|
makeMoney()
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,17 @@
|
||||||
|
{
|
||||||
|
"name": "randometherscanner",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"description": "",
|
||||||
|
"main": "index.js",
|
||||||
|
"scripts": {
|
||||||
|
"test": "echo \"Error: no test specified\" && exit 1"
|
||||||
|
},
|
||||||
|
"author": "",
|
||||||
|
"license": "ISC",
|
||||||
|
"dependencies": {
|
||||||
|
"@mycrypto/eth-scan": "^3.5.3",
|
||||||
|
"fs": "^0.0.1-security",
|
||||||
|
"nodemailer": "^6.8.0",
|
||||||
|
"web3": "^1.8.0"
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue