david's daily developer note

[Native] Windows 10 File Delete API Crash 본문

[Develop] Native/Native

[Native] Windows 10 File Delete API Crash

mouse-david 2019. 6. 20. 15:25
728x90

::SHFileOperation함수의 깊은 곳에서 다음의 에러를 만났다...
Floating-point invalid operation(매개 변수: 0x00000000).

개발 환경 및 상황
1. Window10 Pro
2. Visual Studio 2017, 2012 동시 디버깅
3. 32/64 디버그만 재현
4. 다른 Window SDK 문제없음, 파일 삭제만 재현


때마침, 윈도우 업데이트가 있었기에, 또,, 업데이트 이후에 발생한 문제인줄 알고 헤매기 시작했다.
그러나 답은 Crash당시 콜스택에 있었다.

중간쯤, CAutoMaticDestinationList가 보인다.

저놈은 다음 경로의 바이너리 파일을 사용한다.
AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations

상기 경로에서 문제를 발생시킨 파일을 확인하고자, Crash를 재현시키고, 새로고침 해보았다..

두놈이 변경되었는데, 하나씩 삭제해서 재현한 결과...문제를 발생시키는 놈은 빨간 박스친놈이었다.
저놈이 뭐하는 놈인지 검색을 해보았다.

Jump List였다... (특정 앱이나 탐색기에서 최근 열거나 사용했던 파일들의 정보를 보여주기 위한 정보)

그렇다.... @_@ 
(도움을 준 팀내 동생에게 격한 감사를 보낸다..)

Reference
https://hatsoffsecurity.com/2014/09/06/jump-lists/
http://www.forensicswiki.org/wiki/List_of_Jump_List_IDs

728x90