1580, 3/79 회원가입  로그인  
   dontknow
   [자작]해킹하는데 C언어는 필요한가

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


포인트 벌기 용입니다.
가벼운 마음으로 읽고 싶으시면 읽으시면 됩니다.

글에 두서가 없습니다.

이후 존칭은 생략하겠습니다.

해킹에 입문시에 C언어를 해야 한다는 얘길 한번쯤은 들어봤을 것이다.
사실 C언어를 모르더라도 해킹이 불가능 한 것은 아니다.

그럼에도 불구하고 C언어를 권하는 이유는 무엇일까?

사실 해킹하는데 꼭 C언어가 필요한 것은 아니다.
필요한 것은 '언어(Language)'이다.

언어는 컴퓨터와 대화하기 위한 Tool인 것이다.
컴퓨터와 대화하기 위한 언어면 어느 것이든 중요하지 않다는 얘기이다.

C, C++, JAVA, C#, Delphi 와 같은 컴파일 언어뿐 아니라
VB, Python, Ruby 와 같은 스크립트 언어도 상관없다.

그냥 컴퓨터를 내 수족처럼 다루기 위한 툴을 하나정도 다를 줄 알면 된다.

특히 VB는 비교적 작성하기 쉬운 편에 속하므로 맵핵, 악성코드등에 사용되기도 한다.

JAVA의 경우 VM 위에 실행되므로 컴퓨터의 메모리 구조를 파악하는데 무리가 있다.
(JAVA는 포인터가 없다는 이유가 아니다. JAVA는 클래스 참조가 기본 메모리 참조이다.
또한, 하드웨어를 다를 수 있다없다의 문제도 아니다.)

물론 JAVA 내부 코드로 VM을 해킹해 상위 레이어로 접근할 수 있다면 그땐 엄청난 도구가 될 수 있을 것이다.

도구의 선택은 자유이다. 하지만 그 도구로 C언어를 추천하는 이유는 C언어가
컴퓨터의 구조를 파악하는데 용이하기 때문일 것이다.

번외편으로 그리고 또 한가지
언어를 배울 때에는 단순 문법만 알거나 코드를 읽는 정도의 수준에 그쳐서는 안된다는 것이다.

영어문법을 잘한다고 해서 영어로 의사소통이 가능한 것은 아니듯이
컴퓨터 언어도 컴퓨터와 의사소통이 가능할 정도로(영어로 치자면, 회화수준을 높이는 것)
프로그램을 많이 작성해 보아야 한다는 것이다.

그 나라의 문화와 관습을 이해하기 위해 실제 영어권 나라에 방문하는 것처럼
윈도우즈를 이해하기 위해 윈도우즈 환경에서 직접 프로그램도 해보고(콘솔환경뿐 아니라 GUI도 같이)
리눅스 프로그램도 해보는 것이다.
(단순, 구구단 출력프로그램, 에코 서버가 아닌 실제로 내가 필요하다고 생각되는 기능들을 구현하는 것이 중요, 물론 기존에 나와있는 프로그램과 같아도 상관없다.
내가 필요하다고 생각되는 기능이 없다면 그것은 컴퓨터를 모른다는 얘기도 된다. 좀 더 친해져야 할 필요가 있을것이다.)

이렇게 작성하다보면, 프로그래머들이 습관적으로 사용하는 코드들을 알게 된다.
(이런것들은 직접 작성해보지 않으면 알 수 없다)

그리고 이러한 코드의 헛점(strcpy, gets와 같은 뻔히 보이는 헛점들이 아닌)들도 자연히 보이게 된다.
- php로 아이디/비밀번호를 입력받는 로그인 프로그램을 작성해보면,
필연적으로 사용해야 하는 코드들이 있다. 물론 이러한 코드들이 무조건 헛점이 있는 것들은 아니지만.

일화롤 예를 들면,
해커들이 코드를 분석할 때 한줄 한줄 모두 스캔하는 것이 아니라 스크롤을 내리다가
'엇!' 하면서 무의식중에 멈추는 부분이 있다. 이상하게도 그런 부분엔 버그가 존재한다
란 얘기를 들어봤을 것이다.

코딩을 많이 하면 바로 이러한 감각이 자연히 발달하게 된다.
이러한 것들은 몸으로 느끼는 수 밖에 없다.

끝으로 C언어를 공부한다고 C언어만 할 필요는 없다. 우리가 학창시절 매일 국영수과사를 배웠던 것처럼.

  Hit : 20462     Date : 2013/07/23 11:15



    
1540   [자작] ssh / sftp 사용법 정리 (포트설정시)[1]     soohosin
02/15 20784
1539   D.H 의 HTML 강의 (1) 해킹의 기초[13]     DH_ 99
10/12 20477
  [자작]해킹하는데 C언어는 필요한가     dontknow
07/23 20461
1537   어셈블리어 강좌 5편     asdzxc301
12/13 20356
1536   해킹당한 서버에서 확인해야할일[9]     소유
09/21 19879
1535   cmos비밀번호 푸는 방법[25]     idl0521
12/29 19701
1534   [연습용 C자작] 스도쿠 소스[5]     Ilios
05/24 19650
1533   패스워드 알아내기 1[15]     geniusevil
12/15 19490
1532   [C기초] 12 - 삼항연산자(3항연산자)     sihun1113
05/01 19432
1531   어셈블리어 총정리 강좌     asdzxc301
12/13 19320
1530   네트워크 개념 휘어잡기 1[24]     소유
09/10 18993
1529   좋은 비밀번호란???[24]     소유
09/04 18767
1528   [펌] 리눅스 job, bg, fg에 관한 고찰[1]     qpt0707
04/06 18766
1527   sql 인젝션 공격기법[4]     subroutine
01/11 18490
1526   [c언어] 문자열을 입력받아 거꾸로 출력하기[8]     H.R.T
12/15 18317
     [공지] 강좌를 올리실 때는 말머리를 달아주세요^ㅡ^ [29] 멍멍 02/27 18281
1524   C언어로 만든 그래픽 프로그램[11]     승리의박성환
04/22 18259
1523   유치원 만화 크게보기[11]     소유
09/03 18064
1522   [자작] 한번 분석해본 보이스채팅 프로그램.[7]     푸른하늘
08/23 18040
1521   해커스랩 레벨 0 깨는 방법 - 시작하기[22]     불사
05/21 17786
[1][2] 3 [4][5][6][7][8][9][10]..[79]

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