wine 7.0 업그레이드

Sunyeop Lee·2022년 2월 15일
0

기존에는 wine stable-6.0.2를 사용하고 있었는데 제공받은 API에 문제가 있어 LD_PRELOAD를 이용해 connect 함수를 후킹해 SO_KEEPALIVE 등의 옵션을 세팅해 workaround 하고 있었다.
최근에 wine stable-7.0이 릴리즈되어 시험해보았는데 더이상 regsvr32가 current working directory에 있는 dll을 인식하지 않는다는걸 빼곤 잘 돌아가는 것 같았다.
그런데 어느날 보니 LD_PRELOAD가 안먹고 있는 것이다! 알고보니 wine 7부터는 Wow64를 지원하면서 API를 돌리는 wine 바이너리가 64비트로 바뀐 것이었다. (원래는 API와 wine 모두 32비트였다) 내 LD_PRELOAD되는 라이브러리는 32비트 전용이었기때문에 64비트용으로 다시 컴파일하여 해결했다,
그나저나 Wow64가 된다니 wine 대단하네.. 파이팅

위에서 언급한 후킹 라이브러리의 코드는 아래에 공개했다. (약간 수정해서 쓰고 있다)
https://github.com/qbx2/keep-it-alive

0개의 댓글