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