코드 혼동: 왜, 어떻게, 언제...

인터넷에 대량의 사용 가능한 코드 컴파일러가 존재함에 따라 원본 코드를 숨기는 것이 점점 중요해져서 어떠한 역방향 프로젝트도 그것을 컴파일할 수 없다.
파이썬과 자바스크립트와 같은 해석 언어는 소스 코드를 보호하기 위해 모호 처리를 더욱 필요로 한다.응용 프로그램을 실행 가능한 파일로 포장하더라도 원본 코드는 메모리에서 볼 수 있습니다.

코드 혼동이란 무엇입니까?
코드 혼동은 우리의 원본 코드 안전을 확보하기 위해 역방향 엔지니어의 생활을 어렵게 하는 기술이다.
그것은 옥스포드 대학이 제공한 혼동 정의와 유사하다the action of making something obscure, unclear, or unintelligible.코드 혼동은 실제 소스 코드를 읽을 수 없고 이해할 수 없는 코드로 바꾸는 과정이다.

다음은 Javascript 모호 코드의 예입니다
  • 실제 소스 코드
  • function hi(){
        hi();
    }
    hi();
    
  • 모호 코드
  • var _0xcd38=['log','Hello\x20World!'];(function(_0x1499a2,_0x273593){var _0xcd38c1=function(_0x13863e){while(--_0x13863e){_0x1499a2['push'](_0x1499a2['shift']());}};_0xcd38c1(++_0x273593);}(_0xcd38,0xd7));var _0x1386=function(_0x1499a2,_0x273593){_0x1499a2=_0x1499a2-0x1a2;var _0xcd38c1=_0xcd38[_0x1499a2];return _0xcd38c1;};function _0x425006(){var _0x18303c=_0x1386;console[_0x18303c(0x1a3)](_0x18303c(0x1a2));}_0x425006();
    

    코드 혼동은 어떻게 작동합니까?
    보시다시피, 모호 코드에서 변수 이름이 변경되었고, 함수 이름이 무작위 16진수로 변경되었습니다.
    또 불필요한 변수와 순환이 추가돼 역방향 엔지니어는 이해할 수 없다.
    나는 또 네가 직접 시도해 보라고 건의한다here is the link to the online JavaScript obfuscator which I used in the above example

    코드 혼동과 코드 추화는 어떤 차이가 있는가
    코드 희화화와 코드 혼동은 매우 다르다.코드 희화화는 여분의 공백 문자와 탭만 삭제할 뿐 희화화된 코드는 쉽게 이전의 상태로 회복되고 더욱 아름다운 VS 코드를 사용하면 더욱 아름답다.

    왜 당신의 코드를 혼동합니까?
    당신과 당신의 팀이 당신의 회사를 위해 새로운 비즈니스 응용 프로그램을 개발하려고 노력하고 있다고 가정해 보세요.신청은 분명히 비용을 지불하는 것이다💰. 첫 번째 공통 버전 (v1.0.0) 을 발표했습니다.
    이제 이틀 후에 당신의 응용 프로그램이 제3자 torrent 사이트에서 무료로 다운로드할 수 있다는 것을 알게 될 것입니다.이 소식을 들으면 너는 매우 상심할 것이다.
    네가 수개월 수년 동안 부지런히 일한 것을 도둑맞았어!!

    이런 상황은 피할 수 있다.

    어떻게 써요?
    만약 원본 코드를 컴파일하고 발표하기 전에 원본 코드를 혼동했다면.

    모호한 처리는 어떻게 이런 상황을 방지합니까?😏
    모호 처리는 모든 역방향 프로젝트가 프로그램의 실제 원본 코드를 보는 것을 막을 것입니다.

    근데 어떻게 하지?
    앞에서 말한 바와 같이 코드 혼동은 변수 이름, 줄 번호를 바꾸고 불필요한 순환을 추가하기 때문에 이해하기 어렵다.

    어떻게 코드를 혼동합니까?
    인터넷에는 많은 혼동기가 있는데, 대다수는 무료이며, 원천을 개척한 것이다.
    코드를 혼동하려면 먼저 혼동기를 설치해야 한다.그럼 서류대로 하세요.😉.

    다음은 서로 다른 언어에 대한 다양한 모호 프로세서 목록입니다.
  • 자바

  • ProGaurd
    물론 가장 인기가 많고 널리 사용되는 자바 모호 처리입니다.
    Android Studio가 사전 설치되어 있습니다.
    See a more bigger list of Java Obfuscaters here
  • JavaScript

  • javascript-obfuscator
    소스 소스 JavaScript 혼동.
    npm 패키지로 제공📦
    $ npm install --save-dev javascript-obfuscator
    $ # OR
    $ yarn add --dev javascript-obfuscator
    
  • Python

  • PyArmour
    설치하다.
    $ pip install pyarmor
    
  • C#
  • 오픈소스 C#obfusscate가 잘 어울려요.
  • Android Studio
  • 안드로이드 스튜디오의 공식 안내서는 응용 프로그램을 혼동할 수 있습니다.
  • C/C++
  • C나 C++는 모호하게 처리할 필요가 없습니다.C++는 기계 언어로 직접 컴파일된 것이기 때문에, 역컴파일은 우리에게 어셈블리만 제공할 뿐, 이것은 이해하기 어렵다

    코드 혼동은 얼마나 안전합니까?
    코드 혼동은 안전합니다.그래도 프로그램을 발표하기 전에 모호한 코드로 컴파일된 프로그램을 테스트해 보는 것을 권장합니다.
    또 생산 전 테스트를 할 때는 혼동을 피해야 하지만 혼동은 시간이 많이 걸린다.

    Also remember


    너의 모호한 코드가 더 안전할 수 있지만, 가장 안전한 것은 아니다.

    코드 혼동의 장단점

    우세하다
    코드 혼동은 장점이 많아요.
  • 코드 수축
  • 코드 혼동은 일반적으로 사용하지 않은 코드를 삭제합니다.
    예를 들어 코드의if문장이 비어 있으면 else{}else는 혼동 과정에서 삭제됩니다
  • 소스 코드 보호
  • 너무 뻔해.😜
  • 최적화
  • 코드가 줄어들기 때문에, 모호한 코드는 통상적으로 더욱 최적화될 것이다

    결점
    응, 장점도 많고 단점도 많아.
  • 악성 애플리케이션이 자주 혼동됨
  • 많은 악성 응용 프로그램 창설자들은 코드를 혼동하여 바이러스 방지 보호를 빙빙 돌릴 수 있다.
  • 백신 소프트웨어는 자주 미친다
  • 모호한 코드가 있는 사이트를 방문할 때마다, 때때로 당신의 바이러스 방지 소프트웨어는 미친 듯이 변한다.많은 사이트들이 악성코드를 숨기기 위해 그들의 코드를 혼동했기 때문이다
  • Chrome과 Firefox
  • 에 더 이상 흐릿한 브라우저 확장이 없습니다.
    혼동이 악성코드를 숨기는 데 자주 쓰이기 때문에 구글과 모질라는 이 같은 행동을 발표했다.

    Fact: 70% of extensions removed from the Chrome Web Store were obfuscated.

  • 모호처리가 시간이 많이 걸릴 때가 많다
  • 나는 항상 응용 프로그램이나 헷갈리지 않는 것을 먼저 테스트한 다음에 헷갈린 후에 테스트하는 것을 권장한다.

    요약
    만약 당신이 거대한 응용 프로그램을 개발하고 있다면 코드 혼동은 매우 중요하다.
    인터넷에는 많은 반컴파일러가 있다.
    코드 혼동은 어느 정도 당신의 코드를 보호할 수 있지만, 모든 것이 해커가 공격할 수 있다는 것을 명심하십시오.

    리뷰👇

    너는 너의 코드를 혼동할 수 있니?

    아직도 여기 있어요?
    너한테 줄 특별한 게 있어...
    내 #100일 코드 진행률을 계속 지켜보세요.때때로 나도 좋은 댓글을 공유할 때가 있다.
    좋은 하루 되세요.

    좋은 웹페이지 즐겨찾기