current process 의 task_struct 를 구하려고 합니다.

bigbaby의 이미지

current process 의 task_struct 를 구하려고 합니다.

linux 커널 소스에 그 부분이 있더군요..

"/linux-2.6.15.2/include/asm-i386/current.h"

내부의 get_current() 를 호출하면 task_struct* 를 얻을 수가 있을것 같은데..

단순히 저의 소스에서 해당 파일을 include 해주고, 호출해준다고 해서 호출이 되지 않더군요.

2시간정도 구글링하고, 여기도 뒤지는데, 외국 사람이 사용하는 법을 물어본 글이 있더군요

반가운 마음에, 글을 봤더니 ..답글에 커널해킹에 대한 레벨이 있어야한다면서 답을 없더군요..

혹시 제 프로그램의 task_struct 를 얻는 다른 시스템 콜이나 위의 방법을 사용할 수 있는

간단한 예제라도 좀 부탁드립니다. 간단한 조언도 괜찮습니다. 그럼 좋은 밤 되세요.

Q의 이미지

질문이 application에서 task_struct의 포인터를 얻고싶다는건지요?
만약 그렇다면 그 포인터를 얻는들 아무 쓸모도 없을듯합니다.

application 은 0B ~ 3GB까지의 공간에서 움직이고, 커널은 3GB ~ 4GB까지입니다.
즉 커널의 주소공간을 application이 가지고 접근할수있다면 security측면에서 큰 문제가 될수있겠죠.
그래서 application이 주소를 접근할때 3GB를 넘어가면, 접근할수없게 kernel에서 막아놓았습니다.

driver단에서는 task_struct에 접근가능합니다. Curent macro를 이용하면 간단하죠.
필요한게 무엇인지 모르겠으나,
task_struct의 어떤 정보만 필요하다면, driver를 따로 만들어서
driver단에서 해당 정보를 user application쪽으로 되돌려줄수있는 것은 가능할거 같네요.

bigbaby의 이미지

예를 들면,vi 프로그램을 하나 실행시키고,,

이 프로세스의 task_struct의 정보를 얻을려고 했습니다.

이 task_struct 를 얻어서 pid 나 여러정보들을 볼려고 했습니다.

단순히, task_struct 멤버들의 값을 알기 위해서 였습니다.

드라이버 단이라;; 전혀 그쪽을 공부한적도 없고 내공이 없는지라..갑갑하네요..ㅠㅠ

답변 감사합니다. ㅠㅠ

moonhyunjin의 이미지

모듈(device driver)은 어렵지 않게 만들 수 있습니다.
http://lxr.linux.no/source/include/linux/sched.h#L528

<- 이거면 안되는 게 없어~
정품 소프트웨어 사용 캠패인

<- 이거면 안 되는 게 없어~
정품 소프트웨어 사용 캠패인

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.