보안 소프트웨어는 c언어를 왜 많이 사용하나요? 자바는 필요 없을까요?

ykw1101의 이미지

제가 보안 소프트웨어 개발이 꿈인데 c언어를 하다가 c보다 자바의 수요가 더 높은것 같아 자바를 하고 있는데 보안 프로그램에서는 c언어가 거의 사용된다고 하더라구요. 그 이유는 무엇인가요? 그리고 앞으로도 보안 소프트웨어에 자바 같은 객체지향 언어는 쓰이지 않을까요? 점점 c의 수요가 줄어든다는데 c언어를 더 팔지 자바를 할지 고민입니다..

지나가다가의 이미지

보안이라는게 암/복호화, Network 보안 등등 분야도 다양하고요.
C로 주로 되어 있는건 구현의 편리성이라고 생각됩니다. 직관적이기도 하고요.
보안쪽 공부에 중점을 두고 공부하시면서 C, Java 로 두루 구현가능하다면 좋을것 같네요.

Necromancer의 이미지

컴퓨터 시스템의 깊숙한 곳까지 핸들링하면서도 비교적 편하게 짤 수 있어서 c가 많이 쓰입니다. c도 고급 언어이긴 하나 기계와 밀접한 부분이 있어서 지금 나오는 고급 언어들에 비해 쓰기 편한 언어는 아닙니다.

일례로 안랩같은 백신업체들의 바이러스 분석 보고서에 헥사덤프가 많이 보이는데 c로 하면 이걸 다루기가 자유롭습니다. c보다 더 자유로운건 어셈블리인데 어셈블리는 코딩 효율이 엄청나게 떨어지기 때문에 c로 못하는곳 일부에 끼워넣는 형태로 쓸 뿐 메인으로는 안씁니다.

바이러스뿐만 아니라 buffer overflow 같은 비정상 동작을 유발하는 해킹 기법은 자세히 파고보면 H/W나 S/W의 설계상 허점을 이용하는 것인데, 이런 것들은 자바 같은 쓰기편한 고급 언어로는 구현이 거의 불가능합니다. 컴파일러, 인터프리터에서 이런걸 감지하고 막아버리거든요. 기계 성능보다 사람이 쓰기 편하게 하는데에(그래야 개발자들의 업무효율이 올라가고 회사는 빨리 프로그램 만들어서 돈벌죠.) 중점을 두는 것들이라

그리고 객체지향 불가능하다 하셨는데 c에서 가능한 것은 c++에서도 가능합니다.

그렇다고 해서 c 표준이 어쩌니 뭐니 하는 것까지 다 파고들 필요는 절대 없고요. 보안쪽 하게 된다면 c는 쓸만한 수준으로만 하고, 컴퓨터 동작 원리에 대해 해박해야 합니다. 어떤 작업을 할때 컴퓨터 내부의 각 부품들에서 어떤 동작이 일어나는지 전반적으로 다 알아야 합니다. 한대면 한대, 네트워크면 네트워크 동작과 거기 연결되는 컴퓨터 각각에 대해.

Written By the Black Knight of Destruction

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.