【问题标题】:How to dump all function names of an executable?如何转储可执行文件的所有函数名称?
【发布时间】:2016-03-17 15:00:39
【问题描述】:

有没有办法(最好是命令行)转储可执行文件的所有函数名称(不仅仅是导出/导入)?

有问题的可执行文件是 Microsoft EXE/DLL,因此应该可以从 Microsoft 符号服务器获取符号。

【问题讨论】:

    标签: windows reverse-engineering windbg portable-executable


    【解决方案1】:

    请注意,要发布多少符号由 Microsoft 决定。仅仅因为有符号服务器并不意味着您可以获得私有符号。

    你可以在 WinDbg 中做到这一点:

    1. 打开故障转储...(未打开可执行文件)
    2. 选择 DLL/可执行文件
    3. .symfix
    4. .reload
    5. x *!*

    您可以使用cdb 从命令行执行此操作:

    cdb -z "c:\windows\system32\notepad.exe" -c ".symfix;.reload;x *!*;q"
    

    【讨论】:

    • 谢谢,这正是我所需要的。
    【解决方案2】:

    x calc!* 应该转储函数。 calculator.exe 的类型和全局变量

    0:000> x calc!*
    00bd6b7a          calc!std::locale::locale (<no parameter info>)
    00bc1138          calc!_imp__NtQueryLicenseValue = <no type information>
    00bf308b          calc!CToolsetDialog::`scalar deleting destructor' (<no parameter info>)
    00bc6479          calc!CContainer::IsFocusOnMainDisplayAllowed (<no parameter info>)
    00be29b3          calc!CContainer::ToggleHistoryFunc (<no parameter info>)
    00bcb3bb          calc!DigitGroupingStringToGroupingNum (<no parameter info>)
    00bf2235          calc!RecoveryCallback::IsNextPingRequired (<no parameter info>)
    00bd23f8          calc!_Mtxlock (<no parameter info>)
    00bc11e8          calc!_imp__InterlockedIncrement = <no type information>
    00bc13b4          calc!_imp__DestroyWindow = <no type information>
    00c08593          calc!exception::exception (<no parameter info>)
    00c03c90          calc!std::operator<<unsigned short,std::char_traits<unsigned short>,std::allocator<unsigned short> > (<no parameter info>)
    

    【讨论】:

      猜你喜欢
      • 2012-04-02
      • 1970-01-01
      • 2015-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-29
      • 2014-01-21
      • 1970-01-01
      相关资源
      最近更新 更多