0

나는 html, jQuery 및 css에서 phonegap을 사용하여 하이브리드 모바일 응용 프로그램을 만들었습니다. 아무도 내가 리버스 엔지니어링 할 수 없도록 코드를 난독 처리하거나 암호화하려고합니다. yui compressernode-uglifier, minifier 사이에 혼란스러워합니다. 그들은 모두 온라인으로 쉽게 미화 될 수있는 js 파일을 축소합니다. 누군가이 작업을 완료하는 방법을 말해 줄 수 있습니까? 또한 알려주십시오.하이브리드 모바일 앱을 이용한 리버스 엔지니어링으로부터의 보호?

https://javascriptobfuscator.com/ 난이도가 좋은 이유는 무엇입니까? 미리 감사드립니다.

+0

클라이언트 측 JavaScript에서 수행하는 난독 처리는 실제로 많은 도움이되지 않습니다. 코드는 클라이언트 장치에서 실제로 해석되어야하므로 사용자가 수행해야하는 모든 작업은 되돌릴 수 있어야합니다. 코드를 난처하게 만들고 싶다면 어떻게해야할까요? –

+0

내 상사가 리버스 엔지니어링에서 앱을 보호하는 작업을 할당합니다. 나는 구글과 그 코드 난독 처리 절차를 알게되었다. 필자는 jquery, html을 사용했습니다. 즉, 하이브리드 @JoeClay – Asad

+0

sp 이유는 아무도 그것을 이해할 수 없도록 @JoeClay입니다. – Asad

답변

3

주석에서 설명한대로 - 해석 된 언어의 난독 화는 거의 불가능합니다. 이것은 브라우저가 코드를 실행하기 위해 유효한 JavaScript로 코드를 읽을 수 있어야한다는 사실 덕분입니다. 브라우저가이를 수행 할 수 있다면 충분히 결정된 사람이 될 수 있습니다! 자바 스크립트를 난독화할 수 있다고 주장하는 모든 서비스는 단순히 '모호성을 통한 보안'을 제공하고 있습니다. 즉, 해독하는 데 시간이 오래 걸리거나 이해하기가 쉽지 않습니다.

예를 들어, the site you linked in your question을 살펴 보았습니다.

console.log("test"); 

을 그리고 여기에 출력입니다 : 여기 내 입력 코드는이 먼저 눈에 아주 안전한 보인다

var _0xdef6=["\x74\x65\x73\x74","\x6C\x6F\x67"];console[_0xdef6[1]](_0xdef6[0]) 

, 그리고 몇 가지 덜 전용 역 엔지니어를 놀라게하기에 충분 될 수 있습니다. 그러나, 디코딩 실제로 매우 간단합니다

//    t e s t  l o g 
var values = ["\x74\x65\x73\x74", "\x6C\x6F\x67"]; 
console[values[1]](values[0]); 

갑자기, 모든 꽤 명백하다 -이 도구는, 입력 코드에서 값 및 식별자를 촬영 ASCII 진수 코드로 변환하고, 문자열로 저장했다 정렬.

실제 프로그램은 이보다 훨씬 길어서 디코딩하기가 더 어려울 지 모르지만 요점은 동일하게 유지됩니다. 점심 시간에 작은 프로그램에서 난독 화가가 어떻게 작동하는지 파악할 수 있다면, 심각한 리버스 엔지니어링 시도에서 코드를 보호하지는 않습니다!

+0

시간 내 주셔서 감사합니다. @Joe Clay :) – Asad

+0

@Asad : 문제 없습니다! –