Yani bu kodun ne yaptığını anlamanın hiçbir yolu yok mu?
Çok karmaşık bir kod değil, değişken isimleri obfuscate edildiği böyle. Bu kod anlaşılabilir bir kod.
...
P = (aD) => ((s1 = aD.slice(1)), Buffer.from(s1, H).toString(I))
...
rq = require(P('YcmVxdWVzdA'))
...P bir fonksiyon ve parametre olarak bir string alıyor.
P('YcmVxdWVzdA')
P fonksiyonu içinde işlemler yaparak bir sonuç döndürüyor ve aslında kod şuna dönüşüyor. rq = require('request')
Birkaç satırın örnek çıktısı:
rq = require("request")
pt = require("path")
ex = require("child_process")["exec"]
zv = require("node:process")
hd = O["homedir"]()
hs = O["hostname"]()
pl = O["platform"]()
uin = O["userInfo"]()Tabi ki zaman alıcı bir şey, ama tersine mühendislik dediğimiz şey ile dünyadaki bütün yazılımlar okunabilir ve çalıştırılabilir hale getirilebilir. Tabi ki bazı kodlar öyle karmaşık olur ki çözmesi ve anlamlı hale getirilmesi çok uzun süre alabilir. Eğer senin için gerçekten önemliyse bu kodu kendin tek tek deobfuscate edebilirsin.
Dosya oluşturma ve silme işlemleri yapıyor.
Sadece bilgi amaçlı yazıyorum, bu konuda maalesef yardımcı olamam.
Edit1:
Virüs olduğunu söylediğin için merakıma yenik düştüm ve inceledim.
http://216.173.115.200:1244/s/83fe78ac2f79
Buraya istek atıyor. Hangi verileri gönderiyor vs bilmiyorum. Kullananları tespit etmek amacıyla vs olabilir veya verileri kendine göndermek.