지정된 주소 gdb에서 찾은 표시 값
저는 gdb에서 바이너리 파일 디버깅을 하고 있습니다.그것은 gcc가 인텔 IA-32로 컴파일한 C 코드였습니다.이 출력물을 검색했습니다.objdump. 저는 여기서 마지막 줄에 가장 관심이 있습니다.
08048d9e <func_1>
8048d9e: 55 push %ebp
8048d9f: 89 e5 mov %esp,%ebp
8048da1: 83 ec 18 sub $0x18,%esp
8048da4: c7 44 24 04 88 99 04 movl $0x8049988,0x4(%esp)
8048dab: 08
8048dac: 8b 45 08 mov 0x8(%ebp),%eax
8048daf: 89 04 24 mov %eax,(%esp)
8048db2: e8 54 01 00 00 call 8048f0b <strings_not_equal>
이 마지막 줄은 표시된 주소에서 찾을 수 있는 값을 비교할 것으로 생각합니다.8048f0b. 시도:
(gdb) x 0x8048f0b
수신:
0x8048f0b <strings_not_equal>: 0x57e58955
제가 조립품을 잘못 해석하고 있는 건가요?이것이 gdb의 주소 값을 읽는 올바른 방법입니까?좀 더 아스키 친화적인 헥스 값을 찾을 거라 기대하고 있었어요비교 대상이 되는 저장 문자열 값을 찾고 싶습니다.
그리고 이런 종류의 디버깅에 사용하기 좋아하는 gui 도구가 있습니까?저는 ddd를 시도해볼까 생각해왔습니다.디버그하는 더 쉬운 방법을 찾고 싶습니다.
메모리 주소에서 값을 올바르게 읽고 있습니다.0x8048f0b, 그러나 선call 8048f0b <strings_not_equal>이 주소가 함수의 시작임을 나타냅니다(호칭).strings_not_equal()ASCII일 것이라고는 기대할 수 없습니다. 더 많은 기계 코드일 것이라고 기대할 수 있습니다.
함수 인수를 찾고 있는 경우strings_not_equal(), 그것들은 스택으로 밀려나고 있습니다.첫 번째 인수를 복사하는 중입니다.0x8(%ebp), 이것이 첫번째 주장입니다.func1(). 두번째 주장은$0x8049988, 아마 끈의 주소일 겁니다
만약 당신이 주소의 내용을 문자열로 인쇄하고 싶다면, 당신은 다음과 같이 할 수 있습니다.x/s:
x/s 0x8049988
언급URL : https://stackoverflow.com/questions/14493707/display-value-found-at-given-address-gdb
'programing' 카테고리의 다른 글
| WooCommerce 체크아웃 페이지의 카트 합계에 ajax를 사용한 사용자 지정 수수료 추가 (0) | 2023.10.28 |
|---|---|
| 플러그인을 사용하지 않고 jQuery 기능을 완화 (0) | 2023.10.28 |
| 파워셸에서 생성할 수 있는 COM 개체를 모두 어디서 찾을 수 있습니까? (0) | 2023.10.28 |
| CSS3 또는 jQuery에서 요소의 너비를 0~100%로 애니메이션화하고 미리 설정된 너비 없이 필요한 너비만큼만 래퍼를 만듭니다. (0) | 2023.10.23 |
| 도커의 기존 명명된 볼륨에 데이터를 추가하는 올바른 방법은 무엇입니까? (0) | 2023.10.23 |