1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
#
# written by Stefano Sanfilippo <a.little.coder@gmail.com>
#
"""Tests for JavaScriptObfuscator unpacker."""
import unittest
from jsbeautifier.unpackers.javascriptobfuscator import unpack, detect, smartsplit
# pylint: disable=R0904
class TestJavascriptObfuscator(unittest.TestCase):
"""JavascriptObfuscator.com test case."""
def test_smartsplit(self):
"""Test smartsplit() function."""
split = smartsplit
def equals(data, result):
return self.assertEqual(split(data), result)
equals("", [])
equals('"a", "b"', ['"a"', '"b"'])
equals('"aaa","bbbb"', ['"aaa"', '"bbbb"'])
equals('"a", "b\\""', ['"a"', '"b\\""'])
def test_detect(self):
"""Test detect() function."""
def positive(source):
return self.assertTrue(detect(source))
def negative(source):
return self.assertFalse(detect(source))
negative("")
negative("abcd")
negative("var _0xaaaa")
positive('var _0xaaaa = ["a", "b"]')
positive('var _0xaaaa=["a", "b"]')
positive('var _0x1234=["a","b"]')
def test_unpack(self):
"""Test unpack() function."""
def decodeto(ob, original):
return self.assertEqual(unpack(ob), original)
decodeto("var _0x8df3=[];var a=10;", "var a=10;")
decodeto(
'var _0xb2a7=["\x74\x27\x65\x73\x74"];var i;for(i=0;i<10;++i)'
"{alert(_0xb2a7[0]);} ;",
"var i;for(i=0;i<10;++i){alert" '("t\'est");} ;',
)
if __name__ == "__main__":
unittest.main()
|