# 충분히 발달한 Uninstaller는 Malware와 구별할 수 없다

> Clean Markdown view of GeekNews topic #10860. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=10860](https://news.hada.io/topic?id=10860)
- GeekNews Markdown: [https://news.hada.io/topic/10860.md](https://news.hada.io/topic/10860.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2023-09-14T09:53:31+09:00
- Updated: 2023-09-14T09:53:31+09:00
- Original source: [devblogs.microsoft.com](https://devblogs.microsoft.com/oldnewthing/20230911-00/?p=108749)
- Points: 17
- Comments: 5

## Topic Body

- 탐색기의 크래쉬가 급증해서 이유를 찾다보니 스택에서 악성코드와 비슷한 함수 포인터를 발견   
- 뒤져보니 악성코드가 아니라 언인스톨러였음   
- 언인스톨러가 종료하고 나면 자기 자신인 바이너리를 지우려고 기다리는 것(Self Deleting)  
  - 이 코드는 CodeProject에 10년전에 소개된 방법을 사용한 것   
- 아마도 어떤 DLL의 함수를 호출해야 하는 것인데 그게 우회(Detour)되어서 일어난 것   
- 자신을 삭제하려면 이렇게 다른 프로세스(탐색기)에 코드 삽입이나 우회하지 말고 다음 처럼 cleanup.js 같은 임시 파일을 이용할 것   
  - 이 코드는 자신을 지우고, uninstaller도 20초동안 삭제 시도함   
```javascript  
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);  
}  
```

## Comments



### Comment 19179

- Author: [hidden]
- Created: 2023-09-14T16:59:00+09:00
- Points: 3

[숨김 처리된 댓글입니다]

### Comment 19181

- Author: kuroneko
- Created: 2023-09-14T17:10:26+09:00
- Points: 1
- Parent comment: 19179
- Depth: 1

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

### Comment 19172

- Author: botplaysdice
- Created: 2023-09-14T12:09:14+09:00
- Points: 1

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

### Comment 19169

- Author: xguru
- Created: 2023-09-14T10:27:26+09:00
- Points: 1

글의 제목은 유명한 SF 소설가 아서 C. 클라크 경의 말에서 온 것입니다.  
> "Any sufficiently advanced technology is indistinguishable from magic."  
> "충분히 발달한 과학 기술은 마법과 구별할 수 없다."

### Comment 19159

- Author: neo
- Created: 2023-09-14T09:53:31+09:00
- Points: 2

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