Linux

應用 c 程序後使用發行版仍然安全嗎?

  • January 15, 2019

我在舊的 iMac 5,1 上安裝了elementary OS Juno。電腦使用 32 位 EFI,無法啟動基本 OS Juno,因此我決定按照 Matt Gadients 指南進行一些解決方法。您可以在此處找到解決方法:https ://mattgadient.com/2016/07/11/linux-dvd-images-and-how-to-for-32-bit-efi-macs-late-2006-models/

我想知道這個修改後的發行版是否仍然可以安全使用?

Matt Gadient 描述瞭如何使用一個小 C 程序修改 iso 以使其可在 32 位 EFI Mac 上啟動。我沒有從該站點下載 iso,而是從 Matt 的站點下載了 c 程序,您可以在此處找到文本:https://dedicated.mattgadient.com/linux-mac-iso/isomacprog.c。文本文件

我用它編譯了 c 程序,cc -g -Wall isomacprog.c -o isomacprog 並用它修改了官方的基本 OS Juno 發行版,方法是像./isomacprog elementaryOSJuno.iso Bytw 一樣:修改後的 iso 具有與 Matt 自己修改的 iso 相同的 MD5 校驗和,所以他 definitley 沒有對發行版做任何其他事情. 我將iso刻錄到DVD並安裝在iMac上。它執行得很好。但是我還沒有將電腦連接到網際網路,因為我不確定它是否仍然可以安全使用。

我對 c 程式一無所知,所以我想問一下這個小 c 程序是否除了使發行版可啟動之外還有其他功能嗎?使用這個發行版是否仍然安全或包含某種病毒?

您可以使用,例如,將原始圖像與修改後的圖像進行比較cmp -l。(對於真正的偏執狂,你當然應該在沒有執行 C 程序的系統上做)。該 C 程序似乎只是將 1984 字節設置為 0:

if (lseek(fd, lba * 2048 + 64, SEEK_SET) == -1)
 goto err_ex;
memset(buf, 0, buf_size);
ret = write(fd, buf, buf_size);

…其餘部分看起來像是錯誤檢查並找到寫入這些 0 的偏移量。

向某物寫入 0可能是後門(不是病毒),例如,通過在某處取消身份驗證。但這讓我覺得不太可能(我不認為 0x00… 是機器程式碼 noop),並且它在頁面上所做的描述更有意義。

你也可以通過驗證你的包的校驗和來檢測這個假設的後門(例如,debsums在 Debian 上);寫全 0 不會以保持其校驗和良好的方式破壞程序!

引用自:https://unix.stackexchange.com/questions/494654