- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
关闭。这个问题需要更多focused .它目前不接受答案。
想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post .
8年前关闭。
Improve this question
意识到!在您居住的地方创建 spy 软件、计算机病毒和类似的恶意软件可能是非法的,并且几乎每个人都认为这是非常不道德的。 不过,我需要提出这个问题来提高人们对创建一个是多么容易的认识。我是在 W32/Induc-A 被一个想出一种令人讨厌的传播方式的人介绍给这个世界之后问这个问题的。所以我想知道病毒是如何被制造出来的,以便我将来能够识别它们!
最近一个new virus发现它通过替换开发人员的库代码副本来传播。 实际上,通过 Delphi 4 到 7 的源代码。发生的事情是有一种病毒在野外搜索计算机中名为 SYSCONST.PAS 的文件,它会将自身作为源代码添加到该文件中。该文件恰好是 Delphi 运行时库的源文件。 (此运行时源代码可供 Delphi 开发人员使用。)因此,在被感染后,程序员会创建该病毒的许多新版本,甚至不知道它。由于病毒扫描程序有时会产生误报,因此许多开发人员可能会决定忽略扫描程序的警告,甚至可能在构建项目时禁用扫描程序。更糟糕的是,他们的项目甚至可能触发客户的扫描仪,因此这些程序员很可能不会检查他们的源代码,而只是试图以某种方式欺骗扫描仪。也就是说,如果病毒扫描程序甚至能够识别病毒,这不太可能。 因此,我们软件开发人员可能在没有意识到我们在做什么的情况下创造了病毒!
那么,如何制造病毒呢?简单:让您的源代码感染病毒,您就大功告成了!
好的,Delphi 4 到 7 的源代码可能被感染了。所有 Delphi 开发人员,请检查您的源文件!该案例只是一个概念验证,显然它可以非常成功。此外,大多数病毒扫描程序不会检查源代码,而只关注可执行文件。这种病毒可能会在很长一段时间内不被发现。
这个病毒也很成功,因为它滥用了源代码。 Delphi 是一个商业项目,源代码可用。但是谁能确定这些黑客不会以类似的方式攻击开源项目呢?有很多开源项目,谁来检查它们以确保它们都以体面的方式运行?如果有人正在检查代码,他是否能够识别出某些东西是否是恶意代码?
所以,为了确保我们可以识别恶意源代码,我不得不问:如何制造病毒?如何识别会产生病毒的代码?大多数恶意软件想要做什么?
有一些关于 Delphi 运行时源代码的讨论,关于此代码是否开源。从 Borland 开始使用 Kylix 支持 Linux 的那一刻起,他们的源代码就使用了双重许可。因此,源代码声明了一个“GPL”符号,表明库是否编译为 GPL 代码。作为 GPL,源代码将是开源的。这也恰好是被病毒攻击的源版本。无论如何,为了避免在这里讨论,我问了 this question here这样我们就可以更多地关注病毒问题而不是 Delphi。基本上,我们谈论的是一种攻击源代码的病毒。从技术上讲,所有源代码都可能存在风险,但开源代码是一个可能的候选者,因为黑客知道它的结构并且可以针对那些很少修改、因此很少检查的文件。 (如果他们能侵入 CVS 系统,他们甚至可以删除修改的痕迹,因此没有人会注意到修改!)
最佳答案
虽然这并不能真正回答您的问题,但我认为一篇非常有趣的论文是 Reflections on Trusting Trust通过肯·汤普森。它提出了一个有趣的观点,即即使您的源代码没有缺陷(病毒、特洛伊木马等),如果您的编译器有缺陷,您仍然可能生成有缺陷的可执行文件。即使您从干净的源代码重建编译器,您仍然可能遇到同样的问题。
除非您使用自己的微芯片从头开始构建计算机,手工组装自己的 BIOS,编写自己的操作系统、编译器和软件,否则您必须在某处划清界限并相信硬件和软件你正在构建你的系统是正确的。
关于delphi - 如何识别恶意源代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1386253/
这个问题在这里已经有了答案: The Bash command :(){ :|:& };: will spawn processes to kernel death. Can you explain
这个恶意 javascript 代码到底在做什么? (function () { var qk = document.createElement('iframe'); qk.src =
我的 JavaScript 代码是否可以在运行时被(恶意)用户编辑,即使它已上传到网络托管站点? 例如,如果我在脚本中声明一个变量,如下所示: var myvalue = 2; 我想知道是否可以编辑为
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 9
例子: if($('#' + untrusted_js_code).length) > 0 ....` 通常“untrusted_js_code”应该是表示项目 ID 的简单字符串。变量的值来自
我不确定这是 StackOverflow 还是更多的程序员问题,但这里的其他几个人也提出了类似的问题。 在扫描我的 Google Analytics 帐户时,我注意到一些退出链接标记有查询字符串: ?
我正在开发一个 servlet(在 tomcat 上运行),它接收包含 Java 脚本代码的请求,并使用 java 脚本 API 框架评估/运行代码并将答案返回给用户。 由于我们处理的是用户生成的代码
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 9 年前。 Improve this
我是一名优秀的程序员,十分优秀!