커널 모듈 관련 문의 드립니다 !! 도와 주세요 ㅠㅜ

soo20987의 이미지

전에 있던 커널 소스는 잊어버려서 ㅠㅜ

현재 커널 이미지만 가지고 있습니다.

그런데 커널 이미지에 박혀 있는 모듈이 있는데요

박혀 있는 모듈을 사용 하지 않고

그 모듈을 새로 컴파일 해서 insmod해서 사용 하면

커널에서 새로 만든 모듈을 사용 하게 될까요?

아니면 박혀 있는 모듈을 사용 하게 될까요? ㅡㅠ

커널에 그 모듈이 박혀 있는 상태에서 새로 만든 모듈을

insmod 해서 사용 하는 방법이 있을까요?

고수님들 도와주십시요 ㅠㅜ..

bushi의 이미지

System.map 이 없다면 ... 수십배 더 힘들어집니다.

zImage 의 uncompress 부분을 조심스레 떼어내서 보관합니다.
나머지에 gzip 헤더를 만들어 붙여서 gunzip 으로 decompress 합니다.
(한번도 해본적이 없어서 방법도 모르겠고, 떼어낸 나머지에 gzip 헤더가 붙어 있는지 없는지도 모르겠습니다)

System.map 을 열어서 __init_begin 과 __init_end 사이 어디엔가에 기존모듈의 초기화 루틴 엔트리가 있으니 열심히 찾습니다.
찾았다면, decompress 한 바이너리를 hex editor 로 열어서 찾아갑니다.
찾아갔다면, 바로 return 되도록 고칩니다.

바이너리를 다시 gzip compress 합니다.
gzip 헤더를 떼 내야 할지 그냥 둬야 할진 잘 모르겠고...
하여간 아까 고이 보관했던 uncompress 부분을 조심스레 다시 붙입니다.

런타임에 수정하는 방법도 System.map 의 도움을 받아야 합니다.
기존 모듈이 사용하는 resource 와 동작방식을 최대한 알고 있어야 합니다.
인터럽트를 사용한다면 IRQ 번호는 뭔지,
주기적으로 I/O 포트를 감시하는지, 감시한다면 타이머인지, 혹시 커널 쓰레드를 사용하는지.
System.map 을 참고해서,
interrupt description table 의 action 핸들러를 바꿔치기하고,
timer list 에서 timeout 핸들러를 바꿔치기 하고,
커널 쓰레드는 죽일 수 있는 방법을 찾아서 죽여버리고.

그나저나 커널소스(헤더)가 없는 상태라면,
새 모듈을 빌드해도 제대로 동작할런지 보장이 안됩니다.
2.4 커널이야 그리 어렵지 않게 어거지를 쓰는게 가능했지만, 어거지를 쉽게 쓸 수 있다 뿐이지 제대로 된 모듈을 만들어 내는 것은 아닙니다.

댓글 달기

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