x86-64

    1

    1답변

    누구나 세그먼트 설명 자와 게이트 설명 자 사이의 정확한 차이점을 설명해 주시겠습니까? 인텔 설명서를 통과하려하지만 정확히 왜 게이트 설명자가 필요한지 알아낼 수 없습니까? 세그먼트 기술 어 이외의 다른 시설 또는 지원 메커니즘은 무엇입니까? 세그먼트 설명자에 액세스하려고 할 때 권한 수준 검사를 수행 할 수 있습니까? 또한 리눅스와 Windows는 Cal

    5

    1답변

    대부분의 사용 된 라이브러리 함수 이 오류로 -1을 반환하고 errno를으로 설정하는 프로그램을 작성하고 있습니다. 프로그램의 동작은 오류가 발생하면 종료됩니다. 정확한 출구 점과 프로그램 (gdb를 사용하여 예) 외부에서 오류를 확인하기 위해, 나는 방법에 따라 사용하려는 : 여기 err = func_1(..arglist_1..); if(err != 0

    1

    1답변

    멀티 스레드 서버 응용 프로그램을 작성하여 클라이언트가 보내는 모든 메시지를 다시 에코합니다. 새 클라이언트마다 하나의 스레드가 생성됩니다. 나는 연속 클라이언트를 무기한으로 처리하기 위해 while(1) 루프를 사용했다. (정확히 말하면, 나는 그것을 새로운 연결을 거부하는 64로 제한했다.) 이제는 서버 응용 프로그램에서 Ctrl + C 신호를 처리해야

    0

    1답변

    나는 당황한 기능을 가지고 있습니다. 충돌은 아래 어셈블리 코드를 보여줍니다. 누구든지 C로 번역하는 방법을 설명해 주시면 문제를 이해하는 데 도움이됩니다. push %rbp mov %rsp,%rbp sub $0x40,%rsp mov 0xbca741(%rip),%rax mov %r15,-0x8(%rbp) mov %rbx,-0x28(%rbp

    2

    1답변

    요즘에는 버퍼 오버 플로우 기술을 연구 중이며 그러한 취약점을 악용하는 방법을 더 잘 이해하기 위해 간단한 예제를 직접 작성하려고합니다. 여기 //bof.c #include <stdio.h> #include <string.h> void BOF() { printf("BOF"); } void foo1(char* argv){

    -2

    1답변

    내 프로그램에 전역 변수가 정의되어 있습니다. 나는 물리적 주소 (가상 주소 아님)를 알고 싶다. 사용자 공간에서 리눅스에서 그것을 찾을 수있는 방법이 있습니까? 실행 중에 실제 주소가 변경 될 수 있음을 알고 있지만 현재 실제 주소를 아는 것만으로도 괜찮습니다.

    5

    2답변

    CPU 캐시가 실제 주소 또는 가상 주소를 처리합니까? 가상 주소를 다루는 경우 새로운 스레드가 다른 프로세스에서 온 것으로 가정하여 컨텍스트 전환시 비워야합니다.

    2

    2답변

    32 비트 CPU 모드부터 x86 아키텍처에서 사용할 수있는 확장 주소 피연산자가 있습니다. 베이스 주소, 변위, 인덱스 레지스터 및 스케일링 인수를 지정할 수 있습니다. 예를 들어, 32 비트 정수리스트를 보폭 싶은 (32 바이트 길이의 데이터 구조의 어레이로부터 모든 처음 두 %rdi 데이터 인덱스,베이스 포인터 %rbx 등). addl $8, %rdi

    2

    1답변

    여기가 멍청한 질문인지 아니면 여기에 영리한 트릭이 있는지는 확실하지 않습니다. 디버거 용 x86_32 'into'(int overflow 예외) 명령을 사용하고 싶습니다. 재미있게 쓰고 있습니다. 나는이 명령이 결코 주류가 아니며 x86_64에서 사용되지 않을 것이라는 것을 알았다. x86_64에서 런타임에 내 프로그램에서 int 오버플로 검사를 수행하려

    7

    1답변

    최근에 프로그래밍을 64 비트 Windows 7 시스템으로 옮기고 관련 라이브러리를 설치했습니다. 그러나 Scipy - Sparse 라이브러리에 문제가 있습니다. scipy0.12.0-amd64-py27 (내 Python 2.7 설치가 64 비트 릴리스이므로) Windows 용 릴리스이고 scipy 라이브러리를 직접 사용할 때 오류가 발생하지 않습니다. 예