문제

나는 며칠 전에 우리가 .NET 4.0 (데스크톱 응용 프로그램)에서 개발 된 소프트웨어를 출시했기 때문에 정말로 슬프다. 3 일이 지나면 균열이 인터넷에서 이용 가능했습니다. 우리는이 소프트웨어를 보호하려고 노력했지만 어떻게 든 사람들은 그것을 털어 나누 었습니다.

여기 시나리오가 있습니다. 응용 프로그램이 처음 웹 서버와 통신하고 사용자가 전달 된 자격 증명을 확인합니다. 자격 증명이 올바른 경우 소프트웨어는 레지스트리에 값을 저장하고 시스템을 다시 서버로 다시 보내고 데이터베이스에 저장합니다.

이제 해커가 서버 통신을 "Return True"로 대체했습니다. 진술 (Telerik JustDecomile로 임시 확인). 그리고 그는 인터넷에 금이 간 소프트웨어를 업로드했습니다.

자, 다음은 내 질문입니다. 1 - .NET 응용 프로그램이 금지되지 않도록하는 방법은 무엇입니까?


2 - 해커는 이제 수정을 한 이후로 제 코드를 알고 있습니다. 어떤 단계를 가져야합니까? 3- 인터넷에서 인터넷을 읽었습니다 - Obfuscators. 그러나 해커는 내가 무엇을해야하는지 코드를 알고 있습니까? 4- 소프트웨어를 금지시키는 것을 피하기 위해 사용할 수있는 다른 프로 팁? 5- 나는 확실하지 않지만이 반사경 소프트웨어는 민감한 데이터로 APP.CONFIG를 디스크 컴파일 할 수 있습니까?

도움이 되었습니까?

해결책

1- .NET 응용 프로그램이 금지되지 않도록하는 방법은 무엇입니까?

컴퓨터가 코드를 실행할 수있는 경우 해커가 자신보다 높은 권한 수준에서 자신의 코드를 실행할 수 있습니다. 앱이 균열을 방지 할 수있는 100 %가 없습니다. 실행 파일에만 액세스 할 수 있지만 대상 플랫폼이 아닌 경우에도 대상 플랫폼이 수행하고 보호가 수행되는 방법을 알아 내고 모순 할 수 있습니다.

2 - 해커는 이제 수정을 수행 한 이후로 내 코드를 알고 있습니다. 어떤 단계를 취해야합니까?

은 완전히 인증 부분을 완전히 다시 작성하므로 스크래치에서 시작해야하지만 다시 얻을 수 있으므로 다시 얻을 수 있습니다.

의 문제 일뿐입니다.

3- 인터넷에서 읽었습니다 - Obfuscators. 그러나 해커가 내 코드를 알고 내가 무엇을해야합니까?

Jinni는 병이 아닌 코드가 없었기 때문에 병 밖에 있습니다. 소프트웨어를 크게 다시 써서 스크래치에서 시작해야하지 않도록 할 수있는 일이별로 없습니다. 오픈 카메라는 결정된 공격자를 예방하지 못하고, 이들이 바이너리를 손에서 꺼내는 것을 방지 할 수있는 것만

4- 소프트웨어를 금지시키는 것을 피하기 위해 사용할 수있는 다른 프로 팁은 무엇입니까?

내가 어떤 기간 동안 원격으로 지연하는 것으로 보이는 유일한 복사 방지는 Ubisoft가 암살자의 신조 : 형제애와 함께했던 것입니다. 그들은 게임 디스크로 Ther 레벨을 암호화했으며 인터넷에서 해독 키를 다운로드해야했습니다 (이것은 손 접근 방식에서 2 진을 유지합니다). 그러나 그것은 영원히 일하지 않았습니다. 결국 해커들은 해커들이 해독 된 수준을 가져오고 완전히 금이 간이었습니다. 이 접근법은 법적 참여가없는 경우에 가장 오랜 시간이 걸릴 수있는 것입니다 (하단의 포인트 2 참조)

5- i 확실하지 않지만 이러한 반사경 소프트웨어가 민감한 데이터로 App.config를 디 컴파일 할 수 있습니까?

모든 반사경 소프트웨어는 app.config를로드하고 기본값이 무엇인지 읽는 섹션을 찾아야합니다. no 보안 장소가 있습니다. 컴퓨터에 정보를 저장할 수있는 컴퓨터에 정보를 저장할 수 있습니다. 컴퓨터에있는 경우 읽을 수 있습니다. 읽을 수 있으면 리버스 엔지니어링 할 수 있습니다.


