当前位置:首页 > 网络安全 > 正文内容

装黑客的一些代码笔记本电脑(怎么在电脑上写代码装黑客)

hacker2年前 (2022-06-10)网络安全159

我们常常会在一些好莱坞电影大片里看到黑客高手,在电脑前轻松“黑”进别人的安全系统的场景。那纯熟自如地输入一大堆复杂的代码,瞬间完成入侵,是不是很羡慕?

电影The Matrix (《黑客帝国》)则是用通过现实与虚拟世界的抗争,摆脱“矩阵”的计算机人工智能系统的控制,尤其是自带超炫酷字符雨背景,总是无时无刻不在散发着黑客无所不能、神出鬼没的魅力。

今天,小编教大家尝试用Python制作一个高仿的matrix字符雨的效果。

在屏幕上输出文字,首先想到的是使用print函数

>>>>

代码原文:

importtime

text="Hello world!"

forcharintext:

print(char)

time.sleep(0.3)

time.sleep(1)

但是,print函数的功能是:换行➩输出字符➩换行,想要在命令行中通过刷新屏幕来输出文字是做不到的

展开全文

无奈耿直的print函数始终保持换行又换行的底线,只能另择他法!

Print函数达不到目的,我们把目光转向更底层的机制--使用标准输出stdout

>>>>

代码原文:

importsys

importtime

text="Hello world!"

forcharintext:

sys.stdout.write(char)

sys.stdout.flush()

time.sleep(0.1)

sys.stdout.write("r"+" "*len(text)+"r")

sys.stdout.flush()

forcharintext:

sys.stdout.write(char)

sys.stdout.flush()

time.sleep(0.1)

sys.stdout.write("n")

sys.stdout.flush()

time.sleep(1)

使用sys.stdout来输出,终于可以在一行内刷新文字了,但是无法回到上一行,遇到换行只能继续向下输出了

使用stdout,仍然一路向下

不得已只好祭出更加底层的杀器-curses库,curses库是linux底层提供的方法库,可以直接操作显示屏的输出和刷新,而不是以字符和换行的形式使用命令行输出,这一定能满足我们的需求

>>>>

代码原文:

importcurses

importtime

importrandom

whileTrue:

stdscr=curses.initscr()

width=80

height=24

text="我在這裏,來抓我呀"

try:

stdscr.clear()

装黑客的一些代码笔记本电脑(怎么在电脑上写代码装黑客)

x=random.randrange(1,width)

y=random.randrange(1,height)

ifx+len(text)<width:

stdscr.addstr(y,x,text)

stdscr.refresh()

time.sleep(0.5)

exceptKeyboardInterrupt:

curses.endwin()

exit(0)

好了,现在开始放大招了,编写matrix的字符串效果具体如下↓

先简单设计一下,做一个能填满屏幕的字符串,中间夹杂空格,只要让这个字符串在屏幕不断滚动就能营造出字符雨的效果

>>>>

代码原文:

importcurses,time,random

defrefresh_str(string):

returnstring[-1]+string[0:-1]

defmain(stdscr):

height,width=stdscr.getmaxyx()

string=""

length=0

foriinrange(height*width-1):

iflength==0:

装黑客的一些代码笔记本电脑(怎么在电脑上写代码装黑客)

length=random.randrange(int(height/4),int(height/2))

roll=random.random()

ifroll>0.5:

char=" "

else:

char=chr(random.randrange(48,50))

string+=char

length-=1

whileTrue:

string=refresh_str(string)

curses.init_pair(1,curses.COLOR_GREEN,curses.COLOR_BLACK)

count=0

foriinrange(width):

forjinrange(height):

ifcount<len(string):

stdscr.addstr(j,i,string[count],curses.color_pair(1))

count+=1

stdscr.refresh()

time.sleep(0.03)

curses.wrapper(main)

代码有了,现在试试看吧!

奇迹发生了,效果不错哦!但是…好刺眼

前面的程序有两点问题,一是字符是运动的,而原版字不动只是黑色部分动,二是字符不是随机变换的,看着不够逼真那么,再更新我们的算法

根据已经存在的字符长度,随机生成字符和空格,并以合理的几率落下,形成真正的字符雨

>>>>

代码原文:

importcurses

importrandom

importtime

defmatrix(width,height):

matrix={}

foriinrange(1,width):

forjinrange(1,height):

matrix[(i,j)]=" "

whileTrue:

foriinrange(1,width):

ifi%2==0:

forjinrange(height-1,1,-1):

ifmatrix[(i,j)]==" ":

ifmatrix[(i,j-1)]!=" ":

matrix[(i,j)]=chr(random.randrange(33,127))

else:

continue

else:

ifmatrix[(i,j-1)]==" ":

matrix[(i,j)]=" "

else:

continue

roll=random.random()

ifroll>0.5:

ifmatrix[(i,1)]==" ":

is_space=True

else:

is_space=False

length=0

forjinrange(2,height):

ifis_space==Trueandmatrix[(i,j)]==" ":

length+=1

elifis_space==Falseandmatrix[(i,j)]!=" ":

length+=1

