수동으로 암호를 해독하는 것은 예상보다 훨씬 간단했고, 수행하는 데 30분도 채 걸리지 않았습니다.
JS 난독화의 가장 중요한 부분:
l eval 또는 document.write, VBS의 EXECUTE, execScript 및 js를 실행할 수 있는 기타 함수
l unescape
js를 난독화하는 방법에는 일반적으로 여러 가지가 있습니다.
1. 이해하기 어려운 이스케이프를 통해 코드를 16진수 형태의 코드로 변환합니다.
2. 코드에 대해 간단한 가역 암호화를 수행한 다음 코드를 해독하는 복호화 기능을 제공하고 코드 문자열을 eval과 같은 호출을 사용합니다. 실행을 위해 js 엔진에.
3. 코드에서 주석과 공백을 필터링하고 js 코드에서 내부 함수/내부 변수의 이름을 수정하고 이해하기 매우 어려운 숫자 또는 혼합 숫자 문자열과 같이 혼동하기 쉬운 문자열로 변경합니다. 및 문자 O. 식별이 어렵습니다.
위의 방법들을 결합하는 것이 좀 더 발전된 방법입니다.
따라서 복원하는 방법은
1. unescape를 사용하여 보이는 %XX 문자열을 디코딩합니다
2. eval 또는 유사한 해석 함수 항목을 찾습니다.
3. 문자열
4. 이 문자열도 16진수 형식이면 unescape를 사용하여 해결하세요
5. 모든 코드를 찾을 때까지 2~4의 과정을 반복합니다
6. 아마도 해결된 함수에 사용된 일부 변수가 남아 있는 것으로 확인되었으며, 이러한 변수는 일부 큰 문자열일 수 있습니다. 이 경우 해당 문자열은 암호화된 소스 코드여야 합니다. 이를 사용하는 함수 끝의 적절한 위치에 코드를 삽입하고 해독된 문자열을 표시하여 소스 코드를 가져옵니다.
여기서 가장 중요한 점은 변수 이름을 명확하게 보는 것입니다. 복호화 부분의 코드 중 상당수는 000O 및 0O00과 같은 이름을 추가하여 구성됩니다.
위치 이동으로 인해 함수나 변수를 찾을 수 없는 일이 없도록 함수와 변수의 선언 및 정의 순서를 주의 깊게 지켜주세요.
또한 난독화 도구는 삭제할 수 있는 정크 코드를 코드에 많이 추가합니다.
더 강력한 난독화 도구가 있는 경우 생성된 쓰레기 같은 코드에 유용한 코드를 삽입하여 해독된 키와 같이 뒤따르는 왜곡된 함수에 대한 일부 변수를 제공할 수도 있으므로 주의해야 합니다. 코드 순서를 어지럽히세요. 정크 코드인지 확실하지 않으면 먼저 그대로 두세요.
방법 3이 가장 간단하고 가장 느린 것 같지만 사실 이 방법이 우리에게 가장 큰 영향을 미칩니다. 주석 없이, 혼란스러운 형식과 지저분한 이름의 식별자가 포함된 코드를 읽으려고 하면 매우 어렵습니다. 평범한 사람에게는 어렵습니다. 모두 악몽입니다. 하지만 이는 아마도 "내부" 표준이 판단하기 쉽지 않고 일부 난독화 도구가 이러한 기능을 제공하지 않기 때문일 것입니다.
기타: 웹페이지 암호 해독
주소 표시줄에 또는 Ctrl O를 눌러 다음을 입력하세요.