Spørgsmål:
Prøv at deobfuscate flerlags javascript
user101579
2013-05-26 07:24:51 UTC
view on stackexchange narkive permalink

Ifølge techy zilla-bloggen

Det vil være meget sværere at deobfusere kode, der er tilsløret ved hjælp af flere tilslørende algoritmer. Ifølge dem kan jsbeautifier ikke rette denne tilslørede kode. Kan du finde en anden måde at deobfuscate denne type obfuscation på? Hvis ikke, hvad er det nærmeste du kan komme?

  var _0x2815 = ["\ x33 \ x20 \ x31 \ x28 \ x29 \ x7B \ x32 \ x20 \ x30 \ x3D \ x35 \ x3B \ x34 \ x20 \ x30 \ x7D "," \ x7C "," \ x73 \ x70 \ x6C \ x69 \ x74 "," \ x78 \ x7C \ x6D \ x79 \ x46 \ x75 \ x6E \ x63 \ x74 \ x69 \ x6F \ x6E \ x7C \ x76 \ x61 \ x72 \ x7C \ x66 \ x75 \ x6E \ x63 \ x74 \ x69 \ x6F \ x6E \ x7C \ x72 \ x65 \ x74 \ x75 \ x72 \ x6E \ x7C "," \ x72 \ x65 \ x70 \ x6C \ x61 \ x63 \ x65 "," "," \ x5C \ x77 \ x2B "," \ x5C \ x62 "," \ x67 "]; eval (funktion (_0xf81fx1, _0xf81fx2, _0xf81fx3, _0xf81fx4 , _0xf81fx5, _0xf81fx6) {_ 0xf81fx5 = funktion (_0xf81fx3) {return _0xf81fx3;}; hvis (! _ 0x2815 [5] [_ 0x2815 [4]] (/ ^ /, String)) {mens (_0xf81fx3 -) x ] = _ 0xf81fx4 [_0xf81fx3] || _0xf81fx3;}; _0xf81fx4 = [function (_0xf81fx5) {return _0xf81fx6 [_0xf81fx5];}]; _ 0xf81fx5 = funktion () {return _0x2815 [6] = 6) (_0xf81fx3 -) {hvis (_0xf81fx4 [_0xf81fx3]) {_ 0xf81fx1 = _0xf81fx1 [_0x2815 [4]] (ny RegExp (_0x2815 [7] + _ 0xf81fx5 (_0xf81fx3) + _ 0x28 [0] _0xf81fx3]);};}; returnere _0xf81fx1;} (_0x2815 [0], 6,6, _0x2815 [3] [_ 0x2815 [2]] (_ 0x2815 [1]), 0, {}));  
Hvis du virkelig vil have tilsløret Javascript, skal du bare kompilere noget til asm.js
@Antimony: En ret god idé!
Fire svar:
Mick
2013-05-27 23:52:45 UTC
view on stackexchange narkive permalink

Ved hjælp af Malzilla var jeg i stand til at afdublere dette på ~ 30 sekunder.

Trin 1 , åbn Malzilla, vælg fanen Dekoder og indsæt JavaScript.

enter image description here

Trin 2 , du kan eventuelt trykke på knappen "Formatér kode" for at få en rudimentær omformatering af JS.

Trin 3 stærk >, tjek Tilsidesæt eval () og klik på knappen Kør script .

enter image description here

Du vil bemærke at den udtørrede kode udskrives i outputboksen:

  funktion myFunction () {var x = 5; return x}  
fantastisk manual :)
Jason Geffner
2013-05-26 08:21:02 UTC
view on stackexchange narkive permalink

Hvorfor begrænse dig til statisk deobfuskation? Hvis du kører scriptet gennem en JavaScript-fejlfinding og bryder på return -erklæringen, kan du se, at _0xf81fx1 = funktion myFunction () {var x = 5; returner x} , som var funktionens almindelige tekst, før den blev tilsløret.

Desuden, hvis du kører den gennem http://jsbeautifier.org, den sidste linje i output er:

} ('3 1 () {2 0 = 5; 4 0}', 6, 6, 'x | myFunction | var | funktion | return | '[' split '] (' | '), 0, {}));

Det kan ses, at ' 3 1 () {2 0 = 5 ; 4 0} ' streng holder bare indeces for strengene i streng-array ' x | myFunction | var | funktion | return | '. Så http://jsbeautifier.org fjerner stort set det alligevel mest hele vejen.

Jeg ved ikke, hvordan man skal fortolke '3 1 () {2 0 = 5; 4 0}'
Denis Laskov
2013-05-26 12:10:52 UTC
view on stackexchange narkive permalink

jsbeautifier.org er faktisk ikke kilden til JS-deobfuscation. Se dette spørgsmål for at få flere oplysninger Analysering af stærkt tilsløret JavaScript

Efter flere fjernelser, ser det ud til, at koden bag er:

  // eval funktion myFunction () {var x = 5; returner x}  

http://jsunpack.jeek.org/?report=24921f4d96d1e05abfc0affd2233bd69874056c9

user29581
2019-09-11 18:54:12 UTC
view on stackexchange narkive permalink

Du kan prøve at bruge de4js. For javascript-uddraget i det originale indlæg producerer de4js følgende output:

  var _0x2815 = ["3 1 () {2 0 = 5; 4 0}", "|", " split "," x | myFunction | var | funktion | return | "," erstatte "," "," \\ w + "," \\ b "," g "]; eval (funktion (_0xf81fx1, _0xf81fx2, _0xf81fx3, _0xf81fx4, _0xf81fx5, _0xf81fx6) {_0xf81fx5 = funktion (_0xf81fx3) {return _0xf81fx3;}; hvis (! _0x2815 [5] [_ 0x2815 [4]] (/ ^ /, String)) {while (_3xf81) _0xf81fx3] = _0xf81fx4 [_0xf81fx3] || _0xf81fx3;}; _0xf81fx4 = [funktion (_0xf81fx5) {return _0xf81fx6 [_0xf81fx5];}]; _0xf81fx5 = 1) [x0 = 1) mens (_0xf81fx3--) {if (_0xf81fx4 [_0xf81fx3]) {_0xf81fx1 = _0xf81fx1 [_0x2815 [4]] (nyt RegExp (_0x2815 [7] + _0xf81fx5 (_0xf81fx3) [7] [7] [7] + _0 [_0xf81fx3]);};}; returnere _0xf81fx1;} (_ 0x2815 [0], 6, 6, _0x2815 [3] [_ 0x2815 [2] ] (_ 0x2815 [1]), 0, {}));  

Når alternativknappen eval er valgt, reduceres dette til

  funktion myFunction () {var x = 5; returner x}  


Denne spørgsmål og svar blev automatisk oversat fra det engelske sprog.Det originale indhold er tilgængeligt på stackexchange, som vi takker for den cc by-sa 3.0-licens, den distribueres under.
Loading...