if(is_space==Falseand

length<random.randrange(height*45//60,height*5//6)):

matrix[(i,1)]=chr(random.randrange(34,127))

elif(is_space==Falseand

length>random.randrange(height*45//60,height*5//6)):

matrix[(i,1)]=" "

elif(is_space==Trueand

length<random.randrange(height//4,height//2)):

matrix[(i,1)]=" "

elif(is_space==Trueand

length>random.randrange(height//4,height//2)):

matrix[(i,1)]=chr(random.randrange(34,127))

yieldmatrix

defmain(stdscr):

height,width=stdscr.getmaxyx()

m=matrix(width,height)

whileTrue:

curses.init_pair(1,curses.COLOR_GREEN,curses.COLOR_BLACK)

curses.init_pair(2,curses.COLOR_WHITE,curses.COLOR_BLACK)

m_now=next(m)

foriinrange(1,width-1):

forjinrange(1,height-1):

ifm_now[(i,j+1)]==" "andm_now[(i,j)]!=" ":

stdscr.addstr(j,i,m_now[(i,j)],curses.color_pair(2))

else:

stdscr.addstr(j,i,m_now[(i,j)],curses.color_pair(1))

stdscr.refresh()

time.sleep(0.03)

curses.wrapper(main)

终极效果↓↓↓

Emmmmm….效果不错,非常棒

思考

虽然最终完成的效果非常拟真,但我们可以继续改进,观察原版的效果我们可以知道,字符并不是随机出现的,而是偶尔有连续的有意义的字符串,还夹杂有日文字符和编程语言碎片,你能否设计出这样的算法使我们的matrix更加逼真呢?可以留言哦!

感兴趣的小伙伴可以入群讨论哦!

扫描二维码推送至手机访问。

版权声明:本文由黑客接单发布,如需转载请注明出处。

本文链接:http://therlest.com/109651.html

分享给朋友:

“装黑客的一些代码笔记本电脑(怎么在电脑上写代码装黑客)” 的相关文章

【紧急+重要】勒索病毒解决方案!附:MS17-010补丁下载

  滚动更新:2017年5月13日16:57:22   游侠安全网(良心网站,站长先贴上注意事项和解决方法!防止你看本文的时候就被加密了!   1、本次共计是自动化攻击,利用了Windows的MS17-010。但苹果的MacOS用户不用得意,因为在昨晚之前,我这里得到的好几起勒索攻击案例都是针对...

福田小货车新车价格 「福田小卡之星3柴油版」

另一种是祥锐3360-490动力的。去二手车.发动机带涡轮增压方向助力国四3点.单排货厢3米7长,如果你不上高速,柴油车,刘巷有卖的,应该属于准新车,3W8-4W4左右。 福田时代小卡之星3全柴485」该车子才不到一年车龄,国四的价格要比这个贵1万多,不进市区的话,厢式货车贵5千元.国IV的轻卡价格...

兼职收入贷款好贷吗 「打零工收入证明范本」

银行申请信用卡的话,兼职。已连续在我公司。 一些银行是可以的,有还款能力就可以申请贷款。承担清偿责任。比如军人、为人民币。 只是打一个电话而已「直接按照给你的收入证明里面需要填写的,可以好贷申请办理贷款。有的规定兼职收入不得超过主收入的50。 如名下房产范本、对于兼职收入的金额以及流水账单,某公司借...

Webshell安全检测篇(1)-根据流量的检测方法

一、概述 笔者一直在重视webshell的安全剖析,最近就这段时刻的心得体会和咱们做个共享。 webshell一般有三种检测办法: 依据流量方法 依据agent方法(本质是直接剖析webshell文件) 依据日志剖析方法 Webshell的分类笔者总结如下: 前段时...

纯钛多少钱一斤,钛合金回收多少钱一斤

1000/粗晶只要700/纯钛是银白色的金属,1点5钛板,钛合金它是α相固溶体组成的单相合金,行情非常低迷,TC4细晶也就。 金属钛回收价格随着钛的市场价变化而变化,楼上的价格是从哪儿来的。不同型号,各类价格如何?请高手相助!至于合金钛,不同地区价格也不一样,52000一吨遵义的海绵钛。 元-30元...

黄埔燃料油现货价格_今日燃料油市场价格

这句话是指期货比现货价格高100元吗,柴油,1%的权重都没有,通过技术指标和消息面影响来分析的。有的有点差,点88 国际燃料油收盘价涨跌新加坡。244点5 国内燃料油,燃料油,作为成品油的一种,屈居第二位,有的高点有的低一点,2。97#汽油5点38元/价格升,在原油的加工过程中,常关注的消息为OPE...

评论列表

美咩岁笙
2年前 (2022-06-10)

5:ifmatrix[(i,1)]==" ":is_space=Trueelse:is_space=Falselength=0forjinrange(2,height):ifis_space==Trueandmatrix[(i,j)]==" ":length+=1elifis_s

可难野
2年前 (2022-06-10)

m.randrange(48,50))string+=charlength-=1whileTrue:string=refresh_str(string)curses.init_pair(1,cur

夙世绿邪
2年前 (2022-06-10)

么,再更新我们的算法 根据已经存在的字符长度,随机生成字符和空格,并以合理的几率落下,形成真正的字符雨>>>>代码原文:importcursesimportrandomimporttimedefmatrix(width,height)

北槐朻安
2年前 (2022-06-10)

yboardInterrupt:curses.endwin()exit(0)好了,现在开始放大招了,编写matrix的字符串效果具体如下↓先简单设计一下,做一个能填

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。