저는 이진 폭탄 실험 5 단계를 알아 내려고합니다. 이것은 숙제가 아니라 제가 혼자하는 일입니다.
여기 에서 비슷한 질문에 대한 답을 찾았 지만 실제 값이 연결되지 않았기 때문에 답을 이해하지 못했습니다. % al이 목적지라고 가정하여 정확히 % al로 끝나는 것이 무엇인지 알아 내려고합니다. gdb를 사용하고 있으며 ir 명령은 % ebx가 입력을 위해 입력 한 문자열 인 "장치"를 보유하고 % edx는 0을 보유하고 있음을 보여줍니다. 이것은 무엇을합니까?
동등한 Intel 구문은 다음과 같습니다. mov al, [edx+ebx*1]
즉, 메모리에서 바이트를 생성 한 주소에서로드하고 edx + ebx*1
해당 바이트를 al
레지스터 에 배치하는 것 입니다. 그 주 *1
(또는 , 1
AT & T 구문) superflous이고; 바로 쓰기 [edx+ebx]
( (%edx, %ebx)
AT & T 구문에서) 같은 일을 달성 한 것이다.
귀하의 경우에는가 edx
가리키는 문자열의 위치 에서 문자를 읽는다고 가정합니다 ebx
. mov (%ebx, %edx), al
일반적으로 기본 주소가 아닌 인덱스의 크기를 조정하기 때문에이 경우 명령어가 더 합리적입니다 . 그러나 여기서 스케일링 계수는 1이므로 실제로 중요하지 않습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다