이렇게 된 PHP 코드는 해독이 어려운가요?

이렇게 된 PHP 코드는 해독이 어려운가요?

QA

이렇게 된 PHP 코드는 해독이 어려운가요?

사용 PHP 버전

5.4 이상

본문

안녕하세요.

 

제가 CodeCanyon에서 PHP 난독화 도구를 구매하고 간단히 태스트 해보았습니다.

 

(무엇보다도 프로그램이 꽤 저렴해서 좋았습니다.)

 

난독화 된 코드


<?php /* File is protected by copyright law! Checksum: 900aaab886b1c22ab4ad6a5c6d127eab */ eval(base64_decode("JElsMWxsSWwxSWxJMWw9ZmlsZShwcmVnX3JlcGxhY2UoIkBcKC4qXCguKiRAIiwiIixfX0ZJTEVfXykpOw0KaWYocHJlZ19yZXBsYWNlKCJAXCguKlwoLiokQCIsIiIsX19GSUxFX18pPT1fX0ZJTEVfX3x8DQpwcmVnX3JlcGxhY2UoIkBcKC4qXCguKiRAIiwiIixfX0xJTkVfXykhPTMpZGllKCI8dHQ+RVJST1IiKTs"));eval(base64_decode("ZXJyb3JfcmVwb3J0aW5nKDApO2lmKCFmdW5jdGlvbl9leGlzdHMoIk8wME8wMDBPME8iKSl7ZnVuY3Rpb24gTzAwTzAwME8wTygkYSwkYil7JGM9YXJyYXkoMTA1MiwzMjQsMzIsNzcxKTskaz1nemluZmxhdGUoYmFzZTY0X2RlY29kZSgiS3lyTlRjb3NLUVlBIikpOyRPME8wPSRrWzZdLiRrWzFdLiRrWzNdLiRrWzZdLiRrWzVdLiRrWzBdOyRPMD0iJGtbNV0ka1swXSRrWzRdJGtbMl0iO2lmKCRiPT0zOCl7JGQ9JE8wTzAoJGEsJGNbMF0rJGNbMV0sJGNbMl0pO31lbHNlaWYoJGI9PTQwKXskZD0kTzBPMCgkYSwkY1swXSwkY1sxXSk7fWVsc2VpZigkYj09MTEyKXskZD0kTzAoJE8wTzAoJGEsJGNbMF0rJGNbMV0rJGNbMl0pKTt9cmV0dXJuJGQ7fX0="));eval(base64_decode(O00O000O0O($Il1llIl1IlI1l[0],40)));return eval(III1IIII1I1(O00O000O0O($Il1llIl1IlI1l[0],112),O00O000O0O($Il1llIl1IlI1l[0],38),$Il1llIl1IlI1l));__halt_compiler();SyaWYoIWZ1bmN0aW9uX2V4aXN0cygiSUlJMUlJSUkxSTEiKSl7ZnVuY3Rpb24gSUlJMUlJSUkxSTEoJGEsJGIsJGMpeyRkPWltcGxvZGUoJGMpOyRkPXByZWdfcmVwbGFjZSgiL19faGFsdF9jb21waWxlci4qLyIsIiIsJGQpO2lmKCRiPT1oYXNoKCJtZDUiLCIkZCIpKXtyZXR1cm4oaGV4MmJpbihiYXNlNjRfZGVjb2RlKCRhKSkpO31lbHNle2RpZSgiPHR0Pm1kNSBDb2RlIG1hbmlwdWxhdGlvbiBkZXRlY3RlZDwvdHQ+Iik7fX1996021b5d3e3e23e1079228ba01fe78eaMGQwYTI0Njc2ZTc1NjI2ZjYxNzI2NDIwM2QyMDIyZWFiN2I4ZWI4ODg0ZWJiM2I0ZWI5MzljM2EyMDIyM2IyMDI0NzM3NDcyNjk2ZTY3NWYzMTIwM2QyMDIyZWI4YzgwZWQ5NTljZWJhZmJjZWFiNWFkMjBlYzliYjllYmE3ODhlYzhhYTRlZDg0YjBlYzlkOTgyMGVhYjVhZGViYWZiYzIwZWJiMGE1ZWM4MzgxMjEzYzYyNzIyMDJmM2UyMjNiMjAyNDczNzQ3MjY5NmU2NzVmMzIyMDNkMjAyMmVhYjdiOGViODg4NGViOWU5MTIwZWM4YmI4ZWM5YWIwZWI4YmE0ZWFiMDgwMjBlYzk3YjBlYzk1YTBlYjhmODQyMGViODE5ZGViODJhY2VjOGFiNWViOGI4OGViOGJhNDIwZTM4NWEwZTM4NWEwMjAzYzYyNzIyMDJmM2UyMjNiMjAyNDczNzQ3MjY5NmU2NzVmMzMyMDNkMjAyMmVhYjdiY2ViOGRiMDIwZWM4N2JjZWQ5NTkxZWJhYWIwZWM5ZDgwMjBlYzk3YjRlYzk3ODhlYzk2YjRlYzlhOTQyMGVmYmQ5ZTI4ZWZiZmEzZTI5NmJkZWZiZmEzMjllZmJkOWUyMjNiMjA2NTYzNjg2ZjIwMjQ2NzZlNzU2MjZmNjE3MjY0MmUyMDI0NzM3NDcyNjk2ZTY3NWYzMTJlMjAyNDczNzQ3MjY5NmU2NzVmMzIyZTI0NzM3NDcyNjk2ZTY3NWYzMzNiMjA

 

