如何在混淆的.NET代码中获取错误行数?

ezi*_*zio 3 vb.net eazfuscator

使用此代码:

 Dim sf As New StackFrame(0, True)
 MessageBox.Show("Module: " & sf.GetFileName & " -Line: " & sf.GetFileLineNumber.ToString)
Run Code Online (Sandbox Code Playgroud)

我可以获得发生未处理异常的类和行号(in ApplicationEvents.vb, Sub MyApplication_UnhandledException(...) Handles Me.UnhandledException)

但是,如果我使用EazFuscator(以及可能与其他任何人)混淆代码,我会丢失数据:我得到一个NullString,0代表行号.

插入代码:

<Assembly: Obfuscation(Feature:="encrypt symbol names with password XXXX", Exclude:=False)>
Run Code Online (Sandbox Code Playgroud)

没有什么变化.我可以反编译e.message,但线路丢失了.如何在混淆代码中获取错误行?

Dru*_*key 6

不,这是不可能的,这是有意的.未处理的异常是潜在攻击者的信息来源.通常,在第一轮测试通过后,您应该只对生产构建应用模糊处理.不要尝试调试混淆的程序集,它专门用于防止调试,以及其他方面.

我应该补充一点,您无法获取信息的真正原因是,混淆过程已从程序集中删除了调试符号.只要您有一个有效的程序集PDB文件,就应该显示该信息.