2
A
回答
9
是的,有人可以。
没有办法避免它。混淆会让它变得更难。
在最糟糕的情况下,如果有人不理解您的混淆代码,他们可以在调试器中运行您的可执行文件,并在使用之前从内存中读取密码。
解决方案当然不是将重要密码硬编码到二进制文件中。
1
是的。通过观察程序在调试器中执行可以找到密码。如果您什么都不做,甚至可以通过在二进制文件中搜索文本来查找。
可以做些什么?有一些反调试技术,如混淆或防篡改机制,这些机制会在调试时导致可执行文件崩溃。混淆可能很容易实现。防篡改将是困难的。
+1
防篡改也永远不会100%有效。攻击者可以开始在虚拟机中运行你的代码,并且将密码挂钩到管理程序中;您的代码将无法确定是否发生此类攻击。 – Borealid 2010-07-30 04:40:52
相关问题
- 1. 如何从HTML中提取jQuery代码并执行它?
- 2. 执行不可信代码
- 3. 提取代码转换成可执行文件vb.net
- 4. 从settings.py文件中提取密码
- 5. 从SQL中提取密码登录
- 6. C++类中的可执行代码
- 7. 如何从PHP源代码获取可执行的phar命令?
- 8. 从exe/pdb获取有关可执行代码的信息
- 9. 从.exe提取C#代码
- 10. 从cgal提取代码
- 11. 执行代码
- 12. 代码执行
- 13. 获取的代码行数执行
- 14. 股利的HTML代码没有从HTML代码中提取
- 15. 密码的执行时间
- 16. 从JS中暂停在chrome中的代码执行。可能?
- 17. 如何获取库/可执行文件的可执行代码段的大小?
- 18. 从PHP代码中执行shell脚本
- 19. 你有没有从代码中提取存储的加密密钥
- 20. 从一类Java源代码中提取方法体源代码
- 21. 从Python代码中提取“额外”docstrings?
- 22. 从代码中提取问题
- 23. 从jar中提取scala源代码
- 24. 从html中提取javascript代码
- 25. 从JavaScript代码中提取字符串
- 26. xcode - 从html代码中提取文本
- 27. 代码在可执行文件中运行良好,相同的代码需要DLL中的提升权限
- 28. 如何在执行中获取执行代码的文件名?
- 29. 从密码字段获取密码
- 30. 执行不可信的RDotNet代码
如果一个调试器可以查看任何变量,那么如何保护用于访问数据库的密码?当然,任何这样的密码在进入数据库之前都会在内存中? – CJ7 2010-07-30 04:27:45
@Craig:您可以让软件询问密码并将其存储到某个地方。或者在典型的Web应用程序的情况下,安装软件时将密码存储到某个配置文件。关键是你不能通过获取软件来访问数据库,你也需要配置。 – 2010-07-30 04:35:00
@Craig Johnston:对于高安全性应用程序,您需要一台高安全性的计算机。如果计算机在物理上受到损害,则计算机有权访问的任何凭据都会受到损害。也就是说,对于大多数具有仅由特定用户可读的配置文件并且在假定的用户权限下运行该二进制文件的人来说被认为是足够的。 – Borealid 2010-07-30 04:37:55