원본소스


<?php
$gnuboard = "그누보드: ";
$string_1 = "대한민국 웹마스터의 국민 밥상!<br />";
// 생략...
echo $gnuboard. $string_1. $string_2.$string_3;
?>

 

eval(base64_decode()) 로 난독화 처리된 코드는 디코드가 쉽지 않을까요?

 

PHP 고수님들은 바로 해독 가능할 것 같은데요 ^^

 

그냥 태스트 코드인데요. PHP 고수님들 한번 해독 해보시겠어요? ㅎㅎ

 

 

이 질문에 댓글 쓰기 :

답변 3

$string_2 = "... 열었어요 ~( ̄▽ ̄)~";

PHP에서 난독화를 굳이 할 필요가 있을까 싶네요.

라엘님, 정답입니다.

제가 작성한 원본소스는 아래와 같습니다.


<?php
$gnuboard = "그누보드: ";
$string_1 = "대한민국 웹마스터의 국민 밥상!<br />";

$string_2 = "그누랑 싸우다가 연애도 끝났습니다 ㅠㅠ <br />";
$string_3 = "근데 쇼핑몰은 열었어요 ~( ̄▽ ̄)~";

echo $gnuboard. $string_1. $string_2.$string_3;

?>


실력이 대단하시네요..

고수님들께는 난독화 (obfuscator)가 완전 무용지물이군요.. ^^

제가 그누보드 답변을 쭉 읽어보면 항상 질문과 다른 답변이 달리더라구요

 

이글도 난독화 어떻냐고 물어보니
어디 어떻게 쓸지도 모르는데 굳이 난독화가 필요하냐 ? 라는 저런 답변 하는게 참 안타깝습니다.
 

PHP에서 난독화가 필요없다고 하시는분은 실력이 문제일까요?
아니면 큰 사이트를 운영해보신 적이 없으신분 같네요.
그게 사실인 마냥 그렇게 말씀하시면
다른분들은 "아 ~ php는 난독,암호화 굳이 안해도 되구나." 하고 잘못생각 할 수 있으니
굳이 필요할까? 왜 굳이 쓰려고 하냐는 둥 그런말은 제발 좀 지양해주세요. 보기가 싫네요. 

알고싶으니까 모르니깐 물어보겠죠 ? 근데 굳이 해야하냐고 답변 달면 무슨 의도와 심보인지 정말 궁금합니다.

거두절미하고
base64 는 암호화로 보기 어렵죠.
복호화가 매우x1000 쉽거든요.

다른 SHA256 와 같은걸로 암호화 시도해보시면 좋을거 같습니다. 복호화가 힘듭니다.
그리고 eval과 같은 php명령어는 보안상 되도록 다른걸로 대체하셔서 쓰시는게 좋습니다

이 분.. 글 읽기 훈련이 필요해보입니다.
난독화 해독해 달라는게 질문이었고, 해독한 답변을 달았습니다. 어디에도 왜 굳이 쓰려고 하냐는 말이 없네요.
다른 글에서도 이런 피해망상적인 글 남기지 않기를 바랍니다.

본인에게 해당되는 말입니다.

어디에도 왜 굳이 쓰려고 하냐는 말이 없다는데 ..

바로 위에 본인이 하신말

해독답변과함께 "PHP에서 난독화를 굳이 할 필요가 있을까 싶네요." 라고 하셨습니다.ㅋ;

달달달달이 님, 안녕하세요 ^^

