![]() |
eXeL@B —› Вопросы новичков —› Поиск указателя в таблице виртуальных методов |
Посл.ответ | Сообщение |
|
Создано: 02 декабря 2012 16:06 · Поправил: donkein · Личное сообщение · #1 Приветствую, вопрос к знатокам Допустим есть программа на с++, в ней есть виртуальные методы. Нужно один из методов перехватить и подменить, для этого соотв. надо получить указатель на него в таблице виртуальных методов. Вот собственно как это сделать ? P.s. Понятно что нужно это все делать через отладчик и т.д., но как именно. ![]() |
|
Создано: 02 декабря 2012 16:19 · Личное сообщение · #2 |
|
Создано: 02 декабря 2012 16:30 · Личное сообщение · #3 |
|
Создано: 02 декабря 2012 16:54 · Личное сообщение · #4 |
|
Создано: 02 декабря 2012 17:06 · Личное сообщение · #5 |
|
Создано: 02 декабря 2012 17:09 · Личное сообщение · #6 1) запустить IDA, разобрать код, найти таблицу - профит 2) запустить программу под отладчиком, стать на нужный косвенный вызов, и пройтись по его вызову, попадаете на виртфункцию - профит 3) позвонить гадалке, она вам покажет вирутальный вызов - профит 4) ничего не делать, сидеть ждать, через определенное время задача утратит свою актуальность - профит ![]() |
|
Создано: 02 декабря 2012 17:21 · Личное сообщение · #7 |
|
Создано: 02 декабря 2012 17:29 · Личное сообщение · #8 что именно показывать? как работать в отладчике? - полно видео в интернете и всяких кних ксаперского а если вы изначально не знаете что искать, то слова "Поиск указателя в таблице виртуальных методов" выглядят странными. указатель на класс есть? ищете в нём указатель на vtbl, далее по vtbl смотрите список всех вирт функций, считаете смещение - профит ![]() |
|
Создано: 02 декабря 2012 19:13 · Личное сообщение · #9 |
![]() |
eXeL@B —› Вопросы новичков —› Поиск указателя в таблице виртуальных методов |
Эта тема закрыта. Ответы больше не принимаются. |