0

Я сделал гибридное мобильное приложение в html, jQuery и css с помощью phonegap. Я хочу обфускать или зашифровать свой код, чтобы никто не мог его перестроить. Меня путают между yui compressernode-uglifier, minifier. Все они просто уменьшают мой js-файл, который можно легко украсить в Интернете. Может ли кто-нибудь сказать мне способ выполнения этой задачи? Также сообщите мне, еслиЗащита от обратного проектирования с помощью гибридного мобильного приложения?

https://javascriptobfuscator.com/ Это хорошо для обфускации? Спасибо заранее.

+0

Любая обфускация, которую вы выполняете на клиентском JavaScript, на самом деле не поможет - код действительно должен быть интерпретирован на клиентском устройстве, поэтому все, что вы делаете с ним, должно быть обратимым. Каковы ваши рассуждения о том, что вы хотите запутать свой код? –

+0

мой босс назначил мне задачу защитить приложение от обратной инженерии. i google и узнал, что его процедура обфускации кода. Я использовал jquery, html для приложения, т. Е. Его гибрид @JoeClay – Asad

+0

sp причина заключается в том, чтобы запутать его, чтобы никто не мог его понять @JoeClay – Asad

ответ

3

Как обсуждалось в комментариях - обфускация в интерпретируемом языке практически невозможна. Это связано с тем, что браузер должен иметь возможность читать ваш код как действительный JavaScript, чтобы иметь возможность его запускать - если браузер может это сделать, так может быть достаточно человек! Любые сервисы, которые утверждают, что могут запутать 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: Без проблем! –