我需要获取应用程序中所有字符串的列表。但是当我运行 Sysinternals“字符串”工具时,我关心的字符串与许多字符串(如“DataSet”和“get_value”)混合在一起。看起来类和方法名称被视为字符串。
有没有办法在.NET 二进制文件上获得有用的结果?
答案1
您可以使用ildasm
(http://msdn.microsoft.com/en-us/library/f7dy01k1%28v=vs.110%29.aspx,包含在 Windows SDK 中:http://www.microsoft.com/en-us/download/details.aspx?id=8279)然后过滤ldstr指示:
ildasm "your_exe_or_dll" /text |find "ldstr"
(您也可以输出元数据/metadata=heaps
,然后查找“用户字符串”部分)
答案2
如果应用程序可以正常运行,则可以运行 SysInternals进程探索器。如果您查看进程的属性,您可以看到内存中的字符串以及进程映像中的字符串。如果您愿意,您还可以安全/导出这些字符串。
答案3
从技术网,sysinternalsstrings
工具有一个可选参数-n
,您可以使用它来指示您要查找的字符串的最小长度,因为默认值为 3。