Отслеживание разборки программы ac # - PullRequest
1 голос
/ 14 апреля 2011

Я пытаюсь понять дизассемблирование программы ac # с помощью 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, я хотел бы знать эквивалент языка ассемблера, пожалуйста ..

Ответы [ 2 ]

2 голосов
/ 14 апреля 2011

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

1 голос
/ 14 апреля 2011

Если это связано с C #, а не с C ++, используйте дизассемблер MSIL.Также, если у вас есть .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%28v=vs.71%29.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...