2006-07-04 오전 12:22:52 Hit. 3895
최근 누군가가 바이러스가 삽입된 페이크 철권 iso로 psp를 망쳤다는 이야기가 나와서
좀 더 안전한 psp사용을 위해서 제보를 구합니다.
긴 글이 되겠지만,
부디 끝까지 읽어주시고,
제보를 부탁드립니다.
1. psp용 바이러스란 무엇인가
psp용 바이러스는 아주 단순한 동작을 합니다.
대부분의 게임 로더들은 당연스럽게 psp를 커널모드로 동작시킵니다.
psp의 커널모드에서는 psp내부의 32메가 낸드플래쉬에 저장되어 있는
psp의 펌웨어에까지 접근할 수 있는 막강한 권한입니다.
이런 커널모드를 이용해서 1.5버전에서도
배경화면이나 부팅화면의 동영상을 바꿀 수 있는 것입니다.
psp내부의 펌웨어의 모습을 볼 수 있는 것이 바로 데브훅에 사용되는 가상 펌웨어입니다.
psp메모리스틱에 설치되는 dh폴더안의 150, 200, 250이
바로 psp내부의 낸드플래쉬의 파일구조를 본뜬 것입니다.
그 디렉토리를 잘 찾아보시면 psp의 배경화면인 01~12.bmp와
홈브류등의 기동시에 나타나는 동영상(PMF)도 모두 찾으실 수 있습니다.
psp의 바이러스는 이 내부 낸드플래쉬에 저장되어 있는 펌웨어 파일중에
부팅에 큰 영향을 미치는 몇몇개의 파일을 삭제합니다.
모든 내부의 낸드플래쉬 내용을 삭제하면 더욱 좋겠지만,
굳이 그럴 이유도 없습니다. 시간도 오래 걸리고...
몇몇 중요파일만 없어져도 psp는 부팅자체가 안되며
usb연결은 물론 어떠한 동작도 일체 불가능하므로
외국에서하는 말대로 psp는 '벽돌'이 되어 버립니다.
이것을 복구하려면 강제적으로 psp내부의 낸드플래쉬에 접속해서
펌웨어를 덮어씌워야하는데...
이것은 가능은 한 것으로 보입니다...
왜냐하면 소니의 a/s센터에서는 이런식으로 파괴된 psp를 실제로 복구하고 있으니까요.
하지만, 이런 복구장비는 일반적으로 구할 수 없을 뿐더러,
psp의 분해와 병행해서 사용되는 장비일 경우 더더욱 일반적으로는 손댈 수가 없는 부분입니다.
즉, 바이러스로 파괴된 psp는 a/s센터가 아니면 현재 복구할 어떠한 방법도 없다는 것입니다.
하지만 로더등으로 손실된 psp는 공식적으로는 a/s를 해주지 않겠다고 선언하고 있습니다.
시치미 뚝떼고 운좋고 수리를 받을 수도 있지만...
재수 없으면 수리를 거부받으면 그 psp는 영영 '벽돌'입니다...
아니면 모드칩을 달아서 부활시키는 방법 정도밖에는 생각할 수 없군요... (이쪽도 난관...)
2. 바이러스를 찾는 방법
한마디로 말해서 제가 생각하기에는...
psp용 바이러스를 사전에 100% 찾는 방법은 존재하지 않습니다...
일단 psp용 바이러스 파일의 본체는 iso를 데몬등을 이용해서 마운트해보면,
PSP_GAME이라는 디렉토리가 있고,
이 안에 SYSDIR과 USRDIR이라는 2개의 디렉토리가 나옵니다.
이중에서 USRDIR에는 게임의 데이터가 들어가 있으며,
SYSDIR에는 게임을 구동하기 위한 부팅정보가 들어가 있습니다.
PC게임으로치면 SYSDIR에는 EXE파일이 들어가있고,
USRDIR에는 그밖에 게임 실행시에 사용되는 데이터가 들어가있다고 보면 됩니다.
여기서 중요한 것은 SYSDIR로서 이 내부에는 보통 2개의 파일이 존재합니다.
BOOT.BIN과 EBOOT.BIN입니다.
이 두개의 파일은 게임을 어떤 식으로 구동해야하는지에 대한 정보를 담고 있는 파일로
PC게임의 EXE파일과 동일한 역활을 수행합니다.
psp의 로더는 이 2개의 파일을 읽어들여서 게임을 실행하고,
이 2개의 파일이 명령하는 동작을 실행하도록 만든 프로그램입니다.
문제는 PC용 바이러스도 EXE를 동작시키는 순간에 감염되는 것이 기본이듯이...
저 BOOT.BIN과 EBOOT.BIN에 정상적으로 게임을 실행하라는
정보만 들어있으면 상관이 없는데...
저 BOOT.BIN과 EBOOT.BIN을 조작해서 엉뚱한 정보...
즉, '펌웨어를 삭제하라'같은 정보를 심어둘 수 있다는 것이고...
그것이 여기서 말하는 '바이러스 iso'의 정체입니다.
실제로 일본계 P2P에서 돌고 있는 iso에는
이런 종류의 바이러스 파일들이 상당수 아직도 돌아다니고 있습니다.
그리고 이런 바이러스 iso파일들은 초기에는 아주 어설픈 구성으로
여러가지 미리 간파될 수 있는 약점이 있었지만...
최근의 바이러스 파일들은 사실상 전혀 약점이 없는 완전무결한 형태로 생산되고 있습니다.
예전에 어설프게 만들어진 바이러스는 다음과 같은 약점이 있었습니다.
① BOOT.BIN파일과 EBOOT.BIN파일의 용량이 크게 차이가 나는 경우가 있었음
② PSP용 로더로 실행하지 않고 마운트만 할 경우 미리보기 이미지가 안 나오거나
이상한 것으로 나오는 경우가 있었음
③ 데몬등의 iso를 볼 수 있는 툴로 내부를 보면 PSP_GAME디렉토리의
아이콘 파일인 PNG파일들이 없거나 이상한 것으로 대처 되어 있음
④ USRDIR이 존재하지 않음
하지만 최근에 만들어진 바이러스는 이런 약점이 전혀 존재하지 않습니다.
우선 iso를 진짜를 사용합니다.
즉, 진짜 게임 iso에 BOOT.BIN과 EBOOT.BIN만을 바꿔치기 합니다.
이것만으로 2번 3번 4번의 방법으로는 알아볼 수가 없어집니다.
또한 과거에는 PSP에서 메인으로 구동시킨다고 보여지는 BOOT.BIN만을
바이러스가 탑재된 파일로 바꾸고 EBOOT.BIN은 오리지널을 그대로 넣어서
두 파일 사이의 용량이 크게 차이가 나서 들통나는 경우도 있었습니다.
원래라는 이 두 파일은 1k이상의 용량차이가 나지 않도록 되어 있습니다.
하지만, 최근에 제가 된통 당했던 '뇌력 트레이너2'의 바이러스 iso는
위의 모든 문제를 완벽하게 해결한 녀석이었고...
저는 이 녀석에게 psp를 한대 헌납해야했습니다.
물론 위에 말한 모든 방법으로 검사를 미리 했었지만...
미리 알아낼 수는 없었고...
결국 구동으로 바이러스라는 사실을 알려준채 사망했습니다...
이하의 결과...
단순히 iso만 보고서는...
저는 절대로 파일이 바이러스인지 진짜파일인지 알 수 없다는 결론을 내렸습니다.
실제로 정교하게 만들어진 바이러스 iso는 내부 파일 구조가
진짜와 동일하므로 알아볼 수 없으며,
psp로 마운트 시켜봐도 정상적인 게임 미리보기가 나오며,
BOOT.BIN과 EBOOT.BIN파일의 용량이 거의 동일합니다.
(원래 몇백 바이트 차이는 나는데 그것까지 완벽하게 흉내냈더군요.)
또한 PC용 바이러스 체크 프로그램 따위나
방화벽(어처구니 없는 예지만 컴맹을 위해...)따위에는
절대 걸리지 않으므로 기대하지 마세요.
결론!!!
바이러스 iso는 psp에서 실행하고 psp가 사망하기 전에는
그것이 바이러스가 들었는지 아닌지 알 수가 없습니다.
3. 바이러스를 막는 방법
저는 모드칩이 나오기 전에는 솔직히 막는 방법 따위는 없다고 생각하고 있었습니다...
고작해야 막을 수 있는 방법이라고 생각했던 것은...
prx패치를 하던 립버전을 만들던...
iso파일에 들어있는 바이러스가 삽입되는 BOOT.BIN과 EBOOT.BIN은 손을 대지 않으므로,
유명한 커뮤니티 사이트에서 게임마다 정상적인 BOOT.BIN과 EBOOT.BIN의 용량을 게시하고
유저들은 psp에서 실행해보기 전에 이 커뮤니티 사이트에서 게시된 용량과
자신이 입수한 iso파일의 BOOT.BIN과 EBOOT.BIN의 용량이 동일한지 확인하는
방법이었습니다...
물론 이 방법도 헛점이 있습니다...
바이러스 BOOT.BIN을 만들때 이 게시용량에 딱 맞춰서 만들면 그만인 것이죠...
하지만 그러면 이런 바이러스 iso를 만드는 개늠들은 커뮤니티 사이트에
용량이 게시된 이후에야 바이러스가 들어있는 BOOT.BIN을 용량에 맞춰서 만들어서
업로드해야하고, 그전에 정상적인 파일들이 충분히 퍼질 수 있다는 생각이었습니다.
인정합니다... 이 방법도 헛점 투성이라는거 하지만 다른 방법을 생각할 수가 없었습니다.
하지만,
모드칩이 나오고나서는 상황이 달라졌습니다.
모드칩은 간단히 말해서 psp의 내부 낸드플래쉬 사이에서 데이터를 가로채서
칩 내부의 펌웨어를 읽도록 만드는 극히 단순한 녀석입니다.
(2개의 펌웨어를 가질 뿐... 그 이상도 이하도 아닌...)
이 모드칩으로 가동하는 녀석은 모드칩으로 부팅한 순간 psp내부의 낸드플래쉬는 잠을 자고,
모드칩의 낸드플래쉬가 그 역활을 대신합니다.
만약 이 녀석에게 바이러스 iso를 가동시킨다면?...
당연한 결과지만, 모드칩의 펌웨어는 파괴될 것입니다.
하지만, 모드칩의 펌웨어는 강제적인 덮어쓰기가 가능하다고 했습니다.
이 말은 바이러스에 파괴되어도 다시 강제적으로 복구가 가능하다는 뜻이죠...
할레루야~
이 방법으로 바이러스 iso를 완벽하게 막을 수 있습니다.
설령 펌웨어가 파괴되어도 psp내부의 진짜 펌웨어는 안전하며,
파괴된 모드칩의 펌웨어는 강제적으로 복구가 가능합니다.
그래서 저는 지금도 이 '모드칩의 방화벽의 기능' 때문에,
제대로 설치할 수 있는 곳을 구한다면 지금도 설치할 생각을 하고 있습니다.
하지만, 또 다른 문제는 모드칩의 가격도 가격이지만,
그 설치가 쉽지 않고, 현재 안정적으로 설치를 대행해주는 곳도 없다는 것입니다.
결국 이 방법으로 psp보호하는 것은 당장은 어렵기 때문에...
모드칩의 설치로 psp를 완벽 가드는 선택할 수 없는 길입니다.
결국 여기까지만 보면 psp용 바이러스에 대해서 완전 항복입니다만...
여기부터가 본론입니다. =============================================
이번에 어떤 분이 바이러스가 삽입된 페이크 철권 iso를
'데브훅으로 가동했다가 가동이 안되서, 닥스로 가동했다가 psp가 사망했다'
...라는 이야기를 들었습니다.
이말이 사실이라면,
지금 모드칩을 설치하지 않고서도 psp에 방화벽을 칠 수 있는 방법이 발견된 것입니다.
데브훅은 가상으로 펌웨어를 읽어들입니다.
그 가상의 펌웨어는 메모리스틱의 dh폴더에 150,200,250폴더를 말합니다.
원래라는 펌웨어에 관련된 동작...
즉, 배경화면을 바꾼다던가 하는 것은 psp내부의 32메가 낸드플래쉬에 담겨있는
펌웨어의 내용을 수정한다는 뜻입니다.
하지만 데브훅은 이것을 메모리스틱에 가상의 펌웨어를 저장해놓고,
마치 메모리스틱의 가상 펌웨어를 진짜 psp내부 낸드플래쉬의 내용인 것처럼
읽어들이고 쓰는 방법으로 2.5버전의 펌웨어를 런칭해서 게임을 구동합니다.
우리들이 사용하는 psp에 낸드플래쉬에 담긴 내용은 평소에는 손을 댈 수 없다고
생각하고 있을지도 모르는데...
실제로는 자주자주 낸드플래쉬의 내용이 뒤바뀌고 있습니다.
예를들어서 psp에 전력설정이나, 닉네임 설정이나 채팅셋 설정이나 언어설정등등...
이런 설정이 바뀌면 바뀐 내용을 저장해야겠지요?...
그러면 이걸 어디에 저장할까요?...
바로 psp내부의 낸드플래쉬의 내용을 바꿔서 저장합니다.
데브훅의 2.5펌웨어 상태에서 몇가지 설정을 바꾸고 리부팅해서 다시 2.5펌웨어로 가보세요...
설정이 기록되어 있습니다.
이 기록된 설정은 psp가 데브훅을 읽기 전과는 전혀 다른 세팅으로 저장이 가능합니다.
즉 이런 세팅이 저장되어 있는 곳이 다르다는 뜻이죠...
이런 설정을 바꾸고 데브훅의 메모리스틱에서 펌웨어가 저장된 부분의 파일을 꼼꼼히 찾아보면
이런 설정을 바꾸기 위해서 메모리스틱의 파일 정보가 변경된 것을 알 수 있습니다.
즉, 데브훅은 메모리스틱에 있는 가짜 펌웨어를
psp내부의 낸드플래쉬에 저장된 진짜 펌웨어처럼 '완벽하게 위장했을 가능성'이 있다는 것입니다.
만약에 데브훅이 '가짜펌웨어를 완벽하게 위장했다면'...
이것은 모드칩과 동일한 효과를 기대할 수 있습니다...
psp내부의 펌웨어를 파괴하려한 바이러스가
엉뚱하게도 메모리스틱에 있는 가상 펌웨어를 파괴하고 끝날 수도 있다는 것이죠.
만약 제 가정대로라면...
데브훅으로 바이러스가 담긴 iso를 구별해낼 수 있고, 방어할 수 있습니다.
그렇기 때문에 혹시라도 실수로 바이러스 iso를
데브훅의 0.4x 가상펌웨어에서 읽어들이려했던 분이 있으시다면...
제보를 부탁드립니다...
만약 데브훅으로 했을때 가상 펌웨어만 파괴되었고,
실제 psp 낸드플래쉬의 내용을 이용하는 닥스로 돌렸을때
비로서 psp가 파괴되었다면 제보를 부탁드립니다.
psp용 바이러스에 대해서 설명하다보니
짧은 본론에 비해서 내용이 너무 길어졌습니다만,
읽어주셔서 감사합니다.
그럼 이만...
제보1.
바이러스 iso라고 생각되는 '뇌력 트레이너2'의 iso파일을
데브훅 2.0 가상 펌웨어로 가동하려했으나 실패,
iso파일은 더이상 테스트없이 파기...
그 후에 데브훅의 2.0버전으로의 부팅은 되지 않았다고 함
-> 데브훅이 바이러스 파일을 psp본체 대신에 데미지를 받아줬다고 보이는 사례
불량게시글신고
·댓글