黑客比程序员高在哪里?

news2025/1/11 2:14:51

黑客其实和一般的程序员一样,但是他们的关注点不一样。黑客关注的是如何破坏,通过这些有创造性的破坏来获取利益,展现自己的能力。而程序员关注的是如何创造,通过创造来获取利益,展现自己的能力。

就如同一个硬币的两面,一个新技术出现时,黑客总会关注其缺陷,而程序员更多的是关注它的优点。

程序员把一个东西的技术吹的再厉害,但是黑客总会通过技术手段找出它的缺陷,并证明出来。

程序员一般只是跟着技术明面上的内容走,但是黑客总会看到技术明面之外的东西,别人看不到的、意想不到的地方,这些地方会被黑客挖出来并且利用。在黑客眼里,一个软件总会有漏洞、都是垃圾,程序员不是在开发垃圾就是已经完成了垃圾,但是没有程序员的努力工作,黑客也没有用武之地。

程序员和黑客就是这般如同矛和盾的共生关系一样。

一般来说,黑客和程序员各有侧重,技能树不一样,比如前端的XSS攻击,黑客知道这个输入框内的内容如果没有被处理,那么可以通过构造特殊的输入内容来达到攻击目的,但是对于这个输入框如何弄得更好看,对用户交互友好这些他一般不关心,可能下一个关注点就是你的表单是不是可以做CSRF攻击。还有一个例子是,框架/语言爆出了很多漏洞,黑客就会利用这些漏洞发起一些攻击,很大概率黑客对这个框架/语言都不是很熟悉。相对的,普通程序员也不会关注黑客关注的很多点,比如CAPTCHA这种可能就直接引入个第三方的来防御了,并不会自己去实现一遍。还有加密算法这种,也几乎只有黑客才会去研究。普通程序员可能研究的就是压缩算法。


黑客的攻击手法多种多样,有的甚至不会写代码,电影《我是谁:没有绝对安全的系统》里就有一个根本不需要写代码,通过翻垃圾桶、开锁偷资料的操作搜集了很多有用的信息,从而发起攻击。这种手段称为“社工”

另外,有的初级黑客可能会利用别人写好的工具干坏事,也不用写代码。比如利用嗅探工具/安全扫描工具搞你的系统,利用字典暴力破解你的账号密码登录。这些人被称为『脚本小子』,是最令人头疼的,好防但是架不住人多,而且成本低,有事儿无事儿干你一炮,失败了也没啥影响,要是成功了可以吹一年。这些人大部分也不写代码,就是纯粹的操作工具,一般这类人不称为黑客。比如当年有个专科生,直播攻击自己学校的系统,就是用的这种方式。还用360浏览器…被吐槽惨了。

正常的,能被称为黑客的,大多都是会写代码的

搞你路由器/网关,拦截你的收发数据算温和的,暴力点儿的直接通过和你处在同一个局域网内这个便利能搞非常多事儿。一个真正的黑客,一定是以『获取你的ROOT权限』为最终目的的,没有这个追求,都不叫黑客。

其实Hacker一词最初是一个敬称,是对那些具有极客精神的程序员的称呼,后来不知道为啥,就有了『黑客』这一指代。

黑客和骇客是两种截然不同的两种概念,这也是区分程序员和黑客主要标志。

大家传统意义上的理解其实是骇客,真正的黑客如同顶级的武林高手点到为止,而且具备真正的人文情怀,如同顶级高手不但武功高强而且谦卑深藏不漏。这些都不是普通程序员所具备的,程序员主要分解任务,转化成各种功能模块,然后用对应的代码去实现,按部就班的来。黑客从心里不愿意受到限制,有点像我们武侠小说里边的侠客,路径不平拔刀相助,见到有奖规则的公司准会有黑客去收拾。

大家理解的黑客其实是骇客,专门搞个密码破解了,破解个游戏为自己某点私利,获取点黑色收入

其实想成为一个黑客,最重要的一点就是要看看自己够不够黑。

有一句古话说的非常好,也能非常好的描述黑客和程序员的关系,那就是:道高一尺魔高一丈。

程序员是道,黑客是魔!程序员是建造房子,设计院子的人,黑客就像是盗贼,可以神不知鬼不觉的来到程序员盖的房子,造的院子里来偷东西。

程序员中有白客来加强房子的安全,比如把院墙盖的更高,更宽,更结实,再弄上电网等,加强防护,保卫安全。

黑客就会想办法,找漏洞钻进来。

