Отключить возможность трассировки

120 views
Skip to first unread message

Evgeny M

unread,
Oct 5, 2013, 5:48:39 PM10/5/13
to
Как отключить или максимально затруднить трассировку приложения, в том числе с удаленной ноды? Допустим можно попробовать  собрать модуль с именем dbg и загрузить его в память, но это ведь не поможет при трассировке с удаленной ноды?

Вот здесь http://erlang.org/pipermail/erlang-questions/2010-February/049429.html пишут, что это в теории возможно, но нетривиально.

Danil A. Zagoskin

unread,
Oct 5, 2013, 6:10:28 PM10/5/13
to erlang-...@googlegroups.com
Я могу ошибаться, но, вроде бы, process_flag(sensitive, true) – то, что нужно.


6 октября 2013 г., 1:48 пользователь Evgeny M <donped...@gmail.com> написал:
Как отключить или максимально затруднить трассировку приложения, в том числе с удаленной ноды? Допустим можно попробовать  собрать модуль с именем dbg и загрузить его в память, но это ведь не поможет при трассировке с удаленной ноды?

Вот здесь http://erlang.org/pipermail/erlang-questions/2010-February/049429.html пишут, что это в теории возможно, но нетивиально.

--
Вы получили это сообщение, поскольку подписаны на группу Erlang по-русски.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес erlang-russia...@googlegroups.com.
Чтобы добавлять сообщения в эту группу, отправьте письмо по адресу erlang-...@googlegroups.com.
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.

Evgeny M

unread,
Oct 5, 2013, 6:11:05 PM10/5/13
to erlang-...@googlegroups.com
Хотя нет, простая замена dbg е поможет, там же еще всякие observer и pman есть


воскресенье, 6 октября 2013 г., 1:48:06 UTC+4 пользователь Evgeny M написал:
Как отключить или максимально затруднить трассировку приложения, в том числе с удаленной ноды? Допустим можно попробовать  собрать модуль с именем dbg и загрузить его в память, но это ведь не поможет при трассировке с удаленной ноды?

Вот здесь http://erlang.org/pipermail/erlang-questions/2010-February/049429.html пишут, что это в теории возможно, но нетривиально.

Max Lapshin

unread,
Oct 6, 2013, 1:52:05 AM10/6/13
to erlang-...@googlegroups.com
А что именно у вас за ситуация? Опишите проблему пошире.

Evgeny M

unread,
Oct 6, 2013, 5:14:19 AM10/6/13
to erlang-...@googlegroups.com
Да ничего особенного, обычная привязка приложения к серверу для защиты от копирования, и частичные ограничения в функциональности при переносе на другой сервер. 

воскресенье, 6 октября 2013 г., 9:52:05 UTC+4 пользователь Max Lapshin написал:

Daniil Churikov

unread,
Oct 6, 2013, 7:24:09 AM10/6/13
to erlang-...@googlegroups.com
замена dbg не поможет. Цепляюсь к ноде с ноды на которой хороший dbg. Делаю nl(dbg). Все, теперь везде хороший dbg

Alex Chistyakov

unread,
Oct 6, 2013, 8:01:06 AM10/6/13
to erlang-...@googlegroups.com
Классическая задача, которая имеет классическое решение - написание или приобретение кастомной виртуальной машины и вынос части логики приложения в нее. Были даже проекты аппаратных ключей на USB, достаточно мощных для того, чтобы исполнять какую-нибудь пользовательскую функцию, не знаю, дожили они до нашего времени, или нет. Можно ли это сделать на чистом эрланге? Очевидно, можно.

--
SY,
Alex


2013/10/6 Evgeny M <donped...@gmail.com>
Да ничего особенного, обычная привязка приложения к серверу для защиты от копирования, и частичные ограничения в функциональности при переносе на другой сервер. 

воскресенье, 6 октября 2013 г., 9:52:05 UTC+4 пользователь Max Lapshin написал:
А что именно у вас за ситуация? Опишите проблему пошире.

--

Max Lapshin

unread,
Oct 6, 2013, 8:09:19 AM10/6/13
to erlang-...@googlegroups.com
А чем вас так собственно беспокоит трассировка? Код то закрытый наверное.

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

Evgeny M

unread,
Oct 6, 2013, 9:29:57 AM10/6/13
to erlang-...@googlegroups.com
Код закрытый, но когда можно сразу посмотреть, что приходит из процесса, сузить поиск до нужной функции, такой код становится легко пропатчить под свои нужды. Особенно с учетом того, что в ОТП-приложении множество небольших модулей с четко выраженной специализацией вместо одного большого монолитного бинарника. Не, я понимаю что полностью защититься нельзя, но слишком уж все просто получается, хочется усложнить работу. Аппаратные ключи в моем случае не вариант.

Выше посоветовали process_flag(sensitive, true), это вроде то что нужно, спасибо огромное. Гугл по соответствующим запросам на русском и английском выдает всякую хрень. Теперь наверно будет этот тред выдавать. Может снести его?




воскресенье, 6 октября 2013 г., 16:09:19 UTC+4 пользователь Max Lapshin написал:

Timofey

unread,
Oct 6, 2013, 2:12:42 PM10/6/13
to erlang-...@googlegroups.com
А чем плохо если ваш код пропатчат под свои нужды?
Если там проверка лицензионного ключа или чего-то подобного - возможно Максим может поделиться общим принципом как он с этим в erlvideo управляется - там же есть платная версия и вероятно её тоже надо как-то защищать.

Evgeny M

unread,
Oct 6, 2013, 2:30:44 PM10/6/13
to erlang-...@googlegroups.com
>Если там проверка лицензионного ключа или чего-то подобного
именно это и имел в виду, там у меня не свосем проверка ключа, но смысл похожий.
Думаю Максим просто подкачивает лицензионные модули по сети, и надеется, что основные клиенты не полезут смотреть что там откуда приходит и как это можно дампнуть на диск и оттуда потом грузить. Ну там может еще всякие подписи, ssl и прочая криптография. Чего-то другое в виртуальной машине сложно придумать.

воскресенье, 6 октября 2013 г., 22:12:42 UTC+4 пользователь Timofey написал:

Max Lapshin

unread,
Oct 6, 2013, 2:44:02 PM10/6/13
to erlang-...@googlegroups.com
Тут ситуация какая: во-первых иностранные клиенты как правило просто ориентированы на делание своего бизнеса, а не попытки взлома, во-вторых им не очень нравится вариант с каким-нибудь ненужным судебным иском из-за жалких нескольких тысяч долларов, в третьих в своей массе они недостаточно квалифицированы что бы влезать в процесс загрузки по сети.

С соотечественниками у меня ситуация немножко другая. Те конторы, в которых если люди способные что-то там взломать, обычно вообще не настроены на покупку. Им гораздо приятнее вбухать в 100 раз больше денег в какую-нибудь свою разработку сроком в полтора года, один хрен бабло инвесторское и на него надо покупать свою IP. Те, которым надо быстро, они готовы деньги считать и платить и обычно они просто не занимаются такими глупостями, им надо что бы всё работало.


Короче, я это к чему. У меня опыт такой: если от людей надо защищаться, с ними вообще надо не работать, потому что они пидарасы. Если они нормальные, от них не надо защищаться.


Reply all
Reply to author
Forward
0 new messages