網址: https://www.youtube.com/watch?v=AMMOErxtahk&t=260s
影片內容就先跳過,主要先看影片裡的指令
什麼是base64?
2的6次方就是64,所以6個位元(0或1)組成1個base64單元
所以要怎麼把東西轉成base64單元?
如圖Man轉成base64單元:
1找Man的二進位ASCII碼
https://zh.wikipedia.org/wiki/ASCII
2每六個位元就是一個base64單元,所以24/6=4,有4個base64單元
3把這4個二進位碼轉成十進位後,在對應base64索引表,就可以找出哪個字母了
https://zh.wikipedia.org/wiki/Base64
那是剛好是6的倍數,才這麼簡單就可以轉成base64單元,如果是4個英文字
就有8 * 4=32個位元,32/6就會餘2。如果是5個英文字,就會有8 * 5=40個位元,
40/6就會餘4
所以4個英文字的狀況就會是:32個位元+4個0=36個位元,這樣就可以是6的倍數了,然後一樣每六個一組,就會有36/6=6個base64單元,但是為什麼有些base64單元最後會有=號,因為規定如果多一個英文字(每3個英文字一組,所以4個英文字就會多出一個)就會有兩個=,如果多出兩個英文字就會有一個=
例如: Mano變成Base64編碼就會是TWFubw==
Manot變成Base64編碼就會是TWFub3Q=
直接轉換的網址
http://www.convertstring.com/zh_TW/EncodeDecode/Base64Encode
網址:
http://codingstandards.iteye.com/blog/934928
範例一:如果沒有加-n,把英文字翻成Base64就會有換行符號
如圖:TWFucg==不是Man的Base64編碼,而是Manr的Base64編碼
範例二:把Base64編碼轉成英文字。
TWFu就會變成Man
TWFuCg==就會變成Manr(換行)
不過這邊有沒有加-n,好像沒什麼不同
範例三:
1一開始先創個base64編碼的檔(nano testbase64)
2接著把把Base64編碼轉成英文字存到另一個新檔(save1)
3cat save1就會有英文字Man了
接著講到hexdump
使用-C參數,顯示結果為3列(文件偏移量、字節的十六進位、ASCII字符)
一樣可以從這邊去對照
https://zh.wikipedia.org/wiki/ASCII
什麼是文件偏移量?
大概就是目前檔案讀到哪個字母吧,像這邊save2有6個字加兩個換行符號,所以是8
Hexdump還有其他用途,像是轉成八進位
接著講到比較兩個文字檔的指令:
vimdiff 檔案1 檔案2
vim文字編輯詳細教學: http://linux.vbird.org/linux_basic/0310vi.php#vi_vim_why
vim文字編輯簡單使用應該就是:
ESC--> 一般模式
i--> 編輯模式(可以打字)
在一般模式-->!wq-->更新並存檔
接著講到binwalk
這邊還不了解binwalk是什麼,總之先安裝
https://www.smwenku.com/a/5b85e4042b71775d1cd4724f/
照著網址的步驟完成應該就可以binwalk了,我的步驟是:
1不確定要下載哪個python才會成功,所以就全部載了
2然後先更新全部的軟體
3執行這個指令
4 接著執行這3個指令
一 git clone https://github.com/ReFirmLabs/binwalk.git
二 cd binwalk
三 sudo python setup.py install
4接著測試一個文字檔,和一個png檔
學習心得:目前還不知道很多,以後有空再補