Сдампенный COM не хочет регистрироваться.

Тема в разделе "WASM.RESEARCH", создана пользователем Sokol_2, 20 май 2005.

  1. Sokol_2

    Sokol_2 New Member

    Публикаций:
    0
    Регистрация:
    17 фев 2005
    Сообщения:
    23
    Адрес:
    South Africa
    Привет, всем !



    Сегодня сдампил закриптованый COM DLL, переправил секции, в IDA и PE Explorer всё очень красиво видно. Ну вот не могу этот новорожденный COM зарегистрировать - всё время выдаёт ошибку:



    LoadLibrary("COM.DLL") failed - ivalid access to memory location.



    Я прописал 0хCC ( INT 3 ) на Entry и запустил SoftICE, где также установил бряк на INT 3, т.е., SoftICE должен выпрыгивать, как только фаил начнёт загружается в память, но этого не проичодит. Судя по всему, до загрузки в память дело не доходит.

    В чём может быть причина ? Если кому интересно, могу оба фаила, начальный и сдампинный на

    мыло выслать.
     
  2. Dr.Golova

    Dr.Golova New Member

    Публикаций:
    0
    Регистрация:
    7 сен 2002
    Сообщения:
    348
    проверь наличие релоков ;)
     
  3. Zufyxe

    Zufyxe New Member

    Публикаций:
    0
    Регистрация:
    13 авг 2004
    Сообщения:
    137
    Адрес:
    Russia
    Проверь атрибуты секций PE. В частности той где IAT лежит - там должна быть разрешена запись.
     
  4. Sokol_2

    Sokol_2 New Member

    Публикаций:
    0
    Регистрация:
    17 фев 2005
    Сообщения:
    23
    Адрес:
    South Africa
    Спасибо за ответы.



    2 Zufyxe



    IAT Characteristics я проверил в PE Explorer - C0000040: inisialised_data, mem_read, mem_write. Так что это, похоже, не причём.



    2 Dr.Golova



    Relocation Тable я не трогал - она такая же, как у оригинального закриптованного файла.

    Насколько я понимаю, это играет роль, когда файл загружается не по адресу, указанному в заголовке. Перед тем, как делать дамп, я в ProcDump32 специально посмотрел, по какому адресу загружен - всё было, как прописано в заголовке, т.е. 0х10000000.

    Или, может, я что-то не так понимаю ?



    P.S. Одна очень интересная деталь - в оригинальном файле секция со смешением 0х1000, т.е. следуюшая сразу за заголовком имеет Characteristics 0x40000040, т.е., писать в неё нельзя. Однако, при разборке IDA показыват, что в сдампенном файле туда прописаны адреса API из

    импортируемых системных DLL.