| eXeL@B —› Вопросы новичков —› Как мне объяснить IDA что этот участок памяти относится к какому то классу? | 
| Посл.ответ | Сообщение | 
| 
 | 
Создано: 04 декабря 2007 12:57  · Личное сообщение · #1 К примеру в программе я нашел конструктор, который создает класс CMyClass. Даже допустим я опредилил размер этого класса. Как мне теперь используя IDA отметить эту область памяти как класс, чтобы можно было поставить брейкпоинт на обращение к нему? И есть ли какие нибудь функции в IDA для автоматического анализа переменных класса? (ну тоесть чтобы он автоматически попытался на основе кода определить типа переменных принадлежащих этому классу) ![]()  | 
| 
 | 
Создано: 04 декабря 2007 21:07 · Поправил: s0larian  · Личное сообщение · #2 При компиляции С++ кода все OO конструкции превращаются в обычные процедурный код. Компилер расставляет невидимые програмеру вызовы конструкторов и деструкторов. Поэтому чёткого понятия "принадлежность кода классу" в откомпиленом коде нету. Есть логическая связь между несколькими функциями, которые ты проанализируешь как что-то относящееся к какому-то там классу и дав функциям правильные имена. Ну а про данные отдельный разговор. На стеке или хипе выделяются блоки в которых упакована совокупность всех атрибутов классов по цепочке наследования. Там же лежит указатель на vtable где кранятся указатели на virtual member functions. Breakpoint ставь на адрес начала матода - это ж просто инструкции. ![]()  | 
| eXeL@B —› Вопросы новичков —› Как мне объяснить IDA что этот участок памяти относится к какому то классу? | 




 Для печати