안녕 커널 내부에서 sys_getpid()를 사용하여 프로세스 ID를 얻었습니다 커널 구조체에서 프로세스 이름을 어떻게 찾을 수 있습니까? 그것은 커널에 존재합니까 ??linux 커널 내의 PID에서 프로세스 이름을 얻습니다.
4
A
답변
13
감사는 executable name excluding path
을 포함, 회원이 comm라는 포함되어 있습니다.
Get current macro from this file는 현재 프로세스를 시작한 프로그램의 이름을 얻습니다 (insmod/modprobe에서와 같이).
위 정보를 사용하면 이름 정보를 얻을 수 있습니다.
0
확실하지는 않지만 find_task_by_pid_ns이 유용 할 수 있습니다. 당신은 예를 들어 /proc/<pid>/
에있는 특수 파일을 볼 수 있습니다
0
는 /proc/<pid>/exe
실제 바이너리를 가리키는 심볼릭 링크입니다.
/proc/<pid>/cmdline
은 널로 구분 된 명령 행 목록이므로 첫 번째 단어는 프로세스 이름입니다.
1
커널 모듈이 "modprobe -v my_module --allow-unsupported -o some-data"로로드되고 "some-data"매개 변수가 추출됩니다. 다음 코드는 나에게 전체 명령 행을주고, 여기에 내가 관심있는 매개 변수를 파싱하는 방법입니다
이struct mm_struct *mm;
unsigned char x, cmdlen;
mm = get_task_mm(current);
down_read(&mm->mmap_sem);
cmdlen = mm->arg_end - mm->arg_start;
for(x=0; x<cmdlen; x++) {
if(*(unsigned char *)(mm->arg_start + x) == '-' && *(unsigned char *)(mm->arg_start + (x+1)) == 'o') {
break;
}
}
up_read(&mm->mmap_sem);
if(x == cmdlen) {
printk(KERN_ERR "inject: ERROR - no target specified\n");
return -EINVAL;
}
strcpy(target,(unsigned char *)(mm->arg_start + (x+3)));
는 "대상"는 -o 매개 변수 후 문자열을 보유하고 있습니다. 이것을 다소 압축 할 수 있습니다 - 호출자 (이 경우 modprobe)는 사용자의 필요에 맞게 mm-> arg_start의 첫 번째 문자열이됩니다.
관련 문제
- 1. pid에서 _complete_ 프로세스 이름을 얻으십시오.
- 2. 수정 한 파일을 다시 빌드하는 Linux 커널 만들기 프로세스
- 3. Linux 커널 타이머 변경
- 4. Linux 커널 모듈 디버깅
- 5. Linux 커널 디버그 출력물?
- 6. linux 커널 aio 기능
- 7. 프로세스 메모리 맵 (Linux Windows)
- 8. 시스템에 다른로드가없는 syscalls 차단 (Linux 커널)
- 9. Linux 커널 dentry 및 inode
- 10. KVM을 사용한 Linux 커널 개발
- 11. Linux 커널 모듈 프로파일 링
- 12. 메모리 무결성을 검사하는 Linux 커널 모듈
- 13. 리눅스 프로세스 용 커널 스택
- 14. linux - 프로세스 PID를 가져옴
- 15. suid가있는 Linux 프로세스 디버그
- 16. JVMTI는 Class/File이라는 이름을 얻습니다.
- 17. asp.net 회원은 로그인 이름을 얻습니다.
- 18. 비 커널 헤더를 포함하여 Linux 커널 (2.6) 모듈을 컴파일
- 19. 프로세스 모니터링 - Python/Ubuntu/Linux
- 20. Linux 프로세스 간 재진입 세마포어
- 21. JVM 및 Java Linux 프로세스
- 22. Linux 커널 코드에 .S 파일 추가
- 23. Linux 커널 모듈 - 보안 위험이 있습니까?
- 24. Linux 커널 모듈의 파일 I/O
- 25. Linux 커널 - 블록 번호를 프로그래밍 방식으로 검색합니다.
- 26. 커널 공간에서 Linux syscall을 호출하려면 어떻게합니까?
- 27. Linux 커널 기능을 모듈로 바꿀 수 있습니까?
- 28. .config에 따라 Linux 커널 소스를 제거하십시오.
- 29. Linux 커널에서 inode 가져 오기 커널
- 30. C를 사용하여 Linux 커널 버전을 읽으시겠습니까?
Malesh N.이 커널 코드에서이 작업을 수행 할 수 있기를 바랍니다. – craig65535
이것은'filp_open', @ craig65535를 사용하여 커널 공간에서 얻을 수 있습니다. – Quaker