문제

델파이 앱이 소환되지 않도록 어떻게 보호 할 수 있습니까? Themida와 같은 소프트웨어가 있다는 것을 알고 있지만 보호 된 Exe는 바이러스 백신을 트리거합니다.

도움이 되었습니까?

해결책

그것은 당신의 목표가 무엇인지에 달려 있습니다.
실제로 소스를 보호하는 경우 이미 완료되었습니다! 디버그 및 기호 정보를 포함시키지 않고 심한 인라인을 추가하는 경우, 유용한 파스칼 코드가 EXE를 분해하는 것을 재구성하는 데 행운을 빕니다.
사람들이 그것이 어떻게 기능하고 해킹하는지 보지 못하게한다면, 당신은 약간의 방지 암살 방지 보호를 포함해야합니다. 어렵지만 가능합니다. 종종 비법 방지 보호에 대한 담보로 이루어집니다.

다른 팁

CPU가 읽을 수있는 모든 것을 "분해"할 수 있으므로 궁극적 인 보안이 없습니다. 그러나 일반적으로 컴파일 된 델파이 코드를 디 컴파일하기가 어렵고 거의 모든 식별자와 모든 의견이 사라졌습니다.

클래스의 게시 된 부분, DFM 파일 정보 및 상수 (문자열 상수 포함)는 EXE 파일에 쉽게 읽을 수있는 방식으로 존재합니다. 문자열을 암호화하고 게시 된 사용하지 않고 DFM 파일을 사용하지 않음 으로써이 문제를 줄일 수 있습니다. 그러나 모든 정보는 여전히 EXE 파일에 존재하므로 종종 실제 보안을 제공하지 않는 어려운 일입니다.

소스 코드의 일부를 읽기가 어렵기를 원한다면 알고리즘을 어렵게 만드십시오 ...

결국, 모든 것이 해킹 될 수 있습니다. 앱이 컴파일되는 것을 피하는 유일한 방법은 EXE 파일을 고객의 서버에서 배포 할 때와 같이 수행 할 수있는 것과 비슷한 파일을 멀리하는 것입니다.

Delphi Prism을 사용하는 경우 많은 .NET 디 컴파일 도구 중 하나가 소스 코드의 (양식)에 액세스하는 데 사소한 작업이됩니다.

유일한 해결책은 수많은 .NET 난독 화 도구 중 하나를 사용하는 것입니다. 불행히도 나는 하나를 사용할 필요가 없었기 때문에 추천을 할 수는 없지만 Google은 당신에게 길을 보여 주어야합니다 ...

네이티브 win32로 컴파일하는 경우 어떤 형태의 난독 화 또는 심지어 방지 방지 메커니즘은 거의 시간 낭비입니다. 당신이나 내가 우리 모국어를 읽는 것처럼 쉽게 조립을 읽을 수있는 사람들이 있습니다. 이러한 것들은 역 엔지니어링 프로세스를 약간 느리게 느리게합니다.

몇 년 전, 나는 개발자가 버린 응용 프로그램을 다시 작성해야했습니다.

DFM-S에서 모든 것을 복구, 양식 (구성 요소 포함) 쿼리 문자열, TXYZQUERIES에 저장된 문자열, 이미지 목록의 비트 맵, 디 컴파일러가있는 일부 문자열, 응용 프로그램 로직을 복구 할 수 없으며 ASM 소스가있는 메소드 이름 만 복구 할 수 없습니다.

로더가 있습니다 (UPX와 같은 http://upx.sourceforge.net), 암호화, 압축 된 압축 응용 프로그램을 추출하여 시작시 IT를로드하지만 AV는 종종 이러한 응용 프로그램을 감염된 것으로 표시합니다. :(

당신은 그와 같은 작은 앱을 쓸 수 있습니다.

www.codeproject.com/kb/cs/loadexeintoassembly.aspx (.net) www.joachim-bauch.de/tutorials/load_dll_memory.html (dll-s 용)

응용 프로그램 만 보호됩니다 훔친 Themida 키는 안티 바이러스를 트리거해야합니다 (예 : Kaspersky가 감지 한 Win32. Black).

일반적으로 코드를 분리로부터 보호 할 수는 없습니다. 그러나 다음과 같은 도구를 사용하여 코드 가상화기 설치 코드 디코더와 같은 주요 영역을 보호 할 수 있습니다. 가상화 된 코드는 훨씬 느리고 특정 제한 사항이 있지만 캐주얼 해커 문제에 적합한 장애물이 추가됩니다. 이것은 빌드 스크립트에서 가장 잘 수행되므로 릴리스를 위해 일관되게 추가되므로 매번 적절한 보호를 보장합니다.

Protection BTW에서 설치 코드를 분리하여 기존 사용자에 대해 걱정하지 않고 언제든지 보호를 전환 할 수 있습니다.

마지막으로, 델파이 형태는 쉽게 액세스 할 수 있지만 일반적으로 변화에는 유용하지 않습니다.

기본 승리 플랫폼에 대해 생각하는 완전한 분해는 결코 달성되지 않습니다. 컴파일 시간 동안 디버그 기호 등을 포함시키지 않거나 일부 도구를 사용하여 이들을 숨기지 않으면 EXE를 디코딩 할 가능성이 거의 없습니다. .NET 일에 대해 전혀 모릅니다.

실행 파일을 보호하는 쉬운 방법은 인터넷 서버에서 웹 응용 프로그램으로 실행하는 것입니다. 델파이와 an Ajax 라이브러리 (예를 들어 extjs ~ 위에 ExtPascal, 웹의 경우 intraweb/vcl), 데스크탑 및 클라이언트/서버 응용 프로그램을 웹 응용 프로그램으로 변환 할 수 있습니다. (예) - 또한 다른 운영 체제 및 모바일 장치에 응용 프로그램을 사용할 수 있습니다.

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