Простенький криптор + UPX -> проблема при распаковке

Тема в разделе "WASM.BEGINNERS", создана пользователем AtaraX, 6 фев 2008.

  1. AtaraX

    AtaraX New Member

    Публикаций:
    0
    Регистрация:
    13 сен 2007
    Сообщения:
    20
    Берется программа, обрабатывается простеньким самописным криптором, после чего пакуется UPX. Под Олей было выяснено, что UPX замечательно распаковывает и передает управление на OEP моего стаба. Только тот, проходя по секциям, видит секции UPX'а.

    Можно ли как-то добратся до уже распакованных секций?
     
  2. ltshck

    ltshck New Member

    Публикаций:
    0
    Регистрация:
    5 ноя 2007
    Сообщения:
    195
    запусти прогу, дай ей распокаваться
    затем memory view - > ollydumper -> .exe и получишь что хочешь
     
  3. AtaraX

    AtaraX New Member

    Публикаций:
    0
    Регистрация:
    13 сен 2007
    Сообщения:
    20
    Вручную в оле в дампе памяти найти где находятся секции и поменять кусок кода не трудно.
    Вопрос в том, как модифицировать стаб, чтобы он самостоятельно находил где находятся распакованные секции.
     
  4. MSoft

    MSoft New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    2.854
    AtaraX
    например, при криптовке прописывай в стабе RVA секций
     
  5. AtaraX

    AtaraX New Member

    Публикаций:
    0
    Регистрация:
    13 сен 2007
    Сообщения:
    20
    Чуток неправильно сформулировал. Надо добраться до распакованной таблицы секций
     
  6. Magnum

    Magnum New Member

    Публикаций:
    0
    Регистрация:
    29 дек 2007
    Сообщения:
    925
    AtaraX
    таблица секций, как и РЕ-заголовок UPX-ом не восстанавливаются
     
  7. Hellspawn

    Hellspawn New Member

    Публикаций:
    0
    Регистрация:
    4 фев 2006
    Сообщения:
    310
    Адрес:
    Москва
    если распаковывать самим упх, то получится почти оригинальный файл :)
     
  8. Magnum

    Magnum New Member

    Публикаций:
    0
    Регистрация:
    29 дек 2007
    Сообщения:
    925
    Hellspawn
    почти
    часть данных из ре-заголовка upx хранит отдельно,
    часть - просчитывает самостоятельно.
    Но во время распаковки в памяти, ре-заголовок не восстанавливается
     
  9. AtaraX

    AtaraX New Member

    Публикаций:
    0
    Регистрация:
    13 сен 2007
    Сообщения:
    20
    Таблица секций восстанавливается, находится за чем-то, похожим на импорт.
     
  10. Jupiter

    Jupiter Jupiter

    Публикаций:
    0
    Регистрация:
    12 авг 2004
    Сообщения:
    532
    Адрес:
    Russia
    Magnum
    на прежнее место он не кладётся, но в памяти, тем не менее, PE-заголовок присутствует.
    достаточно сдампить запущенный файл просто поискать 50450000 в памяти. там же есть и имена оригинальных секций.

    AtaraX
    алгоритм поиска оригинального PE заголовка:
    когда твой код получил управление (upx отработал), идёшь от точки входа вверх в поисках 50450000. всё.
     
  11. AtaraX

    AtaraX New Member

    Публикаций:
    0
    Регистрация:
    13 сен 2007
    Сообщения:
    20
    Jupiter
    Спасибо, похоже это то, что мне было нужно.

    p.s. Господа, как вам идея рядом со стабом положить копию таблицы секций?
    Решение проблемы для upx похоже что найдено, но ведь пакеров до тучи..
     
  12. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    я вообще вместе с данными пакую весь заголовок. потом восстанавливаю его. тк есть некоторые фишки которые без этого не работают. наприсер статически линкуешь rtl от ms vc, без извращений fpu не используешь, если не восстанавливать таблицу секций. Не смотрел как это обойдено в upx, но эту информацию я взял как раз из еего сорцев.

    ыы, дубли.