Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.05.2013, 20:35   #1
ShavinMihail
Новичок
Джуниор
 
Регистрация: 13.05.2013
Сообщений: 1
По умолчанию Задача "Украсть секретный шифр".Скорее всего Ассемблер.

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

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

ЗАДАЧА

Задание 2. Украсть секретный шифр.
Во вложении вам дан архив с двумя исполняемыми файлами на выбор,
Не важно какой именно вы выберете.
Каждый из файлов, будучи запущенным, создает разделяемую область
памяти в соответсвующей ОС и каждую секунду что-то туда пишет.
Ваша задача выяснить что именно он туда пишет.
Ответом будет считаться дамп первых 10 записей, которые делает
исполняемый файл в разделяемую область памяти сразу после старта.
Примечание: существует как минимум 3 различных способа справиться с заданием.

Удачного хакинга!

буду признателен тем, кто посоветует, как лучше назвать тему
ShavinMihail вне форума Ответить с цитированием
Старый 14.05.2013, 00:47   #2
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
Очень надеюсь на Вашу помощь, так как для меня она очень сложна. С удовольствием выслушаю не только решение, но и любые подсказки.
1) Я бы сказал, что это задача не на программирование, а на статический анализ кода. Т.е. нужно не написать программу, а прочитать существующую (IDA Pro в помощь).
2) Альтернативный способ - запустить программу под отладчиком, поставив прерывания на все системные вызовы, создающие разделяемую память, дождаться получения адреса в памяти, поставить прерывание на доступ к этому адресу. Заметно более муторно, имеет смысл применять только если вариант (1) не сработал.
3) Дважды альтернативный способ - в варианте (2) ручками изменить возвращённый адрес на что-то вроде 0x01 и дождаться, пока программа навернётся. Повторить десять раз. Имеет смысл применять, только если в варианте (2) возникли подозрения на хитрые манипуляции со значениями адресов.
4) Если программа содержит противоотладочные меры... ну, можно попробовать изменить все системные функции, создающие разделяемую память, так, чтобы они возвращали заданное значение (и создавали соответствующую память) и делать снимки состояния этого участка памяти чаще, чем раз в секунду... но это уже как-то сильно неприятное занятие.
Abstraction вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача(скорее всего вопрос) SmallLS Общие вопросы C/C++ 6 20.11.2012 11:01
Шифр "Тарабарщина" - замена одних букв другими DesignFootball.Ru Паскаль, Turbo Pascal, PascalABC.NET 2 17.02.2011 21:29
задача паскаль, скорее всего массив+рекурсия(хотя у меня другой способ) IvaniuS Помощь студентам 10 23.12.2009 15:34
Что такое "секретный диск"? tetris Общие вопросы Delphi 1 22.05.2007 06:02