17P by GN⁺ 2023-09-14 | ★ favorite | 댓글 5개
  • 탐색기의 크래쉬가 급증해서 이유를 찾다보니 스택에서 악성코드와 비슷한 함수 포인터를 발견
  • 뒤져보니 악성코드가 아니라 언인스톨러였음
  • 언인스톨러가 종료하고 나면 자기 자신인 바이너리를 지우려고 기다리는 것(Self Deleting)
    • 이 코드는 CodeProject에 10년전에 소개된 방법을 사용한 것
  • 아마도 어떤 DLL의 함수를 호출해야 하는 것인데 그게 우회(Detour)되어서 일어난 것
  • 자신을 삭제하려면 이렇게 다른 프로세스(탐색기)에 코드 삽입이나 우회하지 말고 다음 처럼 cleanup.js 같은 임시 파일을 이용할 것
    • 이 코드는 자신을 지우고, uninstaller도 20초동안 삭제 시도함
var fso = new ActiveXObject("Scripting.FileSystemObject");  
fso.DeleteFile("C:\\Users\\Name\\AppData\\Local\\Temp\\cleanup.js");  
  
var path = "C:\\Program Files\\Contoso\\contoso_update.exe";  
for (var count = 0; fso.FileExists(path) && count < 40; count++) {  
    try { fso.DeleteFile(path); break; } catch (e) { }  
    WSH.Sleep(500);  
}  
 
[숨김 처리된 댓글입니다]
숨김 처리된 댓글

그때 그 시절, 찌꺼기 제거 프로그램을 썼던 기억이 나네요...
그래도 요즘엔 윈도우도 패키지 관리 프로그램이 조금씩 발전하고 있으니 기대하고 있습니다. +_+

'고도로' 라는 말을 많이 썼던것 같아요. 고도로 발전한 과학은 마술과 구별할 수 없다.

글의 제목은 유명한 SF 소설가 아서 C. 클라크 경의 말에서 온 것입니다.

"Any sufficiently advanced technology is indistinguishable from magic."
"충분히 발달한 과학 기술은 마법과 구별할 수 없다."

Hacker News 의견
  • 고급 언인스톨러와 맬웨어 간의 유사성에 대한 논의, 자가 삭제 실행 파일에 초점을 맞춤
  • 자가 삭제 실행 파일의 코드를 포함한 코드 프로젝트에 대한 링크 제공
  • 저자는 바이너리가 자체 삭제, 슬립, 언인스톨러와 상호 작용하기 때문에 맬웨어처럼 보인다고 제안
  • 제안된 해결책에 대한 논쟁, 원래 것보다 나은지, 나쁜 휴리스틱을 사용하여 악의성을 판단하는지 의문 제기
  • 일부 댓글에서는 왜 Windows 프로그램이 특별한 인스톨러/언인스톨러가 필요한지, 이것이 왜 Windows 자체에서 처리되지 않는지에 대해 의문을 제기
  • wscripts의 사용에 대한 언급, 코드 서명 또는 실행 전에 검증할 수 없는 능력 때문에 맬웨어로 프로파일링 될 수 있음
  • '디투어'라는 개념 제기, Linux의 LD_PRELOAD 명령어와 비교
  • 안티바이러스 소프트웨어에게 눈치채지 못한, 모든 디렉토리를 언인스톨러 목록에 추가한 Windows 95/98용 간단한 앱에 대한 회상
  • 일부 댓글러들은 앱이 쉽게 설치 또는 제거할 수 있는 독립적인 폴더인 AmigaOS 접근법을 선호한다고 표현
  • 기사는 Windows가 자바스크립트를 쉘 스크립트로 실행하는 것을 지원한다는 놀라운 사실로 끝남