Skip to content

Commit

Permalink
Added code
Browse files Browse the repository at this point in the history
  • Loading branch information
macedonga committed Jul 10, 2024
0 parents commit 28e074c
Show file tree
Hide file tree
Showing 10 changed files with 1,270 additions and 0 deletions.
23 changes: 23 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
*.bkp
*.db
*.jfif
*.jpeg
*.jpep
*.jpg
*.json
*.m4v
*.mp1
*.oga
*.ogg
*.pdf
*.png
*.svg
*.vcf
*.webp
*.xlsx
.DS_Store
.env
notas.txt
db/
data/
whats-spoofing
37 changes: 37 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# whats-spoofing

Reply spoofer for WhatsApp messages.

## Installation

```bash
$ git clone https://github.com/macedonga/whats-spoofing.git
$ cd whats-spoofing
$ mkdir -p data && mkdir -p db && mkdir -p history
$ go mod download
$ go build
```

## Usage

```bash
$ ./whats-spoofing
```

Once you see a QR code on the terminal, scan it with your WhatsApp app just like when you login on WhatsApp web. /
This is necessary to get the session token to send messages. /
After that, when you see on your terminal `Listening on localhost:8080`, open a browser tab and go to `http://localhost:8080`. /

You will see a form to send messages. /
Fill the form with the phone number (with the international prefix but without +) you want to send the message to, the number of the user to spoof (the number that will appear on the message), the spoofed reply message and the reply, sent by you. /
If you want to send a spoofed message to a group, just copy and paste the group ID (which you can get below the sender form) on the first phone number input. /
Click on the `Send` button and the message will be sent. /

Happy spoofing! 🎉

**Use this tool responsibly! I'm not responsible for any misuse of this tool.**

---

*I forked and updated this project with a newer version of Whatsmeow and a web interface. /
The original project has been deleted from Github, but it was made by [@lichti](https://github.com/lichti/)*
70 changes: 70 additions & 0 deletions client/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>WhatsApp spoofer</title>

<script src="https://cdn.tailwindcss.com"></script>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:[email protected]&display=swap" rel="stylesheet">

<style type="text/tailwindcss">
@tailwind base;
@tailwind components;
@tailwind utilities;

body {
@apply bg-gray-950 text-white;

color-scheme: dark;
font-family: "Inter", sans-serif;
font-optical-sizing: auto;
font-style: normal;
font-variation-settings: "slnt" 0;
}

.group-container {
@apply w-full px-2 py-1 border border-white/10 bg-white/10 rounded-lg;
}
</style>
</head>

<body>
<div class="grid h-screen w-screen items-center justify-center">
<div class="grid gap-8">
<form
onsubmit="sendForm(); return false;"
class="p-4 bg-white/10 rounded-lg grid gap-2 w-96"
>
<h1 class="text-2xl font-bold">WhatsApp spoofer</h1>

<input type="text" class="w-full px-2 py-1 border border-white/10 bg-white/10 rounded-lg outline-none"
placeholder="Phone number or group id" id="cid">
<input type="text" class="w-full px-2 py-1 border border-white/10 bg-white/10 rounded-lg outline-none"
placeholder="Impersonated id" id="sid">
<input type="text" class="w-full px-2 py-1 border border-white/10 bg-white/10 rounded-lg outline-none"
placeholder="Spoofed message" id="spf_msg">
<input type="text" class="w-full px-2 py-1 border border-white/10 bg-white/10 rounded-lg outline-none"
placeholder="Reply to spoofed message" id="rpl_msg">

<button type="submit"
class="w-full px-2 py-1 border border-white/10 bg-white/10 rounded-lg outline-none">Send</button>
</form>

<div class="p-4 bg-white/10 rounded-lg grid gap-2 w-96">
<h2 class="text-xl font-bold">Group IDs</h2>

<div class="overflow-y-auto max-h-64 grid gap-2 pr-2" id="gids">
Fetching...
</div>
</div>
</div>
</div>

<script src="script.js"></script>
</body>

</html>
60 changes: 60 additions & 0 deletions client/script.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
const fetchGids = async () => {
const res = await fetch("/get-groups");
let data = (await res.text()).split("\n").map(e => e.trim());

data = data
.filter(e => e.length > 0)
.map(e => {
let split = e.split(":");
const id = split.pop();
const name = split.join(":");

return `<div class="group-container"><b>${name}</b><br /><code>${id}</code></div>`;
});

const container = document.getElementById("gids");

container.innerHTML = data.join("");
};

fetchGids();

const sendForm = async () => {
const form = document.querySelectorAll("form")[0];

let cid = form.elements["cid"].value;
let sid = form.elements["sid"].value;
let spf_msg = form.elements["spf_msg"].value;
let rpl_msg = form.elements["rpl_msg"].value;

if (cid.length === 0 || sid.length === 0 || spf_msg.length === 0 || rpl_msg.length === 0) {
alert("All fields are required");
return;
}

if (!cid.includes("@"))
cid += "@s.whatsapp.net";

if (!sid.includes("@"))
cid += "@s.whatsapp.net";

let data = {
"chat_id": cid,
"spoofed_id": sid,
"message_id": "!",
"spoofed_message": spf_msg,
"reply_message": rpl_msg
};

const res = await fetch("/send-spoofed", {
method: "POST",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify(data)
});

const text = await res.json();

alert(text.message);
};
Empty file added client/style.css
Empty file.
Loading

0 comments on commit 28e074c

Please sign in to comment.