자바스크립트 DeobFuscator

JavaScript는 대부분의 최신 웹 브라우저에서 지원하는 대중적이고 강력한 프로그래밍 언어입니다. 사용자 인증에서 웹 사이트 수익 창출에 이르기까지 다양한 작업에 사용됩니다. HTML과 CSS에 대한 단순한 래퍼가 아니라 최신 웹 프로그래밍에 필수적입니다.

난독화 해제란 무엇입니까?



De-obfuscation은 프로그램에서 난독화 기능을 제거하거나 제거하는 프로세스입니다. 종종 이는 코드 기반이 적절하게 라이센스되고 모범 사례를 준수하는지 확인하기 위해 코드 기반을 감사하기 위해 수행됩니다. 그러나 중복 코드를 식별하고 향후 개선을 장려하기 위해 코드 베이스를 분석하기 위해 수행할 수도 있습니다.

일반적으로 난독화 해제의 목표는 원본 작성자가 모르게 추가했을 수 있는 모든 추가 정보를 제거하는 것입니다.

난독화 해제의 중요성



개발자가 코드를 작성할 때 일반적으로 코드가 어디에 사용될지 모릅니다. 예를 들어 웹 애플리케이션의 체크아웃 흐름은 해당 애플리케이션에 고유한 많은 변수 이름과 표현식을 사용할 수 있습니다. 그러나 작성자는 체크아웃 알고리즘이 다른 웹사이트에서 다른 결과로 이어질 것이라는 사실을 모를 수 있습니다.

/ Example obfuscated code
const _0x38a2db = ['\x54\x6f\x74a\x6c', '\x6c\x6f\x67', '\x3a\x20'];
const _0x9b58d9 = function(_0x39ddb7) {
    return _0x38a2db[_0x39ddb7 + (-0x6d5 + 0x58 + 0x11 * 0x62)];
}, _0x498b9b = function(_0x48d808, _0x14da1e) {
    return _0x9b58d9(_0x48d808);
}, _0x34c7bc = function(_0x16af1d, _0x27a29e) {
    return _0x498b9b(_0x16af1d);
}, _0x23a1 = _0x34c7bc;
let total = 0x2 * 0x109e + -0xc * -0x16a + -0x3234;
for (let i = 0x1196 + 0x97b * 0x3 + -0x2e07; i < -0x95 * -0x38 + -0x1a75 + -0x619; i++) {
    total += i;
}
console[_0x34c7bc(-(0x1e7c + -0x1 * -0x1367 + 0x2ef * -0x11))](_0x498b9b(-(0x1020 + 0x253 + 0x7 * -0x2a2)) + _0x23a1(-(0x12c5 + -0x1887 + -0x1 * -0x5c5)) + total);


여기에서 난독화 해제가 시작됩니다. 소스 코드에서 변수 이름과 표현식을 제거함으로써 개발자는 다른 사람들이 실수로 해당 변수를 코드에 도입하는 것을 방지합니다.
deobfuscated javascript 코드

let total = 0;
for (let i = 0; i < 10; i++) {
  total += i;
}
console.log("Total: " + total);




난독화 해제가 중요한 이유



코드베이스에서 시간을 보낼 때 해당 코드를 가이드로 사용하고 있습니다. 어떤 조직에서는 참신한 아이디어일 수 있지만 다른 조직에서는 구식으로 간주될 수 있습니다. 두 경우 모두 코드는 다른 사람이 작성한 것처럼 취급해야 합니다. 결국 그렇습니다!

팀으로 작업할 때는 깨끗한 코드를 작성하는 것이 중요합니다. 다른 사람이 당신의 코드를 엉망으로 만들어야 한다면, 당신은 그 사람이 가능한 한 온화하게 다루기를 원할 것입니다. 이렇게 하면 전체 서버를 리버스 엔지니어링하지 않고도 계속해서 개선하고 새로운 기능을 만들 수 있습니다!

코드가 어디에 사용될지 모를 때 모범 사례와 지역 선례를 따르는 변경을 훨씬 더 쉽게 수행할 수 있습니다. 코드가 사용되는 위치를 알면 더 쉽게 유지 관리를 목표로 하고 명명 충돌, 오타 및 불일치와 같은 일반적인 함정을 피할 수 있습니다.

난독화 극복



코드 베이스에서 난독화 기능을 제거하는 데 성공할 수 있지만 다른 사람이 읽고 더 잘 이해하기를 원하면 어떻게 될까요? 코드 검토 서비스에 코드를 제출했다고 가정해 보겠습니다. 코드가 안정적이며 검토할 준비가 된 것으로 표시됩니다. 그러나 동료가 코드의 모양에 대해 다른 생각을 가지고 있음을 알게 됩니다. 어떻게 해야 합니까?

동료가 제거한 부분을 찾기 위해 코드를 리버스 엔지니어링할 수 있습니다. 그러나 그것은 큰 실수입니다! 동료가 보고 싶지 않은 정보를 실수로 공개하지 않도록 코드의 내부 구조를 절대로 공개해서는 안 됩니다.

대신 동료에게 연락하여 제거된 항목과 이유를 알려주십시오. 이 간단한 작업은 코드에 큰 도움이 될 수 있습니다re-obfuscating. 그리고 그것은 또한 미래의 오해를 예방할 수 있습니다.

좋은 웹페이지 즐겨찾기