如何转储可执行文件的所有函数名称?

如何转储可执行文件的所有函数名称?,第1张

概述如何转储可执行文件的所有函数名称

有没有一种方法(最好命令行)转储一个可执行文件的所有函数名称(不只是出口/import)?

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

可移植的可执行DOS头部长度

PE:区段标题的SizeOfRawData和VirtualSize字段之间的关系

x64组装优化

有关在加载地址空间中加载DLL的问题

从windows PE文件修改.rdata unicodestring

请注意,微软决定要发布多少个符号。 只是因为有一个符号服务器并不意味着你得到私人符号。

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

打开故障转储…(不打开可执行文件)

选择DLL /可执行文件

.symfix

.reload

x *!*

你可以使用cdb从命令行执行它:

cdb -z "c:windowssystem32notepad.exe" -c ".symfix;.reload;x *!*;q"

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>)

总结

以上是内存溢出为你收集整理的如何转储可执行文件的所有函数名称?全部内容,希望文章能够帮你解决如何转储可执行文件的所有函数名称?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1274553.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存