2011-11-04 6 views
3

복사 방지 소프트웨어에서 작업 중이며 모든 종류의 실행 파일 (관리되는 파일과 관리되지 않는 파일)을 래퍼로 만들려고합니다. 그런 다음이 래퍼는 평소와 같이 디스크에 쓰지 않고 래핑 된 실행 파일을 실행하려고 시도하고 으로 실행합니다.랩핑 및 보호 실행 파일

.Net 4.0 어셈블리 및 Appdomain을 사용하여 작동 시키지만 읽었으며 테스트 한 결과 .Net 실행 파일에서만 작동합니다. 어떻게하면 드라이브에 "알몸"으로 쓰지 않고도 모든 종류의 실행 파일을 실행하고 실행할 수 있습니까?

예를 들어 암호화 된 압축 파일 내에서 실행할 수 있습니까? 또는 MemoryMappedFile?

+0

AFAIK 정상 실행 파일은 실행 전에 디스크에 기록되지 않습니다. 나는 닷넷에 대해 모른다. 어쨌든, 모든 실행 파일은 기계 코드로 RAM에 있어야합니다 (이것은 암호화되지 않은 압축되지 않은 것을 의미합니다). – m0skit0

+0

@ m0skit0 - .NET 응용 프로그램은 일반 실행 파일과 유사하게 작동합니다. –

+0

Process.Start()로 시작할 수있을 것 같지 않습니다 - 프로그램을 메모리에로드 한 다음 시작 주소에 jmp를 수행 할 수 있지만이 작업을 수행하는 데는 모든 종류의 끔찍한 보안 문제가있을 수 있습니다. . –

답변

13

정말 시간을 낭비하고 있습니다. 누군가가 실행 파일을 복사하거나 코드를 가져 오는 것을 막을 수는 없습니다. 디스크의 실행 파일을 완벽하게 보호 할 수는 있지만 실행이 시작되면 디버거를 사용하여 메모리 매핑 파일에서도 실행 파일의 덤프를 만들 수 있습니다. 이것은 Xenocode, .NET Reactor 또는 그 밖의 다른 패커와 같은 제품이 어떻게 패배했는지 나타냅니다.

더 나은 옵션은 중단하고 실제로 달성하려고하는 것이 무엇인지 생각하는 것입니다. 라이센스 계약을 위반하는 사람들에 대해 우려하십니까? The Pirate Bay에 나타나는 소프트웨어에 대해 걱정하십니까? 유용한 소프트웨어를 만드는 경우,이 두 가지 모두는 우발적 인 것이며 가능성은 아닙니다. 적절한 경우 저작권으로 소프트웨어를 보호하고 특허로 알고리즘을 보호하십시오. 그렇다면 위반자를 추적 할 법적인 수단이 있습니다.

거품을 터뜨려 미안하지만, 패배시킬 수없는 기술적 인 해결책은 없습니다. 동글은 에뮬레이션 할 수 있고, 웹 서비스를 패치 할 수 있으며 암호화 키를 스니핑 할 수 있습니다. 보호 할 수없는 것을 보호하려고하지 않고 소프트웨어를 훌륭하게 만드는 데 시간을 투자하십시오.

+0

+1; 귀하의 소프트웨어가 불법 복제의 가치가있는 경우, 귀하의 보호에 관계없이됩니다. 그것이 아니라면, 보호 할 필요가 없습니다. – tenfour

+0

네 말이 맞아, 내가 다시 생각해 보겠다. 아이디어는 래퍼를 통해 exe의 시작을 제어하는 ​​것이 었습니다. 하지만 당신이 말한 것처럼 불가능한 것처럼 보입니다. 음, 다른 생각은 exe를 암호화 한 다음 래퍼가 암호를 해독하고 출시 첫 순간에 디스크에 쓰는 것입니다. 래퍼는 서버에서 승인을 받아야합니다. – Wilhelm