大家好啊,今天给大家说一下 sellcode 在免杀的时候一般会做一些什么样的操作手段,能够更好地去隐藏自己, 那么如果说你自己写的,那其实你操作手段很多,那如果说你是生成出来的,比如下次呃 miss party 生成出来的,那么这种的话,那么你能用的呢?其实比较主流的,就比如说是使用编码加密啊,编码加密啊,比如说你可以用这个 a s 之类的给大家进行一下加密, 然后还可以干嘛呢?比如说你这个第一层加密之后,你可以再给他走一层,比如说给他进行一个 base 六十四啊,再走一走啊,这种的是属于第一,他第一,第一种 还有可以干嘛呢?对塞扣的本身进行一个处理,比如说你可以对他进行一个完整的逆转,因为他正着的时候他是可以执行的,可能会检测出来,他倒过来之后呢,可能就检测不出来了,这是第二种。还有就是什么呢?还有对他已经隐藏,比如对他进行一个切片啊,这放一块,那放一块,然后呢再对他进行个组合 啊,这种呢在切片的时候呢,你可以对他进行一个抽的这种方式进行组合,比如一三五啊,二四一三五放一起,然后二四七放一起,这样的话单片在哪他都执行不起来啊,这样呢检测的效果呢,会稍微差一点啊,或者说呢,你可以对他呢进行一些类似于内存加密啊等等这种尝试啊,来处理你的塞油扣的。 好,那么想要学习渗透测试二技能正安全红队攻防的可以点我头像进粉丝群了解一下啊?晚上九点钟有直播,欢迎大家。
粉丝5.1万获赞2.4万

