반응형

C 117

Linux 커널:시스템 콜 후킹 예시

Linux 커널:시스템 콜 후킹 예시 시스템 호출 테이블을 잠그기 위한 간단한 테스트 코드를 작성하려고 합니다. "sys_call_table"은 2.6으로 내보내지 않기 때문에 System.map 파일에서 주소를 가져오기만 하면 올바른 주소를 알 수 있습니다(메모리를 통해 찾은 주소에서 시스템 호출에 대한 포인터를 확인할 수 있습니다). 그러나 이 테이블을 수정하려고 하면 커널에서 "Oops"와 "가상 주소 c061e4f4에서 커널 페이징 요청을 처리할 수 없습니다"라는 메시지가 표시되고 시스템이 재부팅됩니다. 2.6.18-164.10.1.el5를 실행하고 있는 CentOS 5.4입니다.무슨 보호책이 있나요? 아니면 그냥 버그가 있는 건가요?SELinux와 함께 제공되는 것을 알고 있으며 허용 모드로 설..

sourcecode 2022.07.27

실제로 포인트 캐스트가 올바른 경우는 언제입니까?

실제로 포인트 캐스트가 올바른 경우는 언제입니까? 속설은 다음과 같다. 유형 체계가 존재하는 데는 이유가 있다.정수와 포인터는 구별되는 유형이며, 이들 사이의 캐스팅은 대부분의 경우 잘못된 것으로 설계 오류를 나타낼 수 있으므로 피해야 합니다. 이러한 캐스팅이 이루어지는 경우에도 정수 및 포인터의 크기에 대해 어떠한 가정도 해서는 안 된다(캐스팅void*로.intx64)에서 코드가 실패하도록 하는 가장 간단한 방법입니다.int사용해야 한다intptr_t또는uintptr_t부터stdint.h. 그렇다면 실제로 언제 이런 캐스팅을 하는 것이 도움이 될까요? (주의: 휴대성 가격에 대해 조금 더 짧은 코드를 사용하는 것은 "실제로 유용한" 코드라고 간주되지 않습니다.) 내가 아는 한 가지 사례: 일부 잠금 프..

sourcecode 2022.07.27

Unix 콘솔 또는 Mac 터미널에서 C/C++ 코드를 컴파일하여 실행하려면 어떻게 해야 합니까?

Unix 콘솔 또는 Mac 터미널에서 C/C++ 코드를 컴파일하여 실행하려면 어떻게 해야 합니까? Unix 콘솔 또는 Mac 단말기에서 C 또는 C++ 코드를 컴파일/실행하려면 어떻게 해야 합니까?단순한 단일 소스 프로그램일 경우, make foo 소스 파일이 foo.c, foo.cpp 등일 경우 makefile도 필요 없습니다.Make에는 소스 파일을 동일한 이름의 실행 파일로 빌드할 수 있는 기본 제공 규칙이 있습니다(확장자 제외). 하는 것은하는 것과 의 경우 에 대한 경로를 지정해야 는 셸이 에 하기 때문입니다.$PATH 파일을 대부분의 디렉토리가 되지 않습니다( 「 」 「 」 「 」 「 」 「 」 「 」 「 」 「 」 「 」 「 」 。.를 참조해 주세요. 실행 파일을 foo: ./foo gcc ..

sourcecode 2022.07.27

버블 정렬이 GCC의 -O2보다 -O3의 -O3의 -O2일 때

버블 정렬이 GCC의 -O2보다 -O3의 -O3의 -O2일 때 C에서 버블 정렬을 구현하고 성능을 테스트하고 있을 때 이 버블 정렬이-O3깃발은 깃발이 전혀 없는 것보다 더 느리게 작동하게 만들었다! ★★★★★★★★★★★★★★★★★.-O2기대했던 것보다 훨씬 더 빨리 작동하게 만든 것 같아요. 최적화 없음: time ./sort 30000 ./sort 30000 1.82s user 0.00s system 99% cpu 1.816 total -O2: time ./sort 30000 ./sort 30000 1.00s user 0.00s system 99% cpu 1.005 total -O3: time ./sort 30000 ./sort 30000 2.01s user 0.00s system 99% cpu 2...

sourcecode 2022.07.27

'EVP_Decrypt'를 해결하는 방법FInal_ex: 파일 복호화 중 잘못된 복호화"

'EVP_Decrypt'를 해결하는 방법FInal_ex: 파일 복호화 중 잘못된 복호화" 저는 다음과 같은 질문이 있습니다.해결책을 제안해 주실 분 있나요? 저는 처음으로 파일의 암호화와 복호화를 하고 있습니다. 다음 명령을 사용하여 명령 프롬프트를 통해 암호화된 파일이 있습니다. openssl enc -aes-256-cbc -in file.txt -out file.enc -k "key value" -iv "iv value" 프로그래밍 방식으로 해독해야 해그래서 프로그램을 작성했는데 다음과 같은 오류가 발생합니다. ./exe_file enc_file_directory ... error: 06065064: digital envelope routines: EVP_DecryptFInal_ex: bad decr..

sourcecode 2022.07.26

출력에서 동일한 길이를 얻기 위해 printf()를 사용하여 문자열을 포맷하는 방법

출력에서 동일한 길이를 얻기 위해 printf()를 사용하여 문자열을 포맷하는 방법 두 가지 기능이 있습니다. 하나는 다음과 같은 메시지를 생성합니다.Starting initialization...반환 코드와 출력을 체크하는 다른 장치도 있습니다."Ok","Warning"또는"Error"다만, 생성되는 출력의 길이는 다릅니다. Starting initialization...Ok. Checking init scripts...Ok. 어떻게 하면 다음과 같은 것을 얻을 수 있을까요? Starting initialization... Ok. Checking init scripts... Ok. 문자열 필드에 너비를 지정할 수 있습니다. printf("%-20s", "initialization..."); 그리고 그 ..

sourcecode 2022.07.26

C/C++ 프로그램이 main()보다 먼저 크래시 할 수 있는 방법이 있습니까?

C/C++ 프로그램이 main()보다 먼저 크래시 할 수 있는 방법이 있습니까? 프로그램이 main()보다 먼저 크래시 할 수 있는 방법이 있습니까?gcc를 사용하면 함수에 생성자 속성을 태그할 수 있습니다(이것에 의해 함수가 먼저 실행됨).main에서 )는 다음과 같습니다.premain으로 불러주세요.main: #include void premain() __attribute__ ((constructor)); void premain() { fputs("premain\n", stdout); } int main() { fputs("main\n", stdout); return 0; } premain 하다 보면 됩니다.main.나도 같은 문제에 직면했었다.★★★★★★★★★★★★★★★★★★★★★★★★메인 프로세스..

sourcecode 2022.07.23

main()은 C와 C++에서 무엇을 반환해야 합니까?

main()은 C와 C++에서 무엇을 반환해야 합니까? 올바른 (가장 효율적인) 정의 방법은 무엇입니까?main()C 및 C++로 기능합니다.int main()또는void main()- 왜?그럼 논쟁은?한다면int main()그리고나서return 1또는return 0? 이 질문에는 다음과 같은 수많은 중복 항목이 있습니다. C의 유효한 시그니처는 무엇입니까?main()기능하고 있습니까? 반환 유형:main()기능. 의 차이점void main()그리고.int main()? main()의 시그니처(C++) 의 적절한 선언은 무엇입니까?- C++의 경우 매우 좋은 답변입니다. 스타일main()C의 함수 반환 유형main()C의 메서드 int main()대void main()주식회사 관련: C++ :int ma..

sourcecode 2022.07.23

Linux __user 매크로의 의미는 무엇입니까?

Linux __user 매크로의 의미는 무엇입니까? Linux 커널 소스에서 사용되는 __user 매크로의 뉘앙스를 설명해 주셨으면 합니다. 우선, 매크로: # define __user __attribute__((noderef, address_space(1))) 이 매크로는 포인터를 사용자 주소 공간에 속하는 것으로 지정할 수 있으므로 참조되지 않도록 합니다. 제가 몇 가지 명백한 사실을 놓치고 있는 것 같습니다만, 그런 매크로의 의미를 설명해 주실 수 있을까요?예를 들어, 이 매크로가 어디에 사용될지에 대한 좋은 예는 무엇입니까?다시 말씀드리지만, 제가 명백한 것을 놓쳤다면 용서해주세요. 어떤 맥락에서 보면, USB 코드(linux/usbdevice_fs.h)를 검사하는 중에 매크로에 액세스했습니다.커..

sourcecode 2022.07.23
반응형