jsobfu 0.4.1 → 0.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/lib/jsobfu/obfuscator.rb +2 -1
- data/lib/jsobfu/scope.rb +10 -4
- data/lib/jsobfu/utils.rb +1 -1
- data/lib/jsobfu/version.rb +3 -0
- metadata +93 -13
- metadata.gz.sig +1 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 550f2de308e84c1e85fc9f6a8f5d18534d43acf5
|
4
|
+
data.tar.gz: a7dc9acd17fd65bb7a16416aa05eca4b37de8eec
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 386cb2e03ff53a8539b6688e5028b4fd4ac2df389032fe7ea295fa883c1e58a1616f3f14be5c70346f2f2a6afd14aec0d491d7ca0a72e8db7290ed5d9e3b700a
|
7
|
+
data.tar.gz: 7906a8236b78ee34819c87e4d5c54911e94fe85e2d7c30e7a2c1b8b5e06b14042287caa1eadbec7e25d54c54ba8b7410ead8eaf0c3cfd8d1a48e7149a1eed7f7
|
checksums.yaml.gz.sig
ADDED
Binary file
|
data.tar.gz.sig
ADDED
Binary file
|
data/lib/jsobfu/obfuscator.rb
CHANGED
data/lib/jsobfu/scope.rb
CHANGED
@@ -24,13 +24,16 @@ class JSObfu::Scope < Hash
|
|
24
24
|
parent opener event frameElement Error TypeError setTimeout setInterval
|
25
25
|
top arguments Array Date
|
26
26
|
)
|
27
|
-
|
27
|
+
|
28
28
|
# @return [JSObfu::Scope] parent that spawned this scope
|
29
29
|
attr_accessor :parent
|
30
30
|
|
31
31
|
# @return [Hash] mapping old var names to random ones
|
32
32
|
attr_accessor :renames
|
33
33
|
|
34
|
+
# @return [Number] the 0-indexed depth of the scope stack
|
35
|
+
attr_accessor :depth
|
36
|
+
|
34
37
|
# @param [Hash] opts the options hash
|
35
38
|
# @option opts [Rex::Exploitation::JSObfu::Scope] :parent an optional parent scope,
|
36
39
|
# sometimes necessary to prevent needless var shadowing
|
@@ -41,6 +44,7 @@ class JSObfu::Scope < Hash
|
|
41
44
|
@char_set = opts[:first_char_set] || @first_char_set + [*'0'..'9']
|
42
45
|
@min_len = opts[:min_len] || 1
|
43
46
|
@renames = {}
|
47
|
+
@depth = -1
|
44
48
|
end
|
45
49
|
|
46
50
|
# Generates a unique, "safe" random variable
|
@@ -60,7 +64,6 @@ class JSObfu::Scope < Hash
|
|
60
64
|
len += 1
|
61
65
|
end
|
62
66
|
end
|
63
|
-
|
64
67
|
# Re-maps your +var_name+ to a unique, random
|
65
68
|
# names in the current scope
|
66
69
|
#
|
@@ -122,6 +125,7 @@ class JSObfu::Scope < Hash
|
|
122
125
|
# empties current scope, and returns. Essentially an in-place
|
123
126
|
# push operation
|
124
127
|
def push!
|
128
|
+
@depth += 1
|
125
129
|
replacement = dup
|
126
130
|
replacement.parent = @parent
|
127
131
|
replacement.renames = @renames
|
@@ -131,8 +135,10 @@ class JSObfu::Scope < Hash
|
|
131
135
|
end
|
132
136
|
|
133
137
|
# "Consumes" the parent and replaces self with it
|
134
|
-
def pop!
|
135
|
-
|
138
|
+
def pop!(opts={})
|
139
|
+
retain = opts.fetch(:retain, false)
|
140
|
+
@depth -= 1
|
141
|
+
clear unless retain
|
136
142
|
if @parent
|
137
143
|
merge! @parent
|
138
144
|
@renames = @parent.renames
|
data/lib/jsobfu/utils.rb
CHANGED
metadata
CHANGED
@@ -1,44 +1,124 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jsobfu
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Lee
|
8
8
|
- Joe Vennix
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
|
-
cert_chain:
|
12
|
-
|
11
|
+
cert_chain:
|
12
|
+
- |
|
13
|
+
-----BEGIN CERTIFICATE-----
|
14
|
+
MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4G
|
15
|
+
A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNp
|
16
|
+
Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4
|
17
|
+
MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMzETMBEG
|
18
|
+
A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI
|
19
|
+
hvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWtiHL8
|
20
|
+
RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsT
|
21
|
+
gHeMCOFJ0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmm
|
22
|
+
KPZpO/bLyCiR5Z2KYVc3rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zd
|
23
|
+
QQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjlOCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZ
|
24
|
+
XriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2xmmFghcCAwEAAaNCMEAw
|
25
|
+
DgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFI/wS3+o
|
26
|
+
LkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZU
|
27
|
+
RUm7lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMp
|
28
|
+
jjM5RcOO5LlXbKr8EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK
|
29
|
+
6fBdRoyV3XpYKBovHd7NADdBj+1EbddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQX
|
30
|
+
mcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18YIvDQVETI53O9zJrlAGomecs
|
31
|
+
Mx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7rkpeDMdmztcpH
|
32
|
+
WD9f
|
33
|
+
-----END CERTIFICATE-----
|
34
|
+
- |
|
35
|
+
-----BEGIN CERTIFICATE-----
|
36
|
+
MIIElDCCA3ygAwIBAgIOSBtqBybS6D8mAtSCWs0wDQYJKoZIhvcNAQELBQAwTDEg
|
37
|
+
MB4GA1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2Jh
|
38
|
+
bFNpZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMTYwNjE1MDAwMDAwWhcNMjQw
|
39
|
+
NjE1MDAwMDAwWjBaMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBu
|
40
|
+
di1zYTEwMC4GA1UEAxMnR2xvYmFsU2lnbiBDb2RlU2lnbmluZyBDQSAtIFNIQTI1
|
41
|
+
NiAtIEczMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAjYVVI6kfU6/J
|
42
|
+
7TbCKbVu2PlC9SGLh/BDoS/AP5fjGEfUlk6Iq8Zj6bZJFYXx2Zt7G/3YSsxtToZA
|
43
|
+
F817ukcotdYUQAyG7h5LM/MsVe4hjNq2wf6wTjquUZ+lFOMQ5pPK+vldsZCH7/g1
|
44
|
+
LfyiXCbuexWLH9nDoZc1QbMw/XITrZGXOs5ynQYKdTwfmOPLGC+MnwhKkQrZ2TXZ
|
45
|
+
g5J2Yl7fg67k1gFOzPM8cGFYNx8U42qgr2v02dJsLBkwXaBvUt/RnMngDdl1EWWW
|
46
|
+
2UO0p5A5rkccVMuxlW4l3o7xEhzw127nFE2zGmXWhEpX7gSvYjjFEJtDjlK4Prau
|
47
|
+
niyX/4507wIDAQABo4IBZDCCAWAwDgYDVR0PAQH/BAQDAgEGMB0GA1UdJQQWMBQG
|
48
|
+
CCsGAQUFBwMDBggrBgEFBQcDCTASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQW
|
49
|
+
BBQPOueslJF0LZYCc4OtnC5JPxmqVDAfBgNVHSMEGDAWgBSP8Et/qC5FJK5NUPpj
|
50
|
+
move4t0bvDA+BggrBgEFBQcBAQQyMDAwLgYIKwYBBQUHMAGGImh0dHA6Ly9vY3Nw
|
51
|
+
Mi5nbG9iYWxzaWduLmNvbS9yb290cjMwNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDov
|
52
|
+
L2NybC5nbG9iYWxzaWduLmNvbS9yb290LXIzLmNybDBjBgNVHSAEXDBaMAsGCSsG
|
53
|
+
AQQBoDIBMjAIBgZngQwBBAEwQQYJKwYBBAGgMgFfMDQwMgYIKwYBBQUHAgEWJmh0
|
54
|
+
dHBzOi8vd3d3Lmdsb2JhbHNpZ24uY29tL3JlcG9zaXRvcnkvMA0GCSqGSIb3DQEB
|
55
|
+
CwUAA4IBAQAVhCgM7aHDGYLbYydB18xjfda8zzabz9JdTAKLWBoWCHqxmJl/2DOK
|
56
|
+
XJ5iCprqkMLFYwQL6IdYBgAHglnDqJQy2eAUTaDVI+DH3brwaeJKRWUtTUmQeGYy
|
57
|
+
DrBowLCIsI7tXAb4XBBIPyNzujtThFKAzfCzFcgRCosFeEZZCNS+t/9L9ZxqTJx2
|
58
|
+
ohGFRYzUN+5Q3eEzNKmhHzoL8VZEim+zM9CxjtEMYAfuMsLwJG+/r/uBAXZnxKPo
|
59
|
+
4KvcM1Uo42dHPOtqpN+U6fSmwIHRUphRptYCtzzqSu/QumXSN4NTS35nfIxA9gcc
|
60
|
+
sK8EBtz4bEaIcpzrTp3DsLlUo7lOl8oU
|
61
|
+
-----END CERTIFICATE-----
|
62
|
+
- |
|
63
|
+
-----BEGIN CERTIFICATE-----
|
64
|
+
MIIE5jCCA86gAwIBAgIMKDuO03uv6RWXR1uAMA0GCSqGSIb3DQEBCwUAMFoxCzAJ
|
65
|
+
BgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTAwLgYDVQQDEydH
|
66
|
+
bG9iYWxTaWduIENvZGVTaWduaW5nIENBIC0gU0hBMjU2IC0gRzMwHhcNMTYwOTEz
|
67
|
+
MTgxMDIyWhcNMTkxMTExMTUxNTM4WjBgMQswCQYDVQQGEwJVUzEWMBQGA1UECBMN
|
68
|
+
TWFzc2FjaHVzZXR0czEPMA0GA1UEBxMGQm9zdG9uMRMwEQYDVQQKEwpSYXBpZDcg
|
69
|
+
TExDMRMwEQYDVQQDEwpSYXBpZDcgTExDMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
|
70
|
+
MIIBCgKCAQEAl0HeC0FzN1BJ4nQkxsBng3peS9Bdi9rpSGx+g0Ximd+M/7twmund
|
71
|
+
bzn2JPbNK/Gp/rq/SytrNSLcUzcbH/0z5Ltyw1/jQsGtRBrns0NZSRXqupQDW5R6
|
72
|
+
HFpaIAl3OdsesmIQc/fm0uhh8dkfHVo7UsZO/TeCPoy0uHXTI6aFBPzMMsdz+gf3
|
73
|
+
cCCLsnNKQh/T2Q/jwBs3NTPoyza/pPZcvGogKcWCeNihTO5Rn1Fc71sMHSjQsDtn
|
74
|
+
1fWGKYGi0qjvZ4lpGM9IFZMTbySKHbPLhhHnBOoV7avGemdky3AEsUeiT+6DY0P1
|
75
|
+
IydBy24uVNhGATglME1ttlT4Eme/to0M6wIDAQABo4IBpDCCAaAwDgYDVR0PAQH/
|
76
|
+
BAQDAgeAMIGUBggrBgEFBQcBAQSBhzCBhDBIBggrBgEFBQcwAoY8aHR0cDovL3Nl
|
77
|
+
Y3VyZS5nbG9iYWxzaWduLmNvbS9jYWNlcnQvZ3Njb2Rlc2lnbnNoYTJnM29jc3Au
|
78
|
+
Y3J0MDgGCCsGAQUFBzABhixodHRwOi8vb2NzcDIuZ2xvYmFsc2lnbi5jb20vZ3Nj
|
79
|
+
b2Rlc2lnbnNoYTJnMzBWBgNVHSAETzBNMEEGCSsGAQQBoDIBMjA0MDIGCCsGAQUF
|
80
|
+
BwIBFiZodHRwczovL3d3dy5nbG9iYWxzaWduLmNvbS9yZXBvc2l0b3J5LzAIBgZn
|
81
|
+
gQwBBAEwCQYDVR0TBAIwADA/BgNVHR8EODA2MDSgMqAwhi5odHRwOi8vY3JsLmds
|
82
|
+
b2JhbHNpZ24uY29tL2dzY29kZXNpZ25zaGEyZzMuY3JsMBMGA1UdJQQMMAoGCCsG
|
83
|
+
AQUFBwMDMB0GA1UdDgQWBBSm8RBpBC/cK9VmxzO2+RWnacN8CTAfBgNVHSMEGDAW
|
84
|
+
gBQPOueslJF0LZYCc4OtnC5JPxmqVDANBgkqhkiG9w0BAQsFAAOCAQEANVO3uYQl
|
85
|
+
h8iicbaXE3odrL+kXXmeeNgt4BD3x7GKAVIVixtwBS6pvrshjc1LN0tm3ruiv8oy
|
86
|
+
cq4FiEmVUXZejSRvVVtABeWdZWo+lJ8NxCBUEYYmnMrjgFIbGiEbBsg7PGtyeQsA
|
87
|
+
5Wbg7Lx889mS1tKfQBcPif8EjpTiXNfMiywmpaMYmvm+yQgzrRLDbjz6JV0Rc5Ga
|
88
|
+
WChka+LTPnMtsWJuFM8ka8icMeS28/nAGERdewxWvz+DeAPMORdTJ7aqb6+Y9xuz
|
89
|
+
G+Hmcg1v810agasPdoydE0RTVZgEOOMoQ07qu7JFXVWZ9ZQpHT7qJATWL/b2csFG
|
90
|
+
8mVuTXnyJOKRJA==
|
91
|
+
-----END CERTIFICATE-----
|
92
|
+
date: 2017-01-18 00:00:00.000000000 Z
|
13
93
|
dependencies:
|
14
94
|
- !ruby/object:Gem::Dependency
|
15
95
|
name: rkelly-remix
|
16
96
|
requirement: !ruby/object:Gem::Requirement
|
17
97
|
requirements:
|
18
|
-
- -
|
98
|
+
- - ">="
|
19
99
|
- !ruby/object:Gem::Version
|
20
|
-
version: 0
|
100
|
+
version: '0'
|
21
101
|
type: :runtime
|
22
102
|
prerelease: false
|
23
103
|
version_requirements: !ruby/object:Gem::Requirement
|
24
104
|
requirements:
|
25
|
-
- -
|
105
|
+
- - ">="
|
26
106
|
- !ruby/object:Gem::Version
|
27
|
-
version: 0
|
107
|
+
version: '0'
|
28
108
|
- !ruby/object:Gem::Dependency
|
29
109
|
name: rspec
|
30
110
|
requirement: !ruby/object:Gem::Requirement
|
31
111
|
requirements:
|
32
|
-
- - "
|
112
|
+
- - ">="
|
33
113
|
- !ruby/object:Gem::Version
|
34
|
-
version: '
|
114
|
+
version: '0'
|
35
115
|
type: :development
|
36
116
|
prerelease: false
|
37
117
|
version_requirements: !ruby/object:Gem::Requirement
|
38
118
|
requirements:
|
39
|
-
- - "
|
119
|
+
- - ">="
|
40
120
|
- !ruby/object:Gem::Version
|
41
|
-
version: '
|
121
|
+
version: '0'
|
42
122
|
- !ruby/object:Gem::Dependency
|
43
123
|
name: simplecov
|
44
124
|
requirement: !ruby/object:Gem::Requirement
|
@@ -110,6 +190,7 @@ files:
|
|
110
190
|
- lib/jsobfu/obfuscator.rb
|
111
191
|
- lib/jsobfu/scope.rb
|
112
192
|
- lib/jsobfu/utils.rb
|
193
|
+
- lib/jsobfu/version.rb
|
113
194
|
- samples/basic.rb
|
114
195
|
- spec/integration_spec.rb
|
115
196
|
- spec/jsobfu/disable_spec.rb
|
@@ -133,7 +214,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
133
214
|
requirements:
|
134
215
|
- - ">="
|
135
216
|
- !ruby/object:Gem::Version
|
136
|
-
version:
|
217
|
+
version: 2.0.0
|
137
218
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
138
219
|
requirements:
|
139
220
|
- - ">="
|
@@ -146,4 +227,3 @@ signing_key:
|
|
146
227
|
specification_version: 4
|
147
228
|
summary: A Javascript code obfuscator
|
148
229
|
test_files: []
|
149
|
-
has_rdoc:
|
metadata.gz.sig
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
F� ����������y�|��6��-
|