Как скопировать тело функции

Discussion in 'LANGS.C' started by nitrotoluol, Nov 7, 2007.

  1. nitrotoluol

    nitrotoluol New Member

    Blog Posts:
    0
    САБЖ

    Есть функция

    Code (Text):
    1. ULONG SomeFunc(ULONG x, ULONG y)
    2. {
    3. ULONG Result;
    4.    Result = x+y;
    5. return Result;
    6. };
    Эту функцию нужно скопировать в буффер, подготовленный заранее.
    Вопрос - как?

    Я даже адрес начала функции узнать не могу, поскольку там джам на другое место, где и распологается функция.

    И можно ли как-то размер заранее узнать? до компиляции?
     
  2. Cr4sh

    Cr4sh New Member

    Blog Posts:
    0
    >> Вопрос - как?
    идти от начала ф-ции дизассемблером, пока не найдешь retn

    >> Я даже адрес начала функции узнать не могу, поскольку там джам на другое место, где и распологается функция.
    отключи оптимизацию

    >> И можно ли как-то размер заранее узнать? до компиляции?
    до компилации нет
    можно после сабжевой ф-ции разместить ф-цию-пустышку, а потом просто вычитать их адресса, но пять же, работает только если компилить без оптимизации
     
  3. nitrotoluol

    nitrotoluol New Member

    Blog Posts:
    0
    Cr4sh
    Вопрос закрыт
    Спасибо
     
  4. n0name

    n0name New Member

    Blog Posts:
    0
    скорее нужно опцию линкера поставить, чтобы он сохранял порядок функций. не думаю что оптимизатор нашел настолько, чтобы перемешивать тела функций между собой.