요 며칠 감동받은 강좌를 하나 소개합니다.
http://www.codeproject.com/Articles/16541/Create-your-Proxy-DLLs-automatically
프록시 DLL을 만들 때 가장 어려운(귀찮은) 점은, DLL의 모든 함수에 대해 호출규약과 인자를 맞춰 원래 함수를 불러주는 일이지요.
그런데 이 문제를 "__declspec(naked) " 라는 지시자를 써서 간단하게 해결하고 있네요.
이 녀석은 VC++의 x86에서만 지원되는데, 호출시점의 스택상태를 그대로 유지하는 기능을 가진다고 합니다. 저도 이번에 처음 봤어요.
델파이에서 이런 효과를 내려면 어떻게 하나 고민해봤는데, 일단 이렇게 하니 잘 되는군요.
procedure Test();
asm
jmp [원래주소]
end;
짬짬히 윈속 프록시나 하나 만들어봐야겠습니다.
|