本文目录一览:
软件存在bug是程序员把代码打错了造成的吗?
程序员打错代码肯定是软件存在bug的原因之一,但并不是唯一原因。
比如需求不合理,软件的操作上,设计上原本就存在逻辑漏洞,多个单体能够正常工作的模块结合到一起产生问题,异常场景没有考虑到等等,很多原因都可能产生bug。
请采纳,谢谢。
请计算机的高手进,高悬赏!
楼主既然要做黑客。那么汇编语言就是你的必修课程。汇编语言对于研究精确程
序变动有重要作用。这仅仅是做为一个黑客的之一步。
一个好的黑客对于时下流行的操作系统了如指掌。一个好的黑客更一个非常棒的
软件工程师。黑客具有设计软件和测试软件的 *** 本领。就是说:楼主必须多开
发软件程序,多实践。慢慢的会对程序的编写和问题的解决有独到的看法和高效
率的处理方式。
黑客总是非常善于找出软件程序的漏洞、BUG并加以利用,说明黑客非常善于对
于软件进行黑盒或者白盒的测试。不论是好的方面还是坏的方面,都说明黑客是
个优秀的软件测试工程师。如果楼主做不到这点,那就不是黑客。因为你没有办
法去找到软件的漏洞,就不可能高效、直接的达到目的!
成为黑客不是一朝一夕的工夫。需要大量的实际操作和问题解决的经验。不论是
硬件还是软件都要过硬,更要有的就是聪明的头脑,善于逻辑思维和抽象思维的
头脑是黑客的神兵利器。
眼下,鉴于楼主给出的几个选择:我推荐楼主先学习C++,因为当今的绝大部分
程序都是应用C++开发出来的,可以说C++应用领域非常广泛。而且每种语言之间
都有一定的联系和一定的相似之处。C++相对其他语言来说更具有权威性。也很
接近 其他语言的编写习惯。个人认为对于楼主 所选择的道路,C++的学习是很
有益处 的!可以进一步锻炼楼主的思维和程序设 计的本领。然后学习汇编语
言。
汇编 语言是比较简单的,但是是比较难以记忆 的。因为他涉及的全是2进制的
代码0 和1。因此,要描述一些问题的时候往往是 很长一大串的数字。比较难
记。但是 汇编语言的设计是很精确的!所以汇编语言是黑客们的必修之课。
希望我的话能帮上楼主!以上~
BUG,系统漏洞和木马的主要区别在哪?讲通俗点,别讲专业术语!!!
Bug:是指电脑系统的硬件、系统软件或应用软件上的出错 。硬件的出错一般有两种原因,一是设计上的错误,一是硬件部件老化失效(就是什么用久了都会不耐用的意思)。软件的错误咱们都赖在厂家设计错误。。
系统漏洞:应用软件或操作系统软件在逻辑设计上的缺陷或错误 被黑客利用,通过 *** 植入木马、病毒等方式来攻击或控制整个电脑 窃取电脑中的重要资料和信息,甚至破坏系统。。。
木马:这个好说。。就是灰鸽子等程序制造出来的远程控制程序。 一般呢。是依附在其他程序上,用捆绑器把他们绑在一起 , 运行时就会运行2个程序的了,也是利用上面的系统漏洞进行入侵。
看在我一个人辛辛苦苦打那么多字的份上、
给点分吧。。
为什么软件里总会有那么多Bug
1. 人的天性
大多数——当然不是全部——软件 bug 源于我们自己犯的错误。虽然有些是因为软件编码工具和编译器发生了意外,但是大部分的错误得归咎于我们自己。
无论我们受到的 SDL 培训和安全工具有多么强大,只要我们还是人,我们就会犯错。如果你想问为什么电脑软件会有这么多的漏洞,归根到底是因为,人的天性就是容易犯错。
也就是说,我们在减少人为错误方面做得还不够。有很多程序员因为没有受到足够的 SDL 培训(有的甚至干脆就没有培训),所以根本就没有安全编程的理念。有时候我特别奇怪:有那么多的程序员以写安全软件为生,却居然不懂如何安全地编程。别不信,我敢打赌,你正在运行的银行安全软件中的 bug 不会比它能提供的保护措施少,搞不好甚至更多。
但是即使是那些经过严格训练的程序员还是不可避免出现 bug。举个例子,前不久有个自鸣得意的家伙发明的使用 HTML 标记字段确定颜色的缓冲区在浏览器中溢出了。不像以前还要输入 FFFFFh 之类的东西,黑客甚至可以直接执行颜色域的代码,从而导致浏览器过度消耗资源、缓冲区溢出。看到没有,这就是漏洞!而且很少会有人能预料到这种情况。
2. 不断增加的软件复杂性
就其本质而言,软件越复杂,就意味着代码行数越多。只要你在编程,那么即使你有多擅长写代码,也一定会有错误和 bug 出现。有人曾说,如果你能做到每 50 行代码中只出现一个错误,那你就已经做得相当好了。大多数程序员差不多每隔 5 至 15 行就会犯错。想象一下,这么说吧,一般性的 Linux 内核拥有超过 1500 万行的代码,有多少 bug 你自己算吧!
即使没有编码错误,互联网时代应用程序的整体互动性也是漏洞被攻击的途径。大多数程序员不得不和其他 API 协作,保存和检索文件,在多种设备上正常工作。所有这些过程都会增加被成功击破的概率。
而要防守的话,则需要写更多的代码,因为得抵御各种不同的攻击渠道。这么说吧,如果有一个只有 30 条汇编语言指令的恶意程序,那么针对相应的防守,你可能至少得写 50000 条汇编语言指令!
3. Fuzzers 也是人写出来的
新近冒出来的 Fuzzers 软件主要用于扫描软件漏洞。Fuzzers——以及其他用于寻找编码错误和漏洞的任何程序——都是人写出来的,还是这句话,是人就会犯错误。例如 Fuzzers 是不会发现颜色属性的缓冲区溢出这种情况的,这是因为我们在写 Fuzzers 的时候没有考虑这一方面。不过当我们意识到这一点并对 Fuzzers 进行更新之后,就能做到去查找各种类似的缓冲区溢出条件的字段。简而言之,我们要 Fuzzers 做什么,它才会去做什么。
4. 缺乏对供应商的问责
许多安全专家抱怨,只要我们不能找到证据起诉供应商的软件缺陷,我们就永远不会变得更安全。我赞同这一点,增加对供应商的问责有助于降低安全风险,但是同时却有可能会减缓进度。不过如果软件公司比现在更能担当起责任来,那么我想我们能在手机上、电脑上能自由自在冲浪的感觉会更爽。
但是成功源于功能和速度,而非安全。社会现状决定了我们必须牺牲一部分安全和保障去换取新鲜感。这不一定是坏事——因为能让我们成功得更快。但是这样一来我们就不得不承担这样做的后果。不过到目前为止,我们还是心甘情愿为了添加更酷的新鲜玩意儿而面对更多的风险。
5. 缺乏对黑客的问责
现实是上面没有一条能很快解决。但是软件出现漏洞就其本身而言,真不是什么大问题。说它脆弱是因为这些软件在面对恶意攻击的时候毫无抵挡之力。除非我们能制止黑客的猖獗行径,否则恶意软件将会一直困扰着我们。