Дизассемблирование "неправильного" PE EXE

Тема в разделе "WASM.RESEARCH", создана пользователем HH9, 30 ноя 2007.

  1. HH9

    HH9 New Member

    Публикаций:
    0
    Регистрация:
    28 ноя 2007
    Сообщения:
    72
    Такая ситуация - выловил в дикой природе троян-лоадер, и попытался разобраться в его работе. При загрузке в IDA выдается полная чушь в районе EP. Olly ругается "Bad or unknown format of 32-bit executable file C:\loader.exe". Посмотрев его Hiew'ов выяснил, что он имеет 3 секции доступных на запись, при снятии атрибута записи с любой секции выпадает с ошибкой записи в память, т.е. он себя распаковывает. PE-заголовки наложены друг на друга, EP равен 1018h. Имеется импорт с именем dll kernel32.dll и функциями LoadLibraryA и GetProcAddress. Нашел EP в файле - попытался проверить его правильность путем записи в это место опкода команды jmp $ - файл не запускается. Вставлял этот опкод рандомно в другие места - программа останавливается, как и должно быть. Видно что exe попался очень извращенный. Какие существуют способы анализа подобных файлов? Я понимаю, что для полной ясности нужно дизасмить виндовый загрузчик exe файлов, и смотреть как он себя ведет с подобными вещами, скоро я этим займусь. Может быть существуют способы разобраться попроще? Мне нужно узнать хотя-бы правильную entry point.

    Файл в аттаче, тестил на WinXP SP2 eng
     
  2. Hellspawn

    Hellspawn New Member

    Публикаций:
    0
    Регистрация:
    4 фев 2006
    Сообщения:
    310
    Адрес:
    Москва
    файл просто пакован:

    (Win)Upack 0.39

    распакованный:

    http://dump.ru/files/n/n5585989857/
     
  3. Jupiter

    Jupiter Jupiter

    Публикаций:
    0
    Регистрация:
    12 авг 2004
    Сообщения:
    532
    Адрес:
    Russia
    Upack использует тот факт, что выравнивание файла/секций (File/Section Alignment) существует не только для того, чтобы занимать место в заголовке файла ;)
    Подумай над этим.

    Опережая твой вопрос "а где бы об этом почитать": почитай доки по формату PE - найдёшь на данном сайте (васм.ру).
     
  4. reverser

    reverser New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2004
    Сообщения:
    615
    Включай "Manual Loading" для таких файлов. Еще есть pe_scripts.
     
  5. HH9

    HH9 New Member

    Публикаций:
    0
    Регистрация:
    28 ноя 2007
    Сообщения:
    72
    Удалось поймать обращение к entry point, поставив брэкпоинт на обращение к адресу памяти в Olly. Но в секции на диске в этом месте совсем другой код! Как он мог модифицироваться? Записи о TLS в таблице директории нет, как тогда код мог получить управление до перехода на EP? Или все же EP 00401018 неправильный?
     
  6. Hellspawn

    Hellspawn New Member

    Публикаций:
    0
    Регистрация:
    4 фев 2006
    Сообщения:
    310
    Адрес:
    Москва
    00401018 - правильный! =)

    тут всё дело в выравнивании! Jupiter уже всё сказал...