2012-10-16 23 views
12

Nienawidzę przynosić to tutaj, robiąc naukę zaciemniania kodu JS, zakodowałem mój kod, a następnie napisałem oryginalny bez żadnego backupu :) Poniżej znajduje się mój zaciemniony kod.Odkomentuj kod JavaScript, aby ponownie go odczytać.

var _0xf17f=["\x28","\x29","\x64\x69\x76","\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74","\x69\x64","\x53\x74\x75\x64\x65\x6E\x74\x5F\x6E\x61\x6D\x65","\x73\x74\x75\x64\x65\x6E\x74\x5F\x64\x6F\x62","\x3C\x62\x3E\x49\x44\x3A\x3C\x2F\x62\x3E","\x3C\x61\x20\x68\x72\x65\x66\x3D\x22\x2F\x6C\x65\x61\x72\x6E\x69\x6E\x67\x79\x69\x69\x2F\x69\x6E\x64\x65\x78\x2E\x70\x68\x70\x3F\x72\x3D\x73\x74\x75\x64\x65\x6E\x74\x2F\x76\x69\x65\x77\x26\x61\x6D\x70\x3B\x20\x69\x64\x3D","\x22\x3E","\x3C\x2F\x61\x3E","\x3C\x62\x72\x2F\x3E","\x3C\x62\x3E\x53\x74\x75\x64\x65\x6E\x74\x20\x4E\x61\x6D\x65\x3A\x3C\x2F\x62\x3E","\x3C\x62\x3E\x53\x74\x75\x64\x65\x6E\x74\x20\x44\x4F\x42\x3A\x3C\x2F\x62\x3E","\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C","\x63\x6C\x61\x73\x73","\x76\x69\x65\x77","\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x70\x72\x65\x70\x65\x6E\x64","\x2E\x69\x74\x65\x6D\x73","\x66\x69\x6E\x64","\x23\x53\x74\x75\x64\x65\x6E\x74\x47\x72\x69\x64\x56\x69\x65\x77\x49\x64"];function call_func(_0x41dcx2){var _0x41dcx3=eval(_0xf17f[0]+_0x41dcx2+_0xf17f[1]);var _0x41dcx4=document[_0xf17f[3]](_0xf17f[2]);var _0x41dcx5=_0x41dcx3[_0xf17f[4]];var _0x41dcx6=_0x41dcx3[_0xf17f[5]];var _0x41dcx7=_0x41dcx3[_0xf17f[6]];var _0x41dcx8=_0xf17f[7];_0x41dcx8+=_0xf17f[8]+_0x41dcx5+_0xf17f[9]+_0x41dcx5+_0xf17f[10];_0x41dcx8+=_0xf17f[11];_0x41dcx8+=_0xf17f[12];_0x41dcx8+=_0x41dcx6;_0x41dcx8+=_0xf17f[11];_0x41dcx8+=_0xf17f[13];_0x41dcx8+=_0x41dcx7;_0x41dcx8+=_0xf17f[11];_0x41dcx4[_0xf17f[14]]=_0x41dcx8;_0x41dcx4[_0xf17f[17]](_0xf17f[15],_0xf17f[16]);$(_0xf17f[21])[_0xf17f[20]](_0xf17f[19])[_0xf17f[18]](_0x41dcx4);} ; 

Czy każdy może podać mi adres URL lub jakąkolwiek metodę, aby uczynić go czytelnym. Zrobiłem to ze strony internetowej this i najwyraźniej zapewnili w jednym miejscu usługi zaciemniania dostępne na ich stronie internetowej ... to był mój kod testowy podczas nauki, więc byłoby miło, gdyby ktoś mógł mi pomóc.

+10

Lekcja, użyj [VCS] (http://en.wikipedia.org/wiki/Revision_control), dzięki czemu można przywrócić swoje błędy. – zzzzBov

+0

Nienawidzę, że przyniosłeś to tutaj. To raczej nie jest temat na SO. (Dla przyszłego odniesienia, gdybyś używał systemu kontroli wersji, nie byłbyś w takiej sytuacji.) – cHao

+0

yeah..agree..I zawsze używam tego, ale ponieważ był to projekt do nauki, więc mam do czynienia z muzyką. ... :) – FaisalKhan

