Начало взлома исполняемого файла / декомпиляции / отладки - PullRequest
3 голосов
/ 06 декабря 2010

Мне комфортно в C # / Java, и я достаточно хорошо знаю C и C ++. Тем не менее, я хочу копать глубже и узнавать больше голого металла. Например, простая консольная программа на C ++:

int main()
{
    char *ptr = "helloworld";
    return 1;
}

Я открыл его в Visual Studio с помощью отладчика (после удаления файла pdb), чтобы пройти по коду в сборке. Я также использую шестнадцатеричный редактор HxD для просмотра двоичного файла.

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

Есть ли урок для начинающих для такого рода вещей? Какие инструменты / прохождения вы можете порекомендовать?

Спасибо.

Ответы [ 4 ]

4 голосов
/ 06 декабря 2010

Если вы хотите пойти глубже, взгляните на Ollydbg и некоторые учебники по реверсированию / взлому. Это наверняка займет много времени :) И вы узнаете, как все работает :) Команда обратного инжиниринга хорошая отправная точка .. Любая поисковая система даст вам много материала с правильными ключевыми словами ..:)

2 голосов
/ 01 февраля 2012

Я не знал, почему никто не упомянул учебники Лены по обратному проектированию.
Я лично нашел их очень полезными. Вы можете найти их здесь www.tuts4you.com
Но вам нужно понимать некоторые базовые сборки, такие как (jmp и т. Д., Регистры), и мне не нужно упоминать о четком понимании программирования (я уверен, что оно у вас есть)
Также есть множество трещин, над которыми вы можете работать улучшить себя.

2 голосов
/ 07 декабря 2010

Книга:

  1. Об Ассемблере - на ваш вкус;
  2. Некоторые книги об ОС (Джеффри Рихтер, Хелен Кастер, Мэтт Пьетрек все еще актуальны?)
  3. "Искусство компьютерного программирования" Кнута (не спрашивайте почему).
  4. Документация Intel / AMD об их процессорах (или какую вы собираетесь взломать?)

Инструменты / Soft:

  1. Мягкий лед.
  2. IDA Pro.
  3. HEX Editor (вы сказали, что у вас уже есть).
  4. DDK (теперь он называется WDK - Windows Driver Kit).
  5. Как можно больше SDK компиляторов.

Следуйте за этим парнем .

Надеюсь, никто не собирается относиться к этому вопросу и к этому ответу серьезно:)

2 голосов
/ 06 декабря 2010

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

http://en.wikibooks.org/wiki/X86_Assembly

...