내 프로그램이 라이센스 검증 부분을 제거하는 것을 간단하게하고 싶습니다. 비용의수동 난독 화에 대한 아이디어
- :
나는 상업 난독 때문에를 사용하지 않습니다. 그리고 그들이 나보다 더 잘할 수는 있지만 - 도 균열을 없애지 못하게합니다.
- 때로는 난독 화 코드가 생성 된 코드에서 버그를 일으키는 것으로 보입니다.
분명히 유지 관리를 위해 난독 화되지 않은 사본을 보관할 것입니다.
내 프로그램이 라이센스 검증 부분을 제거하는 것을 간단하게하고 싶습니다. 비용의수동 난독 화에 대한 아이디어
나는 상업 난독 때문에를 사용하지 않습니다. 그리고 그들이 나보다 더 잘할 수는 있지만 - 도 균열을 없애지 못하게합니다.
분명히 유지 관리를 위해 난독 화되지 않은 사본을 보관할 것입니다.
고객이 수정할 수있는 라이센스 확인 프로그램을 코드에서 숨겨야했습니다. 그들은 어디를보아야하는지 알고 있다면 그것을 제거 할 수 있었다고 생각합니다. 그 당시 내가 사용했던 몇 가지 트릭이 있습니다.
나는이 모든 것이 패배적이고 심각한 유지 보수 문제를 야기 할 수 있다고 덧붙여 야하지만, 나의 특별한 시나리오에서는 효과가있었습니다.
감사합니다. 이것이 내가 찾는 대답의 유형입니다. – ispiro
디버거로 추적하기가 너무 어렵지 않습니다. –
예,하지만 바보짓을하려는 사람이 디버거를 사용하고 소스에 액세스 할 수있는 권한이 있다면 어쨌든 더 강한 것이 필요할 것입니다. – SouthShoreAK
라이센스 파일을 확인하는 여러 코드 포인트를 갖는 것이 더 어렵지는 않지만 불가능한 방법이 될 수 있습니다.
당신이 키에 너무
abc-def-fhi-asdf
그래서, 네 부분으로 같은 몇 가지 키를 사용하여 라이센스 파일을 가지고 있다고 할 수 있습니다. 그런 다음 키의 여러 부분을 확인하는 네 가지 방법을 만듭니다.
이렇게하고 코드를 통해 사용되는 방법을 변경하면 (이상적으로는 런타임에 검증 방법을 임의로 선택하는 것이므로) 유효성 검사를 제거하는 것이 훨씬 더 어려워집니다.
위의 방법 중 하나는 확인 메소드를 인라인하는 게시 프로세스를 호출하고, 호출 될 때마다 미묘하게 변경하는 것입니다. 이 같은
예를 들어 뭔가 :
*user clicks a common function
// [VALIDATION STUB]
*perform user action
새로운 게시 프로세스는, [확인 STUB] // 철수하고 (코드가 컴파일되기 전에) 유효성 검사 코드로 대체하는 코드를 실행하는 나는 말할 때마다 가능한 한 많이 달라져야한다.
내 대답에서 끌어내는 것이 가장 중요한 것은 난독 화가 어렵지만 불가능하지 않다는 것입니다. 특히 악의적 인 사용자가 항상 결국 깨뜨릴 것이라는 현실에 사념을 걸면
나는 유용한 정보를 얻을 수있는 몇 가지 제안 사항이 있습니다.
물론 VisualStudio와 함께 제공되는 무료 obfuscator를 사용할 수 있습니다. 무엇보다 낫다.
두 번째로 라이선스 확인 코드를 작성할 수 있으며 제대로 작동하면 리팩터링하여 클래스 이름, 멤버 변수, 로컬 변수 및 메소드를 c1, v1, l1, m1 등과 같이 변경할 수 있습니다. . 기본적으로 난독 화가들이하는 일입니다.
셋째, 위의 모든 작업을 수행하십시오.
넷째, 라이센스 검증을 관리되지 않는 코드 (C++, Delphi)로 작성하고 core.dll, net.dll 등 중요한 이름의 DLL로 만드십시오. 중요하지 않은 일부 미끼 방법을 배치 할 수도 있습니다 . 코드의 여러 위치에서 해당 DLL에 대한 많은 호출을 수행하고 이러한 호출 결과로 무엇인가를 수행하는 척하십시오.
수동 난독 화로 인해 최종 결과에 버그가 발생할 수도 있습니다. 훨씬 높은 propability와. –
중복? http://stackoverflow.com/questions/1857685/how-to-create-own-dotnet-obfuscator –
플러스 VS2010에는 dotfuscator 커뮤니티 에디션이 포함되어 있습니다. –