2008-09-24 5 views
0

그래서 나는 부활절 달걀에 대한 선호가있다 ... 이것은 부활절 달걀 아카이브의 발견 된 공동체의 일부인 나에게 거슬러 올라간다.코드 난독 화?

그러나 오픈 소스 프로그래밍도 많이하고 있습니다.

내가 알고 싶은 것은 어떻게 체계적이고 체계적으로 코드를 모호하게 만드는 최선의 방법이라고 생각합니까?

PHP/Python/C/C++의 예제가 선호되지만 다른 언어의 경우는 방법론이 제대로 설명 된 경우에 문제가 없습니다.

+2

부활절 달걀과 오픈 소스에 관한 진술이 코드 난독 화와 어떤 관련이 있는지 나는 알지 못합니다. 귀하의 질문에 난독 화가 있습니까? :-) – Hobbo

+0

나는 두꺼운 여기에 있을지도 모릅니다. (어젯밤에는 잠을 자지 만) 오픈 소스 코드를 혼란스럽게하고 싶습니까? 오픈 소스가 실제로하는 것에 반대하는 그런 종류가 아닌가?나는 그것을 숨기기보다는 오히려 덜 명백하게 말합니다. 많은 사람들이 보지 않을 곳에 계란을 묻어 두십시오. –

+0

나는 부활절 달걀이 근본적으로 있다는 것을 분명히하고 싶다 ... 아니면, 부활절 달걀을 비틀 거려야 할 때보 다 더 잘 이해할 수있는 악의적 인 코드를 만들어야한다. – Mez

답변

3

그런 경우 "obfuscator"를 사용/작성해야합니다. 당신을 위해 일하는 프로그램.

도롱뇽 Obfuscator는 .Net 프로그램을 난독 화하는 데 사용할 수 있지만 디 컴파일을 방지하는 것이 더 필요하므로 정확하게 필요한 것은 아닙니다. C에서 난독에 대해 배울 수있는

좋은 장소는 문제는 또 다른 기능을 수행하기 위해 표시하지 않고 일반 시력 (오픈 소스)에서 보이는 비 난독 화 코드를 작성하는 방법입니다 International Obfuscated C Code Contest

+2

IOCCC는 자동화 된 난독 화와 아무 관련이 없습니다. – shoosh

+2

참. 저의 생각은 다음과 같습니다. 난독 화 방법을 아는 것은 자동화 된 난독 화 메커니즘을 작성하는 데 도움이됩니다. IOCCC는 영감 일 수 있습니다. – Burkhard

1

입니다.

+2

스테 가노 그라피 (Steganography) : 발신자와 수신자를 제외하고 아무도 숨겨진 메시지가 있다는 것을 깨닫지 못하도록 숨겨진 메시지를 작성하는 예술과 과학. – Schwern

1

어떤 명백한 방법 : 당신이 할 수

  • 로 파괴
  • 변수의 이름을 바꾸 라인을 가입 사물과 기능없이 의미 (바람직하게는 1 개 문자)의 의견과 많은 공백을 제거
4
  1. 전체 최적화로 코드를 컴파일하십시오. 바이너리를 완전히 제거합니다.
  2. 코드에서 디 컴파일러를 사용하십시오.

나는 결과가 당신도 그것을 읽을 수 없도록 완전히 읽을 수 보장 할 수 있습니다)

1

을 코드 체계적이고 조직적 난독를 들어, 펄을 이길 수 없습니다. 바이너리로 컴파일하는 것을 원하면 항상 APL이 있습니다.

.NET 프레임 워크를 타겟팅하는 경우 리소스 달걀 소스 코드를 binhex 문자열로 넣습니다. 그런 다음 초기 초기화 루틴 중 하나를 가져 와서 해독하고 메모리로 컴파일 할 수 있습니다. 리플렉션을 사용하여 호출 할 수 있습니다.

메모리로 컴파일하고 결과 어셈블리를 호출하는 기술적 측면에 대한 도움이 필요하면 필자가 작성한 라이브러리와이를 사용하는 샘플 프로그램을 제공 할 수 있습니다.

이 기술을 사용하여 플러그 - 인을로드 할 수 있습니다.이 플러그 - 인은 합법적 인 일이며 이니셜 라이저로 합리적인 것입니다.

2

기호 이름 바꾸기의 정신에서 같은 이름의 다른 변수의 이름을 지정하여 범위와 가시성 규칙을 남용합니다.