eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 12 ноября!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: ajax (+2 невидимых)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

 eXeL@B —› Вопросы новичков —› Получить структуру класса из pdb
Посл.ответ Сообщение

Ранг: 0.4 (гость)
Статус: Участник

Создано: 23 февраля 2018 19:34 · Поправил: jepuper New!
Цитата · Личное сообщение · #1

Всех приветствую.

Есть программа для которой была написана дллка расширяющая её возможности, работает через пропись в импорт и взаимодействие с восстановленными руками классами.

И есть ~30 версий этой программы (бинарники + полные pdb) и для всех нужна эта библиотека. Нужные классы меняются очень слабо, но достаточного для того, что бы многие смещения изменились.

Например из:
Code:
  1. class  x_old {
  2.    public:
  3.      int a;
  4.      int b;
  5. }


в

Code:
  1. class  x_new {
  2.    public:
  3.      int a;
  4.      int c;
  5.      int b;
  6. }


Как я понимаю имея на руках pdb для проги я могу автоматически сгенерить нужные структуры и дальше через #ifdef скомпилировать под каждую версию свою длл.

Можете подсказать библиотеки или готовые решения для работы с pdb? Ну или другой вариант как можно решить эту задачку.


Ранг: 988.8 (! ! !)
Статус: Участник

Создано: 23 февраля 2018 19:55 New!
Цитата · Личное сообщение · #2

diadump есть в комплекте студии, дальше под себя поправьте
https://github.com/wbenny/pdbex.git либо под себя переделайте

| Сообщение посчитали полезным: jepuper



Ранг: 264.9 (наставник)
Статус: Участник

Создано: 23 февраля 2018 20:01 New!
Цитата · Личное сообщение · #3

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

Ранг: 33.0 (посетитель)
Статус: Участник

Создано: 23 февраля 2018 23:50 · Поправил: redlord New!
Цитата · Личное сообщение · #4

difexacaw
охуенная теория. у тс нет исходного кода и не будет.
и тс - пытается понять механизмы и логику. ему нужен инструмент
и явно, не мифический мотор.
p.s.
https://github.com/Microsoft/microsoft-pdb

| Сообщение посчитали полезным: jepuper



Ранг: 988.8 (! ! !)
Статус: Участник

Создано: 24 февраля 2018 00:29 · Поправил: reversecode New!
Цитата · Личное сообщение · #5

redlord весь смех мс в том что, то что он там дистрибютят, собрать из тех сорсов нельзя
но как готовая тулза екзе, для дампа ЦВ она ничего

Ранг: 33.0 (посетитель)
Статус: Участник

Создано: 24 февраля 2018 00:40 · Поправил: redlord New!
Цитата · Личное сообщение · #6

reversecode
не так давно, костыль из части этих сурсов собирал.
в целом - да, писец
вроде, у них это было написано, что все через жопу и не мечтайте )
p.s.
кстати, майки мощно двигают опенсорс.
не удивлюсь, если засрать багрепорт им, можно сдвинуть дело с мертвой точки


Ранг: 988.8 (! ! !)
Статус: Участник

Создано: 24 февраля 2018 00:45 New!
Цитата · Личное сообщение · #7

уже есть насколько помню
кто то уже катал типа - что за хрень, как эти сорсы собрать, половину файлов нехватает

Ранг: 382.5 (мудрец)
Статус: Участник

Создано: 24 февраля 2018 02:30 · Поправил: dosprog New!
Цитата · Личное сообщение · #8

jepuper пишет:
Как я понимаю имея на руках pdb для проги я могу автоматически сгенерить нужные структуры и дальше через #ifdef скомпилировать под каждую версию свою длл.

Лучше выбрать наиболее достойную версию софта и сгенерировать библиотеку для неё.
Нельзя объять необъятное.

Можно, конечно, попытаться - но цена вопроса?..


Ранг: 0.4 (гость)
Статус: Участник

Создано: 24 февраля 2018 16:13 New!
Цитата · Личное сообщение · #9

reversecode, спасибо - подошло. Примерно треть я успешно покрыл через эту тулзень и regexp (никогда не "парсите" заголовки через regex).

dosprog пишет:
Лучше выбрать наиболее достойную версию софта и сгенерировать библиотеку для неё.


Увы в данном случае это не подходит, версия = лицуха (донгл) и просить всех обновляться всех до последней версии не вариант.
 eXeL@B —› Вопросы новичков —› Получить структуру класса из pdb

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS