오래된 iMac 5,1에 기본 OS Juno를 설치했습니다. 컴퓨터는 32비트 EFI를 사용하고 기본 운영 체제인 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 프로그램을 사용하여 32비트 EFI Mac에서 부팅하도록 isos를 수정하는 방법을 설명합니다. 해당 사이트에서 isos를 다운로드하는 대신 Matt의 사이트에서 c 프로그램을 다운로드했습니다. 여기에서 프로그램 텍스트를 찾을 수 있습니다.https://dedicated.mattgadient.com/linux-mac-iso/isomacprog.c.txt
나는 Bytw와 같은 것을 사용하여 c 프로그램을 컴파일하고 cc -g -Wall isomacprog.c -o isomacprog
이를 공식 기본 OS Juno 배포판을 수정하는 데 사용했습니다 ./isomacprog elementaryOSJuno.iso
. 수정된 iso는 Matt가 직접 수정한 iso와 동일한 MD5 체크섬을 가지므로 Matt는 배포판에 아무 것도 하지 않았을 것입니다. ISO를 DVD로 구워서 iMac에 설치했습니다. 그것은 아주 잘 작동합니다. 하지만 아직 컴퓨터를 인터넷에 연결하지 않았습니다. 아직 사용하기에 안전한지 확실하지 않기 때문입니다.
저는 C 프로그래밍에 대해 아무것도 모르기 때문에 이 작은 C 프로그램이 배포판을 부팅 가능하게 만드는 것 외에 다른 작업을 수행하는지 묻고 싶었습니다. 이 배포판은 여전히 사용하기에 안전합니까, 아니면 일종의 바이러스가 포함되어 있습니까?
답변1
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...은 기계어 코드가 아니라고 생각합니다) 페이지에서 수행되는 작업에 대한 설명이 더 의미가 있을 것입니다.
또한 패키지의 체크섬을 확인하여 가상의 백도어(예: debsums
Debian)를 탐지할 수 있습니다. 모두 0을 쓰면 체크섬이 양호하게 유지되는 방식으로 프로그램이 중단되지 않습니다.