您的位置:首页 > 运维架构 > Linux

信息安全学习笔记-简单linux命令与c语言编程(一)

2018-02-09 14:35 716 查看
最近开始陪女朋友上信息安全课,其实就是帮她做作业。由于她实在是没有编程基础,基本上第一个project一大半都是我完成的。其主要内容就是写几个简单的c语言程序去产生(exploit)一个栈缓存溢出或者是堆溢出。我基础也好不到哪里去,不过平时上班c++会用到。但毕竟不是科班出身,对于基础的c语言编程、汇编代码等内容几乎没有接触过。我不上课(懒+那老师基本不讲关键点),但幸运地在youtube上面找到了liveoverflow的各种视频详细解释了各种overflow以及其它基础概念。他可能有的地方讲的很粗略甚至经不起推敲,但总体能帮我迅速理解大致原理+完成作业就阿弥陀佛了。
在linux系统下,命令行终端(terminal)的重要性我并不明白,不过大家好像都在用。简单的启动一个已编译好的c程序,一般就敲 ./test 即可,假设该程序名为test。下图是lof用的例子。



(参考https://www.youtube.com/watch?v=JGoUaCmMNpE)
然后lof粗略解释了环境变量路径(PATH)的作用,比如为啥敲ls压根就不需要输入路径等等。如果我们敲env,就可以看到各种环境变量。如果只是简单地想看看一坨环境变量内带有PATH关键字的内容,需要敲 env | grep PATH,如下图。



(参考https://www.youtube.com/watch?v=JGoUaCmMNpE)
当然,看PATH方法还有比如echo $PATH。
如果想查找各种指令的位置,比如ls的位置,可以使用whereis语句,比如whereis ls就会返回 /bin/ls...等,每个机器可能不一样。
terminal中还有个方便的操作是选中内容后+按鼠标滚轮,就可以复制粘贴选中内容。
好吧,这时候lof开始讲vim。vim我刚买mac电脑写python的时候纠结了好一阵子才大概学会了一点点,相信vim远比我知道的强大得多。安装vim可以敲命令 sudo apt-get install vim,就会自动安装vim。然后直接vim 文件名就可以开始编辑。
vim中,lof就介绍了几个简单的操作,insert,save和save&exit,分别是敲i,:w, :wq。据我所知,vim其实分为编辑模式和指令模式。指令模式下,你可能发现你最多只能移动光标但是压根没法直接输入除非敲出某些个特殊指令激活编辑模式。编辑模式下按esc就可以退回指令模式。其中i(insert)就可以激活编辑模式。当然还有h,j,k,l什么上下左右的设定,我现在并不是很懂也不是很想懂,后面如果有需要的话再考虑吧。
vim中使用syntax on可以让vim识别语法,然后可以输入set number。再使用i就可以敲代码了。
好下面lof开始讲c代码。



(参考https://www.youtube.com/watch?v=JGoUaCmMNpE)
这边很明显有个语法错误,因为main函数参数应该是(int argc, char *argv[])。printf可以输出各种内容,具体文档可以在linux命令行里面敲man 3 printf,意思是到手册第三个section里面找printf。return可以返回变量。其实总体基本上跟c++不少语法很像。
命令行中,cat  文件名可以看代码,gcc 文件名 -o 输出文件名可以编译c程序。./输出文件名 输入参数可以直接执行程序,lof还提到了\和“”在命令行里面的用法。最后lof稍微提了一下如何用export修改系统环境路径变量(PATH),这样每次测试都不用一路cd进去。
ok,写了这么点其实就是给这个学习笔记开个头。督促自己日后好好学习,希望后面这门课结束了回头可以再看看这阵子焦头烂额的到底学了个啥。希望能对读者有点帮助,如果跟我一样也是个小白。
参考了不少,感兴趣的盆友可以去看看liveoverflow相关视频地址:https://www.youtube.com/watch?v=JGoUaCmMNpE
整个系列好像有40多集,我觉得看完了应该还是能学到不少的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Linux基础 C语言