This commit is contained in:
cilame 2022-10-14 09:20:14 +08:00
parent 46329ceeaa
commit d12fcb6b1b
3 changed files with 107 additions and 64 deletions

View File

@ -20,7 +20,7 @@
<button>高级 hook ,修改 response 返回值</button>
<button>AST混淆解密</button>
<button>代码模板(RPC...)</button>
<button>jsobfuscator混淆器</button>
<button>混淆器</button>
</ul>
</nav>
<div id="container">
@ -192,69 +192,17 @@
<textarea id='code_model' style="width: 100%; height: 500px" placeholder="附加功能拖拽文件到该窗口自动输出base64内容"></textarea>
</section>
<section class="tab">
<div>jsobfuscator混淆器</div>
<button id='jsobfuscator_btn'>混淆</button>
<button id='jsobfuscator_btn'>jsobfuscator混淆</button>
<button id='jsobfuscator_get_config_btn'>获取jsobfuscator配置</button>
<button id='aline_js_btn'>aline_js混淆</button>
<button id='aline_js_get_config_btn'>获取aline_js配置</button>
<hr>
<label>混淆配置</label>
<textarea id='jsobfuscator_config' style="width: 100%; height: 500px">
{
compact: false, // 输出是否为一行内容若selfDefending开关开启则这里强制为true
controlFlowFlattening: true, // 控制流平坦化开关
controlFlowFlatteningThreshold: 0.75, // 控制流使用率
deadCodeInjection: true, // 注入死代码
deadCodeInjectionThreshold: 0.4, // 死代码注入率
debugProtection: true, // debugger 反调试开关
debugProtectionInterval: 4000, // debugger 定时反调试开关时间间隔
disableConsoleOutput: true, // console 清空,反输出
domainLock: [], // 指定运行作用域
domainLockRedirectUrl: 'about:blank', // 在非作用域运行时自动重定向的url
forceTransformStrings: [],
identifierNamesCache: null,
identifierNamesGenerator: 'mangled', // 变量混淆风格 hexadecimal:(_0xabc123) mangled:(a,b,c)
identifiersDictionary: [],
identifiersPrefix: '',
ignoreImports: false,
inputFileName: '',
log: false,
numbersToExpressions: false,
optionsPreset: 'default',
renameGlobals: false,
renameProperties: false,
renamePropertiesMode: 'safe',
reservedNames: [],
reservedStrings: [],
seed: 0,
selfDefending: true, // 函数格式化保护
simplify: true,
sourceMap: false,
sourceMapBaseUrl: '',
sourceMapFileName: '',
sourceMapMode: 'separate',
sourceMapSourcesMode: 'sources-content',
splitStrings: false, // 字符串碎片化 "asdfasdf" => "asd" + "fas" + "df"
splitStringsChunkLength: 10, // 切片长度
stringArray: true, // 属性字符串列表化开关也就是ob头部一长串字符串
stringArrayCallsTransform: true, // 属性字符串函数化比例
stringArrayCallsTransformThreshold: 0.5, // 转化比例
stringArrayEncoding: ['base64'], // 解密属性字符串的方式 'none','base64','rc4'
stringArrayIndexesType: [
'hexadecimal-number'
],
stringArrayIndexShift: true,
stringArrayRotate: true,
stringArrayShuffle: true,
stringArrayWrappersCount: 1,
stringArrayWrappersChainedCalls: true,
stringArrayWrappersParametersMaxCount: 2,
stringArrayWrappersType: 'variable',
stringArrayThreshold: 0.75,
target: 'browser',
transformObjectKeys: false,
unicodeEscapeSequence: false
}
</textarea>
<label>输入输出混淆代码</label>
<textarea id='jsobfuscator_code' style="width: 100%; height: 500px" placeholder="输入输出均在此处"></textarea>
<textarea id='jsobfuscator_config' style="width: 100%; height: 200px"></textarea>
<label>输入混淆代码</label>
<textarea id='jsobfuscator_input' style="width: 100%; height: 300px" placeholder="输入代码"></textarea>
<label>输出混淆代码</label>
<textarea id='jsobfuscator_code' style="width: 100%; height: 500px" placeholder="输出代码"></textarea>
</section>
</div>
<script src="options.js"></script>
@ -264,5 +212,6 @@
<script src="tools/env_maker.js"></script>
<script src="tools/btn_utils.js"></script>
<script src="tools/js_obfuscator.js"></script>
<script src="tools/aline_js.js"></script>
</body>
</html>

