2012-03-21 2 views
1

Прежде всего, я хочу уточнить, что я имею в виду путем обратного проектирования нечто вроде «декомпиляции» и возврата исходного исходного кода или чего-то подобного.Reverse Engineer - программа, работающая как веб-сервис, будущее?

Вчера я прочитал вопрос о ком-то, кто хотел защитить свой код на Python от «получения украденного» другими словами: ему не понравилось, что кто-то может прочитать его код на Python. Интересная вещь, которую я прочитал, заключалась в том, что кто-то сказал, что единственным надежным способом «защитить» его код от обратного проектирования является использование Webservice.

Так что я мог на самом деле написать только некоторые графические интерфейсы в Python, PHP, что бы то ни было и сделать «очень секретный код», который я хочу защитить через Webservice. (В основном отправка переменных на хост и получение результатов).

Неужели невозможно переконструировать веб-сервис (через код и без взлома на Сервер)? Будет ли это будущее современных коммерческих приложений? Обман облаков уже здесь. Поэтому я не стал бы удивляться.

Мне очень жаль, если эта тема уже обсуждалась, но я не мог найти никаких ресурсов по этому поводу.

EDIT: Вся идея напоминает мне AJAX. Код выполняется на сервере, а контент отправляется клиенту и «приукрашен». Сам клиент не видит, что за php-кодом или другой технологией.

+0

@AI G спасибо за исправление моего вопроса :) –

ответ

1

Ого, это потрясающе! Я так и не подумал об этом, но вы можете создать программу, которая сканирует api и возвращает в качестве выходного программного обеспечения django/tastypie, которое имитирует все, что делает api.

Позвонив в службу и прочитав, что она говорит, вы можете проанализировать ее и начать видеть отношения между объектами внутри api. Имея это, вы можете создавать модели, и tastypie берет его с этой точки.

Удивительная вещь в этом заключается в том, что нормальные люди (или, по крайней мере, не сторонние разработчики) могут создавать api, просто описывая, что они хотят быть в качестве вывода. Я видел, как многие разработчики android/iphone создают кучу статических xml или json, поэтому они могут вызвать их сервис и начать разработку интерфейса. Ну что, если этого было достаточно? Возьмите некоторые файлы xml/json в качестве входных данных, получите бэкэнд в качестве вывода.

+0

что я говорю. вы меня понимаете :) хорошая вещь: вы можете сохранить «секретный код» очень просто, просто имея сервер, на котором выполняется этот код webservice, gui может быть всегда одним и тем же или очень редко обновляться. «плохо»: клиент всегда нуждается в подключении к Интернету. но Интернет быстро распространяется. –

+0

хорошо, чтобы ответить на ваш вопрос: Нет, я никогда не видел ничего подобного. Но да, если вы не найдете никаких ресурсов, я бы с удовольствием сотрудничал с вами в проекте github. BTW: Я тоже играю на github. – fceruti

+0

ну, у меня много идей. Мы могли бы поболтать когда-нибудь :) –

0

Да,

Все они могли бы сделать, это относиться к вашей веб-службы, как черный ящик, запрос к WSDL для всех параметров он принимает и данные, которые он возвращает.

Затем они могли представить различные переменные и посмотреть, какие разные результаты. «Код» нельзя было увидеть или украсть (с надлежащей безопасностью), но входы и выходы могут быть дублированы.

Если вы хотите защитить свой «очень секретный код», веб-сервис - это отличный способ защитить фактический код.

-sb

0

Это зависит от того, что вы подразумеваете под обратным проектированием: путем повторной отправки ввода и анализа вывода поведение вашего кода все еще можно увидеть. У меня не было бы кода, но я все еще вижу, что делает система. Это означает, что я мог бы построить аналогичную систему, которая делает то же самое, учитывая тот же ввод.

Было бы трудно поймать исключительные случаи (например, выходные данные отличаются друг от друга только в один день года), но общее поведение, безусловно, может быть скопировано. Это похоже на анализ протокола клиента обмена мгновенными сообщениями: у вас может не быть исходного кода, но вы все равно можете создать копию.

+0

Я только говорю об обратном проектировании по коду. Не по выходу. Я знаю, что это также возможно. (метод, используемый для построения, например, частного игрового сервера) –

Смежные вопросы