자, 이제 왜 이 책을 읽어야 하는지, 누가 은밀한 소프트웨어를 사용하고 있는지, 이 책이 무엇을 말할 것인지 이야기해 봅시다.
왜 이 책을 읽습니까?
전통적인 보안 연구와 달리 숨겨진 소프트웨어는 컴퓨터가 컴퓨터 바이러스에 의해 침입하는 것을 방지하는 방법에 관심이 없습니다. 그것은 컴퓨터 바이러스의 저자가 다른 사람이 바이러스를 분석하는 것을 어떻게 막는가에 관심이 있다! 마찬가지로, 우리는 소프트웨어에 보안 취약점이 있는지 여부도 신경쓰지 않는다. 프로그램이 변조될 때만 실행되는 코드를 프로그램에 몰래 추가하는 방법에 관심이 있습니다. 암호화 분야에서 암호화된 데이터의 보안은 암호화 키의 기밀성에 따라 다르며, 현재 우리가 연구하고 있는 것은 바로 키를 숨기는 방법입니다. 소프트웨어 엔지니어링에는 좋은 프로그램 구조를 보장하기 위한 많은 소프트웨어 측정 기술이 있다. 이 책은 같은 기술을 사용하여 프로그램을 복잡하고 읽기 어렵게 만들 것이다. 이 책에서 설명하는 많은 기술은 컴파일러 최적화 기술을 기반으로 개발된 알고리즘이지만 컴파일러 최적화의 목적은 컴파일러에서 생성된 프로그램을 가능한 한 작게, 가능한 한 빨리 만드는 것입니다. 그러나 이 책에서 설명한 기술 중 일부를 사용하면 생성된 프로그램이 매우 커지고 실행이 느려집니다. 마지막으로, 기존의 디지털 워터마크와 은쓰기는 이미지, 오디오, 비디오, 심지어 일반 텍스트 파일에 숨겨진 정보를 숨기려고 시도하고, 은쓰기 소프트웨어는 숨길 정보를 컴퓨터 코드에 숨기려고 합니다.
그렇다면 왜 이 책을 읽어야 할까요? 컴퓨터가 바이러스나 웜에 의해 공격받는 것을 막을 수 없는 보안 기술을 알아야 하는 이유는 무엇입니까? 코드를 더 크게 만들고 실행 속도가 느려지는 컴파일 최적화 기술을 배워야 하는 이유는 무엇입니까? 암호학의 기본 전제 조건 (즉, 공격자가 키를 획득할 수 없음) 을 위반하는 암호 학점에 정력을 기울여야 하는 이유는 무엇입니까?
대답은 전통적인 컴퓨터 보안 및 암호학의 연구 결과가 실제 업무에서 직면하고 시급히 해결해야 할 보안 문제를 해결하지 못하는 경우가 있다는 것입니다. 예를 들어, 이 책은 소프트웨어 해적판을 막기 위해 소프트웨어 워터마크 기술을 사용하는 방법을 보여 줄 것이다. 소프트웨어 워터마크는 프로그램에 포함된 고유 식별자입니다 (신용 카드의 카드 번호 또는 저작권 고지와 유사). 이 식별을 통해 프로그램 사본은 사용자 (프로그램 작성자) 또는 고객과 연결됩니다. 시장에서 자신의 소프트웨어의 해적판 CD 를 발견하면 해적판 소프트웨어를 통해 추출한 워터마크를 통해 이 해적판 소프트웨어를 구매한 주인을 추적할 수 있습니다. 파트너에게 제공할 때 새로 개발된 게임의 베타 버전에 디지털 워터마크를 추가할 수도 있습니다. 누군가가 당신의 코드를 유출했다고 생각한다면, 가해자를 찾아 법정에 고소할 수 있습니다.
예를 들어, 새로운 버전의 프로그램에는 새로운 알고리즘이 추가되었습니다. 물론, 당신은 경쟁자가 이 알고리즘을 받아서 그들의 소프트웨어에 추가하는 것을 원하지 않는다. 이 시점에서 프로그램을 엉망으로 만들고, 가능한 한 복잡하게 만들고, 경쟁사의 역분석 소프트웨어를 비효율적으로 만들 수 있습니다. 만약 누군가가 당신의 코드를 베꼈다고 의심한다면, 이 책은 소프트웨어' 태기' 를 사용하여 의심을 증명하는 방법도 가르쳐 줄 것이다. (윌리엄 셰익스피어, 햄릿, 믿음명언)
예를 들어, 프로그램에 알 수 없는 코드가 포함되어 있는데, 이러한 코드 프로그램이 없으면 제대로 작동하지 않는지 확인하려고 합니다. 예를 들어, 해커가 프로그램의 소프트웨어 라이센스 인증 코드나 디지털 저작권 관리 시스템에서 MP3 파일을 해독하는 데 사용할 수 있는 키를 수정하는 것을 원치 않을 것입니다. 7 장에서는 변조된 프로그램이 제대로 작동하지 않도록 다양한 변조 방지 기술에 대해 설명합니다.
네가 키를 실행 파일에 넣었다고 들었어? 얼마나 나쁜 생각인가! 과거의 경험에 따르면, 이와 비슷한' 비밀, 즉 안전' 은 결국 실패로 끝날 것이며, 어쨌든 프로그램에서 키를 숨기면 완강한 역분석가의 손바닥을 벗어날 수 없다는 것을 알 수 있다. (윌리엄 셰익스피어, 햄릿, 안전명언) 물론, 너의 방법이 여전히 옳다는 것을 인정해야 한다. 이 책에서 설명하는 모든 기술은 소프트웨어가 해커의 공격으로부터 영원히 보호된다는 것을 보장하지 않습니다. 어떤 것이 영원히 비밀로 유지될 것을 보장할 필요가 없고, 프로그램은 영원히 변조되지 않고, 코드는 영원히 표절되지 않는다. 이 연구 분야에서 중대한 돌파구가 없다면, 우리가 기대할 수 있는 것은 상대방의 공격을 미루는 것이다. 우리의 목표는 공격자의 공격 속도를 충분히 느리게 해서 당신을 공격하는 소프트웨어가 매우 고통스럽거나 비용이 많이 든다고 느끼게 하여 공격을 포기하는 것이다. (존 F. 케네디, 공격명언) 공격자가 인내심을 가지고 방어를 돌파하는 데 오랜 시간이 걸렸을 수도 있지만, 이때 당신은 이미 이 소프트웨어에서 돈을 충분히 벌었거나, 이미 최신 버전의 코드를 사용했을 수도 있다. (이때 그가 얻은 것은 아무런 가치도 없다.) (알버트 아인슈타인, 인내명언)
예를 들어, 유료 채널의 운영자라면 셋톱 박스를 통해 제공하는 TV 프로그램을 시청할 수 있습니다. 각 셋톱 박스에는 레이블이 있습니다. 각 사용자에게 할당된 고유 ID 는 코드의 한 위치에 저장되므로 사용자의 지불에 따라 특정 사용자가 채널의 프로그램을 볼 수 있도록 허용할지 거부할지 결정할 수 있습니다. 하지만 현재 한 해커 단체는 이 코드를 발견하고 해체하고 사용자 ID 를 계산하는 알고리즘을 찾아내 인터넷에서 사용자 ID 를 수정하는 방법을 저렴한 가격에 판매하고 있다. (윌리엄 셰익스피어, 윈스턴, 해커, 해커, 해커, 해커, 해커, 해커, 해커) 이럴 때 너는 어떻게 해야 하니? 변조 방지 스마트 카드를 사용해 본 적이 있을 수도 있지만, 이 물건은 보기에 그렇게 해독이 어렵지 않다. 이것은 1 1 장에서 설명할 것이다. 또는 혼동 코드를 떠올려 분석하기가 더 어려울 수 있습니다. 또는 변조 방지 기술을 사용하여 프로그램이 수정되면 자동으로 작동을 중지할 수 있습니다. 위의 기술을 혼합하여 코드를 보호할 가능성이 더 높습니다. 하지만 모든 기술을 사용했음에도 불구하고, 코드를 해독하고 비밀을 누설할 수 있다는 사실을 알고 받아들여야 한다. (이 경우 셋톱 박스의 사용자 ID 는 여전히 변조될 수 있다.) (이 경우 셋톱 박스의 사용자 ID 는 여전히 변조될 수 있다.) (알버트 아인슈타인, Northern Exposure (미국 TV 드라마), 예술명언) 어떻게 이런 일이 일어났을까요? 이것은 단지' 공개하지 않으면 안전하다' 는 생각이 근본적으로 결함이 있기 때문이다. 하지만 이 책에 소개된 모든 기술들이 당신에게' 완벽하고 장기적인 안전보장' 을 줄 수 없다면, 왜 이런 기술을 사용해야 하고, 또 이런 책을 사야 하는가? (윌리엄 셰익스피어, 햄릿, 독서명언) 답은 간단합니다. 해커의 공격에 저항하는 코드가 길수록 해당 채널에 가입한 고객이 많아지고 셋톱 박스 업그레이드 주기가 길어져 돈을 많이 벌수록 절약되는 돈이 많아진다.
이렇게 간단합니다.
누가 비밀 소프트웨어를 사용합니까?
많은 유명 회사들이 비밀 소프트웨어에 관심이 있다. 사실, 이 기술이 실제로 얼마나 사용되고 있는지 알기는 어렵지만 (대부분의 회사들이 코드를 보호하는 방법에 대해 절대 입을 다물고 있기 때문), 우리는 여전히 그들의 특허 출원과 소유권을 근거로 숨겨진 소프트웨어에 대한 관심을 추측할 수 있다. (윌리엄 셰익스피어, Northern Exposure (미국 TV 드라마), 예술명언) 마이크로소프트는 많은 소프트웨어 워터마크, 코드 혼란, 소프트웨어' 태기' 를 보유하고 있으며 회사를 설립하는 데 성공했다. 애플은 코드 혼동에 관한 특허를 가지고 있는데, 아마도 iTune 소프트웨어를 보호하는 데 사용될 것이다. Convera 는 디지털 저작권 관리에 사용되는 코드 변조 방지 기술에 초점을 맞춘 인텔사의 독립 기업입니다 [27,268-270]. 캐나다 북부 텔레콤에서 분리된 망토 회사도 이 분야에서 가장 성공한 기업 중 하나다. 이 회사는 암호화 알고리즘과 키를 프로그램 코드에 숨기는' 화이트박스 암호화' [67,68, 182] 라는 특허를 보유하고 있습니다. 5438 년 6 월 +2007 년 2 월, 망토 회사는 주로 유료 TV 업무에 종사하는 네덜란드 회사인 에디드에 의해 7250 만 달러에 인수되었다. 후발자의 태양 마이크로시스템에도 코드 난독 분야에서 특허 출원을 제출했다.
Skype 의 VoIP 클라이언트도 Arxan[24], Intel [27] 및 [89] 와 같은 코드 혼동 및 변조 방지 기술을 사용합니다. 이 기술은 이 책에서 역엔지니어링 강화를 위해 언급됩니다. Skype 의 경우 클라이언트의 무결성을 보호하는 것이 매우 중요합니다. 누군가가 클라이언트 소프트웨어를 성공적으로 분석하고 Skype 가 사용하는 네트워크 프로토콜을 분석하면 해커가 Skype 소프트웨어와 정상적으로 통신할 수 있는 저렴한 프로그램을 작성할 수 있기 때문입니다 (이 경우 사람들은 Skype 를 사용할 필요가 없습니다). 따라서 네트워크 프로토콜의 사유성을 유지하는 것은 Skype 가 방대한 사용자 기반을 확보하는 데 도움이 될 것이며, 이는 이벨이 2005 년 26 억 달러로 Skype 를 인수한 이유일 가능성이 높다. 실제로 숨겨진 소프트웨어 기술의 사용은 Skype 에게 VoIP 기술의 리더가 될 수 있는 충분한 시간을 제공합니다. 이때 Skype 프로토콜을 분석 했더라도 (해커가 한 것처럼 7.2.4 절 참조) 해커는 Skype 의 시장 지위를 뒤흔들 수 있는 유사한 소프트웨어를 생각해 낼 수 없습니다.
학술 연구자들은 다른 각도에서 숨겨진 소프트웨어 기술을 연구했다. 컴파일러와 프로그래밍 언어 연구의 배경을 가진 일부 연구자들은, 예를 들어, 코드 변환과 관련된 대부분의 알고리즘에는 정적 분석이 포함되기 때문에, 최적화 기술을 컴파일하는 연구원들이 잘 알고 있기 때문에 자연스럽게 이 연구에 동참할 것이다. (윌리엄 셰익스피어, 윈스턴, 프로그래밍, 프로그래밍, 프로그래밍, 프로그래밍, 프로그래밍, 프로그래밍, 프로그래밍) 과거에는 대부분의 암호학자들이' 프라이버시, 보안' 문제를 연구하는 것을 하찮게 여겼지만, 최근 일부 암호학자들은 암호학 관련 기술을 소프트웨어 워터마크에 적용하기 시작했고 코드 난독 기술의 한계를 발견했다. 멀티미디어 워터마크, 컴퓨터 보안 및 소프트웨어 엔지니어링의 연구원들도 숨겨진 소프트웨어에 대한 많은 문장 자료를 발표했습니다. 불행히도, 전문 간행물과 학술회의 부족으로 이 분야의 연구 진척이 크게 연기되었다. 사실, 연구원들은 이러한 연구 성과가 전통적인 학술회의와 정기 간행물에 의해 받아들여질 수 있도록 노력하고 있으며, 여전히 노력하고 있다. 현재 숨겨진 소프트웨어 연구 성과를 발표한 학술회의에는 POPL (프로그래밍 언어 원리) 에 대한 ACM 세미나, 정보 은닉 세미나, IEEE 소프트웨어 엔지니어링 세미나, 고급 암호화 회의 (CRYPTO), ISC (정보 보안 회의) 등 디지털 저작권 관리에 관한 학술회의가 있습니다. 숨겨진 소프트웨어 분야의 연구가 학술 연구의 주류가 됨에 따라, 우리는 숨겨진 소프트웨어를 전문적으로 연구하는 정기 간행물, 간담회, 심지어 세미나까지 나타날 것으로 예상되지만, 유감스럽게도 이 모든 것이 아직 실현되지 않았다.
군부도 비밀 소프트웨어에 많은 정력을 쏟았다. 예를 들어 쿠소트가 소유한 소프트웨어 워터마크 알고리즘 특허 [95] 는 세계 9 대 국방공사 청부업자인 프랑스 테레즈 그룹에 속한다. 다음은 최신 (2006 년) 미군 입찰 서류 [303] 에서 인용한 AT (변조 방지) 기술 연구에 관한 내용입니다.
현재 모든 미군 프로젝트 집행 부서 (PEO) 와 프로젝트 관리자 (PM) 는 관련 시스템을 설계하고 구현할 때 군부와 국방부가 제정한 AT 전략을 사용해야 합니다. 임베디드 소프트웨어는 현대 무기 시스템의 핵심이며 보호가 가장 필요한 기술 중 하나입니다. AT 기술은 이러한 기술이 리버스 엔지니어링에서 다른 국가 (사람) 에 의해 분석되지 않도록 효과적으로 보장할 수 있습니다. At 기술 보호 없이 표준 컴파일러 컴파일에서 생성된 코드를 쉽게 역분석할 수 있습니다. 리버스 엔지니어링 분석가는 디버거, 디컴파일 프로그램, 디스어셈블러 등 소프트웨어를 분석할 때 다양한 정적 및 동적 분석 기술을 사용합니다. AT 기술을 사용하는 목적은 리버스 엔지니어링을 더욱 어렵게 만들어 미국의 기술적 우위를 다른 나라에서 도용하는 것을 방지하는 것이다. 앞으로 육군의 PEO 및 예방 유지 관리를 위해 보다 유용하고 효과적이며 다양한 자동 테스트 도구 세트를 제공할 필요가 있습니다. AT 기술 개발의 목적은 리버스 엔지니어링 분석에 저항할 수 있는 강도 높은 껍데기를 제공하고 보호 소프트웨어에 대한 적의 공격을 최대한 늦추는 것입니다. 이렇게 하면 미국은 첨단 기술 분야에서의 우위를 유지하거나 무기 기술의 유출을 늦출 수 있는 기회를 갖게 된다. 결국 미군은 계속 기술적 우세를 유지함으로써 군비상의 절대적인 우세를 보장할 수 있다.
이 입찰 문서는 미군의 미사일 및 우주계획 (설계부) 에서 온 것으로 실시간 임베디드 시스템 보호에 중점을 두고 있다. 이 입찰 서류는 미군이 적에게 발사된 미사일이 여러 가지 이유로 착지 후 폭발하지 않을까 봐 적에게 미사일이 내장된 제어 소프트웨어에 접근할 수 있는 기회를 주고 미사일이 목표물을 넘을 수 있도록 유도할 수 있도록 하기 때문이라고 믿을 만한 이유가 있다. (윌리엄 셰익스피어, 미사일, 미사일, 미사일, 미사일, 미사일, 미사일, 미사일, 미사일)
다음은 미 국방부 [1 15] 의 또 다른 구절이다.
사전 예방적 소프트웨어 보호 (SPI) 는 국방부의 책임 중 하나로 국방 무기 시스템의 핵심 정보를 포함하는 컴퓨터 프로그램의 보안을 보장하기 위해 관련 보호 기술을 개발하고 배포해야 합니다. SPI 는 기존 보안 기술과 마찬가지로 컴퓨터나 네트워크를 보호하지 않고 컴퓨터 프로그램 자체의 보안을 강화하는 새로운 보안 방법을 제공합니다. 이 새로운 방법은 국방부의 정보 보안을 크게 향상시킬 수 있습니다. SPI 는 데스크톱에서 수퍼컴퓨터에 이르는 모든 프로그램이 SPI 기술을 통해 보호될 수 있도록 널리 사용되고 있습니다. 완전한 층이며,' 종심방어' 의 예입니다. SPI 기술은 네트워크 방화벽, 물리적 보안 등의 기존 보안 기술을 보완하지만 이러한 기존 보안 장치에 의존하지 않습니다. 현재 SPI 기술은 선택한 HPC 센터, 150 개 이상의 국방 부서 및 상업 회사가 구축하고 유지 관리하는 기타 군사 기지에 구축되어 있습니다. SPI 기술의 광범위한 구축은 미국과 미 국방부의 핵심 애플리케이션 기술 보호를 효과적으로 강화할 것입니다.
위의 이 말은 무엇을 설명합니까? 미 국방부는 미사일이 적의 영토에 떨어질 수 있는지 여부뿐만 아니라 자체 안전계수와 성능이 높은 컴퓨터 센터에서 실행되는 소프트웨어의 안전에도 관심을 갖고 있다고 설명했다. 사실, 절도와 절도는 반간첩기구와 정보부 사이의 영원한 주제이다. 예를 들어 전투기의 프로그램을 업데이트해야 합니다. 이때 우리는 이 전투기를 노트북으로 연결하여 업데이트 작업을 할 가능성이 높다. 하지만 이 노트북을 실수로 잃어버렸거나 영화에 자주 등장하는 것처럼 다른 정부에 의해 어떤 방식으로 통제된다면 어떻게 될까요? 상대방은 즉시 관련 코드를 이용해 리버스 엔지니어링 분석을 하고 분석 결과를 이용해 전투기에 사용되는 소프트웨어를 개선한다. 더욱이, 상대방은 조용히 당신의 소프트웨어에 트로이 말을 추가하여 비행기가 어느 시점에서 하늘에서 떨어지게 할 것입니다. 위 시나리오가 100% 불가능하다는 것을 절대적으로 보장할 수 없다면, 은밀한 소프트웨어는 최소한 최후의 방어선으로 사용될 수 있다 (적어도 사후에도 책임을 추궁할 수 있다). 예를 들어 비행기의 소프트웨어는 관련 소프트웨어에 액세스할 수 있는 사람의 ID 로 지문 서명을 만들 수 있습니다. 만약 어느 날 이 코드들이 다른 나라의 전투기에서 발견된다면, 우리는 즉시 이 코드들을 역분석하여 누가 누설의 원흉인지 더 계산해 볼 수 있다.
뭐? 정부와 거대 기업들 사이에서 그들의 비밀을 어떻게 보호할 수 있는지에 대해 왜 관심을 가져야 하는지 들었습니다. 만약 해커가 이 소프트웨어들을 해독한다면, 단지 자신의 노동을 통해 약간의 이익을 얻었을 뿐이다. 그럼에도 불구하고, 이러한 보호 기술의 장점은 결국 그들이 상업 거물들에게 가져다주는 이점보다 더 크다. (윌리엄 셰익스피어, 템페스트, 과학명언) 그 이유는 특허, 상표, 저작권과 같은 법적 보호 조치가 법원에 소송을 제기할 수 있는 충분한 재력이 있는 경우에만 작용하기 때문이다. (윌리엄 셰익스피어, 특허, 상표, 저작권, 저작권, 저작권, 저작권, 저작권, 저작권, 저작권, 저작권) 다른 말로 하자면, 큰 회사가 코드를 해독하여 엄청난' 돈' 을 표절했다고 생각하더라도, 그 마라톤 소송을 통해 마이크로소프트를 기소할 수는 없다. 이 금융 경쟁에서 살아남기에 충분한 자금력이 없다면 말이다. (존 F. 케네디, 돈명언) (알버트 아인슈타인, 돈명언) 이 책에서 논의한 보호 기술 (예: 코드 혼동 및 변조 방지) 은 저렴하고 사용하기 쉬우며 중소기업과 대기업 모두 사용할 수 있습니다. 이때 이 대기업을 기소하면 워터마크나 소프트웨어' 태기' 등의 기술을 이용해 법정에서 코드 표절의 실제 증거를 즉석에서 선보일 수 있다.
마지막으로 숨겨진 소프트웨어를 잘 사용하는 또 다른 부류인 나쁜 사람을 간단히 언급해야 한다. 이 바이러스의 저자는 이미 코드 난독 기술을 이용해 바이러스 코드를 위장하여 바이러스 백신 소프트웨어 탐지를 피하는 데 매우 성공했다. DVD, 게임, 케이블 TV 보호와 같은 기술을 사용할 때는 해커에 의해 해독되는 경우가 많지만, 맬웨어를 구축하는 것과 같은 기술을 사용할 때는 대항하기가 매우 어렵다는 점은 주목할 만하다. (윌리엄 셰익스피어, Northern Exposure (미국 TV 드라마), 스포츠명언)
이 책의 내용
숨겨진 소프트웨어 연구의 목적은 가능한 한 상대 (리버스 엔지니어링 분석) 의 진도를 늦추고 이 기술을 사용하여 프로그램 실행에 추가된 컴퓨팅 오버헤드를 최소화하는 알고리즘을 개발하는 것입니다. 또한 "프로그램에서 알고리즘 A 를 사용한 후 해커가 원본 프로그램보다 T 단위를 더 많이 소비하고, 새 프로그램의 성능 오버헤드는 0" 이라고 말할 수 있도록 평가 기술을 개발해야 합니다. 또는 최소한 "알고리즘 A 로 보호되는 코드는 알고리즘 B 보다 돌파하기 어렵다" 고 말해야 합니다. 특히 숨겨진 소프트웨어에 대한 연구는 아직 초기 단계에 있다는 점을 강조해야 한다. 우리가 책에서 모든 관련 보호 알고리즘과 평가 알고리즘을 소개할 것이지만, 이 예술의 현황은 그다지 이상적이지 않다. (그때가 되면 너는 너무 실망해서는 안 된다.)
이 책에서는 현재 숨겨진 소프트웨어에 대한 모든 연구 결과를 정리하여 독자에게 체계적으로 소개하려고 합니다. Dell 은 각 장에서 한 가지 기술을 다루고 이 기술의 응용 분야와 현재 사용 가능한 알고리즘을 설명하려고 노력합니다. 1 장은 숨겨진 소프트웨어 분야의 몇 가지 기본 개념을 제공합니다. 2 장에서는 역분석 소프트웨어에서 해커가 일반적으로 사용하는 도구와 기술을 적대적 데모 모드로 소개한 다음, 이러한 도구와 기술에 따라 해커의 공격을 방지하는 방법에 대해 설명합니다. 3 장에서는 해커와 소프트웨어 보호자가 컴퓨터 프로그램을 분석하는 데 사용하는 기술에 대해 자세히 설명합니다. 4 장, 5 장, 6 장에서는 코드 혼동과 관련된 알고리즘에 대해 설명합니다. 일곱 번째 장에서는 변조 방지 기술에 대한 관련 알고리즘을 소개합니다. 8 장과 9 장은 각각 워터마크와 관련된 알고리즘을 소개한다. 10 장에서는 소프트웨어' 태기' 관련 알고리즘을 소개합니다. 1 1 장에서는 하드웨어 디바이스 기반 소프트웨어 보호 기술에 대해 설명합니다.
만약 당신이 기업 관리자라면, 숨겨진 소프트웨어의 연구 현황과 이러한 기술들이 프로젝트에 어떻게 적용되는지에 대해서만 관심이 있다면, 1 장과 2 장만 읽어 보세요. (존 F. 케네디, Northern Exposure (미국 TV 드라마), 예술명언) 컴파일러 디자인 배경을 가진 연구원이라면 3 장으로 뛰어가서 읽기를 시작하는 것이 좋습니다. 하지만 다음 장은 순서대로 읽는 것이 좋습니다. 왜냐하면 ... 음 ... 예를 들어, 코드 난독 화 장에서 소개한 지식은 워터마크 기술을 소개하는 장을 사용하기 때문이다. 물론, 이 책을 쓰는 과정에서, 우리는 각 장을 독립시키려고 노력한다. 그래서 (배경 지식이 있다면) 가끔 한두 장을 건너뛰는 것도 좋다. 만약 당신이 엔지니어라면, 관련 기술을 이용하여 당신의 소프트웨어를 강화하고자 한다면, 제 3 장의 모든 내용을 자세히 읽는 것이 좋습니다. 가능하다면,' 프로그램 정적 분석' 에 대한 지식을 보완하기 위해 컴파일 원리의 교재를 만들어야 합니다. (데이비드 아셀, Northern Exposure (미국 TV 드라마), 예술명언) 그런 다음 관심있는 장으로 뛰어 들어 자유롭게 읽을 수 있습니다. 만약 당신이 대학생이라면 이 책을 교과 교재로 읽는다면 한 페이지씩 읽으세요. 기말에 복습하는 것을 잊지 마세요. (데이비드 아셀, Northern Exposure (미국 TV 드라마), 대학생명언)
나는 이 책이 두 가지 일을 할 수 있기를 바란다. 우선, 코드 난독 화, 소프트웨어 워터마크, 소프트웨어' 태기', 변조 방지에 대한 많은 멋진 아이디어가 있다는 것을 독자들에게 증명하고 싶습니다. 이 기술들은 소프트웨어를 보호하는 데도 사용할 수 있습니다. 둘째, 이 책이 현재 이 분야에서 유용한 모든 정보를 수집하여 숨겨진 소프트웨어에 대한 심층 연구를 위한 좋은 출발점을 제공하기를 바랍니다.
크리스티안 콜버그와 저스빌 나글라
2009 년 2 월 2 일 (마모의 날)
부언은 사실 이 책을 쓰는 데는 세 번째 목적이 있다. 만약, 이 책을 읽는 과정에서, 당신은 갑자기 깨달음을 얻었고, 절묘한 아이디어를 생각해 내서, 숨겨진 소프트웨어 연구에 투신하려는 야망을 불러일으켰다면, 사랑하는 독자들, 나의 세 번째 목표가 실현되었다. (데이비드 아셀, Northern Exposure (미국 TV 드라마), 독서명언) 당신의 새로운 알고리즘을 우리에게 알려 주십시오. 우리는 그것을 이 책의 다음 판에 추가할 것입니다!