|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
13.05.2013, 20:35 | #1 |
Новичок
Джуниор
Регистрация: 13.05.2013
Сообщений: 1
|
Задача "Украсть секретный шифр".Скорее всего Ассемблер.
Добрый день, програмисты и програмистки.
Недавно мне попалась, по моему мнению, нетривиальная задача, которую, к тому же, мне очень хочется решить,буду честен, чтобы попасть на собеседование в компанию, в которой очень хочу работать. Очень надеюсь на Вашу помощь, так как для меня она очень сложна. С удовольствием выслушаю не только решение, но и любые подсказки. Стоит добавить, что в конкретной данной теме я очень слаб и все-таки лучше решение) Добавлю для тех, кто посчитает, что с решенной кем то задачей я не смогу работать/попасть на собеседование и для тех, кто любит высказывать подобные замечания-это не единственная задача, я решил много других и не собираюсь скрывать, что одну решил с посторонней помощью, это мне тоже добавит баллов. ЗАДАЧА Задание 2. Украсть секретный шифр. Во вложении вам дан архив с двумя исполняемыми файлами на выбор, Не важно какой именно вы выберете. Каждый из файлов, будучи запущенным, создает разделяемую область памяти в соответсвующей ОС и каждую секунду что-то туда пишет. Ваша задача выяснить что именно он туда пишет. Ответом будет считаться дамп первых 10 записей, которые делает исполняемый файл в разделяемую область памяти сразу после старта. Примечание: существует как минимум 3 различных способа справиться с заданием. Удачного хакинга! буду признателен тем, кто посоветует, как лучше назвать тему |
14.05.2013, 00:47 | #2 | |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
Цитата:
2) Альтернативный способ - запустить программу под отладчиком, поставив прерывания на все системные вызовы, создающие разделяемую память, дождаться получения адреса в памяти, поставить прерывание на доступ к этому адресу. Заметно более муторно, имеет смысл применять только если вариант (1) не сработал. 3) Дважды альтернативный способ - в варианте (2) ручками изменить возвращённый адрес на что-то вроде 0x01 и дождаться, пока программа навернётся. Повторить десять раз. Имеет смысл применять, только если в варианте (2) возникли подозрения на хитрые манипуляции со значениями адресов. 4) Если программа содержит противоотладочные меры... ну, можно попробовать изменить все системные функции, создающие разделяемую память, так, чтобы они возвращали заданное значение (и создавали соответствующую память) и делать снимки состояния этого участка памяти чаще, чем раз в секунду... но это уже как-то сильно неприятное занятие. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Задача(скорее всего вопрос) | 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 |