나는이 보이는 자바 스크립트 해제 당황하게하는 방법을 알아 퍼즐 노력하고 있어요 :방법
https://jsfiddle.net/douglasg14b/4951br9f/2/
var testString = 'Test | String'
var wf6 = {
fq4: 'su',
k8d: 'bs',
l8z: 'tri',
cy1: 'ng',
t5j: 'te',
ol: 'stS',
x3q: 'tri',
l9x: 'ng',
gh: 'xO'
};
//Obfuscated
let test1 = testString[wf6.fq4 + wf6.k8d + wf6.l8z + wf6.cy1](4,11);
//Normal
let test2 = testString.substring(4,11);
let test3;
//More complex obfuscation
(function moreComplex(){
\t let h = "i",
w = "nde",
T0 = "f",
hj = '|',
a = eval(wf6.t5j + wf6.ol + wf6.x3q + wf6.l9x).length;
//Obfuscated
test3 = testString[wf6.fq4 + wf6.k8d + wf6.l8z + wf6.cy1](testString[h + w + wf6.gh + T0](hj), a);
//Normal
let test4 = testString.substring(testString.indexOf('|'), testString.length);
})();
$('.span1').text(test1);
$('.span2').text(test3);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span class="span1"></span><br>
<span class="span2"></span>
이것은 작은 예제입니다. 제가 사용하고있는 파일은 ~ 60k 라인이며, 이런 종류의 난독 화입니다. 문자열을 속성 이름으로 사용할 수있는 모든 곳에서는 이러한 종류의 난독 화가 사용됩니다.
내가 이것을 할 수있는 방법은 모든 문자열 연결을 평가하여 읽을 수있는 동등한 것으로 변환하는 것입니다. 그러나, 나는 이것에 대해 어떻게 가고 모든 연결 사이에 존재하는 모든 다른 작업 코드를 무시할 지 모르겠다.
생각하십니까?
보너스 질문 :이 종류의 난독 화에 대해 검색을 좀 더 쉽게 할 수있는 일반적으로 사용되는 이름이 있습니까?
편집 : 더 복잡한 예가 추가되었습니다.
작성한 도구를 연결할 수 있습니까? 여기서 물어 보는 것을 할 수 있습니까? – Bergi
수동으로 constness 분석을 할 수 있다면 (obfuscators는 대부분 상수 만 사용하기 때문에 일반적으로 간단합니다) 수동으로 [코드에서 정규식 바꾸기] (http : // stackoverflow)를 통해 "평가"를 수행 할 수 있습니다. com/q/30879056/1048572) – Bergi
@Bergi :이 도구는 "DMS Software Reengineering Toolkit"이라고합니다. http://www.semanticdesigns.com/Products/DMS/DMSToolkit.html을 참조하십시오. –