5시간 정도 바이너리를 디스어셈블해서 분석하는 작업을 하고 있는데.. 나머지는 다 해결이 되었는데 %al 이게 문제라서 질문 드립니다.
바이너리 prologue부터 %al 레지스터에 mov나 leal같이 건드리는 명령은 없습니다.
입력받은 input과 %al에 있는 값을 cmp해서 je(jump if equal) 컨디션을 만족해야하는 문제인데.. (cmp -0xc(%ebp), %al )
문제는 %al 값이 void라고 뜬다는 점입니다 -,.-
아무것도 건든게 없으니 void가 뜨는 건 당연하지만.. %s로 입력받은 문자열과 %al의 값을 비교해야되는데 %al 이 void라니 참 난감합니다.
x/s $al , x/d $al 등등을 해봐도 "Value can't be converted to integer" 라고 뜨니 이건 뭐..
input으로 "" , '\000' , 0 등을 넣어봐도 cmp 결과값이 다르다고 나옵니다.
이 문제에 대한 해결방법을 알고계신분은 댓글로 남겨주시면 감사하겠습니다!