예전에도 달달달달이 님의 도움을 받았던 것 같네요.

달달달달이 님의 털털하고 시원스러운 성격이 정말 매력적입니다.

저도 동문서답은 싫더라구요. 핵심이 잘 통하는 대화가 좋죠 ^^

내일이 추석인데요.

행복이 가득하시고, 풍성한 한가위 보내시기 바랍니다.

SIR 제작사에서 배포한 Gnuboard 오픈 소스를 난독화하여 재배포하는 행위는 Gnuboard 제작사의 Gnu 정신과 규정에 부합이 되는지, AI 에게 이런 질문을 던져보았습니다.

 

Q:

그누보드는 한국 오픈소스 생태계의 한 축입니다. 코드를 난독화해 재배포하는 행위가 ‘소프트웨어 자유’와 ‘공유의 가치’를 내세운 GNU 정신과 조화될 수 있을까요?

 

A:

짧히 결론부터 — 대부분의 경우 그누보드 소스를 난독화(가독성을 떨어뜨리는 형태로 변형)해서 재배포하는 것은 그누보드 제작사의(그리고 GNU 계열 라이선스의) 정신과 규정에 맞지 않을 가능성이 큽니다. 아래에 이유·근거·권장 행동을 정리합니다.

핵심 이유

  1. 그누보드의 라이선스
    그누보드(특히 v4·v5 관련)는 공식 페이지에서 오픈소스·GNU 계열(예: LGPL/GPL 계열)로 배포된다고 명시하고 있습니다. 라이선스 전문과 적용 범위를 공식 문서에서 확인해야 합니다. Sir+1

  2. GPL/LGPL의 ‘소스 제공’ 요구
    GPL 계열 라이선스는 배포 시 수신자가 수정·재배포·검토할 수 있도록 “사람이 읽을 수 있는 형태의 소스(=preferred form for modification)”를 제공하도록 요구합니다. 단순히 난독화된(또는 의도적으로 읽기 어렵게 만든) 소스를 제공하면 이 요건을 충족하지 못해 라이선스 위반으로 해석될 수 있습니다. FSF(과 GNU 문서)와 오픈소스 커뮤니티의 일반적 해석이 이렇습니다. gnu.org+1

  3. 난독화는 ‘권리 박탈’로 보일 수 있음
    난독화는 기술적으로는 코드를 전달하지만, 실질적으로 수신자가 소스의 자유(읽고 수정·분배할 자유)를 행사하기 어렵게 만듭니다. 여러 법률·실무 논의는 “난독화된 소스는 GPL의 요구하는 ‘수정 가능한 원본’이 아니다”라고 봅니다. Open Source Stack Exchange+1

실무적 결론 (요약)

  • 그누보드가 GPL/LGPL 계열이면: 난독화 상태로만 재배포하는 것은 라이선스 위반 또는 GNU 정신(사용자·커뮤니티의 자유 보장)에 반할 가능성이 큽니다. 재배포하려면 난독화 전의 ‘사람이 읽을 수 있는’ 원본(또는 원본을 받을 수 있는 명확한 방법)을 함께 제공해야 합니다. Sir+1

  • 만약 해당 버전이 MIT/퍼미시브 라이선스라면: 난독화·재배포가 법적으로 허용될 가능성이 높습니다(라이선스 조건 확인 필요). 다만 “윤리적·커뮤니티 관점(=GNU 정신)”에서는 권장되지 않을 수 있습니다. GitHub+1

권장 행동

  1. 재배포하려는 **그누보드의 정확한 버전(예: v4, v5, 특정 릴리스)**의 라이선스 전문을 먼저 확인하세요(공식 사이트 또는 저장소). Sir+1

  2. GPL/LGPL이면, 난독화본만 배포하지 말고 원본 소스(또는 원본을 받을 수 있는 명확한 방법)를 함께 제공하세요.

  3. 법적 리스크가 걱정되면 저작권/오픈소스 전문 변호사에게 문의하세요 — 라이선스 해석(특히 ‘수정 가능한 형태’ 기준)은 상황별로 달라질 수 있습니다.

원하시면 — 제가 대신 (1) 그누보드의 현재 사용 중인 정확한 버전의 라이선스 전문을 찾아 요약해 드리거나, (2) 배포 방식(난독화 + 소스 제공 방안) 예시 문구를 만들어 드릴게요. 어떤 걸 도와드릴까요?

답변을 작성하시기 전에 로그인 해주세요.
전체 129,672 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT