mprotect

    0

    1답변

    일부 메모리 페이지를 쓰기 보호로 설정하려면 mprotect를 사용하고 있습니다. 해당 메모리 영역에서 쓰기가 시도되면 프로그램은 SIGSEGV 신호를받습니다. 신호 처리기에서 어떤 메모리 주소에서 쓰기가 시도되었는지는 알지만 어떤 명령이 쓰기 보호 위반을 초래하는지 찾는 방법을 알지 못합니다. 그래서 신호 처리기 내부에 잘못된 명령을 얻기 위해 프로그램

    1

    1답변

    저는 최근에 우회 기능 (Linux에서만)을 수행하고 있으며 지금까지 큰 성공을 거두었습니다. 내가 this을 찾을 때까지 나는 자신의 우회 수업을 개발하고 있었다. 나는 코드를 현대화하고 C++로 변환했다 (물론 클래스로). 이 코드는 다른 우회 구현과 마찬가지로 원래 함수 주소를 JMP로 대체하여 내 지정된 '후크'함수로 대체합니다. 또한 원래 함수에

    0

    1답변

    mprotect()을 사용하고 텍스트 세그먼트를 쓰기 가능하게 만들려면 elf의 텍스트 세그먼트가 들어있는 첫 번째 페이지의 주소를 정적으로 계산해야합니다. Section Headers: [Nr] Name Type Addr Off Size ES Flg Lk Inf Al .. [14] .text PROGBITS 08048380 000380 0002e0 00

    3

    1답변

    누군가가 메모리 주소 할당에 대한 쓰기를 감지하는 방법을 알고 싶습니다. 처음에는 sigaction과 함께 mprotect를 사용하여 쓰기/읽기 작업을 수행 할 때 세그멘테이션 오류가 발생했습니다. 몇 가지 사이에이 방법 두 부정적인 요인 : 는 mprotect가의 메모리 주소 패스가 처리 할 수있는 그 수는 없습니다 즉, 페이지 경계에 정렬되어야 세그먼트

    1

    1답변

    어떻게 프로그램을 격리하고 보호 할 수 있는지 이해하려고합니다. 프로세스가 메모리 페이지에 PROT_WRITE |PROT_EXEC을 필요로하는 유효한 경우가 있습니까? 피할 수 있습니까? 이것은 NX 비트 또는 W^X 또는 DEP가 달성하려고했던 것과 반대입니다. 리브레 (Libre) 사무실이이를 사용하고 있으며 강화 된 리눅스에서 많은 문제를 일으키는 것

    0

    1답변

    mprotect는 전체 메모리 페이지를 보호하는 데 사용됩니다. 아무도 단일 메모리 바이트를 보호하고 unportect하는 방법이 있다면 말해 줄래?

    1

    1답변

    스레드 용 메모리 영역을 제공하고 메모리 관리의 기본 개념을 적용해야합니다. 아이디어는 스레드 로컬 저장소를 작성하고 쓰기, 읽기 및 복제로 관리하고 지우기입니다. 문제는 TLS의 스레드와 연결된 페이지를 mprotect로 보호 해제하려고하면 오류가 발생합니다. 이것은 내 구조 : 그것은 mmap에 의해 매핑되는 int cnt; for (cnt = 0;

    1

    1답변

    대학 프로젝트의 경우 전체 주소 공간을 보호해야합니다. /proc/self/maps 파일을 읽고 매핑을 구문 분석했습니다. 그래서 형식 08048000-0804c000 r-xp 00000000 08:03 7971106 /bin/cat의 각 항목에 대해, 나는 그들이 진수로 변환, (여기 08048000 & 0804c000) 처음 두 항목을 읽고있다. 십진수

    2

    1답변

    좋은 오후. 나는 아래 코드를 가지고있다. 나는 그것을 실행하려고하지만, MakeCodeWritable 함수의 "first"와 "last"매개 변수가 무엇인지, 어디에서 찾을 수 있는지 모른다. 누군가 도울 수 있니? 이 코드는 C 난독 화 방법에 관한 것입니다. 저는 Xcode 프로그램과 LLVM GCC 4.2 컴파일러를 사용하고 있습니다. 이 기능 P

    6

    1답변

    리눅스 커널 모듈에 있는데, 예를 들어 vmalloc()과 같은 메모리를 할당합니다. 메모리에 읽기, 쓰기 및 실행 권한을 부여하려고합니다. 그 일을하는 깔끔하고 적절한 방법은 무엇입니까? 기본적으로 이것은 일반적으로 mprotect()을 호출하는 것과 동일하지만 커널 공간에 있습니다. 내가 페이지 산책을 할 경우 는 pgd_offset()는 pud_off