首页 > 编程语言 >一个C/C++出身的程序员,如果想成为一个黑客,需要多久时间?

一个C/C++出身的程序员,如果想成为一个黑客,需要多久时间?

时间:2024-03-26 16:34:01浏览次数:34  
标签:网络安全 进阶 编程 C++ 学习 程序员 黑客

黑客,在没有学习编程的人眼中,是无所不能的存在,盗密码,黑网站,网络入侵,偷取数据等,一台电脑,全部搞定!而且很多同学的话开始学习编程的原因就是被黑客的这个技术所吸引的。说起来,好像笔者当年也觉得黑客很厉害,所以的话多多少少我成为C/C++工程师也是有以前的因素的影响,不过后来接触了编程后还是没有走向黑客方向,为什么呢?原因是后来发现程序员跟黑客还是有很大不同的。
在这里插入图片描述

黑客是一个中文词语,源自英文hacker,泛指擅长IT的技术人群和计算机科学家。在信息安全里,“黑客”指研究智取计算机安全系统的人员。其实做黑客根本没有想象中门槛儿那么高,但门槛儿也没那么低就是了。因为你要是简单的成为初级黑客的话,像盗个什么密码啊,截取通信信息啊,会用几个工具,懂一些基本常识就是了。但要成为顶级黑客,硬件,底层,编程,网络,缺一不可,都要精通!

首先,你要定下一个目标,成为黑客以后要做什么?赚黑心钱?收保护费?炫耀自己的技术实力?我来提醒你一下,不管哪个目标,都会损害正常人的合法利益,所以就算技术实力达到一定水平,也要三思而慎行。而平常大家为黑客洗白所谓“发现安全漏洞,帮助企业和个人提高IT安全水平”的说法,也不是黑客所为。再一个电影里黑客随便找一台电脑噼里啪啦打一通键盘就显示XXX已被攻破的镜头非常夸张,想要攻破某些东西或者做一些非法的事情,提前准备好自己写的代码是必要的步骤,而且过程也不怎么酷炫,所以抛弃某些中二的想法最为实在。

然后,会一门编程语言是肯定的,而且要多少了解它的高级特性。比如你从C和C++起步就非常好。但C是相当大以及相当复杂的一门语言,标准多、编译器版本也多,学习成本也非常高,幸好目前世界上最通用的服务器类Unix操作系统都是用C语言写出来的,所以你可以先关注操作系统底层,多看内核文档,看底层代码,看懂以后再看看通过了解它的特性后,我能做些什么非常规操作,这就是一般黑客的作案手段了。
在这里插入图片描述

最后,你要定一个目标,比如我想劫持某网站的首页,那么有两条路可选,一条是从网站外部能否进行代码注入,让你自己的代码进驻到他们的内存变量当中。另一条是攻破服务器密码,并且将容器中的网站文件替换掉,这就需要你有对操作系统网络知识和Web编程有一定了解了。

其实,程序员到黑客的话还是比较快速的,为什么呢?

因为其实黑客就是程序员/架构师/运维师的逆向,针对于程序员的逆向就是逆向编程/汇编了。比如OD工具,拿出C语言编译出来的文件,查看/修改十六进制od码,从而达到修改/破解程序的目的。而网站入侵则找PHP/SQL漏洞,比如浏览一个页面PHP程序,需要select语句查询数据库,这里就修改提交包,select语句修改成dele语句,全部删库,或者修改查表,查出admin表字段,直接显示出密码,配合后台就黑入网站了。黑客其实就是逆向,这只是黑客其中一种。黑客的方向很多,上到企业服务器,下到小黄车解锁,全都是黑客能做的。

在这里插入图片描述

其实我更推荐大家成为应用编程类“黑客”,什么叫应用编程类“黑客”?

应用编程类“黑客”,更多是计算机从业者,这类人群一般致力于计算机应用研发,通过正常途径创造商业价值,也就是大家所熟知的IT人才:程序员。程序员目前已经被细分出多个领域,在计算机底层高度封装的今天,应用研发程序员门槛已经没那么高,但想在这个行业走的更远,还是需要深挖底层原理,构建牢固的知识体系。还记得前阵子美国33 岁的前西雅图科技公司软件工程师,名字叫做佩吉·汤普森盗走银行一亿人数据的事件吗?当然她本来是正当的软件工程师,却因为某些不为人知的原因盗取数据违法被捕!

所以说,笔者还是建议你对黑客有兴趣的话,不妨成为应用编程类“黑客”,你可以研究黑客知识,提升相关能力,但是还请珍惜自身,不要利用自己的能力做违法的事情。
在这里插入图片描述