哈喽,大家好,今天给大家做一个这个免杀平台的原理讲解,刚刚录制到一半,不知道为什么他就突然没有了,我现在重新录一下。 嗯,就是在做这个免杀平台呢,我们必须得有一个自己的免杀木马,对不对?免杀木马, 呃,现在很多的免沙木马呢,当然都是石油哥的加载器啊,如果你想要搭配 cs 的话,想要搭配 cs 的话,然后,嗯,这个 其实如果你有了这个木马,其实就很简单了,就是你前端只需要写一个框,对吧?你看啊,十幺扣的加载器,最关键了,就是免杀木马是最关键的,你如果你有了之后, 你前端就是你的网页,只需要有一个框,然后一个按钮,就用户只要输入了这个小扣子呢,你点击 一点击这个社交课堂,他就会发到你后端嘛,因为会有个请求包,你拿到请求包里面的社交课堂处理成自己想要的格式。 嗯,你也可以把这个,因为很多的这个社交扣的加载器呢,他都是先盖的请求一个社交扣的地址,拿到社交扣的,你也可以把他的社交扣的存储到自己的服务器上拿到,然后放在哪可供用户访问到 之后拿到这个社会的,拿到社会的以后就去加载就行了。呃,其实这个木马,哎,不是这个平台,平台接下来怎么写呢?拿到社会的以后,你只需要你看啊,你之前的木马,你之前的这个免杀木马, 他肯定有一串石油客的地方,你只需要把那一串地方替换为客户。什么客户呢?就是,呃,大家就是同事们之间上传上来的这个石油石油客的的那个地方啊, 之后之后就是这个字符上替换,还好写吧,就是你把你那个是要扣的, 你之前存销扣的那个地方或者是网址啊,你换成 abbcd d 字符上替换嘛,把 abbcdd 替换成消扣的地址,或者是谁要扣的,对吧?然后这个字符上替换也就完了,替换完了以后你还会拿到一个 自助串,之后你就把这段自助串呢写入到一个文件,写入到闷点购之后,你只需要将闷点够编辑成 exce, 然后再将 exe 移动到某一个可以下载的 用户,点击了下载的那个地方,他就可以下载到这个 ex, 对不对?这其实就是一个免杀平台,非常简单啊,整个下来没有什么难点,就一个免杀木嘛而已。嗯,下面再说一下,就是这个进阶方面啊, 进阶方面,进阶方面呢,那会讲了半天哈,嗯,就是,嗯,也不知道大家有没有看过我这个视频啊?这个视频是因为某些原因给删掉了啊。嗯,我现在就给大家来做一个这样的讲解,就我的第一版呢,我的第一版我用的是下面的这个, 下面的这个这个这个,这个就是你输入,你输入了这个社交课的之后呢点提交,点这个提交之后之后上去给你自动市场项目嘛, 这种呢,其实是最原始的,就就和这里一样,就和啊,就和,这就是用户输入是要扣的,然后自己处理一下,处理成自己想要的格式之后再替换一下,再给用户下载, 就这么简单。而现在, 而现在呢,就是间接的方式呢,就是让用户输入了前天期的 ip 端口,前天期的类型,你就可以给他制作出来免杀木马,这个是为什么呢?这个我们也要说到一个这个,嗯, cs 他逍客的一个 原理哈,就是肯定还是关于他这个收扣的,因为因为前端,因为前端只给后端提供收扣的, 对不对啊?然后,呃,先先说,现在我们主要说下上面这个啊,上面这个更高端一点的大概怎么去做? 就这个,首先啊,首先他 cs 他那个是要扣的,他是分段,他为什么是要扣的那么短呢?是要扣的短, 因为因为他就是发送了一个 get 请求,然后请求到真正要呃,持久控制他的那么一个是要扣的 你。我们每次上乘的那个社交课呢,你可以把它理解成一个 get, 请求就去就去请求,请求 cs 服务器, 请求 cf 出服,去拿到真正真正的石油口的, 再去一直回连,嗯,就是这样的,那么知道这一点啊,知道这一点呢,我们是不是只用将这个消扣的那个生成出来的消扣的,把它的 ip 和端口一换就行,对吧? 我们每次生成出来是要扣的呢,他都是这样的,一大堆, 很多很多啊,真的就他大概,哎,抱歉啊,我给大家稍微删减一下 啊。蛇妖扣的生成出来大概这么长,你该怎么观察蛇妖扣子呢?你每次生成出来蛇妖扣子,他大概基本上也就是长这样啊,就长这样,结尾,结尾一定有个一二三四五六七八, 你该怎么去找这个消扣的?这这么长的消扣里边哪个是 ip, 哪个是端口的?你首先生成一个,这周一二七点零点零点一,端口是一二三四的,这个 单口是一二三四。稍等啊,我把那会讲解的删了,因为,因为那会讲解没有录上啊。我们首先呢生成一个 ip 为一二七点零点零点一的, ip 是要扣的和端口是一二三四,然后再生成一个零点二,这个端口是四三二一, 在这么长的时间扣子中呢?首先我们说怎么找 ip, ip 是什么呢? ip 就是,嗯,就是就是你把这套时间扣的去那个百度或者是谷歌啊,找一下,找一下有没有这种, 呃,十六禁制解密为自负串, 解密自伏串。我忘了是十六禁制解密自伏串还是 还是啥了哈,反正就是你在那个解密网站上一解密, ip 基本上就出来了,有一堆,有一点点乱码之后 之后,但是 ip 那块是很清楚的, ip 就大概在末尾,末尾的这个一二三四五六七八前面前面这么一小节,这块都是 ip 啊,就就包括我所选中的这块基本上都是 ip, 你只需要你是怎么解密的,你再怎么用编程语言去加密它,好比你是十六禁制,直接解密为自助串, 就是那段 ip 了,以后呢?你就,你就把你就把那段 ip 当成自负串吗?自负串,然后去加密为十六禁制自负串, 再填,再填充到这里,把他俩替换一下,是不是就 ip 就换成功了?找到了 ip 的位置, ip 换成功了,关键是这个端口该怎么换啊?端口该怎么换?端口这样去换,我们首先打开这个 计算器,好比第二个端口是四三二一,我们四三二一,他的十六进制呢?是一零一一是吧? 一零一一,那那么他在这个逍客的里面展现的形式其实是 e 一一零,这个大家如果学过会编的话,大家绝对会知道这是为啥,这里我就我就不讲了,这个我只能自己理解,但是讲的话又会讲乱。这个一一一零大概就是在中间一个位置啊,大概就是在中间一个位置,这个我 具体忘记是在哪,然后像这个一二三四呢?你也是这样,这个这个一二三四,就像 像这个我是怎么找呢?我刚开始就是生成了两段折扣的,慢慢去发现的啊,像这个是四第二,是吧?我们他所以呢,他这个就是零四第二,哎,第二 如果他在这个收扣的里面呢,就是 d 二零四, 第二零四,你这么两两遍确确找,呃,确保他找下来了之后呢, 你把它就是,然后用户填幺九二点,什么什么什么 ip 啊,填什么端口啊,你只用把那两个地方替换,哎,他就可以正常的回联上去了。但是这种方法必须得用同一款 cs, 因为每一款 cs 他有点不一样,有的模改了,有的没模改,对吧?所以呢,你的 cs 尽量是要使用一样的,不然会有一些问题啊。 其次呢,下面这个是老版本的嘛,对吧?嗯,这个也是,这个也是一个免杀平台,一个原理原理讲解吧,其实没有多难,像这个编程呢,就是将你手上的 工作呢变变得简单化吗?就就像刚刚这个,就像刚刚这个像 下面啥平台?其实就是帮你生成一个免杀木马,免杀木马我自己平常写我自己都要把那个收扣的换一下呀,然后再生成一下呀,对吧?你只需要你的网页功能,就是 把十二克的填上去,点一个提交,提交完了以后他自动把十二克的放到哪,然后再给你生成出来,然后提供一个下载按钮,你点一下下载他就下来了,对不对?其实他就是完成了一个你手工的操作而已啊,就是这样子,并且就是大家更方便去用的那种。 嗯,其次呢,这块这块就是进阶版,这块进阶版就是这块,这种进 接版呢,就是让你的这个社交扣的看上去更牛逼啊,让你的这个平台看上去更牛逼呀。填一个 ip, 填一个档口,选一个回来类型就能直接上线,这和 cs 没啥区别。哈哈,其实还是基于研究这个 cs 的 ceocode 去完成的啊。嗯,这其实没什么,没什么,非常 非常独特的那种技术。嗯,那今天的视频呢,咱们也就到这里了。嗯,也希望大家多多三连加关注。 哎,三连加关注,好,那今天的视频就到这里了,谢谢大家。
![7.[易汇编]之远程汇编(ShellCode)原理讲解](https://p3-pc-sign.douyinpic.com/image-cut-tos-priv/b6ceedfab235d6ff92d2e0b19e47a57b~tplv-dy-resize-origshort-autoq-75:330.jpeg?lk3s=138a59ce&x-expires=2086192800&x-signature=FSpOIsjPgyKDK8JiJZQNJ1IJioE%3D&from=327834062&s=PackSourceEnum_AWEME_DETAIL&se=false&sc=cover&biz_tag=pcweb_cover&l=2026021202522328977705A644AC37B1C7)
好,各位学员大家好啊,欢迎大家继续收看由乐意论坛推出的课程啊,那么我们这节课呢,来讲这个远程会编,远程会编的呢,我们也叫也叫做 shot code, shock code, 那么首先我们要知道远程会编的一个原理啊, 原理就是我们通过啊,对啊,别的进程 执行一条啊,申请的县城执行一条县城执行一条县城就是相当于跨进城创建县城啊,我们简单粗暴的用专业的语言叫做跨进城创建县城, 而比较常见的话是我们用这个啊, a, p i 函数来实现的, 哪个呢?就是这个叫做 c, r, e, a, t 啊, remote 啊, thread 这个东西啊,这个东西来实现的,它呢就可以跨进程的实现一条啊,就是创建一条线程,那么我们看一下,找一下 m, s, d, n, 来看一下它的官方解释啊,翻译一下 啊,首先看啊,创建在另一个进程的虚拟空间中的运行的线程,我们用这个 curate remote 四的 e x 可以性并啊,可以扩展它的属性,也就是说这两个函数都可以 看你用哪个,当然他还有其他的函数,其他函数我们暂时先不用去管他,我们先看解释啊,首先呢,他有几个参数呢?一二三四五六七七个参数啊,第一个是我们要创建的进程句柄必须具备这些权限,这些权限, 这些权限,这些权限和这些权限啊。第二个是指向了一个安全性的结构,如果说你不要设置结构的话,那就设置为囊啊,就是你设置为囊的话,就默认使用安全服,并且不计成聚饼。 最后一个是对战大小啊,这里有如果为零的话,则新县城的文件默认大小啊,这个地方的话呢,就是这样的 啊,这个是 star 的 address, 就是执行的一个函数的指针,表示远程线程当中的起始地址, 然后呢这个是传给现成函数的变量指针,就是你要传什么参数,你通过这个指针来传最后一个啊,这个是一个创建的标志啊,就是你是挂起的还是运行运行的,如果是零的话就是立即运行, 若是这个的话,代表挂起要自己恢复啊。然后最后一个是用来接收这个线程标志符的,也就是线程 id 成功呢,返回现成句柄失败,返回空。那么我们用这个函数的话呢,你看到它这里有个参数叫做 star dress, 对吧?这个东西,这个东西,这个东西呢就是我们讲的一个起始的地址, 其实的地址也就是我们说的子程序指针。子程序指针, 那我们之前讲过怎么去调用靠,对吧?我们讲靠,就是其实调用子程序也就是一个子程序指针,那么我们想要远程的去执行这个筛扣子的话,你必须要跨进程创建一条线程, 但这个线程的话,也就是我们通过跨境程创建线程,用来调用一个子程序指针,这个子程序指针呢,它是本身是不存在的, 不存在啊,子程序指针本身不存在,这个子程序指针也相当于是一个内存地址嘛,它本身不存在怎么办呢?我们就需要通过申请一个内存用来保存我们的啊。 shycod 就是我们申请一个内存,我们申请内存之后他会返回一个地址,比如零 x 四零幺零零零,他会返回一个地址,这个地址的话我们就可以在这个地址开始写我们的十 i 扣的,把我们所拼接出来的十 i 扣的进行操作,然后接下来就是拼接十 i 扣的,也就叫做会编指令, 拼接完成之后呢,写入到我们申请的内存,你注意看啊,我们首先呢原理是这样,所以我们要调用一个此程序指针,但是因为这个此程序不存在,所以第一步我们 我们先申请一个内存,用来保存 syco 的。第二步我们拼接好 syco 的指令,并且写入到我们申请的内存里边。第三步我们就可以通过啊这个函数来调用啊,我们申请的这个内存, 调用这个东西,然后它就会返回一个值,这样的话我们的 ship 就执行了。最后我们可以通过其他的一些函数,比如说可以用来等待这个线程有没有执行,或者是呃让它结束完成,那么到这个地方为止就已经执行了。接下来的布置就是,哎, 等待现成,然后呢关闭所有打开的剧变就可以了。那等待现成的话呢,我们就可以用这个,我记得是 wat wait wait 啊,呃, wait 什么来着? 好像是这个东西啊,用这个东西啊,啊,具体的我也不太记得了啊,因为 a p i 只有在用的时候你才会想得到啊,一般的话没用的话就不会去想它,不会去想它,所以我们可以用这个东西来进行一个等待,也可以用这个 get t h r e a d e x 有个退出的代码,哎,哪去了? 可能现在看不到啊,我这个可能这个函数不够多啊。没关系,我们到时候知道怎么去看就行了啊,反正这个是个它执行的原理就是我们通过这个啊 这么几步先拼接,然后再申请,再进行操作,最后是操,最后是关闭,这样的话我们就能执行完这个线程,然后就能拿到结果了。所以其实远程会变筛扣的讲解非常简单,它的原理就是这样的。 那么我们了解这个原理之后呢,往后面就可以来尝试写自己的一个十 icod 完成一个操作了,那么这节课我们就讲到这里了。

大家好,我是哈尔特,欢迎来到迪大学院。好,这节课我们紧接着上一节课的一个介绍,就是说这个 hd 库另外一个功能就是我们的一个,也可以说是另外一个模块吧,我们的这个 coco 的,因为我想的是把我们这个 coco 的相关的一些操作也给他封装成几个接口。 哎,我们先给大家看一下这个界面啊,我把这个工具又更新了一下,在这里有个 circle 的,它主要是把我们的一些 呃,三十二位和六十四位都支持,就是说三十二位或者六十四位的一些会编,把它转成机器码,然后把它注入到我们的一个进程中去执行,这里可以运行他是不是这样子我们就可以去什么远程去调用一些我们的 co, 比如说我们去测试啊, 都是可以的。我们这个是把它写在一个测试工具里面,然后相关的一些接口也把它写出来了,你到时候你写脚本的时候也可以用来用接口,然后注入你相关的一些修口的都是可以的。也就是说现在六十四位的也支持对吧?因为我们在微视的时候,如果你没有那个英特尔那个 插件的话,那么他是不支持,那里会编的一个六十四位的,但是三十二位他是支持的,这个相信大家都明白。好,我们现在演示一下吧,我们现在还是一样的。嗯,把这些环境给他搭建好,解决,这个非常简单, 好初次化,我们还是要把这个需要安装这个,因为之前我已经安装了,所以说他这里为零,这个只需安装一次就行了。然后把这个进程名我这里有个测试,我们先 用这个测试来给大家看一下。我本来想用这个奥丁的这个游戏,因为他这个驱动不知道怎么打不开,到时候还要用叉迪吧。给大家看一下到底我们注入成功没有,他是一个六十四位的。这里选零就行了。 好,我们选择我们的那个框架,这个需要这个东西。好,把它注进注进去,然后同时把它打开,他就立马注入进来了。好,我们这个看一下。哦,这里少了一个这个 x 一重新注入一下。 好,大家看见没?这里有个弹窗的说明是正确的。好,我们来获取一下我们的这个 p i d, 然后加载环境,然后继续。好,这些我们就不用管了。这个我们也不用管了。我们来看一下这个袖口的 这里,然后在看之前呢,我把这个我看一下,我把我的这个叉 d bug 给它打开,我们来调试着看。 我们在我们在我们的这个叉 d bug 里面看一下他到底注入成功没有,对吧?然后同时还能看一下他到底执行没有。 好,先把它运行起来,来到我们习惯性的还是来到他这个游戏领空主模块。好,我们接下来我们就开始去测试这里面怎么修写了。哎,我们这里我看一下 看一下,我这里好像有一点这个,随便搞一点绘编吧,对吧,这些都可以去除,或者你在这个里面随便拉 拿一点都行。我们这里面我们看一下,随便去搞一点这个都可以的。 这是我在另外的一个程序里面,这是三十二位的,所以说你不要点这个。好,我们转换成我们的机器码,就是修复的。好,我这里把它格式化了一下,因为这个格式化成了一个什么,这个是什么东西?这个是我们的一个。 嗯,我看一下搞一个文本吧。 这个是我们的这个 c 元的一个数组嘛,就是一个字节数组。到时你可以直接拿到你这个单板去复制过去,然后把它通过我们这个接口给他注指定这个缓冲区,守地址数组守地址对不对?我这里就把它实现这样子。好,现在我们就开始去输入, 首先你要远程注入啊,这是你要给他指定一个 pid, 然后紧接着我们点击注入线口的。好,这里成功后,他会返回一个地址。然后这个地址我们来看一下,用这个叉 d bug, 我们来看一下是否成功。 好,这个是 e c 零八一二一,好一个开始看一下好,还少了一个 对吧?好,你看一下他这里住进来了,和我们这个大家看这里这个是不是一样的, c 七四, c 七五四四五四是吧? c 七,从这边右边往左边看, c 七零五四四五是 d c 对吧?说明是住进去了。 其实我们可以什么拿到这个地址,我们直接跳到这个地址那里去看,他的这个灰边是这个样子的。好, 我们来看一下,是我们的是这个样子的, 这里有点不一样对吧? 这里为什么不一样呢?这因为因为这里存的是什么?这个应该是一个偏移,他这里存的是他这里自己还计算出来是他这个程序的一个实实际的一个 gd 值,他这里这个值。 所以说大家看一下这里这个字好像不太一样,对吧?其实我们一般是不会去这么这么去写的,只是说这里随便的一个 举例子啊,给大家测试一下。好,我们现在看一下他能不能去运行啊,这里肯定运行会崩溃,所以但是我们看一下他断不断下来对吧?这里按个 f 二,我们运行一下。 好,你看断下来,这说明什么?说明他确实去执行了我们这个 ceo 的。好,这里一放开他就已经崩,要崩了。咦,要崩了的,我就直接给他关掉了,因为这个这个会变音,没啥意义了,要破坏他的一些相关的一些东西,他要爆异常的。我之前测试过。 好,现在我们就能知道他确实能执行,同时能成功的一个注入,同时你还能释放。好,现在我们可以。其实我们可以用我们的一个别的游戏,比如说我这里刚才说了这个奥丁的一个日服。好,他这个程序进成名是这个样子的。好,我们这里换一个。 好,现在我们驱动注入一下,把我们这个框架给它注入进去。好,现在同时初次化一下,初次化 成功。现在获取的是零啊,现在获取的是零。好,我们把这个游戏给他打开。嗯,在我们这个扣不断了。在这里。好,我们把它打开,让他注进去。这个游戏他就有,有他相关的一个什么 引擎,就是我们这个检测,相信大家都知道。好,我们稍微等一下,看一下他, 他这个就有点慢,因为前面他要去加载一些他相关的一些什么驱动。好,现在注意进来了对吧?大家看到弹窗,然后紧接着他就加载这个驱动。 好,等它加载,我们这里能获得它的这个 p i d 了,你看注入进去就能获取啊。同 说出话,加载继续。好,现在是正常的,我们现在这个游戏我们就不用去管他了。那么现在同样的来到我们这里,我这里用菜地吧看不了,因为他这个有有保护。我想加载这个, 这个驱动调试呢,也不知道为什么刚才打不开,不管他,可能这个系统的问题。好,现在我们基本上就看他能不能住进去吧。 其实这里成功了,刚才我们这里也测试了他这个这个程序能成功,这个基本上只要注入进去就能成功了。他跟我们的这个检测没啥多大关系。我们看一下吧。 其实这个东西可以做一个别的,因为怕把它的一个相关的,我看一下啊, 因为他是六十四位的对吧,我们可以这样子随便写一个啊,然后这样子 对吧,这样子我们应该是不会去破坏它相关的一些纸吧,只是做了一个这个操操作,我们把它转换一下,这里六十四位啊。好,它转成这个样子了对吧,然后注意进去,注意进去的时候你要把这个 pid 给它 指定好好注定。注进去后,他给了我们一个地址的,说明注入成功了,那同时我们运行一下,好返回一个一,他好像崩了一样, 对吧,那说明可能他不是一个相关的,一些他可能还有一些别的影响了他,因为这个点我们没法吧,没办法去看,有点烦。 我们这样子我我看一下这个吧,看一下这个东西, 我们只要用这个来测试他跟我们这个游戏没啥关系的,因为大家看到相关的也给他注进去。我们来测试一下这个吧, 重新给它卸载了初始化,然后这个是大写的一个 b 二,重新给它组建好,我们把它打开, 只要注意一次就行了。你每次打开他都会自动给他注意进去,只是说这里换了,应承了。 好,我们来获取加载。继续 看一下这个有啥问题没?哦,这个做错了,应该这是一个什么六十四位的重新转这个。哦,对啊,应该是六十四位。我这个就是六十四位的。对的,没问题。我们现在把这个 看一下,稍微看一下。 呃,这个东西我们来看一下二七八八三一六。 好了,确实是写入了这一纸。我们来看一下他这个里面,对吧,他就这个样子。那说明这后面都没有了。为什么嘛?我们这里应该其实我 我们应该有一个 return, 我看一下能是不是要写个什么 return 之类的, 重新让它转换一下。 c 三好,这里我们这里只是一个测试啊,实际情况下肯定不会去这么去做啊。 好,这里是三一六,应该就在这下面,他加了 这个是六,这个是七。好来,这样 多了一个 c 三。驴蹭这里我们来看一下它运行情况。运行好, 首先我们来看一下它这个我们 push 的,因为我们这里保存嘛,这两个字基本上没变 好。 tag 蹭到这里来了啊,说明这个应该是没问题的对吧?现在就是正常的没崩 对不对?所以说刚才好像那个游戏的时候,我们那里少了一个 return 对吧?这样子一下能调试就一下能看得出来对不对。如果是刚才没有那个 return 的话,他会怎么去做啊?他他走到 按键退吧,他会走到这里来去执行这个,这些东西肯定是不对的了,对吧?这零零按到语数应该是 lop, 九零 应该是这些。 但是呢,他这里其实相当于还是一些会编一些,这个跟我们没啥关系,因为我们这里申申请了一些内存,他这个内存出出化就是零,而不是九零啊。 所以说大家这个 return 刚才我们那里忘写了,所以说导致那个奥丁那里崩溃了,这里少了一个对吧。那说明从现在这样子看看,我们这个卸扣的的一个注入和运行是没有任何问题的。 我们同时这里这个数组啊,你到时你拿到程序里,你可以内置到程序里面去自己去写,而不是用这个工具啊,这个工具可以 转换,现在起了一个转换作用,你也可以通过一个接口把它转换成这个样子。我们内置都有接口了,因为我这个测试工具都是调用的我们这个这个里面的这个 dior 的接口, 这个比较关键,就这个东西。其实这两个 d o 是非常关键的, 这个所有的这些功能全部都在这个接口里面。这个 d o 里面好,基本上我们这个模块也差不多完事了。相当于说还是比较简单的一个相关的一些西游 code, 就是我们的一个注入和运行吧, 同时还能把它转换对吧?这样子转换一下方便一点。他能,如果你有错的话,他还能报错,我们来运行一下,你看他这里报错一一行,对一一行, 我故意这样这样子去做了,因为这样子我们方便去看,比如说你这里报了个错对吧,然后他这里我们就能对到这一行哦,你就可以检查一下到底是来 哪个出错了,就这个意思。这里还有一些相关的一些错误代码。这个错误代码后面我贴出来,到底代表的是什么意思?其实就是说这个五幺二代表的是,就是说我们, 我们明明是这里没勾六十四位的,因为是三十二位的,所以说二零是是什么?六十四位的对不对,三十二位是没有二了对吧?我们要要把它改成一, 就这样相当相当于说一个语法的一个错误吧,现在就可以转成功了,就这个意思。好,我们这节课就相关的介绍到这里吧,其实也没啥别的,就主要是介绍一下,有这个接口,后面会封装了很多,越来越多了那些东西, 还有一些相关的一些操作,全部呢搞进去。好,这这节课就这样子吧,简单的介绍了一下,大家多去关注一下我们的这个官网。好,就这样子,谢谢大家观看。

呃,下面我们来看看这道题,人生图 sharepod, 然后先检查一下它的保护, 然后这里是开了暂,不可自行的,所以说不能执行 c l q 的,再暂了看一下 代码 啊,这里初始化就不用多讲, 好输出也不用多讲,这里有一个 m map, 这个函数用来分配内存空间,从这个地址开始分配这么大的大小, 那其中呢?这分配的这块内存它是可以执行,可以写入,可以读取的,因为这个函数它可以指定一些这些属性参数,具体的话可以看这里还有讲这个参数, 然后下面一个是漏洞函数,上面是输出,下面这有一个开了砂箱,咱们可以用砂箱保护工具检查一下, 可以发现是允许你执行 r o w 操作的,所以说给他线应该就是不行了。 然后这里的 f 就是刚刚分配的内存,那块内存空间是可以执行的,所以说咱们只需要在这块内存空间里输入咱们的 o r w 的 c r code, 然后这里他就会进行调用,从而就获取 flag 就可以了。 那咱们动态调试看一下, 那输入完成呢?应该是在这个 b s s 段看一下,这就是我们输入的斜块的,第一个是 push, 一个 flag 是 flag 啊,就是就是这个, 然后这一段简单讲一下,就是把 flag 传到 r g i, 然后再 两个计算器作为零,然后第二用 open, open 第一个参数就是 idi, 所以说就是打开这个 flag, 然后第二个就是读取, 读取的话它的返位值在 i x 里面,所以说就是读刚刚打开的那个文件啊,读到站点,然后读取零差六四个大小,然后后面就是把它的返位值给 i d i, 然后后面就进行 get 输出的操作, 然后就是把刚刚读取的内容,因为是在站点,所以说咱们给它输出出来,然后输出大小也是零叉六四, 然后这里它进行调用 r d x 其实就是在之前这里的内容, 现在就在调用咱们刚刚输入的那个东西, 可以看到他已经把 flag 输出出来了, 因为这题重点就是它开了 a x, 你不能使用在站上的斜固的,但是它 给你使用这个 m map 函数,把这个内存空间给它操作改写为可以执行,可以写入,所以说你就可以把 c 二扣的放在这里进行执行就可以了。

各位好,今天我们继续介绍这个 made spot, 今天我们介绍一另外一个 made spot, 另外一个话题叫 shircout。 shircout 是什么呢? shircout 就是那个一组机器子的用, 呃,你可以认为他就是可执行的机器指定,这机器呢?他会变语言呢?会变语言,他的每一条,每一条那个会变语句去会边,每一条会变指令都是,其实都是一个机器码, 都是一个机器码,他是按照这个机器码去识别这个指定是要怎么操作的。其实你知道汇编指令,你的那个也也也需要去继续把它,最后类似于编一把,把它翻译成那种机器码吗?你写汇编,比如木屋了,嗯,是到了 led 了,这个这些指令呢, 其实都对应的都是一个一个的机器码,我们这个削靠的呢,就是直接生成机器码,就生成那个可直行的机器码 啊?为什么要升上?可能是机器马,他的,他的本质是机器马,但他的目的是什么呢?他的目的我感觉啊,我感觉就是可以躲,躲避杀毒软件。我感觉, 呃,他可以躲避一些杀毒软件。你比如我这节这个视频,我就做一个,做一个对比。你比如说这个,我们之前,我们之前这个地方经常会会讲到哪个哪个这个,拿这个例子吗?就豌豆子这个例子,就做一个木马,我翻看前几节也会经常看。然后你做一个木马,把这个木马放到靶机上面去, 放到把机上,然后执行这个东西。我们今天做来对比一下,还拿这个例子,再拿削,靠着再做一个,然后看打击什么反应。然后呢?这两个中控马力指令一样的,前面是一样的,你你我我我我 又拉,往往后往后拉,你看着前面前面这个参数都是一样的,看到没有?前面参数都是一样的,然后 l 号本机都是本机。然后 lpo 的唯一区别就是第一个就是我们经常用的这个,这个就是说让他直接升成点 ex 一的,可直行的。然后后面这个这就生成 点 c 的,点 c 的呢就是存到这个这个存到这个位置,存到这个文件里面就是那点 c 格式,我们用下面这个,上面这张命令我们经常用,都不说了,下面这张命令,我们下面这张命令生生的是要靠的这个点 c 就是需要靠的,我们生成之后看到,看到,看到这个直接看到这个文件就是这个, 就这个就这个就就这里面就是他是制服型硕主,其实说制服型硕主每一个这个这个制服型就是就是机器指令里面纯的就是机器指令,这是机器指令, 靠这个机子令来完成这个来实现这个木马的来实现着。为什么说?就说我这一对比就是杀毒软件杀不死他, 我理解就是他直接是积极指令来实行的,你杀毒软件你就判别的话,嗯,他没有做到积极指令这个这个地步。 然后你看就这这些都是一些机器指令,然后我们把它整合成一个新的文件,新的文件呢?这这这很简单,就一个头文件,头文件之后,然后把这个刚才那个机器人考过来, 烤过来之后,然后一个闷寒弱闷寒弱调汇边,调汇边这个这是刚才那个就是那个八号字,五星八号,然后用两两条指令,两条指令实现。 我们把这个点 c 文件呢,把它呃考不到这个 vc 里面, vc 里面去编辑它啊,编辑完之后呢,它应该生成一个点一二一了,就这个这个点一二一呢,其实也是一个木马, 他也是一个木马,他和我们经常的说这个买嗨歌,这个买嗨歌其实是同样的功能,买嗨歌呢就是我们用的两两个,两个两个不同的命令,你看一个上面是能买嗨歌,下面是能点点 c 点心呢,其实是需要靠的,我们把需要靠的生成了一个自己生成了变异,生成了一个那个那个木马,这两个两个木马,我们来验证一下两个木马的功能,其实他们两个都能够连到攻击机上面去,然后我们看一看攻击机上,然后做这个去去开始震听,记住他们的消息, 现在已经起来了。起来了之后呢我们看一下这个上面这个用这个用先用麦嗨歌连一下,麦嗨歌我们经常经常连的,我们看一看直接就是连过来了。连过来之后呢我们我们把它退出,退出去,现在退出去,现在这个绘画还在看这个绘画还在,然后呢我们再继续继续开始。 呃餐厅,餐厅的时候呢,我们把这个,现在呢我们把这个,把这个呃这个生成这个需要靠的我们烤出来, 呃也放在桌面上和他跟对比吗?然后现在点这个点这个信号消靠的,然后直行,你看消靠的也能连过来,看这现在这个消靠的连过来了,我们再退出, 退出去看这个看这,现在这就就已经有两个,两个绘画了,因为他们的功能是一样的,他们都能连到这攻击机上面去,他的基本上都是木马,但是唯一不同的这两个不同的是什么呢?做法当然是不同啊,就是就是把它生成的生成方法是不一样的,但是还有一个就是不一样的是什么? 还有一个不一样,就是他这个你看一看啊,这个本视频的关键,我们现在用这个杀毒软件给他杀毒,杀这个杀麦嗨客看一下这个, 还有个看一看,你看没?他爆出来了,他说这,这是个,这是个还没处理的,他说这是个,这是个病毒,还有还有那个感已经感,他说这已经感染病特洛伊病毒了。然后我们就我们先信任他吧,先信任, 呃,他说这个这个比较比较危险,我们先确定吧,信任他没处理。然后我们看这个消靠的,我们用同样软件去扫扫,他去扫这个消靠的,看看你看到没有?他说没发现任何危险, 这个就是这个就是先靠的,你用先靠的做木马,他这个和这个普通的那个木马的区别,他你看看他会发现任何任何任何危险。我用的是三六零的杀杀毒软件,所以这个这个这个就是先靠的,你做出来的木马他也能都能连过来,两个都能连过来,但是呢他能够躲避杀毒软件, 这是热它一个功能。

是小爱今天为大家录制一期科普视频,主题是秒杀三六零,秒杀, 首先呢做一些准备工作吧,大家先看一下时间,今天是二一年十月十二日,也就是今天,然后为大家录制一期就是秒杀三六零的一个科普视频。 首先呢就是准备一下,打开工具,然后生成, 这是我们需要的,那个是要扣的,然后这里点击是要扣的,然后选择一下接听器,然后不要勾选六十四位,然后我们先选好我们的十二扣的,以后 生成十二扣的,我们对十二扣的进行一下混淆, 混淆完成以后,我们最后我们生成了我们的一个免沙的一个木马,然后然后我们对这个木马进行一下,用三六零进行下测试, 哦,这里打开一下, 然后我们选择木马查杀后,选择按位置查杀,点击桌面 开始扫描, 我们发现三六零并没有爆毒,然后我们再来测试一下他的,嗯,然后我们点双击,双击我们的木马, 我们查看, 我发现已经上线了,多了一个,好,我们设置一下他的一个心跳时间,将时间改成两秒, 然后这里心跳就是每两秒进行一下心跳,然后我们 查看文件,我发现这里已经成功了,然后视频就做到这里,视频仅用于科普, 嗯,这里提醒一下大家,就是关于一些陌生人发送的一些文件,大家最好不要点击,也不要过度依赖于杀毒软件,谢谢。

笑是我们与计算机最原始也是最基本的交互方式,在我们的日常开发、服务器管理或者自动化脚本中,也都会看到他身影。 在今天视频中呢,我将带大家揭开秀的面纱,并了解秀命令的基本使用。我们现在使用的操作系统呢,其实都自带华丽的图形操作界面, 但是在早期的计算机中,是没有图形界面这个概念的。用户和操作系统的基本交互是通过一个叫做 shell 的东西来完成的,也就是这个黑屏白字,又通常被我们叫做命令行的东西,他就像是我们能够触碰到的操作系统的外壳,所以也被叫做 shell。 我们都知道图形界面简洁直观,容易上手,但其实图形界面能做到的事情,用 shell 也都可以完成。那可能有人问,现在大家都在用图形界面了,像 shell 这种用 复杂又需要背诵指令的东西,就真的没有用武之地了吗?答案当然不是。比如你租了一个服务器,对服务器的管理通常需要用 cell 完成。如果大家看过之前数媒派的视频,也知道数媒派与主机的通信默认也是使用 cell 完成的。 为什么?因为图形界面通常会占用一定的系统资源,所以服务器默认不会安装。因为图形界面对网络带宽的要求也比纯文本的笑要多得多。 使用 show 还有一个好处, show 本身也是一种脚本语言,也就是说我们能用它来做一些自动化的事情,比如定时关机、批量处理图片、自动生成文件列表等等。 需要的种类呢,其实也有很多,除了我们最常听到的 bash, 在内内个生态圈里其实还有 bone shell, seashell, corn shell, z shell, fish 等等。 windows 上也有大家熟悉的命令提示服务,以及微软独创的 powershow 等等。这视频呢,我们也是以 bash 为例,来给大家讲解一下 sale 的基本使用。 bash 的用途呢,更为广泛一些,语法也更加清晰易懂。如果大家正在学习 linux, 就更加绕不开这个话题了。 对于 windows 系统的小伙伴,其实 windows 下也是完全可以使用 bias 的。这里有两种办法,一种是安装 wsl, 也就是 windows 下的 linux 系统,大家可以根据微软官方提供的文档,按照上面的步骤进行安装。 还有一种是比较简单的,就是直接安装 get 客户端, get 自带了一个轻量级的 bash, 用它也可以完全胜任这个视频中讲到的所有内容。安装完必备的工具之后,我们可以打开系统自带的终端来进入 show。 在 mac 和 linux 啊,我们都可以找到一个叫做 terminal 的程序, winner 下呢?我这里使用的是 winners terminal, 因为它界面看起来更加漂亮一些。 当然你也可以直接使用系统默认的或者是 get best 提供的终端。在 share 里,我们可以通过输入命令的方式来对计算机下达指令。 校友中最基本的操作就是对文件的管理,比如我们可以通过 ls list 命令来列举当前目录下的文件。那我们怎么知道当前位于哪一个目录下呢? 通常当前目录会直接显示在命令提示符的左边。当然我们可以使用 p w d print working directory 来输出当前目录的完整路径。当前路径呢,又被称作是工作路径,这也是为什么叫做 working directory 的原因。需要注意的是,在 bash 或者说在 unix 的 延伸系统下,路径的分隔符是正斜杠,这和 windows 下使用的反斜杠是不一样的。如果我们要切换当前的工作路径,我们可以用 cd change directory, 比如这里,我们可以通过 cd music 进入当前路径下的 music 目录。 如果要退回到上一集目录,我们可以用 cd 点点点点在这里代表当前目录的上一集目录。当然,用来表示路径的呢,至少有其他的一些特殊符号,比如波浪号,代表当前用户的 home 路径。 linux 下的每个用户呢,都有独立的 home 路径,比如用户的桌面文档都是保存在各自的 home 路径下。另外呢,我们在使用每个命令的时候,都可以跟上一系列参数,比如我们在使用 ls 的时候,可以跟上一个横杠 a。 横杠 a 是一个额外的参数, 他代表显示目录下的所有文件,包括隐藏文件。我们也可以通过 ls 横杠 l 来以列表的形式显示目录下的文件。这个参数呢,会显示文件的详细信息,比如文件修改的时间以及文件的所有者等等。 我们还可以将两个参数结合起来,比如这里的 l s 杠 l 杠 a。 不过它其实也可以写成更加简单的 l s 杠 l a 的形式。另外,在 nenex 下,文件是区分大小写的,也就是说,你可以创建两个由相同英文单词组成的文件名, 只要他们大小写不同,系统都是允许的,这点呢,和 windows 是不一样的。另外,我们在列举文件的时候也可以使用到通配符,比如 lsa 星则会显示所有以 a 开头的文件星号, 在这里呢,会去匹配零个或者多个任意的字符。如果我们输入 lsa 问号 c, 这里的问号呢,只会去匹配单个字符。 我们怎么知道每一个命令的后面可以在追加哪一些参数呢?这个我们可以使用到命令自带的帮助信息,比如我们可以在 ls 后面加入杠杠 help 则会显示 ls 命令的帮助信息。注意,这里是两个横杠,因为后面这个参数 help 并不是让我们之前看到的,只有一个英文字母的简写。 现在大家也可以使用 man, 也就是 manual 命令来显示命令的操作手册。我们在 man 后面跟上命令的名称就好了。如果要创建一个文件夹,我们则可以使用 maker, 也就是 make directory 命令,后面跟上目录的名称即可。要删除一个 路径,我们则可以使用 rmd, 也就是 remove directory 命令。如果要创建一个空白的文件,类似于我们右键菜单中的新建文件。在 best 中呢,我们可以用到 touch 命令,我们只需要在 touch 后面跟上要创建的文件名称即可。 复制文件呢,我们可以使用 cp copy 命令,我们可以输入 cp 空格,后面跟上要拷贝的文件名空格,然后输入目标文件名。这里的目标文件呢,其实也可以是一个路径,代表将原文件复制到这个路径下。 移动文件,我们则可以使用 mv move 命令,和 c p 一样,它有两个参数,原文件和目标文件。如果我们要对一个文件进行重命名,我们也可以用到 move 命令。如果我们要删除一个文件或者目录,我们也可以使用二 rm remove 命令,我们在 rm 后面呢,跟上文件或者目录的名称即可。如果我们要删除的目录里面呢,还有其他文件的话,我们则需要提供横杠二参数,这个参数呢,代表地规的删除目录下的所有文件。另外,由于删除操作呢,属于危险操作, 我们也可以使用横杠 f 来强制命令的执行。所以如果大家看到 rm 横杠 rf 这个命令,一定要非常小心。这个呢,也是大名鼎鼎的山库跑路命令,大家没事的话呢,就不要去尝试了, 要知道在命令行下呢,是没有回收站这种说法的,删了就是删了,后悔也来不及了。在秀中,如果我们想显示某一个文件的内容,我们可以使用到 cat 命令,我们在 cat 的后面呢,跟上文件名即可。 cat 会向屏幕输出文件的所有内容。如果文件内容比较长的话呢,我们可以使用到另外两个命令, head 会显示文件的头几行,比如下面这条命令会显示 bash vicky 文件的前五行。同样,我们可以使用 tail 命令来显示文件的后几行。 如果我们想对一个文件进行全文搜索的话呢,我们则可以选用到 grip 命令,比如 grip 单引号 a bash wiki 点 t x t 会显示文件中所有包含 a 文字的行,这里所有匹配的文字呢,也都会以红色高亮的形式显示出来。 最后呢,在秀中其实还有个非常重要的特性,那就是派管道也被叫做是重定向,他可以将一个命令的输出作为另一个命令的输入,就好像是搭建了两个命令之间的桥梁,所以也被叫 叫做管道。比如我们可以通过管道将 l s 命令的输出传递给 head 命令,让它显示前三行的内容。当然我们也可以和 grip 组合起来,从中挑选出包含有 a 文字的文件名。我们还可以将它传递给另外一个 sword 命令来按照文件名的字典顺序进行排序。 在今天视频中呢,其实我们也只是讲到了 shell 的冰山一角。其实在 shell 中,我们几乎可以完成对计算机的所有操作, 包括网络管理、系统设置、用户权限管理等等。我们甚至可以在需要中运行功能全面的编辑器,甚至音乐播放器等等。我们也可以将不同的命令组合起来,变成一个可以帮你偷懒摸鱼的自动化脚本。

大家好,我们今天来说一下 style code 的问题啊, style code 是什么呢?它是一段不依赖的代码啊,可以跑在各种情况下, 那么我们在这个渗透的过程中呢,对于这个销售扣的有什么一样的依赖呢?首先呢,我如果说你用过这种 c s 或者 miss polit, 你肯定生成过这种销售扣的, 但是呢,他会遇到一种情形,就是塞腰扣的,可能会他的特征比较大,比较难做免杀等等等等,这种情况啊,然后呢,你如果说想要自己去编写一段塞腰扣的,那你应该去学点什么呢?其实呢,这个主要是一个二进制方向的问题了你, 你首先呢,你要了解一下西或者西佳佳或者会编,然后呢你要干嘛呢?了解一些这个系统编程的一个基础知识,比如说 p b t b 是什么?然后这个时候呢,你去了解一下他的调用链,然后呢再去写这个 cello 扣的啊,然后呢给他干嘛呢?从这个原原码里,从原码编译,编译之后从这个可人性文件里面 出来,那这种好处是什么呢?好处就是你在写的时候可以根据自己的这种想法在里头,比如说加花加混淆,或者说怎么样怎么样的啊,在这个根本上解决一个不好面纱的一个问题 啊,当然了,他们编译出来之后,你再秒杀都是一样的效果了,比如加加密啊,编码啊,分片啊,或者说逆转啊等等等等,这种方式,那就没有什么区别了啊。好,那么想要学习更多网络安全知识点,呃,晚上九点钟来我直播间啊,想要学习活动深度二级安全点。我头像进粉丝群了解一下。

今天呢是我们的第三次课,我们来讲一下 vi 编辑器。 在本次课的话呢,我们主要来讲两点内容,第一,我们来对文本编辑来做个介绍,然后呢我们来说一下 v i 和 v m 编辑器,它的一个应用实践的相关内容。 我们首先来介绍一下关于文本编辑的一些相关的内容。我们在处理一些文本文件的时候呢,我们通常是要对文本文件的内容进行编辑和处理的, 而文本编辑器它就是用来处理文本文件的内容。我们在 windows 当中啊,有很多常见的这种文本编辑器,比如说 word, mark 档 t x t, 甚至说像这种 excel 之类的,其实它也是属于这种文本编编辑器的。那么这些呢,都是我们在 windows 当中常见的。 在 linux 当中呢,我们最常见的这种编辑器呢,其实就是叫做 v i 或者 v i m, 这两个编辑器我们可以认为它其实就是同一种编辑器。 那么 vi 的话呢,是系统当中默认就已经存在的,也就是说我们在安装好 unix 或者 linux 系统之后的话呢,系统默认就存在了。 而这个 v i m 它是在 v i 基础上做了一些相应的增强功能而产生的一种 编辑器,那么这个编辑器我们称之为叫做 v i m, 我们也可以认为 v i m 就是 v i 的一个增强版。好,那么这就是我们所提到的关于 v s 当中这种叫做编辑器。 其实呢,在这个 lisa 当中,它还有另外的一种编辑器叫做 nano 命令呢,就是 nano。 但是这种编辑器啊,它的功能相对是比较单一的,我们在日常的开发和工作当中我们用的比较少,我们用的比较多的就是这个 vi 和 vm 这两种编辑器啊,在使用的时候其实几乎是没有区别的。 好,那么下 下面呢,我们来说一下关于 v i 变音器的一些基础的内容。 首先呢我们应该清楚, v i 的话呢,它有三种模式,其实啊,这个 v i 编辑器它有称为 v i 的三种工作模式, v i 的三种工作模式分别对应了三种不同的一个状态, 比如说他的第一种模式,我们叫做命令模式。命令模式啊,也就是说我们在打开 vi 之后,或者我们在用 vi 打开一个文件之后呢,他默认所在的模式就是所谓的命令模式。 命令模式当中我们通常来说是无法在文件中进行输入的,比如说我想在我的 这个文件里面我写入一个,呃, hello, word, 那么命令模式下是无法进行的,但是呢,我们在命令模式下可以进行一些其他的操作,比如说删除一些行, 然后复制一些行保存退出,那么这些都是可以的。这第一种模式我们叫做命令模式, 第二种模式我们叫做编辑模式。编辑模式啊,我们是就是可以在这个文件中来进行内容的编辑了,就跟我们在 windows 当中用 word 或者用 t x t 打开一个文件之后进行编辑是一样的, 可以编辑文件中的内容,就你想怎么编辑都可以,但是命令模式下是无法进行编辑的,这是第二种模 模式,叫编辑模式。第三种模式叫做墨行模式。墨行模式呢,就是说我们会在整个文档的左下角出现一个冒号, 我们可以在冒号后面执行一些指令,通过指令来完成一些这种特殊的操作,比如说我们批量的来复制、移动、删除、替换一些内容都是可以的, 那么这叫末行模式,在这个末行模式下面,主要也是执行一些相关的命令,这叫末行模式。好,这是三种模式,所以说呢,我们应该清楚, v i 呢,它是一种模式化的工具,它有三种模式,那么多种 模式啊,他是需要进行模式转换,或者叫模式切换的,比如说我们在打开文件之后,默认所处的模式就是一个命令模式,在命令模式啊,我们主要呢还是需要来看文件中的内容的, 然后呢,我们如果想对文件中的内容进行编辑修改,那么我们就需要摁键盘上的 aio, 当然了也可以输入大写的 a, 大写的 i 和大写的 o 都可以,就是这六个字母,我们摁键盘上哪个键都行, 那么 a 是什么意思呢? a 呢,就是说我们可以直接在这个光标所在位置呢,我开始进入这个输入模式了,这三种都是一样的,或者这六 六个,三对六个都是可以的,就是进入输入模式。好,那如果说我想进入到末行模式呢?在命令模式下, 请看清楚,他都是在命令模式下进行的,在命令模式下,我们可以输入冒号,这冒号的输入方式是按 shift 加冒号就可以了,稍后我们会进行演示,然后呢就可以进入到冒号模式。 而如果说我们要想从输入模式进入到末行模式,或者说从末行模式进入到输入模式, 他们之间是无法直接进行转换的,都必须借助于命令模式来进行他的模式切换。那么我们如果说想从命令模式进入 输入模式,按字母 a i o, 想从输入模式返回命令模式,按键盘上的 esc, 那么默行模式类似从默行模式返回命令模式,摁 esc, 从命令模式进入默行模式,摁 shift 冒号, 那么这就是模式之间的切换。然后呢,如果说我们在命令模式下,我们其实是有一些操作可以执行的,有这样几个操作,首先第一类 叫做摁键盘上的 i a o 可以进入到边境模式,这样我们一边演示一边来说,在这里, 呃,我们呢,在这呢,我们随便去打开个文件,用户名 root, 密码是一二三四五六,我们打开文件,比如说叫一点 t x t, 一点 t x t 打开, 那么如果说我这里提示叫做 command not fund, 就是我们在执行一个命令的时候,他提示我们叫 command not fund, 说明我们系统当中目目前还没有安装 vm 安装方式呢,我们就需要来配置下亚姆源,那么在我们的其他课程当中呢,其实我们已经讲到了如何配置网络,配置亚姆源, 那么我们可以看一下其他的这种课程内容。好在这的话呢,既然没有安装 v m, 那我就先用 v i 也是 可以的,我们现在讲 v i 和 v m 呢,主要是为了我们后面来开发,需要脚本来做一些基本的铺垫,其实我们我也有专门的课程在讲如何安装使用 v i 和 v m, 我们在这里就直接用 v i 一点七 x t, 好,这样就打开文件,可以看到文件中的内容是空白的,然后这个时候呢,如果我想向里面输入个一二三, 可以看到什么都输不进去,为什么无法输入呢?无法输入的原因就是说当前处于的这个模式呢,我们叫做命令模式,命令模式是无法在 输入内容的,如果说我想在里面输入内容,那么这个时候我就需要进入到叫做边境模式,怎么进入呢?当前是命令模式,我们进入边境模式,进入边境模式的方式,按键盘上的 a、 i、 o 就可以了。 好,那么我们可以来试一下,请注意看这个位置,注意看这个位置, 我在这个键盘上摁一个 a 或者 i 或者 o 都行,摁完之后在左下角出现了一个叫做 insert 这么个字样, 出现这个之后呢,就表示我当前处于的是所谓的一个叫做边境模式。那么这个时候呢,我们就可以在这个内 内容当中,在文件中输入内容了,比如我输入一二三,我输入 hello, 我输入你,好,都可以了。 好,那么当前我们就处于一个叫做输入内容了,当我输入完成之后,我想返回到我的这个叫做命令模式,按键盘上的 e、 s、 c, 现在的话呢,这个位置还有个 insert 这么一个字样呢,一旦我们按了 esc 之后呢,这个 insert 就会自动消失,我们可以看一下, 可以看到左下角的 insert 已经没有了,那么这个时候呢,我们就进入到了叫做命令模式,那么命令模式可以做什么操作呢?操作其实有很多,我们为了效果啊,我们 像这里面我们再写点内容,我们再次返回到叫做这个输入模式, 现在屏幕无法捕获我的鼠标。


本次课呢,我们来讲一下掰是要条件判断的基础知识, 在本次课当中,我们主要来讲两点内容,第一我们首先来对条件判断做个简单介绍,然后呢我们来说一下在班事当中如何来做这种叫做条件测试。 那我们在进行条件判断的时候的话呢,我们主要就是判断我们是否应该执行指令,或者说呢我们判断一下该如何执行指令, 比如说我们有两组指令需要执行,这是第一组指令,这是第二组指令,我需要判断到底是该执行他还是该执行他, 我们加上这个的话呢,是创建文件,这个呢是创建用户,我们是该创建文件还是应该创建用户呢?我们需要前提先判断一下这个条件,我们可能会是说条件满足的话执行他,条件满条件不满足执行他,我们可以这样来想来想, 所以说呢,我们条件判断的目的就是用来判断我们该如何来执行后续的指令,这就是条件判断的作用。嗯,然后呢我们通过这种叫做条件判断的话, 有四种方式,有三种方式,那么呃,当然这三种方式的话呢,主要是说我们在施药当中做调节判断的三种方式,第一种方式做整数的判断, 做整数判断,比如说判断两个数谁大谁小,判断数两个数是否相等等等,那么这都是关于整数的判断。 除了能够判断这种整数,我们也能够判断字符,比如说判断这个,呃变量中所保存的字符是不是 a, 判断变量中是否保存了一个字符串,和我们指定的字符串相同, 这这种操作都是判断这种字符的,比如说我判断用户名啊,判断密码,都是属于这种叫做字符判断的。 我们也可以判断文件,那么判断文件的话呢,其实最主要的就是判断,比如说文件是否为空,文件是否不为空,主要是这样 判断,这就是这个整数字符和文件。当然了,其实还有一种比较特殊的,就关于对指令或者对命令的结果做判断, 但是本质上来说,对命令的执行结果做判断,其实还是对数字做判断,因为呢,命令的执行结果,他的这个结果的值呢?其实还是个数字,就是零和非零。后面我们会讲到, 所以说呢,我们可以归纳一下,就三种,对整数判断,对字符判断,对文件判断。 我们在做判断的时候呢,我们往往会用到一些这种逻辑运算,就是逻辑的与霍非。逻辑与霍非,那与霍非是干什么用的呢?比如 说两个条件,你需要让两个条件同时满足,我们可以举个例子,我们要找出来班级当中性别是男性,并且年龄小于二十, 那这个时候的话呢,就两个条件需要同时满足,既要满足性别是男性,也要满足年龄小于二十,那么这个时候就要用到逻辑语了,逻辑语就是说两个或者多个条件需要同时满足,这叫逻辑语, 那逻辑货呢?逻辑货就是说两个条件或者多个条件满足任意一个即可。我们也可以举个例子,我们要从班级当中找出 性别是男性或者年龄大于三十,那么这就 是两个条件满足任意一个即可。那么罗纪飞,罗纪飞呢,就是一个叹号,叹号的话呢,就是说对你的条件进行取反, 就是找出来年龄不是二十的这样的用户,找出年龄不是二十的用户,那么这就是非。年龄是二十,就是 a 值等于二十, a 值等于二十,年龄不是二十呢,就是年龄不等于二十,就这个意思, 这是逻辑与墨菲。那在这的话呢,我们首先要清楚,我们在进行这种语运算的时候呢, 就是说有这样一个基本的一个操操作,就是真,就两个条件,真与真等于真,真与假等于假,假与真等于等于假。就说呢, 我们只要有任意一个条件是假的,那么结果一定是假的,这就是说我们的条件为真的,前提是说所有条件都满足,结果才为真。当然这个话呢,是我们在这个数学当中一个最基本的语的一个基本的逻辑。 关于货运算也是一样的,那么货运算当中呢,就是所有条件都为假,那么结果才是假,任意一个条件为真,结果就是真, 那么真和假代表什么呢?我们在判断条件的时候,比如说后面我们要讲到义父条件,判断义父后面跟上的是一个条件, 条件,那么条件为真代表条件满足,或条件满足代表条件为真。条件为真的话呢,就是执行这个语句块,如果条件为假 l els e, 那么直接的是这个语句块,所以说呢,我们一定得知道什么时候这个条件是真的,什么时候这个条件是假的。关于说这个呃逻辑语或非的话呢,其实后面我们看两个例子就更好理解了, 非运算就是非真是就是假,非假就是真,就是那个意思。后面通过通过例子你再来看, 那么接下来呢,我们就具体来看一下,在班事当中,我们如果说想做这种叫做呃测试,就条件测试该如何来做, 那判断方法的话呢?我们这或者我们在实际写程序的时候呢话呃有这么几种方式,这几种方式对于我们来说比较常用的就是第二种和第四种,第三种也会 用到,第一种用的相对就比较少了,但是看一看个人习惯,一看个人习惯,这几种方式其实都可以用,个人习惯不同,可能用的就不太一样。 那么咱们现在第一种 pass 的跟上一个表达式,那么也就是说呢,如果表达式成立,则返回真,就这意思就是这个意思,就是表达式表达式成立返回真。 第二种方式,一个方括号里面跟上一个表达式,表达式成立返回真,表达式不成立返回假。 这个请需要注意的是说,这个方括号和表达式之间这个位置必须要留至少一个空格,这个位置也是一样的,就是表达式和方括号之间要 要留一个一个空格好,然后呢也可以用到叫做双方括号跟上表达是一样的,表达是成立返回真,表达是不成立返回假。 第四种方式,我们可以用一个命令的执行状态来判断,如果命令执行为执行,这个成功返回真,命令执行失败返回假,我们也可以用命令的执行状态来来做判断, 我们可以具体的分别来看一下,比如说呢,我们在这可以看,我们用 pass 跟上一个表达式,我们就通过表达式来判断三是否大于四。 在这的话呢,用到一个我们还没讲到的东西,这什么东西呢?就是关于这个 jt, 呃, jt 什么意思?叫格瑞特森,叫格瑞特森,就是大于,这就是个表达式。注意我们在试要当中做判断,不能用大于号,小于号这种方式应该用什么呢?应该用 j t 之类的,后面我们会系统的来说关于 j t l e j e l e 之类的东西, 这一题两个单词格瑞的认就是为大于的意思,判断一下三是否大于四,如果三大于四,那么他的条件就为真, 他返回真,那么我们怎么知道他是真还是假呢?其实我们就是通过他的,通过他的一个状态值来进行判断的。 嗯,然后的话呢,看这个判断一下四是否大于三,很显然三大于四吗?这个条件不成立, 不成立,那么他返回的就是假,那四大于三吗?四大于三,那么他返回就是真,那我怎么知道是真的还是假呢?在这我们需要再来补充一个内容,就是关于命令的执行状态值,命令执行状态值, 命令的执行状态啊,有两种,就是成功和失败。我们命令执行成功,那么就是返回真,命令执行失败,返回假。 比如说我 ls etc 这个命令是执行成功的,那么他的状态值保存到一个特殊变量,我们曾经讲到过,就是叨了幅问号, 在这个刀乐符分号当中就保存了一个,呃,我们叫做特,呃,就保存了一个数值,我要写 是这个数值的值呢?通过挨口打印可以看到,可以看到这里面所保存的是零,零代表什么意思呢?零代表真,注意其他语言可能不太一样,在我们需要当中,零代表真也代表上一个命令执行成功了。 我们在这,在这就需要记住,如果命令执行成功,那么他紧接的这个刀罗夫问号就是零。如果命令执行失败,那么他紧接的问号就是非零。比如说我 lsetc 一,这很显然这个命令是执行失败的, 那执行失败,他的刀字分号呢?就是非零。所以说呢,我通过这个就可以判断这个命令是成功还是失败,执行成 公为真,知音失败为假。在这也是一样的,比如说我 passt past 一空格杠 jt 二,一大于二吗? jt 意思是大于, 就判断一下一是否大于二,一显然不大于二,那么他的状态值就是一个,叫做非礼。那么 有人说,哎,是不是这个一正好就是这个一啊?不是。比如说呢,我们来一个叫什么呢?叫做二十二,叫三十三十五吧,三十五,三十五、九十九。 再看可以看到他这呢,还是一个一,这个一呢?你就记住这个一对我们来说其实没有意义,我们就是需要看什么呢?就是需要看他这个值是零还是非零就可以了,只要是非零,就代表他的这个判断是假, 返回的是假。好,然后我们再来一个,比如说呢,我们判断一下九十九是否大于三十五,九十九是否大于三十五,这显然是大于,那此时他返回就是真,也就是所谓的零。 所以说呢,我们第一种判断方式就这样判断 pass 的后面跟上一个表达式,如果表达式成立,返回真,表达式不成立,返回假,返回真,他的状态码是零,返回假,他的状态码是非零。就这个 关于这个状态码的话呢,我们后面还会再讲。好。再来看关于这种方式方括号的,方括号的话呢,他就是直接一个方括号里面跟上一个表达式,比如说叫三十三杠 att 九十 酒 防护号,三十三杠 jt 九十九, 然后 apple 到了服务问号,那可以看到他的结果是假,结果是假,为什么是假呢?假的原因就是说这个条件是不成立的,条件不成立,那么反正整个表达式他返回的就是假。然后呢,我们再来一个,比如说叫做一百九十九, 或者呃就呃一百九十九,就一百九十九是否是否大于九十九?显然是大于的,那此时呢,他的状态值就是零。 就说呢,我们通过这种方式可以快速来进行判断,就判断一个表达式,或者说判断一个条件他是否为真。然后呢,我们也可以通过这种叫做命令的方式 来做判断。那么通过命令方式做判断的话呢,就是直接写个命令就可以了,比如说我想知道这个命令是否执行成功,我就直接写个命令, 要写个 ios etcledc, 我想判断这个命的执行成功很简单,就直接通过问号就可以了,这里是零。说命令是成功了, 我们在执行命令的时候呢,我们需要注意啊,我们命令的输出啊,他有两种情况,一个是命令的执行结果, 一个是命令的,他的一个呃状态结果,像他输出的是命令的这种执行结果,这样命令的执行结果, 而这里面是命令的状态结果,他的状态就两种,成功和失败。成功状态 零,失败状态非零,具体是几不一定,因为什么呢?因为这个值是我们程序员可以自己自己来指定的,我们一般呢,就是说成功就是零,不成功就是非零,具体是几不一定,记住这个就可以了。 那么我们在判断的时候呢?比如说现在啊,我就是只想判断这个命令是否成功,我不想要这一堆输出了,我只想判断这个命令是否成功。 那这个时候呢,就用到了我们上次课所讲到的叫按的符重定向到 dv 下的闹, dv 下的闹, 这什么意思呢?就说呢,我就是想判断这个命令他的输出结果,我给他屏蔽掉,然后呢,我通过 ico ec solodow 问号 来判断一下就完了,就不管这个命令是成功还是失败,我都给你屏蔽掉。然后呢,我通过这个命令来判断这个命令是否成功或者是否失败,那么就达到了我的目的。像在这在这种情况下,我就可以这样来写了, 我们可以再来举一个例子,比如说我现在想判断一个用户趟是否存在, 我们判断用户是否存在,方法很多,比如说我们通过格瑞鹏,格瑞鹏叫做烫 商家括号就判断一下 etc pasword 里面是否有以呃汤姆开头的行,叫做 etc pasword, 叫 etc pasword, 如果有以汤姆开头的行,说明用户存在, 如果没有,说明他们不存在,那这里的话呢,很显然没有过滤出来,没有过滤出来的话呢, 这个用户应该是不存在,用户不存在,他的值就是非零,就说明这个命令执行失败了,那就是非零。那有没有以入的开头的号呢?就或者有没有入的用户呢?入的一定是有的,但是我们可以同样做个判断, 这此时可以看到他就是一个零,通过这种方式我们就可以判断这个用户是否存在,但是呢,我们在执行这个命令的时候,这一行对于我们来说,对我们用户肉眼可见,哎,他是呃存在的,但是对于我们程序来说,这一行没有任何意义, 所以说呢,我们在执行命令的时候呢,这个命令的输出同样我给他屏蔽掉,然后呢,不管 这个用户是否存在,我都是通过这个到的问号来判断就可以了。有人可能会有个疑问说,哎,我们能够直接通过肉眼看,为什么还要通过判断呢?我们判断是通过程序判断的, 因为比如说我要写一个五百行的程序,或者写个几十行的程序,通过程序来判断指定的用户是否存在,那这个时候的话呢,你就不能单纯的通过这个命令的输出来判断了,而是应该通过这个状态来所判断。 当然了,我们除了可以这样判断用户是否存在,也可以通过叫 id, id, 比如说呢 i。


大家好,我是微可,接下来我们学习 linux 入门到精通当中的 shell 脚本编程。首先我们来看第一点, shell 脚本编程基础 需要编程呢,是一种在 unis linux 系统中使用的一个脚本编程语言,用于什么呢?自动化和批处理任务,通过编写这个需要脚本可以执行一系列命令, 控制流程,处理文件和目录等操作。 cell 它本质上就是什么呢?用户与计算机交付的一个界面参考,那么用户呢,他将要执行的操作通过 cell 传递给什么计算机?那么计算机将执行的结果通过 cell 来返回给我们的客户单,这是我们要了解的。那么了解这个之后呢,接下来我们来看 笑脚本语言,他有哪些特点,这点大家搞清楚啊。第一个就是解释性语言,什么意思? 效脚本呢?他不需要编译啊,可以什么呢?直接在命令行解释执行,这是他第一个特点。 第二个特点呢,他有一个什么强大的命令行知识,什么意思需要脚本呢?可以方便的去调用啊,各种系统命令工具和一些应用程序,并且呢进行输入一些输出, 从定向,包括管道等等这些操作。那第三个特点就是控制结构多样化,什么意思?笑脚本呢?他也支持一些条件判断啊,循环控制啊等等各种控制程序的一个结构, 他能够使得什么?我们编写一些逻辑啊,相对来讲复杂一点的程序就更加简单了。还有就是第四点,可移植性强, 由于什么呢?笑脚本,它主要基于什么标准的 unis 和 linux 的一个命令和一些工具,因此呢,它既有比较好的一颗可疑之心,在不同平台上运行啊,相同的脚本通常是没有问题的。 还有一个特点是什么呢?啊?就是快速开发及调试。 什么意思?由于他不需要什么编译过程啊,修改并测试一个需要脚本,他速度啊,是比较快的啊,他适合一些什么呢?快速言行开花及调试这方面的应用。但是我们要注意一个点, 笑脚本语言呢,相对编译型语言,执行效率啊要低一点,他不适合什么呢?处理大量一些复杂计算,包括性能非常敏感的人物啊,这就是他的一个缺点。 现在我们了解的第二个问题,就是刚刚讲的孝教本语言特等,那接下来呢,我们来看 另外一个就是笑脚本语言,他有哪些作用?作用是干什么呢?第一个就是我们所讲的自动化任务。什么意思? 通过编写这个什么呢?需要脚本可以自动化去重复性的任务,可以提高这个什么工作效率。你比如啊,批量处理数据啊,备份文件都可以进行操作。另外一个就是什么呢?就是指这个 叫做什么?写错了一个字啊,叫做批处理及调度。通过编写这个效脚本可以什么呢?批量处理一些命令或者是一些程序, 并且实现什么呢?定时调度任务,你比如啊,定时备份啊,这个数据他也可以搞定,也可以。 为什么呢?定时来清理这个日字,这就是啊 p 处理器调度他这个脚脚本语言的一个什么啊?作用另外一个是什么呢?系统监控和日字分析, 我们可以利用什么呢?笑,脚本他就可以什么监控系统的运行状态,并且你可以采取一些相应的措施,也可以什么呢?对系统日志啊进行分析,你可以提起一些自己需要一些关键的信息,来改善你系统的一个性能啊, 等等啊,还有一些命令行攻击的扩展,那通过编写需要脚本他可以什么呢?扩展命令行攻击这些功能啊,更加适应一些特定的需求,你比如制定这个命令别名啊,封章,一些常用的操作啊,都可以使用,需要交 脚本进行了完成啊,这就是我们所讲解的第一大点,需要脚本编程的有关基础知识,我就全部给他讲完了。 ok, 那么接下来我们就来看本节课当中的第二大点啊,是做什么呢?就是校脚本编程的一个案例分析。那我们在讲解这个案例分析之前, 那首先我们了解需要依法格式,首先第一个就是文件名称,需要脚本他的文件名 就是为什么点 s h 作为一个后缀必须要知道的。另外一个呢?脚本是以什么?井号感叹号在闭目下的 b s, sh 这个开头,这个我们要搞清楚。第三个是什么呢?这个井号感叹号,再加上这个目下的一个什么 bence, 注意啊, 井号感叹号是生命默认的一个解释器,为 mc 这个解释器,井号它作为什么呢?笑,脚本的注释, 脚本需要有什么?有这个可执行权限,但是我们注意, 如果你使用是 vi 编辑器的话,写出来需要脚本就需要添加他的执行权限,通过什么 set mod 三个七,然后再加文件名点 sh, 那么这个文件就可以执行了啊,这是大家必须要知道的一个需要一 法的基基础格式,那么我们了解这个语法基础格式之后,接下来我们就来看第几个呢?第二个,第二个是什么?校脚本的执行 需要脚本执行,在这里我给大家讲解的是常用的这三种,第一种是什么呢?你打个点空格,再写文件名点 sh, 什么意思? 那么如果我们使用这种方式就是什么呢?就相当于我们当前绘画需要执行脚本,就当前绘画执行脚本就是需要进程当中, 那如果我们使用什么呢? best b s a, s h, 空格,再写一个什么呢?文件名点 s h, 那么如果使用这种情况,那就相当于什么呢?就是指定使用指定那个卸药程序来直 执行这个脚本,就这个意思啊。另外一个是什么呢?硕士空格啊,文件名点 sh, 这种方式是什么呢?是当前绘画执行脚本, 那跟什么呢?跟我们下面刚刚讲的第一种格式是一样的啊,那现在我就带着大家来写一个啊,非常简单的程序,我们来观察一下,是不是就知道是怎么回事了啊? ok, 好,那现在我们看一下啊, 打开啊,点击进去输入这个口令啊,输完口令之后啊,大家还知道一个点,比如我们这个需要脚本,对不对?比如你讲这个人机交付应用程序,那人机交付他可以用图形画,对不对?就是 可以用图形画,界面就是 gy, 他也可以使用什么呢?命令行,就是我们所讲的什么 cmd, 是不是笑,就是我们将这个什么呢啊?鼠标点击啊,命令行来解释传递给计算机内核的一个程序,就这么个意思啊,完成这个人机交付, 谢尔本质上就是个解释器,是不是?嗯,所以 linux 系统当中这个谢尔解释器曾吸有很多种,是不是默认就是 b a s h, 就这个。 那比如现在你要查看啊,请注意啊,你们打开这个中单,好,这个给大家记住一下。嗯,再增加一个啊,第三个,第三个是什么呢啊?查询 linux 系统中自带的啊,自带的一个什么 shell 这个 解释程序你怎么去查?他跟着我这个速来啊,那我就在这里面,你记得输这句这个条就行了,我用高级用户,用户啊,就是管理员权限 输口令,然后再进来,你再输 a s, 在并目录下啊,并目录下了一个什么呢啊?星号 s h 结尾的,然后杠 l a 飞车 拍这照,你看现在我们所看到是闭幕下有什么 bash。 那么大多数情况下是使用这种啊,如果没有你可以安装,对不对? 嗯,那一般都是自带的,那有哪些呢?就是先要解释器,它有很多种,有一种就是这,这一种是最常用的啊,还有一种是直接有,直接有这个 s h 的,哎,这一种是我们 常用的,还一种是 s h 的啊,还有什么?还有这个 c s h 的,还有什么?还有这个 k s h 的 啊?啊? s h, 不好意思啊, s h 就这么等等,默认的啊,默认就是一种,我们用这种就行了, ok, 所以如何查询我们系统当中自带的一个需要解释程序?这个方法啊,我已经告诉大家了,就说大家在用的时候一定要注意啊,这个细节问题就可以了, 那现在我就把这个运行结果放到笔芯当中,那么大家在用的时候,执行的时候啊,要注意就行了,那现在的话我就把这个擦掉,是不是放到这个上面啊?这样更加容易去理解,是吧?在 他返到这个位置里面来, ok, 连到一起就可以了啊,你就根据什么呢?大家就根据这个一二三是不是这个来操作就可以了。那么现在我们是如何去写一个线外脚本呢 啊?这个非常简单,你在执行的时候也可以从键盘接受一些数据信息,这是完全没问题的。那么首先我们在什么呢?我几个比较简单,但是要你要写一些非常复杂的话,我有 全套专业的文档,大家对着上面来就可以了。现在我们看一下啊,首先的话我就直接在什么,直接在 当前的一个目录下,那我们创建一个脚本的一个文件夹,是吧?脚本文件夹这个名字我们就自己取啊,那我就起一个 shell, shell 什么呢? flow 的,哎,这个自己取,取完之后回车, 那么这个时候你执行完这个啊,重大命令之后,他就会自动什么在我们这里创建一个我们要处理的一个文件夹,对不对?嗯, 那么到这一步之后呢?那下一步就说你要在这个目录里面去执行,那现在我就先打开它,是吧?但是当前你这个 p w d 你只是什么?你只是桌面看到没有?赫姆 vick next top 就这么做啊,那下面的话再下一步是什么?再下一步的话你就进这个朦胧里面去就行了。谢飞车,这个手进来了是吧?进来之后 刚才我讲了啊,我们在写这个笑脚本可以用什么? vi 也可以使用,我们上次大家安装个什么 e max, 也可以使用什么 gidit, 也可以使用 vs code 啊,都可以。是不是 你可以在外面写完,然后再把它,再把它传到我们这个操系统里面去执行,也是可以的,就这么简单啊,那现在我用一个什么呀?用我们这个 gid, 我用这个有多种方法啊,多种编,编辑这个文本,哎,等一下啊, 然后 g r 里头,然后呢,再用什么呢?我就写一个 shell, shell 什么呢? test 点 s h 飞车, 当我按回车之后,你看到啊,这是不是弹出这么一个啊?框框了,是不是啊,这个框框里面就是你要写这个脚本呢, 一般情况下我们要声明一下这个解释期,那么井号加感叹号再写个并下面有一个什么呢? best, 这第一个就写完了,写完之后呢?我再,比如啊, 现在我写什么呢?我写三个边呢,比如 namname 等于什么呢?加上美颜符号,我这个名字可以自取啊。第一是吧,然后啊 ag, ag 的话我就写一个什么,写一个, 嗯,五是吧?啊,二,哦四,然后再来一个什么 garden, g, n, d, r, 那美颜符号再写一个是吧?六,那么放完二 二四六是吧?写完之后我们通过输出,输出就 e c, h, 我们双引号啊, name n a m e 等于多少等于多少话用美颜符号后面就跟对应的一个变量嘛,就可以了。这第 一个啊啊,第二个我们就通过什么呢?爱奇,爱就等于什么呢?美颜符号后面,我这个我会教大家啊,后面专门有个文档啊,这输出第二个,接着你就输出第几个来?第三个啊,写第三个,输出第三个等于美颜符号对不对? g n d g 一呀,是吧?啊,写完之后我们就双引号,写完之后你要保存对不对? 保存就点击这个赛物,或者你看见 s 也可以点一下,是不是就就有反左边有反应了啊,关闭是吧?啊,关闭之后呢,你看现在我们桌面上是不是就多了这么一个文件呢, 对不对?现在就说你的目标要去干什么呢?要去执行这个文件,执行这个文件的方法刚才已经告诉大家了啊,怎么 去执行呢?有三种方法直接执行,这执行 l s 杠 l 啊,我们看一下是不是第一个执行,你就用 bans b a, s h, 再写上什么呢? 再写上这个刚才那个名字啊,叫做谢点 s h 号,你要为三个变量负值,第一个比如写微可,第二个呢?啊,年龄我就写个,写个五十,然后呢再写这个性别,我写个 man 是吧?推车,你看就分别将这个结果输出来,哎, 你发现没有,结果不出来了,第二个结果不出来,不出来,那肯定是有问题的,对不对啊?那么接下来你再回来查看一下 g r 里头,然后再写上什么呢? cell text, 点 s h, 回车看一下啊,好,那么现在我们 回头过来看一下,你就知道了,到底他的错误在哪个地方,是不是?来我们查一下啊,不要着急, 那么粗点,我们已经找出来了,为什么呢?你看啊,刚刚我们所看到这个结果,你看他出现的是什么?输出结果五十对不对?为什么呢? 等一下啊,告大家错在哪里?你看这里我写的是什么? m 的参数,我从键盘接受的是几还是二? 二就相当于什么呢?二就相当于你输的什么?五十就相当于五十给谁啊?就相当于五十给内蒙了,你后面这两个四,你看这个是四六就没有了,是不是?二就给第一个吗?所以这种方式就不对是不是? 所以刚才啊,给大家测试一下,那我把它改为什么呢?第一个啊,第二个再改为什么?第三个以此类推。所以你输入这个 vc 五零迈,那么就空,别对应 name at 啊,噶的,就这个意思。好,写完之后再一次保存啊,点击保存 擦掉, ok, 再一次清除。那么现在我们就看一下啊,不要着急,是不是错误,你不要怕啊,然后 as 杠 l 啊,就可以了。那现在我们 b s h, 然后再写上这个啊, cell test 点 s h 是吧啊? vik 再写什么呢?比如写个五十,再写一个 man 飞车, 你看结果就全部出来,就这么简单啊,这第一种执行方式,还有第二种执行方式就是 source 啊, shell 再跟着刚才来的这个就行了。 week 四十, me 回车是不出来了啊,还有一种点 shell 多种方式执行啊,再写个 week 三十 们非常,你看看不出来。所以啊,第一个需要脚本编程的案例分析,我就全部给他讲完了,那么大家在学的时候不懂啊,没有关系,随时跟我沟通就行了。那现在我就教那个运行结果子啊,对,还有一个就是 catch 一下啊, catch 一下什么呢? shell 回车就是执行那个脚本那个代码啊,我就看到这里是吧,不然的话怕大家看不到是吧? ok, 咦,框再来啊,嗯,缩小一下 没有关系是吧?好,再来看一下。 ok, 好,那现在这个我们就全部啊,案例分析我就全部给他讲完了,这个是我们实战啊,案例 分析如下。 ok, 好,这就是本节课给大家讲解的一个案例,我就全部搞定了。那么如果大大大家对这个案例啊不太清楚,没有关系,因为大家还有很多基础要学,是不是啊? ok, 那么刚才给大家讲解的已经将什么呢?啊? shell 脚本编程基础搞定了,还有一个非 非常简单的案例分析也讲完了,那么现在第三点是什么呢?我们要学好这个校脚本编程就必须要掌握如下基础,比如啊,变量是什么意思?咱们去定是吧?啊,包括这个什么呢?包括他的一个变量的定义规则啊, 啊,输出变量值,这刚才用到,你看美颜符号变量名吗?刚才用到了啊,然后什么呢?数据类型啊?啊,数据的一个什么呢?啊?比如输入输出怎么做? 还有判断基础,是不是?比如比较两个数的大小这些符号,还有这个什么呢?比较两个字符上是否相等判断这个文件,还有关于美颜符号跟这个问号啊,流程控制,比如衣服 条件判断,单分之还有什么呢?双分之及多分之,怎么做啊?这些语法啊,还有这个组合条件判断,还有组合条件判断,他的一个格式啊, case, 这个条件判断再往后面什么呢?复循环, 是不是还有什么呢?对应的这个啊,列表对象的一个写法怎么做?还有外要循环 啊,足行读取文件以及循环控制, 包括这个什么呢?对应的一个位置参数啊,刚刚我们用到了是吧?啊,后面这些相关的一些什么呢?函数基础是不是?函数的作用是什么?函数怎么去定义?包括怎么去调用这个函数? 说到返回词啊,这些我们通通还搞定,是不是啊?第四点是什么呢?如果大家要深入研究编写一些非常啊强大的一个脚本的话,在这里的话呢?啊,威克老师给大家提供的是什么?需要脚本编程的一个专业级资料, 比如这个文件的安全与前线,比如使用 find 啊叉, grex, 是不是后台执行命令这些怎么做出来的啊? ok 啊,有关的一个资料我已经给大家准备好了,大家就直接什么呢?直接来领取就可以了,就在这里看到没有? ok, 好,那么我们本节课内容就到此结束了啊,咱们下一次课,嗯,再见。有关于一些命令啊,大家不知道怎么用,还有一些什么,比如用户怎么管理啊,包 这个心灵监控这一块呀,是不是怎么安装一些软件,大家就直接按照我这个从第一讲到这个什么,后面这一讲就全部的能够搞定, dnax 入门到精通的一个什么开发需要的一个基础功底就全部搞定了。 ok, 那本节课我们就讲完了啊,咱们下一次课啊,再见。