2012-11-30 2 views
2

리눅스 서비스를 PHP로 작성하고 HIPHOP으로 컴파일하려고합니다. 우리가 PHP로 프로젝트를 시작한 이래로 C++ 프로그래머 등을 고용하는 대신 사내에서 모든 프로그래밍을 할 수있었습니다. 우리는 PHP에 충실하고 싶습니다. 데몬은 단지 모니터링을하고 있기 때문에 실행 속도는 우리에게는 적절하지 않습니다. 그러나 우리는 코드를 이해하지 못하게하고 싶습니다. 데몬은 네트워크 통신 및 DB 로깅을 수행합니다. 이것이 가능한 실행 가능한 경로입니까? 또 다른 게시물에서 누군가가 프로그래밍에 특별한주의가 필요하다고 힙합은 모든 PHP 기능이 구현되지 않았기 때문에 설명했다. 아직도 그렇습니까? 나는 우리의 생각에 대한 당신의 전반적인 견해를 여기에 좋아할 것입니다.PHP에서 linux 데몬을 작성하고 난독 화를 위해 hiphop을 사용하여 컴파일 할 때 고려해야 할 사항

답변

0

HIPHOP은 처리 할 짐승입니다. 매우 제한적이므로 응용 프로그램과 배포 위치에 따라 다릅니다. 기억하십시오. 현재는 64 비트 아키텍처에서만 실행됩니다. 따라서 32 비트 시스템에 배포하려는 경우 즉시 진흙에 갇히게됩니다.

서로 다른 리눅스 배포판의 따라 응용 프로그램의 성격에 대한 여러 가지 바이너리를 구축 할 수 있습니다. HipHop은 Fedora와 CentOS에서만 잘 작동하므로 범위를 심각하게 제한 할 수 있습니다. PHP 인터프리터에서 벗어나면 운영 체제 간의 상호 교환 성이 매우 손실됩니다 (Windows, 사실상 모든 Linux, 모든 주요 BSD 배포판 ...)

또한 염두에 두십시오. 당신이 당신의 코드를 "난독 화"하고 싶은지 어느 정도 확신 할 수 없습니다. 네트워크 통화 등을 숨기고 싶다면, 패킷 스니퍼 (sniffer)는 외부 세계와의 통신 방식을 매우 쉽게 볼 수 있습니다.

마찬가지로, 디버거와 상당히 숙련 된 프로그래머는 당신이 알고있을 수 있습니다보다 더 큰 정도 바이너리를 리버스 엔지니어링 할 수있을 것입니다.

젠드 인코더 또는 IonCube 인코더와 같은 대안을 살펴 보는 것이 좋습니다. 비 자유형 옵션입니다. 살펴보고 싶은 다른 인코더도 있습니다.

"모니터링"이외의 다른 작업을하고 있는지 확실하지 않아 확실하게 말할 수 없습니다. 그러나 보조 옵션은 단순히 클라이언트 시스템에서 실행되는 코드의 양을 심각하게 제한하는 것입니다 (서버 시스템에보고한다고 가정 할 때). 전체 제어에서 가정되는 서버 시스템이 가능한 모든 방법.

다시 한번 말하지만 응용 프로그램의 성격과 배포하려는 위치에 따라 크게 달라 지므로 테스트를 통해 간단하게 아이디어를 탐색 할 수 있습니다. (그리고 많은 사람들이 "배치 할 곳"과 같이 빠르게 바뀔 수 있습니다.) HipHop은 매우 좁은 범위로 만들어졌습니다 : 가능한 한 빨리 PHP 코드를 실행하십시오. OS의 아키텍처와 CPU 아키텍처간에 고도의 융통성 또는 상호 호환성이 있도록 설계되지 않았습니다. 큰 응용 프로그램을 사용하기 전에이 점을 고려해보고 HipHop 사용의 모든 함의를 충분히 이해하십시오. 테스트, 테스트, 테스트.

관련 문제