最后

为了帮助大家更好的学习网络安全,我给大家准备了一份网络安全入门/进阶学习资料,里面的内容都是适合零基础小白的笔记和资料,不懂编程也能听懂、看懂,所有资料共282G,朋友们如果有需要全套网络安全入门+进阶学习资源包,可以点击免费领取(如遇扫码问题,可以在评论区留言领取哦)~

标签:网络安全,进阶,编程,C++,学习,程序员,黑客
From: https://blog.csdn.net/jennycisp/article/details/137046167

相关文章

  • AI程序员的崛起:威胁还是机遇?—— 探索AI与程序员共存的未来
    一、AI程序员的出现近期,全球首位AI程序员Devin的亮相引起了广泛关注。Devin通过自然语言处理、机器学习等AI技术,能够理解和编写代码,甚至进行简单的软件设计。这一突破性的发展标志着AI在编程领域的应用迈出了重要一步。二、AI在编程领域的应用AI技术在编程领域的应用正变得......
  • ccf-csp-2020-12-2期末预测之最佳阈值(c++满分题解)
    这个题暴力是可以有70分的,下面是暴力代码:(注释写的比较清楚了,也很好理解)#include<iostream>#include<vector>#include<set>#include<algorithm>usingnamespacestd;boolsort1(pair<int,int>vec1,pair<int,int>vec2)//对阈值从小到大排序{ returnvec1.first<=ve......
  • CUTLASS: Fast Linear Algebra in CUDA C++
    https://developer.nvidia.com/blog/cutlass-linear-algebra-cuda/EfficientMatrixMultiplicationonGPUs计算密集度=(时间复杂度/空间复杂度)=O(N^3)/O(N^2)=O(N)//naivefor(inti=0;i<M;++i)for(intj=0;j<N;++j)for(intk=0;k<......
  • c++栈内存溢出问题
    问题说明实验课测量快排时间时,用intar[MAXSIZE+1];来创建数组,数据规模从1000-10000,而MAXSIZE的设置不能超过600000,超过了程序就无法运行直接中断,理论上这是不应该。程序中用rand()生成随机数据,但若对数据求模rand()%100,则程序运行到中途会异常中断。问题原因intar[M......
  • 【C++】常用序列式容器迭代器自增效率实测
    常用序列式容器包括vector、list、deque。本篇文章就来评析它们的迭代器,不同自增方式效率的不同。在看这篇文章之前,大家可以先看看这篇文章:【C++】自增运算符重载及其效率问题-CSDN博客,了解一下之前得出的结果。前面的文章其中一个结论是,在自定义类型的自增(自减)运算符重载......
  • C++面向对象整理(9)之类型转换 dynamic_cast、static_cast、const_cast及其安全性
    C++面向对象整理(9)之C++的类型转换dynamic_cast、static_cast、const_cast注:整理一些突然学到的C++知识,随时mark一下例如:忘记的关键字用法,新关键字,新数据结构C++的类型转换C++面向对象整理(9)之C++的类型转换dynamic_cast、static_cast、const_cast一、C++的类型转换......
  • 函数是什么?C++函数详解!
    1、函数的声明和定义在复杂的程序中,如果全部的代码都写在main函数中,main函数体将非常庞大臃肿。把任务分工到其它的函数中,main函数只负责程序的核心流程,具体的任务由其它函数完成。这种思想就是模块化编程。声明和定义函数的语法:返回值的数据类型函数名(参数一的数据类型......
  • C++ 23 新特性概览之 标准库
    文章目录C++23新特性概览之标准库简介关于环境字符串格式化改进标准库模块`importstd``importstd.compat``basic_string(_view)::contains()`禁止从`nullptr`构造`string(_view)``basic_string::resize_and_overwrite(count,op)``std::optional`的链式调用`S......
  • C++11标准模板(STL) 算法(std::reverse)
    定义于头文件<algorithm>算法库提供大量用途的函数(例如查找、排序、计数、操作),它们在元素范围上操作。注意范围定义为 [first,last) ,其中 last 指代要查询或修改的最后元素的后一个元素。逆转范围中的元素顺序std::reverse1)反转[first,last)范围中的元素顺序表......
  • C++ std::reverse函数
    函数原型,定义std::reverse定义于头文件 <algorithm>1(1)2template<classBidirIt>3voidreverse(BidirItfirst,BidirItlast);(C++20前)45template<classBidirIt>6constexprvoidreverse(BidirItfirst,BidirItlast);(C++20起)......