Вход в Зоопарк ручных компьютеров
Вход > Читалка > Обзоры и описания программ > Psion
--

Интервью с Робином Гудом

В лицо этого человека не знает никто. Он известен только под псевдонимом Робин Гуд. Лучший русский хакер, ломающий программы для Psion... Интервью взял некто, скрывающийся под псевдонимом RussianPalm.

С чего эта история началась? И почему Psion?
Долгая история. Года три назад я помыслил жене на день рождения сделать подарок. Она у меня юрист и у нее записная книжка (я ее гроссбух называю) имеет размер средней книги и весит от 400 грамм. В год она исписывает 2 такие книги, и в конце года носит обе. Вот я и решил ей электронную книжку подарить. Стал искать. Однако в тот момент, как-то кроме простейших электронных записных книжек ничего мне не попадалось. А они ей не подходили. Ей надо телефоны, планы, мысли, даты всякие, напоминалки... И тут мой сотоварищ говорит — а ты PalmPilot поищи. А я тогда и не знал, что существуют PDA. Ну, нашел я его в Интернете, не особо тогда понял что это, но понял что это лучше калькулятора. «Будем брать», — решил я. Но, увы, не смог найти его за приемлемую для меня сумму (рассчитывал на 150-200 долл., а за него хотели от 500 долл.). Подарил что-то другое.

Время шло, у меня увеличились финансовые возможности, я много чего по КПК нашел в Интернете. Понял какие они бывают, что умеют. Дело осталось за малым — выбрать модель. Palm мне не понравился (я его в живую не видел, все статьи читал) — слишком простой, можно даже сказать примитивный. Ну, и кроме того, я твердо решил брать только клавиатурный КПК. Думал, думал и решил — Windows CE! Я ж программер, и машинку без возможности писать программы не куплю :) А тут про все понятно, MSDN все время свежий, машинка с цветным экраном... Ну короче решил я брать Jornada 680 (дорогая она правда, скотина). Показал жене картинки, статьи, она говорит — «ты спец ты и бери». В это же время я наткнулся на Psion Revo... «Боже, какой редкий отстой», — подумал я. В общем, собирал деньги, искал гонца за бугор и тут мой приятель из Франции как-то обмолвился, мол, у меня есть PDA. Я говорю:
— А что у тебя, Windows CE?
— Да ты че, это ж отстой! У меня Psion Revo.
Он рассказал, что может Psion Revo, я пошарил в Интернете на предмет Psion (я раньше про них вообще не читал, т. к. считал за отстой) и решил что приятель прав, начал выбирать между 5mx и Revo. Съездили с женой за бугор и чуть не купили там. Основная проблема была в том, что даже крупный магазин не мог достать русифицированный Psion, они даже в Москву и Лондон звонили, очень извинялись. В итоге мы купили 2 чехла (для Revo и 5mx), поскольку точно не решили, какую модель приобретаем. То, что берем именно Psion, уже не обсуждалось. Приехали, а спустя месяц появилась Psion Revo Plus. И я понял — пора! Но тут уперлась жена — если ты себе не возьмешь, то и я не буду пользоваться. Ты ж программист, я точно знаю, что он тебе нужен, ты о нем мечтаешь. Ну, в общем, взяли Psion Revo Plus ей и Psion Series 5mx мне :)

Как появилась идея что-то взломать? ;-)?
Я нашел в Интернете RMRZip, скачал, поставил, он попросил регистрацию, ну тут-то все и началось...

Первые попытки разработки своих программ?
Моей первой разработкой под Psion было участие в хакерском проекте Register. Register представляет собой оболочку и набор плагинов для регистрации программ :) Моей задачей было перенести мои собственные генераторы ключей под EPOC и переписать с OPL генераторы моего коллеги, который в это время писал саму оболочку. После завершения мой части работы я взялся за редактор реестра. Хотелось разобраться с GUI.

А сколько хакеров сегодня ломает программы для Psion?
Я знаю человек 8, которые работают с программами на OPL, программы на Си++ в основном ломает некий мой коллега с туманного Альбиона и я. Ну, есть еще пара человек, которые могут простейшие вещи сломать, так что, наверное, всего 15-20. Которых я знаю, может быть, многие тихонько себе ломают и нигде об этом не говорят.

Общее впечатление про качество инструментария, архитектуру ОС и проч.?
Инструментарий в общем-то ничего. Мне приходилось и приходится иметь дело и с худшим :). Хотя, конечно, документация оставляет желать лучшего. Наличие документации такого же качества как MSDN сильно ускорило бы разработку. А так приходится перерывать большое количество примеров, исходных текстов ОС, и .h файлов. Архитектура ОС мне понравилась, чувствуется, что авторы приложили много усилий для экономного расходования памяти и максимальной компактности программ. С моей точки зрения, одной из основных проблем является отсутствие поддержки исключений C++ (exceptions). В EPOC есть поддержка аналога исключений (CleanupStack, Leave) но это несколько не то. Главная проблема стандартными методами невозможно обеспечить передачу вразумительной информации об ошибках. Например, при стандартной методике написания программы открытие несуществующего файла приводит к Leave с кодом KErrNotFound. В результате появляется сообщение «Not found». Но что именно «Not found»? Это же сообщение появляется и при доступе к любому другому несуществующему объекту, поэтому не всегда понятно в чем, собственно говоря, проблема.

