1582, 1/80 회원가입  로그인  
   p0wermilk
   해킹과 프로그래밍의 관계 (퍼온 글)

http://www.hackerschool.org/HS_Boards/zboard.php?id=Free_Lectures&no=8560 [복사]




- 프로그래밍, 해킹의 원초적 기술 -









해커와 프로그래밍의 관계
프로그래밍- 가장 기본이 되는 해킹 기술

물론 이것은 가장 기본이 되는 해킹 기술이다. 1997년까지 여러분이 반드시 배워야 할 프로그래밍 언어는 C이였다. 어떤 컴퓨터 프로그래밍 언어도 모른다면, 나는 Python 을 추천한다. 이 언어는 산뜻하게 설계되었으며, 문서화 또한 잘되어 있고, 비교적 초보자들이 접근 하기 쉬운 프로그래밍 언어이다. 비록 처음 접근하는 언어이기는 하지만, 장난감 같은 언어는 아 니다. 이 언어는 매우 강력하고 유연하며, 대형 프로젝트에도 적합하다. 나는 python에 대한 구체 적인 평가서를 작성했다. 그리고 학습서는 파이션 웹사이트에서 구할 수 있다.

여러분은 단 한두가지의 컴퓨터 언어만 알고 있다면 해커가 아니다. 심지어는 프로그래머의 수준도 않된다. 여러분은 어떤 한가지 언어에 편향되지 않는 보편적 방식으로 프로그래밍 문제에 관해 사고하는 방법을 배울 필요가 있다. 진정한 해커가 되려면, 매뉴얼에 기술된 내용과 당신이 알고 있는 것을 연관시켜, 며칠 이내에 새로운 언어를 배울 수 있는 수준까지 오를 필요가 있다. 이는 여러분이 최소한 매우 다른 몇 가지 언어를 익혀야 됨을 뜻하는 말이다.



진지한 프로그래밍을 하고 싶으면, C 언어를 익혀야 할 것이다. C 언어는 유닉스에서 핵심이 되는 언어이다. C와 C++ 는 아주 흡사하다, 만약 둘중에 하나를 익혔다면 다른하나를 배우는거도 쉬울것이다. 그러나 이 두 언어 모두 초보자가 프로그래밍을 시작하기에는 적합하지않다.. 실제로 C언어를 적게쓰면 쓸수록 당신의 작업효율은 높아질것이다.



C는 아주 효율적이고 자원을 절약한다. C언어의 고효율은 당신이 컴퓨터 최하층(예: 메모리)에대한 직접적인 관리를 토대로 하는것이다. 이러한코드는 아주쉽게 버그를 만들어낼수있고 많은 시간을 디버깅에 투자하여야한다. 요즘 컴퓨터는 점점 빨라지고있다. 이는 얻는것보다 잃는것이 더많을 것이다. 비교적 총명한선택은 실행속도가늦고 효율이낮은 하지만 대폭적으로 당신의 시간을 절약할수있는 언어를 선택하는것이다. 그러기에 python 을 선택한다.



해커에게 있어 특히 중요한 여타 언어들은 LISP 과 Perl 이다. Perl은 역동적인 웹 페이지를 작성하고 시스템을 관리하는 데 폭넓게 쓰 이는 언어라는 매우 실질적인 이유에서 배울 가치가 있다. Perl로 작성하지는 못한다 할지라도 이를 읽고 이해할 수는 있어야 한다. 많은사람들이 perl를 사용하는 이유는 내가 여러분들에게 python을 추천하는 이유와같다. 모두  C가 하지않아도될 고효율적인 작업을 하기위해서다. 당신은 그 코드들의 내용을 이해하는것을 필요할것이다.



리스프(LISP)는 마침내 도달하게 될 심오한 계발 경험을 위해 배울 가치가 있다. 그 경험은 여러분의 앞으로의 프로그래머로서의 기간동안 더욱 훌륭한 프로그래머가 되게 해주는 경험일 것이다. 비록 여러분이 리스프 자체를 실제로 그다지 많이 사용하지 않는다 할지라도 말이다.



