Форум программистов, компьютерный форум, киберфорум
Haskell
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 22.01.2017
Сообщений: 2

Простой обфускатор JavaScript кода на Haskell

22.01.2017, 19:52. Показов 1522. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здраствуйте.
Нуждаюсь в помощи в написании простого обфускатора для JS кода.
Обфускатор должен извлекать пробельные символы, комментарии. Имена функций и переменные менять на унифицированные имена (такие как а1, а2, а3...).

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<p>Нажмите на кнопку, чтобы продемонстрировать подсказки.</p>
 
<button onclick="myFunction()">Кнопка</button>
 
<p id="demo"></p>
<script>
// этот комментарий нужно удалить
function myFunction()
{
var x;
var name = prompt("Пожалуйста, введите ваше имя","Сергей Пупкин");
if (name!=null)
  {
  x="Привет " + name + "! Как дела?";
  document.getElementById("demo").innerHTML=x;
  }
}
</script>
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.01.2017, 19:52
Ответы с готовыми решениями:

Ищу простой обфускатор
Подскажите простой обфускатор, который на входе берет исходники и возвращает их в перелопаченном виде: переменные переименовывает,...

Обфускатор кода, защита программы
Собственно в поисках обфускатор(а) кода visual basic 6.0 Вопрос по защите от распространения Сделал на скорую руку защиту в виде...

Существует ли обфускатор для VBA кода
существует ли обфускатор для VBA кода? может кто то посоветует что нибудь на эту тему. Для тех кто не знает, обфускация - это изменение...

4
22.01.2017, 21:07

Не по теме:

Сложновато выглядит для учебной задачки. Лишние пробелы и комментарии удалить просто, хотя и тут вопрос, можно ли пользоваться пакетами не из базового набора, т.е. parsec-ами всякими. А с заменой имён значительно сложнее. Переменная в js не обязательно в var задаётся. Может создаваться просто при присваивании. В том числе, создаваться новое поле в объекте. Т.е. в примере document, getElementById и innerHTML переименовывать нельзя. А то что мы сами создали, то можно.

Я, пожалуй, воздержусь. Это комментарий на случай если кто решить хочет.

0
0 / 0 / 0
Регистрация: 22.01.2017
Сообщений: 2
23.01.2017, 15:31  [ТС]
Parsec - можно использовать, достаточно переименовать переменные, задаваемые через Var, а так же убрать пробелы и комментарии.
0
Модератор
 Аватар для Curry
5158 / 3488 / 536
Регистрация: 01.06.2013
Сообщений: 7,568
Записей в блоге: 9
23.01.2017, 17:56
Так вам задание такое дали учебное? С парсерами? Тогда вы продвинутый. Начните с выделения фрагментов js в тегах script и атрибутах onЧтоНИБудь="". Потом удалите комментарии и пробелы с учётом "строк" и 'строк'. Напишите где застряли.

Не по теме:

А если вам конечный результат - обфускатор нужен, то их как грязи. Поищите по разделу https://www.cyberforum.ru/javascript/, или спросите там.

0
Антикодер
Эксперт функциональных языков программирования
1888 / 870 / 48
Регистрация: 15.09.2012
Сообщений: 3,088
24.01.2017, 17:33
Лучший ответ Сообщение было отмечено Mokart как решение

Решение

Для начала надо знать основы Haskell. А лучше всех даёт основы Haskell и комбинаторных парсеров - Erik Meijer:
Introduction to Functional Programming
Но он не рассказывает про parsec.

Вот то, что я читаю про parsec:
An introduction to parsing text in Haskell with Parsec
Intro to Parsing with Parsec in Haskell
RWH: Chapter 16. Using Parsec
Parser Combinators: Parsing for Haskell Beginners
Parsing and evaluating PHP in Haskell
Haskell Wiki:
Parsec
Parsing_expressions_and_statements
Parsing a simple imperative language
3
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.01.2017, 17:33
Помогаю со студенческими работами здесь

Простой код на haskell (элементарное) - не знаю как это в python реализовать
adjectives = nouns = funnn = ввожу в консоли funnn и вот output: *F_world&gt; funnn

Переписать небольшой фрагмент кода с C на Haskell
Хочу сравнить фрагмент кода на C и Haskell. Покажите мне как следующий код, написанный на С, будет выглядеть на Haskell? ...

PHP обфускатор для защиты php кода
Интересно кто чем пользуется? Есть ли хорощие бесплатные PHP обфускаторы? Не портит ли это обращение к mySql?

Разработка программного кода, содержащего основные типы данных. Haskell
Всем здравствуйте. Нужна помощь в решение задания на Haskell. Данная дисциплина длилась совсем недолго, но и вылетать за год до окончания...

Место ФП и Haskell в компьютерной индустрии (Для чего он нужен, этот Haskell?)
&quot;У нас&quot; ? А где преподавание этой экзотики на высоте? Добавлено через 2 минуты А где такие &quot;пришедшие&quot; используют...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru