Файл, скомпилированный в MS Visual Studio

Тема в разделе "WASM.ASSEMBLER", создана пользователем Helga, 23 июн 2009.

  1. Helga

    Helga New Member

    Публикаций:
    0
    Регистрация:
    3 июн 2009
    Сообщения:
    3
    Занимаясь дизассемблированием файла, скомпиленного VS, столкнулась со следующей структурой:

    Код (Text):
    1. proc near
    2. jmp     sub_465480
    3. endp
    4. <...>
    5. jmp     loc_42F286
    6. jmp     loc_43CAF0
    7. jmp     loc_452950
    8. <...>
    9. loc_42F286:
    10. jmp     ds:CloseHandle
    Дизассемблировано Идой. Собственно, первая половина - треть файла представляет собой чередование первого и второго вида фрагментов в произвольном порядке. Дальше идет вполне осмысленный код, в котором функции API иногда вызываются нормально, напрямую, а иногда через вот такие цепочки call-jmp-call.
    Я предполагаю, что Ида оформляет как subroutine то, к чему есть переходы из других фрагментов кода. Но что представляют собой остальные jmp?

    Может, кто-то сталкивался с таким кодом? Чему он соответствует в исходнике?
     
  2. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Это похоже на джампы, которые ставит студийный компилятор в Debug-сборке. Назначение мне неизвестно)
     
  3. Helga

    Helga New Member

    Публикаций:
    0
    Регистрация:
    3 июн 2009
    Сообщения:
    3
    А, кстати, это вполне возможно... Спасибо :)
     
  4. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    Оптимизация, для рекомпиляции без перезапуска проги.
     
  5. SashaTalakin

    SashaTalakin New Member

    Публикаций:
    0
    Регистрация:
    15 дек 2008
    Сообщения:
    261
    Helga сами теперь ищите уязвимости :)
     
  6. Helga

    Helga New Member

    Публикаций:
    0
    Регистрация:
    3 июн 2009
    Сообщения:
    3
    n0name
    Вот оно как... Спасибо.
    При компиляции в дебаг моя вижуалка такого не генерирует. Странно... А что нужно прописать в конфигурации, чтобы оно так делало?
     
  7. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Ну если для компиляции без перезапуска, тогда проставить Edit & Continue
     
  8. reverser

    reverser New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2004
    Сообщения:
    615
    Incremental Linking такой эффект даёт.