고객이 라이선스 시스템에 쉽게 금이 가지 않도록 암호화 된 실행 파일을 작성하도록 요청했습니다. 자, 저는 이것이 잘못된 안보 감이라는 것을 이해합니다. 그러나 이것에도 불구하고 그는 그것을 고집했습니다.데이터를 코드로 실행 하시겠습니까?
그래서, 휴대용 실행 파일의 내 지식을 발굴하고이 아이디어를 내놓았다 : 그것의 크기
- 암호화 실행
- 스틱이 로더가 데이터를 암호 해독합니다.
- 실행 권한이있는 VirtualAlloc이 할당 된 페이지에 코드를 복사합니다.
- 응용 프로그램의 진입 점을 찾습니다.
- 거기로 이동하면 모두 설정됩니다.
점핑 부분에 문제가 있습니다. 어떻게해야합니까? 함수 포인터를 설정했다면 서명은 무엇입니까? 로드 된 실행 파일의 main() 함수의 서명은 무엇입니까? 아니면 조립에 의지해야합니까?
코드를로드 한 후 절대 주소를 수정해야 할 수도 있음을 알고 있습니다. 필요한 경우 어떻게 확인합니까? 실제로이 작업을 수행하는 방법은 무엇입니까?
편집 : Windows에서 작업하고 GCC로 컴파일. 필요한 경우 Microsoft 컴파일러를 전환 할 수 있습니다.
편집 2 : 명확히하기 : 나는 거의 무의미하다는 것을 알고 있습니다. 나는 어떤 DRM의 약자를 의미합니다 믿습니다. 결정할 내 의뢰인의 몫이고, 그는 나에게도이 사실에 대해 경고하고 있음에도 불구하고 여전히 그것을 원합니다.
미리 감사드립니다.
내 견해로 입력 된 솔루션은 거의 버그가 없으며,이 기능이 다른 기능으로 이동하는 이유는 무엇입니까? 그들은 다른 주소로 고정되어 있고 정적 링크 된 라이브러리는 어디에서와 같이이 솔루션에 많은 문제점을 많이 겪고 있습니까? 누가 암호화 된 코드를 사용합니까? – Svisstack
나는 DRM을 정말로 원한다면 말하고 싶다. 구입. 왜? 비록 당신이 "무언가"를 얻고 일해도. 그 금이 갔을 때 당신은 6 개월 동안 무엇을합니까? 크래커들과 함께하는 것은 정규직입니다. –
그건 내 고객이 결정할 때까지입니다. 나는 그가 나쁜 결정을 내리는 지 정말로 신경 쓰지 않는다. 나는 솔직히 그에게 경고했고 그는 여전히 그것을 원했다. –