|
http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=1468 [복사]
안녕하세요? 질문하나만 드려도 될런지요???
0x0000000000400586 <+98>: mov $0x4006b4,%eax
0x000000000040058b <+103>: mov RESULT2(%rbp),%edx
0x000000000040058e <+106>: mov %edx,%esi
0x0000000000400590 <+108>: mov %rax,%rdi
0x0000000000400593 <+111>: mov $0x0,%eax
0x0000000000400598 <+116>: callq 0x400418 <printf@plt>
실행파일의 어셈코드 일부분입니다.
RESULT2 는 제가 그냥 바꾼거구요...
제가 xshell 을 사용해서 학교 서버를 사용해서 공부하고있습니다..
제가 알기로는 저게
0x400586 <+98>: push $0x4006b4,%eax
0x40058b <main+103>:mov RESULT2(%ebp),%edx
0x40058e <main+106>:mov %edx,%esi
0x400590 <main+108>:mov %rax,%rdi
0x400593 <main+111>:mov $0x0,%eax
0x400598 <main+116>:call 0x400418 <printf>
뭐 암튼 이런식으로 되야 하는거 아닌가요 ??;; 프린트에프안에 문자열이
스택에 먼저 push 되는 부분도 mov 로 되있고 rax 랑 rdi 이런것두.. eax edi 로 보고 해서 그냥 대충대충
씨코드로 뽑아내지긴 하는데 eax 도 rax 랑 또 따로 있고 헷갈리네요 ㅡㅡ;;;;;
버전때문에 이런가요?? intel문법으로 바꿔도 별;;;.. 변수할당부분도 -0x042 뭐이런식으로
앞에 음수부호 붙어있고 ;;; 왜이런가요....설정이 잘못됐나요;; 버전때문에 이런건가요 ;;
답변좀 부탁드릴게요~~ 굿밤 되세용 |
Hit : 5527 Date : 2011/01/14 09:02
|