1580, 1/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 : 20133     Date : 2013/07/23 11:15



    
     [공지] 강좌를 올리실 때는 말머리를 달아주세요^ㅡ^ [29] 멍멍 02/27 17656
1579   쉘코드 모음     해킹잘하고싶다
01/15 154
1578   Call by value VS Call by Reference     해킹잘하고싶다
01/15 72
1577   (꼼수) L.O.B 한방에 클리어하기[1]     해킹잘하고싶다
01/14 110
1576   towelroot.c (zip) 코멘팅.[2]     scube
08/18 2759
1575   levitator.c (안드로이드 루팅) 공격 분석 소스 코드 공유.[4]     scube
08/17 2787
1574   무료 정보보안 기술인재 양성 과정 교육생 모집     chanjung111
06/17 3478
1573   K-Shield 주니어 5기 모집     lrtk
06/17 3209
1572   [팁] 파이썬 2소스를 3으로 변경해주는 사이트[3]     한승재
05/13 2999
1571   구글 백링크 작업 질문요     wkatnxka
03/30 2602
1570   [팁] 우분투 미러링서버     한승재
03/09 2986
1569 비밀글입니다  감을못잡겠네요ㅜㅜ     잉잉잉
01/15 2
1568   데비안 계열 리눅스 의존성 깨졌을때 해결법     한승재
11/27 3315
1567   홍보합니다. 신생 보안커뮤니티입니다.     kimwoojin0952
10/26 3472
1566   신기한 프로그래밍 언어[3]     koreal33t
09/06 3797
1565   윈도우,리눅스에서 내 ip를 확인해 보자 [1]     koreal33t
09/06 3066
1564   CTF 사이트[1]     koreal33t
09/06 3556
1563   자격증 (문제)사이트 [2]     koreal33t
09/06 3452
1562   [퍼온글]리눅스 기본 명령어     한승재
06/06 4048
1561   [동강][퍼온글]C언어로 Hellow world를 출력해보자![2]     한승재
05/23 3643
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