Отслеживание разборки программы на c #

#c# #disassembly #objdump

#c# #разборка #objdump

Вопрос:

Я пытаюсь разобраться в разборке программы на c # с помощью objdump, поскольку я использую vsiaul c # 2008 express edition, который не отображает разборку.

Я запускаю следующую команду, чтобы получить выходные данные:

 objdump -S ConsoleApplication4.exe 
  

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

  public static void myfun()
    {
        int i;
        i = 0x1234;
        Console.WriteLine(i.ToString());
    }
  

Однако я не могу найти значение 1234 нигде в сгенерированном файле! я пробовал другие варианты, такие как -t или -T для objdump, но он говорит, что таблица символов не найдена. Может кто-нибудь, пожалуйста, рассказать, как использовать objdump для просмотра разборки функции, или, если есть какой-то другой бесплатный инструмент?

РЕДАКТИРОВАТЬ: я знаю о разборке MSIL, я хотел бы узнать эквивалент языка ассемблера, пожалуйста..

Комментарии:

1. Какое именно отношение это имеет к C ? Возможно, также захочется добавить disassembly тег.

Ответ №1:

Если вы не создали свое приложение, нет смысла разбирать его на язык ассемблера, поскольку MSIL не компилируется в код x86 до тех пор, пока он не будет jitted во время выполнения.

Ответ №2:

Если это имеет отношение к C #, а не к C , используйте MSIL Disassembler. Кроме того, если у вас есть .Net Reflector, FileDisassembler также является отличным инструментом для этого.

Ниже приведены ссылки на полный пошаговый пример MSIL Disassembler и его статью в msdn.

http://www.mactech.com/articles/mactech/Vol.19/19.12/NETbinaries/index.html

http://msdn.microsoft.com/en-us/library/f7dy01k1(v=vs.71).aspx