'2010/02'에 해당되는 글 3건

  1. 2010/02/08 wmrm
  2. 2010/02/08 MSI Analyzer
  3. 2010/02/08 64bit 코드에서 32bit dll 접근하기
2010/02/08 13:06

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

IT리뷰2010/02/08 11:35

MSI파일을 분석해 주는 프로그램

C#으로 작성되었다.




원문 : http://www.c-sharpcorner.com/uploadfile/satisharveti/enhancedmsianalyzer09242008083528am/enhancedmsianalyzer.aspx
저작자 표시 비영리 동일 조건 변경 허락
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by dosuser(신대용) dosuser
프로그래밍일반2010/02/08 10:18

원문: http://www.dnjonline.com/article.aspx?id=jun07_access3264

주의! 본 내용은 핵심 포인트만 해석한 것입니다. 또한 본인의 미숙한 영어 실력으로 인하여 내용이 잘못되었을 수도 있습니다.



기존 원문의 작성 시기인 2007년 6월의 경우와 지금 시점 2010년은 차이가 있습니다. 지금은 많은 신규 서버들이 64비트 아키텍처로 도입되고 있으며 기존의 프로그램들의 포팅이 계속적으로 필요한 시점 입니다.

32비트 소프트웨어는 64비트 환경에서 WOW64를 이용하여 수행하고 있지만 64비트 프로세스는 32비트 프로세스를 메모리 스페이스로 가져 올수 없으며 32비트 프로세스는 64비트 모듈을 프로세스 스페이스로 가져 올 수 없습니다. 32비트와 64비트 모듈간의 통신은 오로지 IPC를 이용하여 가능 합니다.

결국 32비트와 64비트 프로세스는 IPC기술인 out-of-process COM, sockets, 윈도우 메시지, Memory maped files를 이용하여 통신 할 수 있습니다.





가장 좋은 64비트로의 이전은 메인 모듈과 DLL전부를 64비트로 이전하는 것이지만 종속성을 가지는 모듈을 이전할 수 없으면 프로그램이 동작하지 않습니다.


해결책 : A surrogate Process

이러한 이슈는 32비트 DLL을 메인 프로세스와 달리 독립된 메모리 스페이스로 나눔으로서 해결 될수 있습니다. 64비트에서 동작하는 메인 모듈은 IPC를 이용하여 프로세스 바운더리를 넘어 접근 할 수 있습니다.


이러한 해법에는 해당 32비트 DLL을 포함하고 있으며 DLL의 API를 노출 시키고 있는 32비트 surrogate 프로세스가 추가적으로 필요하다. 또한 64비트로 동작하는 쪽에서도 32비트로 직접적으로 통신하는 것대신 IPC를 사용하기 위해서 추가적인 수정이 필요하다.

저작자 표시 비영리 동일 조건 변경 허락
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by dosuser(신대용) dosuser