一矛一盾!

道高一尺魔高一丈,道可能在魔千万次的冲击中都抵挡住了,只有一次出了问题,没挡住,就感觉魔很厉害!

  • 程序员:学习如何在计算机语言语法给定的框架内更好地做事情,注重语法理解与业务逻辑;
  • 黑客:研究计算机语言对计算机底层逻辑的封装与映射关系,注重背后原理与底层逻辑。

所以想要成为一名黑客的首要任务就是转换学习视角,不能总是从程序员的角度去看待问题,否则学完之后充其量只能是一个更高级的程序员。而这种转换其实是挺难的,这也算得上是快速学习黑客技术的心法了,没有这个心法虽然坚持到最后也能学会,但是会耗费非常多的时间在无意义的知识细节上。

黑客都需要掌握什么

第一是背景知识,需要理解语言结构、操作系统、网络、计算机体系结构等原理;

第二必须能够熟练使用各种黑客攻击工具,寻找系统漏洞并实施攻击是一项重复性工作,灵活使用各种黑客攻击工具可以将这项工作自动化,并以人们易于理解的图形方式展现复杂的系统结构;

第三必须掌握某种编程语言,无论黑客攻击工具多么强大,进行高难度黑客攻击时,必须亲自编写适合自己使用的工具,此时需要掌握编程语言。

需要注意的是,有经验有能力的程序员对于具体行业业务的经验积累则是黑客所不具备的,因此仅仅从技术层面对比,是在拿程序员的短处去对比黑客的长处。

而之所以黑客更受尊敬,主要原因是黑客的标准线非常高,达不到成为不了一名黑客,而程序员的标准线非常低,天天码砖重复劳动就能成为程序员

任何一个领域,只要做到极致,都可以很牛.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/118396.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CCF BDCI|算能赛题决赛选手说明论文-01

基于TPU平台实现人群密度估计 加速器队伍 黄显钧 个人名义参赛 中国-广东广州peterhuang0323qq.com 团队简介 加速器队伍队长:黄显钧,现任某科技公司的高级工程师,技术栈涉足嵌入式全栈开发,AI 开发等领域,对技术充满…

云桌面 Vscode 远程debug python

云桌面 Vscode 远程debug python1、进入云桌面2、下载VScode配套软件3、挂载本地磁盘4、安装软件4.1 安装VScode4.2 安装插件vsix文件4.3 在服务端安装vscode server5、VScode 配置6、远程调试6.1 python解释器选择6.2 设置debug7. mtu 配置Author: 沧海一阳1、进入云桌面 根据…

傻白入门芯片设计,盘点计算机体系结构顶会

