что это за алгоритм?

Тема в разделе "WASM.A&O", создана пользователем Wolfgang, 29 авг 2005.

  1. Wolfgang

    Wolfgang New Member

    Публикаций:
    0
    Регистрация:
    11 май 2005
    Сообщения:
    82
    Адрес:
    Russia
    Уважаемые знатоки алгоритмов, не скажете ли вы мне, что это за алгоритм такой? Паковщик или криптор? И откуда он берет длину буфера?
     
  2. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine
  3. Wolfgang

    Wolfgang New Member

    Публикаций:
    0
    Регистрация:
    11 май 2005
    Сообщения:
    82
    Адрес:
    Russia
    прошу прощения, вот этот (в первый раз не тот файлик приаттачил)

    [​IMG] 562822259___decrypt.txt
     
  4. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine
    Наверное это упаковщик PCShrink
     
  5. Dr.Golova

    Dr.Golova New Member

    Публикаций:
    0
    Регистрация:
    7 сен 2002
    Сообщения:
    348
    Это распаковщик aPLib, дэрэгой.

    А размер буфера ему не нужен, там есть стоп-конструкция после которой он останавливается, параметра соответственно только два.

    unsigned int aP_depack(const void *source, void *destination);
     
  6. Wolfgang

    Wolfgang New Member

    Публикаций:
    0
    Регистрация:
    11 май 2005
    Сообщения:
    82
    Адрес:
    Russia
    спасибо, Dr.Golova, а нет сведений, как он длину входного буфера определяет и чему на выходе равна длина выходного? Ну или хоть каке-то данные
     
  7. Dr.Golova

    Dr.Golova New Member

    Публикаций:
    0
    Регистрация:
    7 сен 2002
    Сообщения:
    348
    В данном случае - никак :) Еще раз повторюсь что длину source ему знать ненадо, в потоке закодирован признак коца потока, на котом он останавливает распаковку, а destination он считает достаточного размера (эта забота того кто вызывает функцию распаковки). Этот вариант распаковщика модифицирован и эта инфа нигде не используется. На самом деле readed/written определяется разницей esi/edi до выполнения и после (несложно заметить что в esi хранится указатель source, а в edi - destination). Точный размер наверняка можно узнать раньше, там где выделяется память под destination буфер, или сделать streamed версию распаковщика, чтобы он сам реаллочил память по мере необходимости.
     
  8. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine




    PCShrink наверное его юзает? бо тоже такой код встречается
     
  9. Wolfgang

    Wolfgang New Member

    Публикаций:
    0
    Регистрация:
    11 май 2005
    Сообщения:
    82
    Адрес:
    Russia
    bogrus, а как ты так быстро определяешь, откуда алгоритм? :) своя подборка сигнатур есть?
     
  10. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine




    Конечно :)) в гугле набрал константу, вот тебе и своя подборка %)



    Это просто быстро, а вообще все популярные .lib .obj можно в один каталог собирать, если есть екзешник то можно в ollydbg их накатить, он покажет совпадения, или в IDA
     
  11. Dr.Golova

    Dr.Golova New Member

    Публикаций:
    0
    Регистрация:
    7 сен 2002
    Сообщения:
    348
    > PCShrink наверное его юзает?

    Да, юзает. aplib вообще юзает половина пакеров :)