Встроить функцию трассировки в ассемблерный код с помощью IDA pro

Мне нужно шпионить за C++ DLL. Я хотел бы вставить вызовы трассировки внутри ассемблерного кода, например, изменив код, чтобы поместить небольшой код, который будет отслеживать некоторую переменную в текстовом файле. У меня нет доступа к среде выполнения машины, где используется dll, я могу получить доступ только к хранилищу, поэтому я не могу динамически шпионить с помощью отладки IDA, я должен поместить некоторые файлы со шпионским кодом внутрь, а затем запустить машину, запустить ее затем выключите машину и верните файлы трассировки, созданные в конечном итоге в хранилище.

Есть ли способ автоматизировать вставку шпионского кода, например, с помощью IDA Pro или аналогичного инструмента. Я декомпилировал Dll с помощью Hex-Ray и, да, я мог бы изменить исходный код C и поместить туда функции, но, к сожалению, Hex-Ray не может реверсировать весь код, только около 90%, и тогда я не могу использовать этот путь.


person Community    schedule 04.02.2013    source источник


Ответы (1)


Поскольку это dll, вы можете использовать wrapgen Подключаемый модуль IDA для создания DLL-оболочки, которая вызывает оригинал и вставляет любой код отслеживания и трассировки, который вам нужен.

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

person Necrolis    schedule 04.02.2013
comment
У меня уже есть шпионская dll, но она не работает. Программное обеспечение имеет систему защиты файлов, которая предотвращает использование подобного перехвата/прокси Dll. Я думаю, что я мог бы немного вставить код трассировки прямо в код дизассемблирования, и это сработало бы. - person ; 08.02.2013