Re: Замена функции в статической библиотеке
От: Аноним  
Дата: 06.12.12 08:15
Оценка: +2
T>Интересует следующая возможность:
T>1. Можно ли перехватить/переписать реализацию private методов класса first?
Я бы в таком случае правил .lib-файл — в hex редакторе можно изменить имя класса и написать свою реализацию.

T>2. Можно ли осуществлять запись в private переменные класса из перехваченных методов?

Что мешает заменить private на public в h-файле
Re[3]: Замена функции в статической библиотеке
От: ononim  
Дата: 08.12.12 10:57
Оценка: +1
T>А это не прокатывает, не знаю почему.
для начала прогоните в дебагере код — может быть этот приватный метод не вызываестя как метод или ваще нет его. Компиляторы нынче умные — инлайнят с плеча.
Как много веселых ребят, и все делают велосипед...
Замена функции в статической библиотеке
От: Tosha Россия  
Дата: 06.12.12 07:32
Оценка:
Приветствую!
Есть статическая библиотека, которая имеет следующие определение:
class.h
#include <iostream>

class first
{
public:

private:
  int a;
  std::string some_text;

  void some_calculate(const int &);
  int getSomeValue();
};

Реализация данного класса скрыта.

Данная библиотека подключается в основной проект соответственно в виде хидера и библиотеки class.lib

Интересует следующая возможность:
1. Можно ли перехватить/переписать реализацию private методов класса first?
2. Можно ли осуществлять запись в private переменные класса из перехваченных методов?

PS!
Смотрел на библиотеку detours, там есть пример перехвата, но там осуществляется перехват public методов.
Re[2]: Замена функции в статической библиотеке
От: Tosha Россия  
Дата: 07.12.12 18:20
Оценка:
Здравствуйте, Аноним, Вы писали:
Спасибо что откликнулись!

T>>Интересует следующая возможность:

T>>1. Можно ли перехватить/переписать реализацию private методов класса first?
А>Я бы в таком случае правил .lib-файл — в hex редакторе можно изменить имя класса и написать свою реализацию.

Написать свою реализацию класса? Тогда получается и lib править не надо, так?

T>>2. Можно ли осуществлять запись в private переменные класса из перехваченных методов?

А>Что мешает заменить private на public в h-файле

А это не прокатывает, не знаю почему.
Re[3]: Замена функции в статической библиотеке
От: Аноним  
Дата: 10.12.12 07:49
Оценка:
T>>>Интересует следующая возможность:
T>>>1. Можно ли перехватить/переписать реализацию private методов класса first?
А>>Я бы в таком случае правил .lib-файл — в hex редакторе можно изменить имя класса и написать свою реализацию.

T>Написать свою реализацию класса? Тогда получается и lib править не надо, так?


Зачем всего класса? Можно изменить имя класса только для нужного метода, и для него сделать класс с реализацией только этого метода.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.