32
tools/aline_js.js Normal file

File diff suppressed because one or more lines are too long

View File

@ -6,12 +6,74 @@
var btn = document.getElementById('jsobfuscator_btn')
btn.addEventListener('click', function(e){
var config = document.getElementById('jsobfuscator_config')
var input = document.getElementById('jsobfuscator_input')
var code = document.getElementById('jsobfuscator_code')
config = eval('1,' + config.value)
var obfuscationResult = JavaScriptObfuscator.obfuscate(code.value, config)
config = eval('1,' + (config.value.trim() || '{}'))
var obfuscationResult = JavaScriptObfuscator.obfuscate(input.value, config)
code.value = obfuscationResult._obfuscatedCode
})
var btn = document.getElementById('jsobfuscator_get_config_btn')
btn.addEventListener('click', function(e){
var config = document.getElementById('jsobfuscator_config')
config.value = `
{
compact: false, // 输出是否为一行内容若selfDefending开关开启则这里强制为true
controlFlowFlattening: true, // 控制流平坦化开关
controlFlowFlatteningThreshold: 0.75, // 控制流使用率
deadCodeInjection: true, // 注入死代码
deadCodeInjectionThreshold: 0.4, // 死代码注入率
debugProtection: true, // debugger 反调试开关
debugProtectionInterval: 4000, // debugger 定时反调试开关时间间隔
disableConsoleOutput: true, // console 清空,反输出
domainLock: [], // 指定运行作用域
domainLockRedirectUrl: 'about:blank', // 在非作用域运行时自动重定向的url
forceTransformStrings: [],
identifierNamesCache: null,
identifierNamesGenerator: 'mangled', // 变量混淆风格 hexadecimal:(_0xabc123) mangled:(a,b,c)
identifiersDictionary: [],
identifiersPrefix: '',
ignoreImports: false,
inputFileName: '',
log: false,
numbersToExpressions: false,
optionsPreset: 'default',
renameGlobals: false,
renameProperties: false,
renamePropertiesMode: 'safe',
reservedNames: [],
reservedStrings: [],
seed: 0,
selfDefending: true, // 函数格式化保护
simplify: true,
sourceMap: false,
sourceMapBaseUrl: '',
sourceMapFileName: '',
sourceMapMode: 'separate',
sourceMapSourcesMode: 'sources-content',
splitStrings: false, // 字符串碎片化 "asdfasdf" => "asd" + "fas" + "df"
splitStringsChunkLength: 10, // 切片长度
stringArray: true, // 属性字符串列表化开关也就是ob头部一长串字符串
stringArrayCallsTransform: true, // 属性字符串函数化比例
stringArrayCallsTransformThreshold: 0.5, // 转化比例
stringArrayEncoding: ['base64'], // 解密属性字符串的方式 'none','base64','rc4'
stringArrayIndexesType: [
'hexadecimal-number'
],
stringArrayIndexShift: true,
stringArrayRotate: true,
stringArrayShuffle: true,
stringArrayWrappersCount: 1,
stringArrayWrappersChainedCalls: true,
stringArrayWrappersParametersMaxCount: 2,
stringArrayWrappersType: 'variable',
stringArrayThreshold: 0.75,
target: 'browser',
transformObjectKeys: false,
unicodeEscapeSequence: false
}
`
})