Fórum Ubuntu CZ/SK

Ubuntu pro osobní počítače => Software => Příkazový řádek a programování pro GNU/Linux => Téma založeno: PavelMac 09 Února 2013, 22:36:48

Název: Nečitateľný javascript
Přispěvatel: PavelMac 09 Února 2013, 22:36:48
Dobrý večer. Možno bude tento post zmazaný, možno nie, lebo je trošku mimo, ale možno mi pomôžete.
Je mi takmer 50, zabývam sa bezpečnosťou informácií. Niesom preto časovo schopný naučiť sa javascript, aj keď základná orientácia v ňom mi nechýba. No dostal sa mi do ruky jeden skript, ktorý prečítať neviem. Ukázky kódu:
Kód: [Vybrat]
(function(){
var iops=User.trackId;var f=void 0,g=!0,k=null,D=!1,Ba=k,Na=k,kb=k;function lb(){var W=atob("CiAhIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE5NT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+"),L=atob("QGFiY2VmZ2hpam5vcHFyc3p7fH1+dHV2d3h5QUJDREVGCltdR0hJIkpLTE5NT1BkUVJTVFVWV1hZWmtsbV5fYCBcISMkJSYoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj8n");
Ba=[];
Na=[];
for(var ha=0;ha<L.length;ha++)Ba[L.charCodeAt(ha)]=W.charAt(ha),Na[L.charCodeAt(ha)]=ha;
if ((typeof window.console !== 'undefined') && (typeof window.console.log == 'undefined')) window.console.log = function(){};}
function Eb(W){Ba===k&&lb();for(var L="",ha=0;ha<W.length;ha++)
L+=Ba[W.charCodeAt(ha)];return L}
var Fb;//Fb = Eb('C%+8a+%Dc212 gLHg #!$-72 212ca$.!55Dc$*!..&0)& 212cEC%+8a+%Dc212 #) gLHg #!$-72 212ca$.!55Dc212 #)czEC%+8a+%Dc212 #1: gLHg #!$-72 212ca$.!55Dc212 #1:ca56;.&Dc612At{{2:BcEC!a
Kód: [Vybrat]
Gb("w@[Vc")+c)),a.Bh(c)}K.prototype.Ch=function(b){B.D(E(Gb("U@kVc")+["",Gb("h@rWc"),Gb("i@tWc"),Gb("j@CWc")][a.b.Yd]+Gb("j@BRc")+b),function(c){a.Zj(c,b)})}K.prototype.Zj=function(b,c){a.K(b)&&(200==b.status?(l(w(Gb("j@)Rc"),Gb("p@IWc")+c)),a.Ma=c,a.db=g,a.k()):(z(q(Gb("j@)Rc"),Gb("q@SWc")+c)),a.Ch(c)))}K.prototype.Fh=function(){B.D(E(Gb("X@`Wc")+\na.Ma),function(b)
A tak to pokračuje. Vedel by mi niekto z odborníkov povedať, ako by sa z tohto nečitateľného kódu dal urobiť čitateľný, či na to v Ubuntu existuje nejaký nástroj, prosto poskytnúť informácie, aká musí byť úroveň znalostí a vedomostí, aby si človek s tímto poradil? Pre záujemcu o pozretie celého kódu tento prikladám a budem z mojho profesijného hľadiska vďačný za akýkoľvek názor, tip, radu ...
Ak admini tento post zmažú, nebudem sa hnevať, je mi jasné že s Ubuntu má toto iba veľmi málo spoločné.

[příloha smazaná administrátorem]
Název: Re:Nečitateľný javascript
Přispěvatel: Myrmica 10 Února 2013, 02:53:06
Java skriptu příliš nerozumím a přečetl jsem si jen ten začátek. To co se dává do proměnných L a W jsou binární informace, navíc ještě zakódované pomocí base-64 encoding. Dále ten skrip obsahuje velké množství zakódovaných binárních informací (proměnná Fb), ten kód nevypadá jako base-64 encoding.
Zdá se mi, že si někdo dává práci s tím, aby nebylo vidět co dělá, to je podle mě i jeden z důvodů proč je ten skript napsaný tak nepřehledně.
Celkově ve mě ten skript vzbuzuje odpor.
Obávám se že jsem Ti moc nepomohl, ale zpřehledňovat 380k textu, ve kterém je spousta binárních informací nemám chuť a možná to ani pořádně nejde, protože se mi zdá, že tak je to napsáno úmyslně.
Je možné, že ten skript je vygenerován nějakým programem, ale i tak mi přijde nedůvěryhodný.
Název: Re:Nečitateľný javascript
Přispěvatel: Martin - ViPEr*CZ* 10 Února 2013, 18:54:44
A co to je za skript? Odkud ho máte? Proč se ho snažíte přečíst? Je vůbec nutné ho přečíst... není možné si stáhnout jeho devel verzi či kontaktovat autora?
Pokud nevím co to dělá = nedůvěryhodné = nepoužívat. I kdyby byl vygenerovaný důvěryhodným softem, tak se v tom lehce ztratí zákeřný kód.
Název: Re:Nečitateľný javascript
Přispěvatel: Martin Kiklhorn 11 Února 2013, 11:01:53
To je nějaký obfuscator, použijte postupně nějakou konstrukci s document.write + eval, ať z toho vypadne něco čitelného.

Název: Re:Nečitateľný javascript
Přispěvatel: soudruh 11 Února 2013, 11:32:00
Je to dost zkomprimovaný a znečitelněný javascript od Zyngy z Mafia Wars. Pokud to chceš udělat ví čitelný, tak v Google Chrome v Nástroji pro vývojáře je na to funkce. Pak už jen stačí řádky s eval zduplikovat a u kopie změnit eval za console.log(); pak už je možné z toho získat celkem slušnej zdroják na čtení.