Odpowiedz

3

Od pierwszego łącza w google;

function call_func(_0x41dcx2) { 
var _0x41dcx3 = eval('(' + _0x41dcx2 + ')'); 
var _0x41dcx4 = document['createElement']('div'); 
var _0x41dcx5 = _0x41dcx3['id']; 
var _0x41dcx6 = _0x41dcx3['Student_name']; 
var _0x41dcx7 = _0x41dcx3['student_dob']; 
var _0x41dcx8 = '<b>ID:</b>'; 
_0x41dcx8 += '<a href="/learningyii/index.php?r=student/view&amp; id=' + _0x41dcx5 + '">' + _0x41dcx5 + '</a>'; 
_0x41dcx8 += '<br/>'; 
_0x41dcx8 += '<b>Student Name:</b>'; 
_0x41dcx8 += _0x41dcx6; 
_0x41dcx8 += '<br/>'; 
_0x41dcx8 += '<b>Student DOB:</b>'; 
_0x41dcx8 += _0x41dcx7; 
_0x41dcx8 += '<br/>'; 
_0x41dcx4['innerHTML'] = _0x41dcx8; 
_0x41dcx4['setAttribute']('class', 'view'); 
$('#StudentGridViewId')['find']('.items')['prepend'](_0x41dcx4); 
}; 

To nie będzie Ci całą drogę z powrotem do źródła, a to naprawdę nie jest to możliwe, ale to wydostać się z dziury.

aplikacja
+0

Jak to zrobiłeś? Nie mogłem znaleźć tego pierwszego linku w google. Próbowałem wszystkich linków i programów z google, ale twoja dezfumacja jest lepsza. Zastąpił on wartości w miejsce indeksów tablic! Czy to jest auto-dezfumacja? – traxium

-1

Powinieneś mieć coś takiego source maps

+1

Cała zasada zaciemniania polega na * usunięciu * wszystkich informacji, które ułatwiają dekodowanie. Po co to robić, a nawet mieć, nie mówiąc już o użyciu, mapę źródłową? Przeciwnie, w jaki sposób uzyskaliby je z zaciemnionego kodu (który jest wszystkim, co zostało)? – cHao

+0

możemy mieć mapy źródłowe skonfigurowane tylko dla kompilacji dev. – Amareswar

+1

Nie wszyscy używamy fantazyjnych IDE do pisania naszego JS. :) Może nie być czegoś takiego * jak "build dev". Tak czy inaczej, różnica pomiędzy zminimalizowaniem a zaciemnianiem jest wystarczająco duża, aby bardzo mało prawdopodobne, aby pomógł. – cHao

13

Oto ona:

function call_func(input) { 
    var evaled = eval('(' + input + ')'); 
    var newDiv = document.createElement('div'); 
    var id = evaled.id; 
    var name = evaled.Student_name; 
    var dob = evaled.student_dob; 
    var html = '<b>ID:</b>'; 
    html += '<a href="/learningyii/index.php?r=student/view&amp; id=' + id + '">' + id + '</a>'; 
    html += '<br/>'; 
    html += '<b>Student Name:</b>'; 
    html += name; 
    html += '<br/>'; 
    html += '<b>Student DOB:</b>'; 
    html += dob; 
    html += '<br/>'; 
    newDiv.innerHTML = html; 
    newDiv.setAttribute('class', 'view'); 
    $('#StudentGridViewId').find('.items').prepend(newDiv); 
}; 
+0

Jak to zdekodowałeś? Przypadkowo zastąpiłem mój oryginalny kod zaciemnionym kodem –

+1

Coś jak inne odpowiedzi wspominają, jsnice lub jsbeautifier. Potem studiowałem to, aby dowiedzieć się, co robi i zmieniono nazwy zmiennych. –

+0

Proces ten musi więc przebiegać ręcznie. –

25

Oto nowy zautomatyzowane narzędzie, JSNice, aby spróbuj go rozjaśnić/zdemineralizować. Narzędzie próbuje nawet odgadnąć nazwy zmiennych, co jest niewiarygodnie fajne. (IT kopalnie JavaScript w github do tego celu.) uczeni

http://www.jsnice.org

+0

To naprawdę niesamowite, dzięki @rbonito – drmartin