Re: [情报] 9/10拆包搬运+登入图(解程式码)

楼主: neil987 (R5大小姐-EX人品崩坏)   2020-09-13 00:59:39
: https://i.imgur.com/ZXjoMcL.png 有兴趣的人就解这段程式码ㄅ
我这不就来了吗(′・ω・)
稍微做一点解释 如果有错误欢迎指正
#define true false
preprocessor macro
#define 的行为是在编译器之前建立macro 替换掉要所有档案里要替换的文字
以#define true false来说
就是把所有程式码里面的true替换成false
Thread.sleep(24*60*60*1000)
程式休眠24小时
[$[$RANDOM%6]==0]&&rm -rf
Linux指令 这指令是俄罗斯轮盘
$RANDOM会回传 0~RAND_MAX的数字
如果这个数字除以6后余数等于0的话 就会触发后面的 rm -rf指令
rm -rf 就是 删除root资料夹下的所有档案
基本上就是整台电脑GG的意思 所以是一个俄罗斯轮盘的IT梗
alias cd='rm -rf'
alias为linux设定指令别名
cd为linux用来切换资料夹的指令,rm -rf上面有提过
所以上面的指令等于 把cd设定为 rm -rf 的别名
设定后 使用者如果想用cd切换资料夹 就会把root资料夹删光
:(){ :|:& };:
跟linux内的bash有关,俗称fork bomb
简化(?)过后为:
: () {
: | : &
}; :
前面的 :() 意思是定义一个名字为 ":" 的function,此function没有参数
:|: 的意思是执行":"function的regression1并将输出结果pipe到另一个":"的process
也就是执行一次会生出两个":" function
然后"&"为背景执行
";"为 ":" function的定义终止符号
最后的":"就是在函数定义结束后 执行一次 ":" function
执行后会以2^N的速度新增process,会导致占用的CPU与RAM越来越多
最后会瘫痪整个系统,基本上只能重开机处理
typeof NaN
Javascript 的 NaN型态
全名是Not a Number
因为计算机科学的定义,所以在Javascript用typeof去查询NaN的型态的话
会回传 number 型态 但是它是Not-a-Number 有点矛盾
9+"1"==92-"1"
Javascript里的运算子与比较子有明确规定不同型态的值进行运算时的规则
左式 9 + "1" 为 number + string 规范number须转为string
而 string + string = string
因此左式 9 + "1" = "9" + "1" = "91"
右式 92 - "1" 为 number - string 因string不能相减,所以规范string须转为number
而 number - number = number
因此右式 92 - "1" = 92 - 1 = 91
又 "==" 为 一般相等比较子,根据规范:
当string(A)与number(B)一般相等比较时,需做以下转换
ToNumber(A) === B
所以原式: "91" == 91 => ToNumber("91") === 91 => 91 === 91 => true
484很神奇呢(′・ω・)a
HellWorld
通常学习程式第一件事情就是学习如何印出hello world
至于HellWorld嘛......(′・ω・)
0.1+0.2==0.3
这又是Javascript的问题
javascript对于所有number的计算都是采取64bit float型态
且使用的浮点数标准为IEEE 754
0.1转换为二进制的IEEE 754后为 0.0001 1001 1001 1001…
是无限循环的 然而IEEE 754 只能纪录52个尾数
因此存在误差
0.2同理,再转换成IEEE 754后为 0.001 1001 1001 1001…
因此此两数本来就有误差 相加之后 误差就更大了
所以在javascript里面 0.1+0.2==0.3 => false
long long ago;
long long 为int64资料型态
取值范围为-9,223,372,036,854,775,808~9,223,372,036,854,775,807
因此在懂程式的人眼里 这段程式的意思是 宣告一个ago变量 资料型态为 long long
而不懂程式的人眼中 这段话就有很久以前的意思
作者: EEK (水纹上的双子舞)   2020-09-13 01:02:00
好强
作者: AlisaRein (AlisaR)   2020-09-13 01:05:00
推,其实我看不懂
作者: steelgate (::ALICE)   2020-09-13 01:08:00
总之 全部都是错误示范 好码农不要学XD
作者: AlisaRein (AlisaR)   2020-09-13 01:08:00
恩恩恩,原来如此 跟我想的一模一样(棒读)
作者: yinyang102 (いんいんえん)   2020-09-13 02:19:00
虽然看不懂但是先推就对了
作者: d630200x (DOGE)   2020-09-13 03:51:00
自始至终我还是觉得JS很智障
作者: whisperXD (微语)   2020-09-13 04:38:00
推 除了bash那边没联想到 其他都知道ww*fork bomb
作者: chikasa (结束就是一个开始)   2020-09-13 07:28:00
要当一个码农很简单,会上stackoverflow就好 (X
作者: JUSTMYSUN (小飞蚊)   2020-09-13 07:39:00
赶快推 不然别人会以为我们看不懂
作者: MultiCam (地联军迷彩)   2020-09-13 10:49:00
感谢解释fork bomb
作者: Jimmy030489 (jimmychen)   2020-09-13 13:30:00
实验室的妮尔(O
作者: bautz (The end)   2020-09-13 19:35:00
跟剧情的关连性不知道在哪里
作者: allanwalker (不摄取糖份 就是不对劲)   2020-09-13 22:26:00
我看不懂 但是推爆?
作者: steelgate (::ALICE)   2020-09-13 23:14:00
搞不好云母的码农都农这种码抗议没有扩编(X
作者: item948 (绝喜言)   2020-09-14 12:58:00
所以这段跑出来是什么?(程式文盲)
作者: ptgeorge2 (左轮小手枪)   2020-09-14 17:11:00
跟我想的差不多
楼主: neil987 (R5大小姐-EX人品崩坏)   2020-09-14 17:28:00
这几段不是同一种语言 所以没有所谓跑出来是什么
作者: Madcorn (妹控)   2020-09-18 14:03:00
师爷 你给翻译翻译 什么叫做Hell world

Links booklink

Contact Us: admin [ a t ] ucptt.com