어셈블리에서 c 프로그램을 디버깅하여 gcc 컴파일러의 작동 방식을 이해합니다. 내 $ fs 세그먼트 레지스터를 읽고 x/x $ fs를 사용하고 싶지만 메모리에 액세스 할 수 없다고 알려줍니다. i386 : 86_64에서 세그먼트, 범용 및 제어 레지스터를 포함하는 모든 레지스터에서 어떻게 읽을 수 있습니까?gdb로 모든 레지스터 값을 읽으려면 어떻게해야합니까?
6
A
답변
11
info registers
인쇄 출력 레지스터 값은 :
(gdb) info registers
rax 0x7ffff7731ec8 140737344904904
rbx 0x0 0
rcx 0x0 0
rdx 0x7fffffffd618 140737488344600
rsi 0x7fffffffd608 140737488344584
rdi 0x1 1
rbp 0x0 0x0
rsp 0x7fffffffd528 0x7fffffffd528
r8 0x7ffff7730300 140737344897792
r9 0x7ffff7dec250 140737351959120
r10 0x7fffffffd390 140737488343952
r11 0x7ffff73d0b50 140737341360976
r12 0x400be0 4197344
r13 0x7fffffffd600 140737488344576
r14 0x0 0
r15 0x0 0
rip 0x402330 0x402330 <main>
eflags 0x246 [ PF ZF IF ]
cs 0x33 51
ss 0x2b 43
ds 0x0 0
es 0x0 0
fs 0x0 0
gs 0x0 0
(gdb)
3
레지스터를 읽거나 설정하려면 p
및 set
명령을 사용해야합니다. 레지스터의 이름은 각 시스템에 따라 다릅니다. info 레지스터를 사용하여 컴퓨터에서 사용되는 이름을 확인하십시오. 예제들에 대한 자세한 정보는 GDB 매뉴얼의 registers 섹션을 참조하십시오.
$fs
레지스터의 값을 인쇄하려면, 당신은이 작업을 수행 할 수 있습니다
(gdb) p/x $fs
$1 = 0x0
무엇 x
명령은 메모리를 검사한다 않습니다. 그러나 당신이 그것을 할 수없는 경우가 있습니다. 예를 들어, 주소가 가리키는 메모리가 보호 된 경우. 가상 주소 0x0
에서 메모리를 검사하려고한다면, GDB는 분명히 예를 들어, 그렇게하기를 거부 :
(gdb) x/x $fs
0x0: Cannot access memory at address 0x0
그것이 도움이되기를 바랍니다. 행운을 빕니다! 당신은 내가 생각 요구하는 것입니다 나를 위해
9
info all-registers
당신에게 FPU 레지스터 스택, XMM 레지스터를 포함한 모든 레지스터 값을 제공합니다.
(gdb) i all-r
rax 0x2aaaaace62ce 46912498459342
rbx 0x2aab18e71290 46914345570960
rcx 0x2aaab2020d60 46912619285856
rdx 0xffffffffffd934ee -2542354
rsi 0x2aab18ec7a40 46914345925184
rdi 0xa 10
rbp 0x2aab18e6f000 0x2aab18e6f000
rsp 0x2aab18e6f000 0x2aab18e6f000
r8 0xe 14
r9 0x2aab18eb1f08 46914345836296
r10 0x2aaab9085000 46912737136640
r11 0x0 0
r12 0x2aab18ec7170 46914345922928
r13 0x477f3280 1199518336
r14 0x7 7
r15 0x2aaada787000 46913298132992
rip 0x2aaaaae3b18e 0x2aaaaae3b18e <flt_fadd+4>
eflags 0x283 643
ds 0x0 0
es 0x0 0
fs 0x0 0
gs 0x0 0
st0 10 (raw 0x4002a000000000000000)
st1 3 (raw 0x4000c000000000000000)
st2 0 (raw 0x00000000000000000000)
st3 0 (raw 0x00000000000000000000)
st4 0 (raw 0x00000000000000000000)
st5 0 (raw 0x00000000000000000000)
st6 0 (raw 0x00000000000000000000)
st7 0 (raw 0x00000000000000000000)
fctrl 0x137f 4991
fstat 0x7000 28672
ftag 0xc0 192
fiseg 0xaae3afe5 -1427918875
fioff 0x2aaa 10922
foseg 0x18e6ee48 417787464
fooff 0x2aab 10923
fop 0x704 1796
xmm0 {f = {0x0, 0x6, 0x0, 0x0}} {f = {0, 6.48876953, 0, 0}}
xmm1 {f = {0x0, 0x0, 0x0, 0x0}} {f = {0, 0, 0, 0}}
xmm2 {f = {0x0, 0x1c0, 0x0, 0x0}} {f = {0, 448, 0, 0}}
xmm3 {f = {0x0, 0x1, 0x0, 0x0}} {f = {0, 1.75, 0, 0}}
xmm4 {f = {0x0, 0x0, 0x0, 0x0}} {f = {0, 0, 0, 0}}
xmm5 {f = {0x0, 0x0, 0x0, 0x0}} {f = {0, 0, 0, 0}}
xmm6 {f = {0x0, 0x0, 0x0, 0x0}} {f = {0, 0, 0, 0}}
xmm7 {f = {0x0, 0x0, 0x0, 0x0}} {f = {0, 0, 0, 0}}
xmm8 {f = {0x0, 0x0, 0x0, 0x0}} {f = {0, 0, 0, 0}}
xmm9 {f = {0x0, 0x0, 0x0, 0x0}} {f = {0, 0, 0, 0}}
xmm10 {f = {0x0, 0x0, 0x0, 0x0}} {f = {0, 0, 0, 0}}
xmm11 {f = {0x0, 0x0, 0x0, 0x0}} {f = {0, 0, 0, 0}}
xmm12 {f = {0x0, 0x0, 0x0, 0x0}} {f = {0, 0, 0, 0}}
xmm13 {f = {0x0, 0x0, 0x0, 0x0}} {f = {0, 0, 0, 0}}
xmm14 {f = {0x0, 0x0, 0x0, 0x0}} {f = {0, 0, 0, 0}}
xmm15 {f = {0x0, 0x0, 0x0, 0x0}} {f = {0, 0, 0, 0}}
mxcsr 0x1fa0 8096
관련 문제
- 1. java의 formAttachment에서 값을 읽으려면 어떻게해야합니까?
- 2. 모든 피드 항목을 읽으려면 어떻게해야합니까?
- 3. 레지스터 EAX 값을 디버거에서 객체로 표시하려면 어떻게해야합니까?
- 4. MVC2 : 동작 링크의 제어 값을 읽으려면 어떻게해야합니까?
- 5. C++ : 디렉토리의 모든 jpg 파일을 읽으려면 어떻게해야합니까?
- 6. 주어진 폴더의 모든 파일을 읽으려면 어떻게해야합니까?
- 7. .inf 파일을 읽으려면 어떻게해야합니까?
- 8. .pls 파일을 읽으려면 어떻게해야합니까?
- 9. HttpResponse에서 bytearray를 읽으려면 어떻게해야합니까?
- 10. Node.js에서 파일을 읽으려면 어떻게해야합니까?
- 11. Ruby로 파일을 읽으려면 어떻게해야합니까?
- 12. InputStream에서 바이트를 읽으려면 어떻게해야합니까?
- 13. 이미지 파일을 읽으려면 어떻게해야합니까?
- 14. 레일에서 json을 읽으려면 어떻게해야합니까?
- 15. 중괄호가없는 루프를 읽으려면 어떻게해야합니까?
- 16. J2ME에서 문자열을 읽으려면 어떻게해야합니까?
- 17. ASP.NET에서 JSON을 읽으려면 어떻게해야합니까?
- 18. API 문서를 읽으려면 어떻게해야합니까?
- 19. CodeIgniter에서 QueryString을 읽으려면 어떻게해야합니까?
- 20. 어레이에서 NSNumber를 읽으려면 어떻게해야합니까?
- 21. 파일에서 입력을 읽으려면 어떻게해야합니까?
- 22. JavaScript로 XML을 읽으려면 어떻게해야합니까?
- 23. Java에서 그래프의 좌표를 읽으려면 어떻게해야합니까?
- 24. Java의 파일에서 숫자를 읽으려면 어떻게해야합니까?
- 25. SharePoint에서 여러 값을 가진 LookUp 필드를 읽으려면 어떻게해야합니까?
- 26. PHP로 PDF 책갈피를 읽으려면 어떻게해야합니까?
- 27. 서버 로그 파일을 읽으려면 어떻게해야합니까?
- 28. wfstream에서 이진 데이터를 읽으려면 어떻게해야합니까?
- 29. 모든 코어에 제어 레지스터 설정
- 30. ASP.NET 사용자 지정 RoleProvider cacheRolesInCookie 구성 값의 값을 읽으려면 어떻게해야합니까?
감사합니다. 나는 튜토리얼을 따르고 있었고 x/x $ reg를 사용하는 이유를 알지 못했다. 그것은 물건을 깨끗이합니다. –