
Security News
/Research
Wallet-Draining npm Package Impersonates Nodemailer to Hijack Crypto Transactions
Malicious npm package impersonates Nodemailer and drains wallets by hijacking crypto transactions across multiple blockchains.
ZeroBail adalah library modifikasi dari whiskeysockets/baileys
yang udah di-upgrade sama ZeroStarX biar lebih gampang bikin WhatsApp Bot full fitur.
🚀 Fitur utama:
whiskeysockets/baileys
versi terbaruInstall in package.json:
"dependencies": {
"baileys": "npm:zerostarx/zerobail"
}
or install in terminal:
npm install baileys@npm:zerostarx/zerobail
Then import the default function in your code:
// type esm
import makeWASocket from 'baileys'
// type cjs
const { default: makeWASocket } = require("baileys")
Fitur | Deskripsi |
---|---|
💬 Kirim Pesan ke Channel | Mendukung pengiriman teks & media langsung ke channel WhatsApp. |
🔘 Tombol & Pesan Interaktif | Support button message & pesan interaktif di WhatsApp Messenger & WhatsApp Business. |
🖼️ Kirim Album (Grouped Media) | Bisa kirim banyak gambar sekaligus dalam bentuk album, lebih rapi & keren. |
👥 Group dengan LID Support | Dukungan penuh untuk group @lid , kompatibel dengan format terbaru WhatsApp. |
🤖 Ikon AI di Pesan | Bisa custom tampilan pesan dengan ikon AI biar lebih modern. |
🖼️ Foto Profil Full-Size | Upload foto profil tanpa crop, kualitas full & lebih bagus. |
🔑 Custom Pairing Code | Bisa bikin pairing code custom sesuai keinginan, lebih praktis & aman. |
🛠️ Perbaikan Libsignal | Log lebih bersih & informatif, bikin proses development lebih nyaman. |
ℹ️ Fitur lain akan terus ditambahkan di update berikutnya 🚀
const metadata = await sock.newsletterMetadata("invite", "xxxxx")
// atau
const metadata = await sock.newsletterMetadata("jid", "abcd@newsletter")
console.log(metadata)
await sock.newsletterUpdateDescription("abcd@newsletter", "Deskripsi Baru")
await sock.newsletterUpdateName("abcd@newsletter", "Nama Baru")
await sock.newsletterUpdatePicture("abcd@newsletter", buffer)
await sock.newsletterRemovePicture("abcd@newsletter")
await sock.newsletterUnmute("abcd@newsletter")
await sock.newsletterMute("abcd@newsletter")
const metadata = await sock.newsletterCreate("Nama Newsletter")
console.log(metadata)
await sock.newsletterDelete("abcd@newsletter")
await sock.newsletterFollow("abcd@newsletter")
await sock.newsletterUnfollow("abcd@newsletter")
Kirim reaction ke pesan newsletter
// jid, id pesan & emoticon
// Cara dapat ID: copy URL pesan dari channel
// Contoh: https://whatsapp.com/channel/xxxxx/175
// Angka terakhir adalah ID
const id = "175"
await sock.newsletterReactMessage("abcd@newsletter", id, "🥳")
const buttons = [
{ buttonId: 'id1', buttonText: { displayText: 'Button 1' }, type: 1 },
{ buttonId: 'id2', buttonText: { displayText: 'Button 2' }, type: 1 }
]
const buttonMessage = {
text: "Hi it's button message",
footer: 'Hello World',
buttons,
headerType: 1
}
await sock.sendMessage(id, buttonMessage, { quoted: null })
const buttons = [
{ buttonId: 'id1', buttonText: { displayText: 'Button 1' }, type: 1 },
{ buttonId: 'id2', buttonText: { displayText: 'Button 2' }, type: 1 }
]
const buttonMessage = {
image: { url: "https://example.com/abcd.jpg" }, // image: buffer or path
caption: "Hi it's button message with image",
footer: 'Hello World',
buttons,
headerType: 1
}
await sock.sendMessage(id, buttonMessage, { quoted: null })
const buttons = [
{ buttonId: 'id1', buttonText: { displayText: 'Button 1' }, type: 1 },
{ buttonId: 'id2', buttonText: { displayText: 'Button 2' }, type: 1 }
]
const buttonMessage = {
video: { url: "https://example.com/abcd.mp4" }, // video: buffer or path
caption: "Hi it's button message with video",
footer: 'Hello World',
buttons,
headerType: 1
}
await sock.sendMessage(id, buttonMessage, { quoted: null })
const interactiveButtons = [
{
name: "quick_reply",
buttonParamsJson: JSON.stringify({
display_text: "Quick Reply",
id: "ID"
})
},
{
name: "cta_url",
buttonParamsJson: JSON.stringify({
display_text: "Tap Here!",
url: "https://www.example.com/"
})
},
{
name: "cta_copy",
buttonParamsJson: JSON.stringify({
display_text: "Copy Code",
id: "12345",
copy_code: "12345"
})
}
]
const interactiveMessage = {
text: "Hello World!",
title: "this is the title",
footer: "this is the footer",
interactiveButtons
}
await sock.sendMessage(id, interactiveMessage, { quoted: null })
const interactiveButtons = [
{
name: "quick_reply",
buttonParamsJson: JSON.stringify({
display_text: "Quick Reply",
id: "ID"
})
},
{
name: "cta_url",
buttonParamsJson: JSON.stringify({
display_text: "Tap Here!",
url: "https://www.example.com/"
})
},
{
name: "cta_copy",
buttonParamsJson: JSON.stringify({
display_text: "Copy Code",
id: "12345",
copy_code: "12345"
})
}
]
const interactiveMessage = {
image: { url: "https://example.com/abcd.jpg" }, // image: buffer or path
caption: "this is the caption",
title: "this is the title",
footer: "this is the footer",
interactiveButtons
}
await sock.sendMessage(id, interactiveMessage, { quoted: null })
const interactiveButtons = [
{
name: "quick_reply",
buttonParamsJson: JSON.stringify({
display_text: "Quick Reply",
id: "ID"
})
},
{
name: "cta_url",
buttonParamsJson: JSON.stringify({
display_text: "Tap Here!",
url: "https://www.example.com/"
})
},
{
name: "cta_copy",
buttonParamsJson: JSON.stringify({
display_text: "Copy Code",
id: "12345",
copy_code: "12345"
})
}
]
const interactiveMessage = {
video: { url: "https://example.com/abcd.mp4" }, // video: buffer or path
caption: "this is the caption",
title: "this is the title",
footer: "this is the footer",
interactiveButtons
}
await sock.sendMessage(id, interactiveMessage, { quoted: null })
const interactiveButtons = [
{
name: "single_select",
buttonParamsJson: JSON.stringify({
title: "message",
sections: [
{
title: "title",
highlight_label: "label",
rows: [
{
header: "HEADER",
title: "TITLE",
description: "DESCRIPTION",
id: "YOUR ID"
},
{
header: "HEADER",
title: "TITLE",
description: "DESCRIPTION",
id: "YOUR ID"
}
]
}
]
})
}
];
const interactiveMessage = {
text: "Hello World!",
title: "this is the title",
footer: "this is the footer",
interactiveButtons
};
await sock.sendMessage(id, interactiveMessage, { quoted: null });
Kirim banyak media (foto/video) sekaligus dalam 1 pesan (album).
// Media bisa berupa URL, buffer, atau path lokal
const media = [
{
image: { url: "https://example.com/image.jpg" }
},
{
image: await getBuffer("https://example.com/image.jpg")
},
{
video: { url: "https://example.com/video.mp4" }
}
]
await sock.sendMessage(id, { album: media, caption: "testing send album" }, { quoted: null })
// Aktifkan ikon AI cukup dengan menambahkan parameter "ai: true"
await sock.sendMessage(id, { text: "Hello World", ai: true });
if (usePairingCode && !sock.authState.creds.registered) {
const phoneNumber = await question('Please enter your mobile phone number:\n');
// Definisikan pairing code custom (contoh: 8 karakter)
const customPairingCode = "ZEROSTR";
const code = await sock.requestPairingCode(phoneNumber, customPairingCode);
console.log(`Your Pairing Code: ${code?.match(/.{1,4}/g)?.join('-') || code}`);
}
Kalau kamu nemu bug atau kendala saat menggunakan repository ini, silakan langsung buka issue baru di sini ya. 🙏
Selain modifikasi yang udah disebutkan di atas, semua fitur lainnya masih sama persis dengan repository original.
Cek repo asli di sini 👉 WhiskeySockets
Created By Zero - StarX ✨
FAQs
WhatsApp API
We found that zerobail demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
/Research
Malicious npm package impersonates Nodemailer and drains wallets by hijacking crypto transactions across multiple blockchains.
Security News
This episode explores the hard problem of reachability analysis, from static analysis limits to handling dynamic languages and massive dependency trees.
Security News
/Research
Malicious Nx npm versions stole secrets and wallet info using AI CLI tools; Socket’s AI scanner detected the supply chain attack and flagged the malware.