Люди, подскажите, плиз, как реализовать идею http://www.insidepro.com/kk/123/123r.shtml на С++. Чего почитать посоветуете?
Ассемблер знаем, С++ тоже. Конечно не на супер проф уровне. Непонятно каким макаром осуществить перевод прочитанных данных в команды ассемблера. Вот цитата из одной статьи: У любой программы есть точка входа и где находится ее адрес тоже известно. Поэтому первая инструкция проста - бери стартовый адрес. Он указывает на первый байт кода. Следующая инструкция - декодируй первый байт. Далее анализируй. Если команда простая, типа MOV, ADD, значит за ней следующий байт кода. Тогда шагай на него и снова декодируй. Как декодировать-то?
Во-первых, вопроса ни разу не понял. В статье говорится про отладчик, при чем здесь программирование? Если речь идет о дизассемблере, ну это тоже известно : берется готовый дизассемблер длин(т.к. свой будете долго писать и отлаживать) и реализуется на С++(может найдете готовый на Си). Если вам нужен мини-отладчик, то это тоже просто : берете готовый лоадер и изучаете, как он брякается где надо
valterg Скорее всего имеется ввиду написание тулзы, чего советовать только ? Море решаемых проблем: - как определить момент, когда нужно запустить запуск поиска OEP. - как OEP найти. - как исправить Import Table - .... Все это и чуть больше в несметных количествах в туториалах кряклаба... Только ручками всегда надежнее, а Generic Unpacker есть даже в PEiD
Где на васме в исходниках был пример для распаковки, правдо только конкретный распаковщик. А вообще ищи "Об упаковщиках в последний раз" в трех томах, от Володи.