Comments (2)
这个不属于上述3种混淆方式。
这个脚本中的iOSJS.$
实际上是Function() constructor,你可以当成是eval(),你直接把这个函数运行一下(去掉最后的(iOSJS={___:++iOSJS,$$$$:(![]+"")[iOSJS]})
)就能看到实际的函数了。
from decode-js.
这个是jjencode方式混淆的代码,目前尚未支持。
混淆方式如下:
function encode(variable, source) {
var result = ''
var ch
var key = [
'___',
'__$',
'_$_',
'_$$',
'$__',
'$_$',
'$$_',
'$$$',
'$___',
'$__$',
'$_$_',
'$_$$',
'$$__',
'$$_$',
'$$$_',
'$$$$',
]
var block = ''
for (var i = 0; i < source.length; i++) {
ch = source.charCodeAt(i)
if (ch == 34 || ch == 92) {
block += '\\\\\\' + source.charAt(i).toString(16)
} else if (
(32 <= ch && ch <= 47) ||
58 <= ch == 64 ||
(91 <= ch && ch <= 96) ||
(123 <= ch && ch <= 127)
) {
block += source.charAt(i)
} else if ((48 <= ch && ch <= 57) || (97 <= ch && ch <= 102)) {
if (block) result += '"' + block + '"+'
result += variable + '.' + key[ch < 64 ? ch - 48 : ch - 87] + '+'
block = ''
} else if (ch == 108) {
if (block) result += '"' + block + '"+'
result += '(![]+"")[' + variable + '._$_]+'
block = ''
} else if (ch == 111) {
if (block) result += '"' + block + '"+'
result += variable + '._$+'
block = ''
} else if (ch == 116) {
if (block) result += '"' + block + '"+'
result += variable + '.__+'
block = ''
} else if (ch == 117) {
if (block) result += '"' + block + '"+'
result += variable + '._+'
block = ''
} else if (ch < 128) {
if (block) result += '"' + block
else result += '"'
result +=
'\\\\"+' +
ch.toString(8).replace(/[0-7]/g, function (_0x1e7583) {
return variable + '.' + key[_0x1e7583] + '+'
})
block = ''
} else {
if (block) result += '"' + block
else result += '"'
result +=
'\\\\"+' +
variable +
'._+' +
ch.toString(16).replace(/[0-9a-f]/gi, function (_0x2b2347) {
return variable + '.' + key[parseInt(_0x2b2347, 16)] + '+'
})
block = ''
}
}
if (block) {
result += '"' + block + '"+'
}
result =
variable +
'=~[];/*sojson.com*/' +
variable +
'={___:++' +
variable +
',/*sojson.com*/$$$$:(![]+"")[' +
variable +
'],__$:++' +
variable +
',$_$_:(![]+"")[' +
variable +
'],_$_:++' +
variable +
',$_$$:({}+"")[' +
variable +
'],$$_$:(' +
variable +
'[' +
variable +
']+"")[' +
variable +
'],_$$:++' +
variable +
',$$$_:(!""+"")[' +
variable +
'],$__:++' +
variable +
',$_$:++' +
variable +
',$$__:({}+"")[' +
variable +
'],$$_:++' +
variable +
',$$$:++' +
variable +
',$___:++' +
variable +
',$__$:++' +
variable +
'};' +
variable +
'.$_=' +
'(' +
variable +
'.$_=' +
variable +
'+"")[' +
variable +
'.$_$]+' +
'(' +
variable +
'._$=' +
variable +
'.$_[' +
variable +
'.__$])+' +
'(' +
variable +
'.$$/*sojson.com*/=(' +
variable +
'.$+"")[' +
variable +
'.__$])+' +
'((!' +
variable +
')+"")[' +
variable +
'._$$]+' +
'(' +
variable +
'.__=' +
variable +
'.$_[' +
variable +
'.$$_])+' +
'(' +
variable +
'.$=(!""+"")[' +
variable +
'.__$])+' +
'(' +
variable +
'._=(!""+"")[' +
variable +
'._$_])+' +
variable +
'.$_[' +
variable +
'.$_$]+' +
variable +
'.__+' +
variable +
'._$+' +
variable +
'.$;/*sojson.com*/' +
variable +
'.$$=' +
variable +
'.$+' +
'(!""+"")[' +
variable +
'._$$]+' +
variable +
'.__+' +
variable +
'._+' +
variable +
'.$+' +
variable +
'.$$/*sojson.com*/;' +
variable +
'.$=(' +
variable +
'.___)[' +
variable +
'.$_][' +
variable +
'.$_];' +
variable +
'.$(' +
variable +
'.$(' +
variable +
'.$$+"\\""+' +
result +
'"\\"")())(sojson={___:++sojson,$$$$:(![]+"")[sojson]});'
return result
}
主要就是将代码编码以后调用了一次eval()。
from decode-js.
Related Issues (20)
- obfuscator: Fallback模式无法正确分离排序函数及其它细节上的bug HOT 2
- sojsonv7: 排序函数模版更新后无法识别 HOT 1
- other: @babel/parser RangeError: Maximum call stack size exceeded HOT 2
- other: 关于二次封装 HOT 2
- obfuscator: 在 #55 后失效 HOT 2
- sojsonv7: 版本更新后无法识别rotateFunction HOT 14
- sojsonv7: rotateFunction出现新特征 HOT 1
- sojsonv7出错 HOT 3
- sojsonv7: string-array与version在一行定义中时出错 HOT 6
- sojsonv7: Cannot find string list HOT 1
- other: 混淆方式定位问题 HOT 3
- jjencode: Cannot find variable name! HOT 3
- jsjiami.com.v7加密的能解密吗? HOT 1
- sojsonv7: decode local object failed HOT 5
- other: 未知的obfuscator派系混淆 HOT 7
- sojsonv7: exception occured while excuting purifyFunction and missing method for domain-lock HOT 8
- sojsonv7: 报错 URIError [Error]: URI malformed HOT 2
- obfuscator: 使用低版本(<0.22.0)以及eval包装 HOT 3
- sojsonv7: 当rotateFunction不在SequenceExpression中时无法被执行 HOT 7
- obfuscator: stringArrayLite替换左值时抛出异常 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from decode-js.