내가 기억하는 한, 나는 예술과 컴퓨터과학에 흥미를 가지고 있으며 고맙게도 평생 동안 나를 올바른 방향으로 이끌어준 많은 사람을 만났다. 내가 어렸을 때 아버지는 여러 컴퓨터 수업과 과학 박물관에 나를 데려가 주셨고 스스로 배울 수 있는 자유를 허락했다. 이와 동시에, 어머니와 할머니는 항상 창의적인 사람이 되라고 응원해주셨다. 그래서 형이 2002년 무렵에 내게 컴퓨터를 처음 주었을 때, 나는 완전히 바뀌게 되었다. 몇 년 후 나는 펄 프로그래밍을 배우기 시작했고 같은 시기에 aircrack-ng를 이용해 무선 암호키를 처음으로 해킹했다. 시간이 지남에 따라 이 두 개의 다른 길이 하나로 겹쳐졌고, 나는 이상하고 복잡한 세상, 즉 컴퓨터과학에 도달하게 되었다.
펄과 리눅스, 정보보호의 조화로운 성질을 이해하기 시작한 때는 이 책을 쓰기 몇 년 전이다. 펄은 문자 조작을 위해 설계되었고 모든 것을 파일로 다루는 운영체제에서 특히 탁월하다. 나는 다른 프로그램 결과를 파싱하기 위해 펄 스크립트를 작성하는 대신에 다른 정보보호 프로그램의 기능을 흉내 내는 독립적인 코드를 지금 작성하고 있다. 이 단계에서 펄의 능력을 새삼 깨닫게 되었고, 마침내 이 책을 포함한 끝없는 기회의 문이 열렸다.
사람들에게 포트 스캐너를 만들고 Nmap이나 웹사이트의 이메일 주소로부터 정보를 추출하는 방법을 알려주기 위해 이 책을 쓰기 시작했다. 책 한 권을 쓴 이유로는 너무 하찮아 보이지만 펄은 그 이상의 가치가 있다고 생각한다. 많은 정보보호 전문가가 펄을 실용적인 자원으로 고려하지 않기 때문에 나는 다른 길을 가기로 했다. 이 책을 쓴 것은 펄의 끝없는 능력 위에 빛을 비추고 펄이 우리를 어디든지 데려갈 수 있다는 사실을 독자에게 가르치기 위해서며, 정보보호 분야에 있는 누구에게나 펄이 중요한 자산이 되게 하기 위해서다.
WPA2를 해킹하고, 패킷 도청과 분해, ARP 변조(바른 방향으로), 블라인드와 시간 기반 SQL 삽입 등의 다른 고급 기법을 수행하는 데 바이트 수준의 깊이까지 독자를 데리고 들어가기로 했다. 정보보호 분야에서 오랫동안 일한 사람들이 설계한 모의해킹 수행 표준안(PTES, Penetration Testing Execution Standard)에 어느 정도 맞춰서 이 과정을 설명했다.
기본적인 펄 프로그래밍은 이미 알고 있고, 이것을 정보보호와 모의해킹에 적용해 지식을 향상시키고 싶은 사람을 위해 이 책을 썼다. 각 장의 원래 목적과는 달리 창의력을 발휘해서 수업 내용을 확대하고 코드를 마음대로 수정해볼 것을 권한다.
이 프로젝트는 나에게는 믿을 수 없는 여정이었으며, 불행하게도 많은 심리적인 대가를 요구했다. 과거의 많은 프로젝트와 비슷하게, 이상한 에러나 원하지 않은 프로그램 결과에 대한 답을 찾기 위해 오래된 포럼이나 블로그의 글을 면밀히 조사하는 데 많은 시간을 보냈다. 오픈소스 지지자가 되기 위해서는 회복력과 결단력, 자기 동기가 필요하다. 사실 면접 과정에서 이것을 '열정'이라고 묘사한 적이 있다. 각 프로젝트를 통해 내가 마치 다른 사람이 된 것처럼 느꼈고 이번에도 예외는 없었다. 내가 이렇게 생각한 이유는 펄 프로그래밍을 가지고 꾸준히 배우고 있고, 펄을 얼마나 친밀하게 느끼는지와 상관없이 나는 언제나 더 잘 할 수 있기 때문이다.