Для начала я использую OS X, основанную на UNIX.
У меня есть начальные теоретические знания в C++, и я хотел бы расширить свои знания с помощью обратного проектирования программного обеспечения. Каждое руководство, в которое я попадаю, кажется, прыгает на полпути, и я, кажется, пропускаю гигантский пробел в информации, необходимой для запуска. Моя конечная цель — успешно создать работающую dylib для любого приложения. С чего начать изучение Ram-адресов, как они работают, как загружаются библиотеки и какого черта я вообще начинаю читать, какую тему. Все, что я узнал до сих пор, имеет четкую отправную точку, определенный синтаксис, но я просто нахожу, что все использует терминологию, которую я не понимаю. Я обнаруживаю, что просто разветвляюсь все больше и больше, потому что в статье использовалось ключевое слово, которое я не понимаю, я гуглил его, в другой использовалось пять, которых я не понимаю, и я просто застрял. Рассматриваемое приложение не имеет изменяющихся адресов памяти, но хотелось бы также узнать, как это компенсировать с помощью смещений.
С чего начать?!
reverse engineer
должен быть инженером-программистом с 5-20-летним опытом. Вам нужно понять, как работают все эти технологии (в основном), прежде чем пытаться строить теории о деконструкции существующей системы. Просто идти в ногу с современными технологиями (если у вас есть работа, которая мешает), будет хорошей задачей в первые годы после получения степени CS. Я бы порекомендовал разместить этот вопрос на Quora.com, так как этот сайт процветает благодаря такого рода вопросам. Наверняка там уже ответили. Удачи. - person shellter   schedule 04.06.2015