【问题标题】:Gladman AES library - safe to ignore compiler warnings?Gladman AES 库 - 可以安全地忽略编译器警告吗?
【发布时间】:2011-07-12 21:12:27
【问题描述】:

编译当前的gladman AES library,我在aes_modes.c 收到警告,都说"warning C4731: ... frame pointer register 'ebx' modified by inline assembly code"

这听起来很令人担忧,我不希望我的应用程序因堆栈损坏而崩溃,但我几乎无法阅读 x86 汇编程序。任何人都可以建议是否可以安全地忽略这些警告?

【问题讨论】:

    标签: encryption assembly warnings aes inline-assembly


    【解决方案1】:

    似乎忽略此警告并不安全。 该代码在 XP 上运行良好,但在 Windows 7 上测试时,它在 aes_decrypt 汇编程序例程中崩溃。我将转到纯 C 版本。

    【讨论】:

      【解决方案2】:

      如果已保存和恢复,则可以安全地忽略它。例如。

      push ebx
      ;use the ebx to do something else
      pop ebx
      

      请参阅此MSDN page,它解释了该错误的含义。

      如果它没有在代码中完成,您可以添加并测试它。

      【讨论】:

      • 据我所知,这并没有在代码中完成,但它不能像您推荐的那样容易修复,因为代码似乎使用 ebx 作为从汇编程序返回结果的一种方式进入 C.
      猜你喜欢
      • 2017-04-14
      • 1970-01-01
      • 2014-01-08
      • 1970-01-01
      • 2017-04-04
      • 1970-01-01
      • 2021-07-24
      • 2014-11-21
      • 1970-01-01
      相关资源
      最近更新 更多