불법 복제가 두 가지 옵션 중 하나 인 것을 방지하기 위해 볼 수있는 유일한 실제 솔루션입니다.

  1. 그 사람은 당신의 앱을 얻지 못하면, 당신의 통제하에 서버에서 스트리밍되며 이진을 보지 못합니다. 당신이 그들을 보내는 유일한 것은 UI를 운전하는 데 필요한 정보입니다. 이것은 모든 MMO가 작동하는 접근 방식입니다. 사람들은 엔지니어를 UI에 보내고 서버에서 계속되는 논리를 모방 할 수 있지만 절대로 작동하는 것을 알 수 없으며 소프트웨어가 충분히 복잡하다면 공격자에게 충분히 복잡 할 수없는 경우 서버 측 코드를 다시 작성하십시오. 이 접근 방식의 단점은 사용자가 연결할 서버를 호스팅해야합니다. 다시 쿠폰을 다시 할 수있는 방법이 필요합니다. 이러한 메서드는 클라이언트 측을 수행하는 방법과 처리가 서버 측에서 얼마나 많은 처리가 수행되는지에 따라이 메서드 "또는"씬 클라이언트 "라고합니다. 22 장 " Microsoft 응용 프로그램 아키텍처 가이드, 2 판 ". 특히 그림 4 및 5

  2. Seccond 옵션은 소프트웨어를 판매하는 사람입니다. 소프트웨어를 판매하는 사람은 소프트웨어를 배포하지 않도록 법적 계약을 맺지 않으려면 소프트웨어 (eula가 아닌 실제로 클라이언트가 서명 해야하는 실제 계약이 아님). 이 계약서에서 소프트웨어가 누출 된 사람에게 큰 벌금이 적용된 다음 소프트웨어를 구입 한 사람에게 고유 한 지문으로 프로그램을 수수께끼로 수수께끼로 한 사람이 누구인지 알 수 있습니다. (이것은 벤더 16 진수가 Disassembler에 사용하는 방법입니다 IDA . 빠른 Google 검색은 6.1보다 새로운 금이 간 버전을 올릴 수 없으며 6.3 ). 이 방법은 불법 복제를 멈추지 않지만 첫 번째 장소에서 사전이 유출되도록 낙담 할 수 있습니다. 이는 또한 처음부터 유출되는 프로그램과 관련된 일부 비용을 회수 할 수 있습니다. 한 가지 문제는 공격자가 프로그램의 두 복사본을 얻을 수 있고 파일 betw를 비교할 수있는 공격자가 많은 지문을 넣어야하며 미묘해야합니다.

een 그는 식별 정보가 무엇인지 알 수 있고 그들이 원하는 것을 말할 수 있도록 무엇이든지 말할 수있을 것입니다. 이것을 할 수있는 유일한 방법은 밖으로 제거되거나 무작위로 벗어날 수 없으며, 소프트웨어를 실행하는 데 중요하지 않아도 소프트웨어를 실행하지 않아도됩니다. 그들은 그것을 떠날 가능성이 더 큽니다.


update : 다른 질문에 대한 링크에 대한이 답변을 다시 방문한 후 # 2 솔루션을 쉽게 구현할 수있는 쉬운 방법을 생각했습니다.

ObfusCationor를 통해 코드를 실행하고 소프트웨어를 판매하는 모든 사람의 클래스의 이름을 바꾸는 것입니다 (여전히 라이센스 계약을 체결 할 수 있으므로 EULA를 클릭하면 다음 부분). 그런 다음 난독 화 매핑의 데이터베이스를 만드는 것, 인터넷에서 유출 된 사본을 볼 때 프로젝트의 어느 곳에서나 하나의 클래스를 찾아야하는지, 데이터베이스에서 찾아 볼 필요가 있으며 누가 누가 유출한지 알 수 있으며 필요한 사람을 알고 있습니다. 법적 손상을 입을 수 있습니다.

다른 팁

1 : 당신은 할 수 없습니다.당신은 난독 화를 할 수 있지만 방지 의 유일한 방법은 다음과 같습니다. exe를주지 마십시오.게임 회사가 얼마나 많은 게임을하는지보십시오.그들은 그것을 해결하지 못했습니다.

2 : 난독 화는 조금 에 도움이 될 것입니다.

3 : 너무 늦게 돌아가서 그 일을 실행 취소하지만 난독 화는 앞으로도 조금 느릴 것입니다

5 : app.config는 대개 매우 읽을 수 있습니다.당신은 여기에서 할 수 없습니다.암호화는 키가 앱에 있고 따라서

를 얻으면

를 얻는 경우에만 비트가 느려집니다.

다른 사람들이 당신의 코드에 액세스 할 수 있다면 결정된 크래커에 대해 할 수있는 일이 아님을 실제로 말하지 않으므로난독 화는 게으른 크래커에 대한 보호를 제공합니다. dotfuscator vs에 내장되어 있습니다.난독 화에 대한 실제 비용이 있음을 명심하십시오.스택 추적의 문제를 디버그하는 것은 매우 어려울 것입니다.

가장 좋은 대답은 당신이 받아 들여야 할 것입니다.너는 할 수 없다.사용자에게 훌륭한 사용자 경험을 제공하고 라이센스를 매우 쉽게 만드는 데 집중하십시오.신청서를 금액 할 수있는 가능성은 데스크톱 응용 프로그램을 빌드하라는 것을 선택하는 것이 잘못된 아이디어였습니다.해적은 해적이되고 정직한 고객은 정직한 고객이 될 것입니다.

분명히 합리적인 기술을 가진 누군가가 거의 즉시 시도한 앱을 균열 충분한 상업적 또는 지적 가치가 충분합니다.

전용 방식으로 상용 소프트웨어 보호 패키지를 사용하는 것이 이길 것입니다.

사본 보호를 직접 구현하려고하면 다시 해킹 할 수있는 쉽게 대상이됩니다.

비즈니스 응용 프로그램을 작성하는 경우 데이터를 저장하는 데이터베이스 엔진도 작성하지 않습니다.또한 응용 프로그램에 대한 균열 예방 코드를 작성하지 않아야합니다.그것은 당신의 고객의 문제를 해결하는 것이 아니며, 그것이 바로 그것을 할 수있는 엄청난 기술이 필요합니다.

코드 난독 화 외에도 해당 코드가 아닌 코드 복호화의 메커니즘을 추가하고 다음 시나리오를 염두에두고 서버에 해당 HWID를 보내고 복사 / 소유자 / 설치 번호를 식별합니다./ etc 해당 HWID와 함께 해당 특정 바이너리에 대한 HWID (지문이있는 지문 포함)에 따라 해킹이 더 어려울 것이므로 서버에 유효한 액세스가 필요합니다.소프트웨어를 사용할 수 없습니다.

환호,

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top