目录 一、集成电路/半导体领域的三大顶会: (1)ISSCC (2)IEDM (3)VLSI 二、计算机体系结构四大顶会 (1)ISCA (2)HPCA (3&#x…

42. 网络中的网络(NiN)

LeNet、AlexNet和VGG都有一个共同的设计模式:通过一系列的卷积层与汇聚层来提取空间结构特征;然后通过全连接层对特征的表征进行处理。 AlexNet和VGG对LeNet的改进主要在于如何扩大和加深这两个模块。 或者,可以想象在这个过程的早期使用全连…

利用GithubPage和Hexo搭建个人博客

title: 利用Github搭建个人博客 date: 2022-11-28 20:55:30 tags: [blogs] categories: Hexo 建立Git远程仓库 固定格式为:name.github.io ![]](https://img-blog.csdnimg.cn/fa9d7320d1cc422a8a79f2b41dd8458e.png) 开启Github Pages 设置github的token登陆 连接…

免费在线绘制高颜值,带填充的连贯堆叠柱状图

堆叠柱状图是我们日常工作中经常使用的一类图形。然而当分类较多时,堆叠柱状图看起来不是那么清晰,通过添加额外的连线,可以增加堆叠柱状图的颜值,给人一种连贯的感觉,并且能够更好地观察数据比例的变化。 图1. 堆叠柱…

1.8 异常 模块和包

文章目录了解异常异常的捕获方法为什么需要捕获异常捕获常规的异常捕获指定的异常捕获多个异常捕获所有的异常异常else异常的finally异常的传递Python模块模块的导入自定义模块测试模块\_all\_模块Python包了解异常 当我们的解释器运行时发生了一些没办法的操作,或…

初学Java web(十)

Filter和Listener 一.Filter 概念:Filter表示过滤器,是JavaWeb三大组件(Servlet、Filter、Listener)之一。 过滤器可以把对资源的请求拦截下来,从而实现一些特殊的功能。 过滤器一般完成一些通用的操作,比如:权限控…

新键盘到了,我的工作效率提升了数十倍

前言:快过年了,找到了一份满意的实习,正好旧的键盘坏掉了,最近入手了一款不错的机械键盘奖励自己。到货使用一段时间了,来一篇键盘开箱的博客做一个反馈。 新键盘使用感言:优良的键盘如图云上漫步&#xf…

白质中的BOLD信号激活检测问题

白质中BOLD信号的生理意义存在争议的两个主要原因: BOLD信号依赖于脑血流量CBF和脑血容量CBV,但是白质中的血流量和血容量比灰质中的少得多(利用MRI估计的微血管数量:白质为10-192条/mm^2,灰质为99-761条/mm^2&#x…

【GUI界面】基于Python的WSG84三点定位系统(经纬度坐标与平面坐标转换法求解)

【GUI界面】基于Python的WSG84三点定位系统(经纬度坐标与平面坐标转换法求解) 方法汇总: blog.csdn.net/weixin_53403301/article/details/128441789 【精准三点定位求解汇总】利用Python或JavaScript高德地图开放平台实现精准三点定位&…

[开源工具]使用Fiddler简单计算QPS[新手开箱可用]

使用Fiddler简单计算QPS1.什么是QPS?2.怎么计算QPS?3.如何使用Fiddler得到一个API接口的QPS?3.1配置:打开Fiddler文件夹,点击Fiddler.exe运行fiddler进行配置4.如何得到本机的核心数?5.根据公式计算QPS?6.扩展计算单机可支撑PV(理论值)?1.什么是QP…

springboot中controller层接收参数,servers层调用mapper层,一条sql搞定排序

前言 很多小伙伴们在公司不管是测试C端产品还是B端产品,都会测到排序的业务需求;那么我们就会好奇排序是如何实现的呢?下面我们开始介绍代码的实现 数据库建表 我们需要创建一个书籍book表结构,如下图所示 CREATE TABLE book ( …

嵌入式C语言面向对象编程 --- 总结

什么是 C 语言面向对象? 在开始嵌入式 C 语言设计模式系列文章之前,先通过三篇文章讲述了如何使用 C 语言实现面向对象的三大特性,封装,继承,多态。 图片来源公众号:码农翻身 对于“面向对象”这个词语,相信很多软件工程师都不会感觉到陌生,并且很多软件工程师在刚开…

ABAP: 定义关键字的区别

问题:TYPE、LIKE、LIKE TABLE OF、LIKE LINE OF、TYPE TABLE OF 的区别? 1、TYPE 用于变量的类型定义,可以是表中预定义好的字段,也可以是C(字符),F(浮点型),I(整型)等。 例如: DATA: NAME TY…

Spring Cloud简介

一、什么是SpringCloud? Spring Cloud 是一系列框架的有序集合。 Spring Cloud 并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来。 通过 Spring Boot 风格进行再封装屏蔽掉了复杂的配置和实现原理&#xff…

Python 图像边缘检测 | 利用 opencv 和 skimage 的 Canny 算法

文章目录一、简介二、opencv 实践三、skimage 实践CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 一、简介 提取图片的边缘信息是底层数字图像处理的基本任务之一。边缘信息对进一步提取高层语义信息有很大的影响。大部分边缘检测算法都是上个世纪的了&#xff0c…

【Java基础】day11

day11 一、BIO、NIO、AIO 三种 IO 模型分别是什么? BIO (Blocking I/O)同步阻塞的 I/O 、NIO(New/Non-blocking I/O) 同步非阻塞的 I/O 、AIO(Asynchronous I/O) 异步非阻塞的 I/O 。这三种 I…

前端例程20221227:下雪动画

演示 动图太大了不好上传&#xff0c;这里就放个静态图吧&#xff0c;实际上这里是雪花从上到下飘落的效果。 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content&quo…

【Spring【AOP】】——20、搭建一个AOP测试环境?

&#x1f4eb;作者简介&#xff1a;zhz小白 公众号&#xff1a;小白的Java进阶之路 专业技能&#xff1a; 1、Java基础&#xff0c;并精通多线程的开发&#xff0c;熟悉JVM原理 2、熟悉Java基础&#xff0c;并精通多线程的开发&#xff0c;熟悉JVM原理&#xff0c;具备⼀定的线…