Я хочу получить список с искаженными именами всех функций исполняемого для некоторого внешнего анализа.
На Linux это простая задача. Мне просто нужно скомпилировать как обычно и запустить nm
, чтобы получить список с искаженными именами.
$ nm test
U _GLOBAL_OFFSET_TABLE_
U printf
U __stack_chk_fail
0000000000000012 T _Z3fooi
0000000000000000 T _Z3foov
0000000000000007 T _Z4footv
0000000000000000 W _ZN3BarC1Ev
0000000000000000 W _ZN3BarC2Ev
0000000000000000 n _ZN3BarC5Ev
On windows и Microsoft Visual C ++ (msv c?) Я не могу понять, способ получить информацию таким же образом. Я попытался скомпилировать свое приложение с помощью cl /Od /DEBUG
и запустить dumpbin /EXPORTS /HEADERS
, но у меня нет списка имен искаженных функций моего приложения.
dumpbin /EXPORTS test.exe
Microsoft (R) COFF/PE Dumper Version 14.00.24245.0
Copyright (C) Microsoft Corporation. All rights reserved.
Dump of file test.exe
File Type: EXECUTABLE IMAGE
Summary
2000 .data
1000 .gfids
1000 .pdata
9000 .rdata
1000 .reloc
C000 .text
Type a message
Работает ли dumpbin
только с общими библиотеками, а не с исполняемыми файлами? Поскольку мне нужны только искаженные имена (например, _Z3foov, _ZN3BarC1Ev) без изменения кода моего приложения, есть ли лучшее решение для получения этих строк? Я обычно разрабатываю приложение на С ++ на linux. Поэтому я не очень разбираюсь в особенностях windows.