Объясните данный бредовый код, полученый в OllyDbg

Тема в разделе "WASM.RESEARCH", создана пользователем Xerx, 1 фев 2007.

  1. Xerx

    Xerx Алексей

    Публикаций:
    0
    Регистрация:
    17 фев 2005
    Сообщения:
    528
    Адрес:
    Russia
    Вот собственно кусок из OllyDbg. Это точка входа в EXEш'ник. Что это тут вообще происходит?

    >006ED001 D02E SHR BYTE PTR DS:[ESI],1
    006ED003 0000 ADD BYTE PTR DS:[EAX],AL
    006ED005 0000 ADD BYTE PTR DS:[EAX],AL
    006ED007 00FF ADD BH,BH
    006ED009 FFFF ??? ; Unknown command
    006ED00B FF3C ??? ; Unknown command
    006ED00D D02E SHR BYTE PTR DS:[ESI],1
    006ED00F 00B4D0 2E0008D1 ADD BYTE PTR DS:[EAX+EDX*8+D108002E],DH
    006ED016 2E:0000 ADD BYTE PTR CS:[EAX],AL
    006ED019 0000 ADD BYTE PTR DS:[EAX],AL
    006ED01B 00FF ADD BH,BH
    006ED01D FFFF ??? ; Unknown command
    006ED01F FFE8 JMP FAR EAX ; Illegal use of register
    ...................

    И дальше такой же бред. Как правильно этот код интерпретировать?

    Это реально рабочее приложение. Только в отладке оно вылетает уже в пятой строке на некорректном операторе. Это защита от отладки такая или еще что?

    P.S. IDA выдает не менее странный код. Если нужно приведу и его.
     
  2. slackhead

    slackhead New Member

    Публикаций:
    0
    Регистрация:
    29 янв 2007
    Сообщения:
    66
    Xerx это EP которая указана в заголовке PE ?
     
  3. RamMerLabs

    RamMerLabs Well-Known Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    1.426
    да защищён чем-то exeшник. Пробуй определить чем (PEiD), ЭТО никак не может быть точкой входа!
     
  4. asd

    asd New Member

    Публикаций:
    0
    Регистрация:
    12 мар 2005
    Сообщения:
    952
    Адрес:
    Russia
    Запросто может. К примеру - это запакованные данные, а их распаковка происходит через тлс или в одной из dll, что в импорте.

    Xerx
    Без проги тебе вряд ли что-нибудь конкретное ответят.
     
  5. k3internal

    k3internal New Member

    Публикаций:
    0
    Регистрация:
    11 янв 2007
    Сообщения:
    607
    Xerx
    Вообщето это больше на данные похоже, или криптованный участок кода, то есть данные.
    Ты каким отладчиком орудовал ? Попробуй айсом. Возможно, но не скажу, здесь может косвенно устанавливаться SEH, а данные уже расшифровываются с его помощью. Либо, надо просто посмотреть чем инициализированы регистры при старте. Если это оля была, то чем ты ладил, то вот тебе и глюк. Попробуй айсом протрэйсить, либо при начале трэйса самостоятельно инициализировать регистры нужными цифрами.
    Без самой проги не разобраться.
     
  6. dermatolog

    dermatolog Member

    Публикаций:
    0
    Регистрация:
    3 фев 2005
    Сообщения:
    406
    Адрес:
    Екатеринбург
    100% данные, на криптованный код не похоже :))

    ..D02E00
    00000000
    FFFFFFFF
    3CD02E00
    B4DO2E00
    08D12E00
    00000000
    FFFFFFFF
    E8........
     
  7. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
    asd
    Дык тогда точка входа должна все-равно на упаковщик указывать. Системе же надо куда-то управление передать.

    Относительно SEH - что-то отдаленно похожее на адреса есть, но... Нужна программа однозначно.
     
  8. asd

    asd New Member

    Публикаций:
    0
    Регистрация:
    12 мар 2005
    Сообщения:
    952
    Адрес:
    Russia
    crypto
    Так управление не точке входа первым делом передаётся, и на точке входа всё что угодно быть может.

    dermatolog
    И правда очень похоже на данные.
     
  9. k3internal

    k3internal New Member

    Публикаций:
    0
    Регистрация:
    11 янв 2007
    Сообщения:
    607
    asd
    как тут уже было сказано, кто мешает исправить точку входу ехека из длл при инициализации оной ?
     
  10. asd

    asd New Member

    Публикаций:
    0
    Регистрация:
    12 мар 2005
    Сообщения:
    952
    Адрес:
    Russia
    k3internal
    А я и не спорю:)
     
  11. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    да вобще код не в кассу, не может быть такого на EP
     
  12. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
    Asterix
    Автор топика жмет программу :)
     
  13. koderr

    koderr New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2006
    Сообщения:
    205
    Xerx
    Глянь, TLS есть или нет.
     
  14. k3internal

    k3internal New Member

    Публикаций:
    0
    Регистрация:
    11 янв 2007
    Сообщения:
    607
    Xerx
    ёкрный бабай. ты прогу то давай, а то телепаты из нас хреновые
     
  15. koderr

    koderr New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2006
    Сообщения:
    205
    [off]
    Рассказ для телепатов:
    Ну вы-то знаете, что я имею в виду.
    [/off]
     
  16. Xerx

    Xerx Алексей

    Публикаций:
    0
    Регистрация:
    17 фев 2005
    Сообщения:
    528
    Адрес:
    Russia
    >k3internal
    >koderr
    Ну не было меня на форуме! Что кричать-то! Выкладываю саму прогу.
    xerxde.narod.ru/schematic.rar 1.2M (только один этот exe'шник)

    Если еще что надо - тоже выложу. А вообще это часть DipTrace. И судя по всему стоит защита от отладки и что-то еще...

    Пользовался OllyDbg, о чем писал и в названии темы и в ПЕРВОЙ строке поста ;)
     
  17. OKOB

    OKOB New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2006
    Сообщения:
    19
    точка входа в EXE-шник
    ajrdybnh:00849B75 public start
    ajrdybnh:00849B75 start proc near
    ajrdybnh:00849B75 call sub_849A71
    ajrdybnh:00849B7A add eax, 1FE9h
    ajrdybnh:00849B7F jmp eax
    ajrdybnh:00849B7F start endp
    вызывается функция которая:
    - заказывает память
    - копирует в эту память 2891h байт с адреса 846С04
    - распаковывает их обратно по тому же адресу 846С04 с помощью функции sub_846B90
    - освобождает память
    - модифицирует точку входа в эту функцию (однократный вызов)
    - выходит
    после этого конструкция
    add eax, 1FE9h
    jmp eax
    передает управление в этот распакованный код
     
  18. OKOB

    OKOB New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2006
    Сообщения:
    19
    а ниже расположена функция инициализации TLS (работающая аналогично, только адрес входа в распакованный код другой)

    Код (Text):
    1. ajrdybnh:00849B81 TlsCallback_0   proc near              
    2. ajrdybnh:00849B81                 call    sub_849A71
    3. ajrdybnh:00849B86                 add     eax, 26CBh
    4. ajrdybnh:00849B8B                 jmp     eax
    5. ajrdybnh:00849B8B TlsCallback_0   endp
    и первой отрабатывает призапуске она (ниже цитата из http://www.wasm.ru/article.php?article=tls

    Статическая TLS поддерживает вызов TLS Callback функций для инициализации TLS переменных – то, что довольно часто используют протекторы и вирусы для антиотладки. Например, ExeCryptor располагает код TLS Callback функции, в результате отладчик пролетает EP.
    Вот и все :) дабы это впоймать точка останова на 00849B81
     
  19. lord_Phoenix

    lord_Phoenix New Member

    Публикаций:
    0
    Регистрация:
    13 янв 2007
    Сообщения:
    18
    там execryptor
     
  20. koderr

    koderr New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2006
    Сообщения:
    205
    lord_Phoenix
    Я его по EP узнал :P