Сразу скажу, objdump не подходит. Задача такая. Есть сотня бинарников, которые нужно пропатчить одним и тем же способом. Конкретно - найти printf известной строки, лежащей в .rodata, подняться выше по коду, найти jnz и заменить на nop :).
Выяснилось, что objdump не умеет показывать строковые референсы, поэтому грепать дизассеммблированный код с наскоку не получается. Сейчас мне приходится делать следующие действия. С помощью 'strings -t x' я нахожу абсолютное смещение строки в файле. Далее, через objdump -H я нахожу адрес и смещение секции .rodata. Потом складываю одно с другим и нахожу адрес строки. Вот его уже можно грепать скриптом.
Есть ли способ сократить телодвижения? Ida Pro умеет показывать референсы, но умеет ли оно в потоковое дизассемблиование и последующий патчинг?
Спасибо