· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.RESEARCH —› восстановление импорта

Посл.отвђт Сообщенiе


Дата: Сен 10, 2004 12:34:38

Есть программа, вернее секция с кодом. Все winapi функции
в ней заменены на call [мусор]. Есть также смещения на эти функции(rva) и имена функций. Проблема в том, что имена функций хранятся в порядке их вызова в программе.
Как восстановить таблицу импорта.
(подозреваю, что вопрос элементарный, но до меня что-то не доходит :()


Дата: Сен 10, 2004 17:03:25

что-то я плохо понял вопрос..
[мусор] это что такое ? совсем мусор ? 0xABCDEFGH :) ?
и имена ф-ций и rva - это про API ?


Дата: Сен 10, 2004 18:39:37

мусор - абсолютно произвольные байты.
протектор по смещениям забивает их переходниками.
Т. е. было call [D15B1213], стало call [00B61234],
на 00B61234 лежит частично эмулируемая winapi функция.
Собственно вопрос - как, зная смещения на call [мусор] и
имена winapi функций восстановить IAT, чтобы потом скормить её imprek'у.


Дата: Сен 10, 2004 22:03:11

ozzman

Лучше попросить протектор забивать корректные адреса API функций вместо "мусора" ;-)

ЗЫ: О каком протекторе идёт речь?


Дата: Сен 10, 2004 23:07:56

наверно он про арму и её иат илиминатион...


Дата: Сен 11, 2004 06:56:00

Asterix
толку то от этого, прога будет работать только на моей машине. Протектор - aspr 1.31.


Дата: Сен 11, 2004 07:22:20

ozzman
> толку то от этого, прога будет работать только на моей машине.

Толк в этом определенно есть ;-)
ImpRec'у приятней кушать целую таблицу импорта, без мусора, ну там не определятся лишь нескольких функций, их тебе придётся указать ImpRec'у вручную.


Дата: Сен 11, 2004 10:25:36

> толку то от этого, прога будет работать только на моей машине

Почему ? там же нужно заставить аспр создавать иат и записывать jmp/call [iat]. потом скормить эту иат импреку и всё будет работать на любом компе...


Дата: Сен 11, 2004 22:15:39

Asterix
>Лучше попросить протектор забивать корректные адреса API функций вместо "мусора" ;-)
То есть было call [01234567] станет call [77b31234] - это будет работать только на моей машине(или на другой с winxp sp2).
>Толк в этом определенно есть ;-)
ImpRec'у приятней кушать целую таблицу импорта, без мусора, ну там не определятся лишь нескольких функций, их тебе придётся указать ImpRec'у вручную.

Последовательность действий мне известна.
Вопрос именно в создании IAT.

Повторяю вопрос: как, зная смещения на call [мусор] и
имена winapi функций восстановить IAT, чтобы потом скормить её imprek'у.
Вобщем, в IAT вроде итак адреса функций идут в порядке их вызова в проге, а в зааспротекченной проге нескольно адресов идут в порядке их вызова, а следующий адрес оказывается совсем не там, где должен быть.
Вобщем, объяснение довольно нутаное получилось.
Неплохо было бы, если бы ответил человек, работавший с восстановлением импорта в аспре 1.31


Дата: Сен 17, 2004 19:59:04

Используй Софтайс, бумагу и ручку. Если прога небольшая за пару часов восстановиш.


Дата: Сен 17, 2004 22:09:19

zzzyab
этот путь мне также известен, но это как-то не по дзенски :(


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.166