2010-02-18 2 views
1

내 Win32 응용 프로그램에서 EXE를 리소스로 포함했습니다.Win32 응용 프로그램에 포함 된 리소스

특정 값으로 레지스트리를 찾고 있습니다. 값이 있고 정확하다면, 임베디드 EXE를 로컬 파일 시스템에 복사하고 거기에서 실행합니다.

EXE에서 추출하지 않기를 바랍니다.

나는 이것을 방지하기 위해 무엇인가해야합니까, 아니면 이미 불가능합니까?

감사합니다.

+0

ummmm .... 허! –

+0

아마도 답을 올바른 것으로 표시하고 도움이되었던 모든 답을 upvote해야합니다. –

답변

1

하지만 exe는 리소스가 아닌 .obj 또는 정적 배열로 사용할 수 있습니다. 이렇게하면 침입자가 코드에서 찾을 수는 없지만 여전히 불가능한 것은 아닙니다.

unix objcopy 도구를 사용하여 exe 파일을 .obj 파일로 변환 한 다음 C 코드의 파일에 연결할 수 있습니다. 누군가는 .exe를 찾기 위해 코드를 디 컴파일해야 할 것입니다. 이것은 리소스 추출기를 사용하는 것보다 훨씬 어렵습니다.

Embed data in a C++ program

+0

그 대답은 내가 찾는 대답입니다 for, cheers! – frbry

1

불가능한 것은 없으며 사실 실행 파일에서 리소스를 제거하는 것이 매우 쉽습니다. 예를 들어 Google 검색의 first link이 있습니다. 반면에 이미 exe를 제거하고 사용자 시스템의 파일에 저장하면 임베디드 리소스를 찾을 수있을 정도로 정교한 사용자가 추출 된 파일을 찾을 수 있습니다. 나는 너무 많은 시간을 그것에 대해 걱정하지 않을 것이다.

+0

네 말이 맞아. "불가능"은 가혹한 단어였습니다 :) 리소스를 암호화 된 형태로 저장하고 실행 전에 해독하는 것은 어떻습니까? 그리고 보너스 : 로컬 파일 시스템으로 익스포트하지 않고도 실행할 수 있습니까? – frbry

+0

아니요. 열쇠를 저장해야합니다. 공격자가 충분한 시간과 인내심을 가지고 있다면, 그는 그것을 확실히 발견 할 것입니다. (예, 메모리에서 EXE를 실행할 수 있다고 확신합니다.) – moatPylon

+0

가능하지만 쉬운 일은 아닙니다. http://www.gamedev.net/community/forums/topic.asp?topic_id=383351&PageSize=25 – frbry

0

애플리케이션을 보호해야합니다. 응용 프로그램을 수정할 수 없습니다. 내가 할 수있는 일은 온라인 시리얼 시스템, 고유 하드웨어 정보 해시 저장, 로더 exe 등등과 같은 작은 유틸리티를 작성하는 것입니다.

그러나 이제는 원래 응용 프로그램을 수정하지 않고도 내 의도가 거의 쓸모가 없음을 알게되었습니다. 나는 이것에 대한 어떤 도움도 감사 할 것입니다.

+0

이것을 다시 읽으면 아마도이 질문을 새로 작성해야합니다. :) – frbry

관련 문제