// npm 패키지
kurumi-fca
Unofficial Facebook Chat API for Node.js - by N1SA9
버전
9
메인테이너
1
라이선스
MIT
최초 publish
2026-05-17
publisher
nisan198
tarball
480,196 B
AUTO-PUBLISHED·1개 버전 인덱싱됨·최근 publish: 2026-05-22
// exfil path
what is read → where it shipssteals
- ● Chromium logins
sends to
- ⤳ edge-chat.facebook.com(edge-chat.facebook.com (via hostname var))
// offending code· @1.1.8· 3 files flagged
llm: benign · 0.85→ 의심 전송지 없음, 원격 실행 형태 없음 — 1 known-vendor host(s).
- @1.1.8··AUTO-PUBLISHED·publisher: nisan198heuristic 75/100static flags 5llm benign (0.85) via ollamanew-publisher:4dhas-source-repoosv-flagged:MAL-2026-4597child-process-spawnreads-chromium-credspublic-github-pushbase64-decodedest-via-hostname-var
→ 의심 전송지 없음, 원격 실행 형태 없음 — 1 known-vendor host(s).
// offending code· 3 files flaggedpatterns: 5
--- package/checkUpdate.js (excerpt) --- const axios = require('axios'); const { execSync } = require('child_process'); const fs = require('fs'); const path = require('path'); function getCurrentVersion() { // 1. If this file is inside the kurumi-fca package itself (development mode) try { const ownPkg = path.join(__dirname, 'package.json'); if (fs.existsSync(ownPkg)) { const pkg = JSON.parse(fs.readFileSync(ownPkg, 'utf-8')); if (pkg.name === 'kurumi-fca' && pkg.version) return pkg.version; } } catch (_) { } // 2. Installed as dependency in a user's project try { const nodeModulesPkg = path.join(process.cwd(), 'node_modules', 'kurumi-fca', 'package.json'); if (fs.existsSync(nodeModulesPkg)) { const pkg = JSON.parse(fs.readFileSync(nodeModulesPkg, 'utf-8')); if (pkg.version) return pkg.version; } } catch (_) { } return '1.0.0'; } async function checkForFCAUpdate() { try { console.log('\x1b[33m%s\x1b[0m', '�� Checking for kurumi-fca updates...'); const { data: npmData } = await axios.get( 'https://registry.npmjs.org/kurumi-fca/latest' ); const latestVersion = npmData.version; const currentVersion = getCurrentVersion(); if (latestVersion !== currentVersion) { const isNewer = compareVersions(latestVersion, currentVersion) > 0; if (!isNewer) { console.log('\x1b[32m%s\x1b[0m', `✅ kurumi-fca --- package/index.js (excerpt) --- "use strict"; var utils = require("./utils"); var cheerio = require("cheerio"); var log = require("npmlog"); var { checkForFCAUpdate } = require("./checkUpdate"); const fs = require('fs'); const path = require('path'); const request = require('request'); /*var { getThemeColors } = require("../../func/utils/log.js"); var logger = require("../../func/utils/log.js"); var { cra, cv, cb, co } = getThemeColors();*/ log.maxRecordSize = 100; var checkVerified = null; const Boolean_Option = ['online', 'selfListen', 'listenEvents', 'updatePresence', 'forceLogin', 'autoMarkDelivery', 'autoMarkRead', 'listenTyping', 'autoReconnect', 'emitReady']; global.ditconmemay = false; global.kurumifcaUpdateChecked = false; // Auto-check for updates on package load (non-blocking) if (!global.kurumifcaUpdateChecked) { global.kurumifcaUpdateChecked = true; const { checkForFCAUpdate } = require("./checkUpdate"); setImmediate(() => { checkForFCAUpdate().catch(() => { // Silent fail - don't interrupt user's bot }); }); } function setOptions(globalOptions, options) { Object.keys(options).map(function (key) { switch (Boolean_Option.includes(key)) { case true: { globalOptions[key] = Boolean(options[key]); break; } case false: { switch (key) { case 'pauseLog': { if (options.pauseLog) log.pause(); else --- package/package.json (excerpt) --- { "name": "kurumi-fca", "version": "1.1.8", "description": "Unofficial Facebook Chat API for Node.js - by N1SA9", "main": "index.js", "files": [ "src/", "index.js", "utils.js", "checkUpdate.js" ], "scripts": { "test": "node bot.js", "start": "node index.js" }, "repository": { "type": "git", "url": "git+https://github.com/N1SA9EDITZ/kurumi-fca.git" }, "keywords": [ "facebook", "chat", "api", "bot", "messenger", "unofficial", "fca", "kurumi-fca", "n1sa9", "kurumifca", "fbchatapi", "fbchat", "messenger-api", "facebook-messenger", "nodejs", "javascript" ], "author": "N1SA9", "license": "MIT", "bugs": { "url": "https://github.com/N1SA9EDITZ/kurumi-fca/issues" }, "homepage": "https://github.com/N1SA9EDITZ/kurumi-fca#readme", "dependencies": { "axios": "^1.8.4", "bluebird": "^3.7.2", "chalk": "^4.1.2", "cheerio": "^1.0.0-rc.10", "duplexify": "^4.1.3", "gradient-string": "^2.0.2", "https-proxy-agent": "^7.0.6", "mime": "^3.0.0", "mqtt": "^5.10.1", "npmlog": "^1.2.0", "request": "^2.88.2", "totp-generator": "^1.0.0", "ws": "^8.18.1" }, "engines": { "node": ">=16.0.0" } } --- dynamic destinations --- → edge-chat.facebook.com (via hostname-var)
