- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用 Visual Studio 2010 使用 C# 创建 Windows 程序已经超过 18 个月了。至少有 12 个月的时间,我一直在使用社区版 Dotfuscator 来混淆我的所有程序。到目前为止,效果非常好。
我的最新项目已发布初始测试版,使用 Visual Studio 2010 for .NET Framework 4.0 进行编译。这很好混淆。
从那时起,我将其导入到 Visual Studio 2013,将其移至 .NET Framework 4.5.1,然后继续开发我的调试版本。当我准备好向用户发布另一个测试版时,我开始意识到混淆版本在其发布状态下崩溃了。发布形式的未混淆版本不会崩溃。如果我用混淆的 EXE 来替换调试版本,Visual Studio 会发出警告,但随后运行程序就可以了。没有崩溃。
尽管我在 Program.cs 中有一个 UnhandledException 处理程序,但程序只是崩溃了,Windows 只给了我一个装配线引用。我无法用来缩小原因范围。
此后,我已将程序移回 Visual Studio 2010、.NET Framework 4.0、.NET Framework 4.0 Client Profile,并尝试了 Dotfuscator 中的所有设置变体。尝试了 Dotfuscator 专业版(14 天试用版)。没有什么。混淆后,崩溃,没有可用信息。即使我排除所有内容,因此 0.0% 被重命名,仍然会崩溃。
我有一些加密信息需要像过去一年左右一样保持模糊状态。所以我需要进行混淆工作。我根本不知道发生了什么,或者我做了什么,让它停止工作。
我非常感谢一些关于可能发生的事情的指导。预先感谢您。
编辑:这是非常基本且不是很有帮助的错误消息。如果提供了堆栈跟踪,我可以跟踪堆栈跟踪。我的代码中还包含了大量的错误捕获器,以及通用的 AppDomain.CurrentDomain.UnhandledException 处理程序。尽管如此,这就是我得到的全部:
http://www.keepitfishy.com/files/crash1.jpg
http://www.keepitfishy.com/files/crash2.jpg
这是我尝试使用 Visual Studio 进行调试时得到的汇编代码的一部分,我标记了应该是罪魁祸首的行:
7362CEF1 E8 15 05 00 00 call 7362D40B
7362CEF6 59 pop ecx
7362CEF7 68 09 04 00 C0 push 0C0000409h
7362CEFC E8 16 05 00 00 call 7362D417
7362CF01 59 pop ecx
7362CF02 5D pop ebp
7362CF03 C3 ret
7362CF04 55 push ebp
7362CF05 8B EC mov ebp,esp
7362CF07 81 EC 24 03 00 00 sub esp,324h
7362CF0D 6A 17 push 17h
7362CF0F E8 37 DE C3 FF call 7326AD4B
7362CF14 85 C0 test eax,eax
7362CF16 74 05 je 7362CF1D
7362CF18 6A 02 push 2
7362CF1A 59 pop ecx
[error line]7362CF1B CD 29 int 29h[error line]
7362CF1D A3 58 61 75 73 mov dword ptr ds:[73756158h],eax
7362CF22 89 0D 54 61 75 73 mov dword ptr ds:[73756154h],ecx
7362CF28 89 15 50 61 75 73 mov dword ptr ds:[73756150h],edx
7362CF2E 89 1D 4C 61 75 73 mov dword ptr ds:[7375614Ch],ebx
7362CF34 89 35 48 61 75 73 mov dword ptr ds:[73756148h],esi
7362CF3A 89 3D 44 61 75 73 mov dword ptr ds:[73756144h],edi
7362CF40 8C 15 70 61 75 73 mov word ptr ds:[73756170h],ss
7362CF46 8C 0D 64 61 75 73 mov word ptr ds:[73756164h],cs
7362CF4C 8C 1D 40 61 75 73 mov word ptr ds:[73756140h],ds
7362CF52 8C 05 3C 61 75 73 mov word ptr ds:[7375613Ch],es
7362CF58 8C 25 38 61 75 73 mov word ptr ds:[73756138h],fs
7362CF5E 8C 2D 34 61 75 73 mov word ptr ds:[73756134h],gs
7362CF64 9C pushfd
7362CF65 8F 05 68 61 75 73 pop dword ptr ds:[73756168h]
7362CF6B 8B 45 00 mov eax,dword ptr [ebp]
7362CF6E A3 5C 61 75 73 mov dword ptr ds:[7375615Ch],eax
7362CF73 8B 45 04 mov eax,dword ptr [ebp+4]
7362CF76 A3 60 61 75 73 mov dword ptr ds:[73756160h],eax
7362CF7B 8D 45 08 lea eax,[ebp+8]
7362CF7E A3 6C 61 75 73 mov dword ptr ds:[7375616Ch],eax
7362CF83 8B 85 DC FC FF FF mov eax,dword ptr [ebp-324h]
如果有人能帮我解释一下,我也许可以找到原因。谢谢。
最佳答案
根据您发布的错误对话框,您在 native 代码中遇到堆栈问题:
来自MSDN :
0xC0000409 STATUS_STACK_BUFFER_OVERRUN
The system detected an overrun of a stack-based buffer in this application. This overrun could potentially allow a malicious user to gain control of this application.
追踪导致溢出的原因可能就像抛出异常时查看堆栈跟踪一样简单。即使 VS 没有向您显示代码,它仍然可以 identify the module and function on the top off the call stack .
如果问题是由于堆栈损坏而引起的,而该问题早已过去,那么您可能需要像任何其他 native 应用程序一样,而不是从 .Net 来解决该问题。
如果您不是应用程序中任何 native 组件的作者,则您可能有一个不正确的 P/Invoke 签名,分配了传递给 P/Invoked 函数的大小不正确的缓冲区或结构,或者以其他方式错误地调用 native 代码。检查您的 P/Invokes 并确保您有 MDAs enabled .
关于c# - 我破坏了与 Dotfuscator 的兼容性...请帮助我了解如何,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27832790/
我试图通过屏幕截图捕获带有突出显示的元素,但在屏幕截图中,该元素不带有突出显示。有谁知道解决办法吗?当我捕获文本时会出现突出显示:automatests@gmail.com 查看我的代码: Utili
大家好,我是编码的新手,我正在和一位老师一起上 Java 入门课,希望您已经了解一切。我必须对冰雹序列进行编码,它表示为: 选择一些正整数并将其命名为 n。如果 n 是偶数,则将其除以二。如果 n 是
如果存在名称相同的SCOM组,则尝试制作一个请求更多信息(组ID)的脚本: function myFunction { [CmdletBinding()] Param(
我有这张表: id | CUPNAME | FRENCHNAME 1 | 2 | null 2 | null | 4 我想从非空的 CUPNAME 和 FRENCHNAME 中提
我是 Collection View 的新手,想知道这是否是创建它们的最佳方式,我还想了解一些关于从哪里转到启用分页的详细 View 的建议。 #import "MarbleCollectionVie
好的,这是非常好的 jquery slider 。 http://srobbin.com/jquery-plugins/pageslide 我所做的是 http://mbu.mn/test 问题来了。
...有人可以解释一下区别吗? 我在命令提示符下输入的内容: sys.path.append('M:/PythonMods') import qrcode myqr = qrcode.make("ra
我不时在我的服务器上运行 bash 脚本,我正在尝试编写一个脚本来监视日志文件夹并在文件夹超出定义的容量时压缩日志文件。我知道有更好的方法来做我目前正在尝试做的事情,非常欢迎您提出建议。下面的脚本抛出
我是 Groovy & Grails 的新手,我觉得事情不必那么难看……那么我怎样才能让这段代码更好看呢? 这是一个 Grails Controller 类,去掉了一些无趣的部分。尽量不要太挂断我的
关闭。这个问题需要更多focused .它目前不接受答案。 想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post . 7年前关闭。 Improve this questi
在这个查询中,除了 5 个连接表之外,我试图使用第 6 个表“Days”将值与连接中的三个表进行比较。但它给了我错误,我不能在连接中使用子查询。 select a.ID, a.Name, a.AMT,
我不想通过 Xpath 提取,我想要更清晰的代码。谢谢我的世界兄弟 来自 Xpath,好的!! Assert.assertEquals("Digite um e-mail ou número de t
这个问题已经有答案了: Google Map is not loading due to inflate exception (3 个回答) 已关闭 9 年前。 我知道有很多关于此的帖子,但我就是无法
我的问题.. a.) 使用内存分配创建一个 float 组来存储 GPA 分数10名学生。为其分配值(您的选择) b.) 找出该数组中的最大 GPA。 c.) 将此数组的内容写入文件 alloc.tx
我最近要制作 Sequelize 。 我有 2 个表,data_track 和 car_detail。我想尝试关联那 2 个表,但它从未关联过。 总是返回错误SequelizeEagerLoading
我有一些代码在 LINQ 中根本无法工作的问题,但它确实可以作为一个简单的 for..each 工作。任何解释和解决方案将不胜感激。 我有 3 个类,Users、User 和 UserPermissi
我正在设计我的第一个大型数据库,并想检查我是否可以提供表关系。 我正在设计一个网络应用程序,其中 用户可以在团队中玩游戏 每个游戏都有其类别 用户为游戏创建他们的团队并选择他们的团队类别 每个游戏都启
我很抱歉成为一个 CSS 菜鸟,希望有人能指导我正确的方向。 我需要帮助的网页可以在 http://filefx.com 找到 当您点击该页面时,您会注意到“选择文件”图标和“上传文件”图标不在同一行
我已经尝试过这个我在网上找到的演示代码练习并创建了这个 slider ,使用滚动条更容易获得它,因为它们已经是为此制作的脚本。现在我正在尝试修改此脚本及其 css,以将滚动条更改为左右两侧的箭头。我已
最近我对 CSS 很感兴趣。学习不同的东西。 我正在尝试像这样放置三个 div: http://i.stack.imgur.com/miN9G.png 我得到的: http://i.stack.img
我是一名优秀的程序员,十分优秀!