О себе в смысле квалификации ;-)
Как отвечают представители компании «Роллс-Ройс» на вопрос о мощности двигателя — «достаточна» ;) А если серьезно, то я уже 12 лет занимаюсь разработкой программ, начинал с Паскаля, потом перешел на ассемблер, потом на Си, а сейчас пишу на Си++. Иногда балуюсь Delphi и Perl. Кстати, именно на Perl я написал свои декомпиляторы .sis и .aif файлов. Я поехал в отпуск и взял свой 5mx. Ну и вечерами, когда делать было нечего, я писал ;) Что касается моей основной работы, то главное направление мой деятельности связанно с разработкой программ для сопряжения различных баз данных. Большего я сказать не могу в силу своего контракта.

Какие средства разработки пользуете?
Средства разработки достаточно стандартные — EPOC SDK, MSVC. Если разрабатываю под Win32, тогда MSVC или Delphi — смотря что удобнее. Частенько использую дисассемблер IDA Pro. Бывают ситуации, когда программа реализует что-то, а я не могу понять как это делается. В таких случаях приходится запускать IDA.

А почему не OPL?
С моей точки зрения Perl много удобнее чем OPL. У меня никогда не было желания разрабатывать на OPL, да и Perl много мощнее. Если же я пишу под EPOC то это только Си++. Потому, что только на Си++ можно в полной мере воспользоваться всеми сервисами и возможностями EPOC. Если посмотреть, все сложные OPL-программы используют кучу довольно больших библиотек OPX для реализации тех возможностей, которые отсутствуют в OPL.

Сколько программ было взломано?
В целом, 20 (не включая Win32). На самом деле, большинство из них мне не нужны. Ломал для других. Из шароварных я использую только RMRZip (он пострадал первым), MBMView, LittleSense, Jumpy! да Biorhythms. Изредка Tools — эта программа показывает объем памяти занятый каждым запущенным приложением.

Насколько вообще устойчив софт для Psion к взлому?
Однозначно сказать трудно. Есть очень хорошие и дорогие программы с простой защитой и есть дешевые с очень и очень сложными алгоритмами генерации ключей. Самой прикольной в этом смысле была игрушка Matience от Neuon. Там алгоритм генерации — 15 килобайт на Си! Правда, автор не сам это все писал. Там используется несколько модифицированный алгоритм хеширования haval. Сразу хочу сказать, что Matience ломал не я. Я вообще на Psion играюсь крайне редко. Не вижу смысла.

Какие программы дольше всего сопротивлялись?
MondoPondo и P-Plus Bridge от Breva Soft (www.breva.co.uk). В MondoPondo мне пришлось искать таблицу виртуальных функций и потом разбираться с кодами команд, которые использовались в здоровенном switch. Bridge состоит из двух частей — пользовательская часть и сервер, который собственно и обеспечивает игру. Немного покопавшись, я понял, что проверку ключа тоже осуществляет сервер. Пришлось разбираться с ним.

Качество софта типа изнутри?
Да я особенно не обращал на это внимания. Могу сказать только одно — проверки ключей написаны хорошо, в смысле оптимально. Единственная программа, которая мне запомнилась, это Bridge. Там ключ — шестнадцатеричное число. Так вот для его конвертации из строки вместо использования стандартного класса TLex или одного if был switch на все цифры 0-9, буквы a-f и A-F. Такого я еще не видел! Ну и процедура проверки ключа тоже сделана извращенно. Хотя остальной код программы написан хорошо.

Моральный кодекс взломщика программ для Psion ;-)?
Как такового кодекса чести Псионовских хакеров не существует. Есть только здравый смысл да логика. Рынок программ под Psion очень мал, и широкое распространение вареза способно на корню его погубить. А так как все мы пользуемся Psion и хотим новых программ и новых версий, то мы не распространяем результаты своей деятельности.

Когда-то опрометчиво была выложена в Интернете достаточно известная программа RegIt. В результате большинство авторов OPL-программ (RegIt ориентирован в основном на OPL) изменили алгоритмы проверки ключей. А сейчас многие OPL программы проверяют на наличие RegIt. В результате пришлось ломать кучу программ заново. Ну, или вот случай со словарем «СловоЕд». Реальный вред был небольшой, владелец Web-узла, где она была размещена, вовремя успел ее уничтожить, мало кто успел скачать проломанную версию. Зато сколько было шуму! И, кто знает, может быть, проверка на наличие RusPsion новой версией «СловоЕд» объясняется именно этим. Я посмотрел — нет прямой необходимости в «привязке» к RusPsion. И единственное объяснение, которое я могу найти — борьба с использованием проломанной версии с русификатором «Эльбрус».

В заключение скажу — не бойтесь разрабатывать под Psion! Конечно, в начале придется трудно, т. к. необходимо будет изучить и понять архитектуру ОС, ее идеологию. Но SDK содержит массу примеров, которые достаточно хорошо иллюстрируют возможности этой замечательной ОС. Большой плюс — наличие исходных текстов всех классов GUI и многих других подсистем ОС. Единственный минус — отсутствие нормальной документации. Зато наличие «сырцов» позволяет понять, почему надо выполнить определенные действия, что много лучше шаманских кусков кода из MSDN, которые работают по причинам, понятным только самим разработчикам Windows.

Обсудить новость на Базаре ручных компьютеровОбсудить на Базаре ручных компьютеров

 

RB2 Network
=
RB2 Network

--
Просим при воспроизведении материалов этого сайта, делать ссылку на Зоопарк ручных компьютеров
Copyright © 1999-2000 Зоопарк ручных компьютеров