5가지 언어(Python, JAVA, C/C++, Perl, 그리고 LISP) 모두를 배운다면 더할 나위 없겠다. 이 언어들은 가장 중요한 해킹 언어가 될 뿐더러, 이것들 각각은 프로그래밍에 대한 접근 방법은 서로 다르며, 여러분 에게 매우 소중한 접근법으로 가르침을 줄 것이다.



여기서 어떻게 프로그래밍 언어를 익혀야 하는가를 구체적으로 기술할 수는 없다. 매우 복잡한 기술(skill)이기 때문이다. 그렇지만 시중의 서적이나 강좌들은 그렇지 못하다는 것을 밝히지 않을 수 없다(거의 대다수의 해커들이 독학한다). 굳지 말하라면, ⑴ 코드를 읽고 ⑵ 코드를 작성하는 것이다.



프로그램을 배운다는 것은 일상의 언어로 매우 좋은 글을 쓰는 것과 같다. 이렇게 하기 위한 최 선의 방법은 명인(名人)들이 작성한 자료를 읽고 스스로 습작을 해보고, 많은 글을 읽고 작성해보 고, 더욱 많은 글을 읽고 좀더 많은 글을 작성하고.... 한마디로 당신이 작성한 글들이 여러분들 만의 틀로 일종의 힘과 경제성을 개발하기 시작할 때까지 반복에 반복을 거듭하는 길뿐이다. 읽기 좋은 코드를 찾기란 매우 어렵다. 그 이유는 소스 상태로 애송이 해커들이 알고 어설프게 다룰 수 있는 대형 프로그램을 구할 수가 없기 때문이다. 이러한 상황은 극적으로 변화를 보고 있다. 지금은 소스 공개(open-source) 소프트웨어, 프로그래밍 툴(tool), 운영 체제(이 모든 것들은 해커들이 만든 것이다)들을 어디서든 구할 수 있다.

저자 : 에릭 스티븐 레이몬드(Eric S. Raymond <esr_at_snark.thyrsus.com>  


  Hit : 879     Date : 2021/01/29 05:42
[불법/스팸글로 신고하기]



    
     [공지] 강좌를 올리실 때는 말머리를 달아주세요^ㅡ^ [29] 멍멍 02/27 15871
1581   Windows Reverse Engineering PeFile     p0wermilk
03/09 638
  해킹과 프로그래밍의 관계 (퍼온 글)     p0wermilk
01/29 878
1579   4차원 배열을 우리 머릿속에서 도형화하기[2]     p0wermilk
12/26 941
1578   towelroot.c (zip) 코멘팅.[1]     scube
08/18 1162
1577   levitator.c (안드로이드 루팅) 공격 분석 소스 코드 공유.[2]     scube
08/17 1204
1576   무료 정보보안 기술인재 양성 과정 교육생 모집     chanjung111
06/17 1652
1575   K-Shield 주니어 5기 모집     lrtk
06/17 1507
1574   [팁] 파이썬 2소스를 3으로 변경해주는 사이트[3]     한승재
05/13 1413
1573   구글 백링크 작업 질문요     wkatnxka
03/30 1251
1572   [팁] 우분투 미러링서버     한승재
03/09 1447
1571   [자작글] php로 상대방 IP 알아내기 [2]     한승재
02/27 2193
1570 비밀글입니다  감을못잡겠네요ㅜㅜ     잉잉잉
01/15 1
1569   데비안 계열 리눅스 의존성 깨졌을때 해결법     한승재
11/27 1645
1568   해킹길라잡이     한승재
11/02 2408
1567   홍보합니다. 신생 보안커뮤니티입니다.     kimwoojin0952
10/26 1927
1566   신기한 프로그래밍 언어[2]     koreal33t
09/06 2162
1565   윈도우,리눅스에서 내 ip를 확인해 보자 [1]     koreal33t
09/06 1674
1564   CTF 사이트[1]     koreal33t
09/06 1924
1563   자격증 (문제)사이트 [1]     koreal33t
09/06 1834
1 [2][3][4][5][6][7][8][9][10]..[80]

Copyright 1999-2021 Zeroboard / skin by Hackerschool.org / Secure Patch by Hackerschool.org & Wowhacker.com