c 로 짠거 디스어셈블해보면...
글쓴이: kkojiband / 작성시간: 수, 2003/07/02 - 12:18오후
그냥 어셈으로 짜면 별상관없겠지만, c로 짠걸 code 만 따로 떼내어서 디스어셈블 해보니까 4바이트 짜리 변수나 포인터 등의 상위 자릿수들이 0으로 채워져서 디스어셈블시 이상한 명령어를 만들어내네요...
0000 등의 명령어들...
이런걸 해결할 방법이 없을까요?
간단한 c프로그램을 컴파일하고, 다른거 다 빼고 code 만 떼서 부트로더로 읽어들여보니까 위의 이상한 명령어들때문에 실행이 안되네요...
이걸 해결할 방법이 없을까요?
hex 상태로 편집이 가능하다면 될꺼같기는 한데...왠지 노가다인듯...-_-;
혹시 좋은 방법 있으신 분 좀 알려주세요~
Forums:
Re: c 로 짠거 디스어셈블해보면...
디스어셈블 과정에 뭔가 문제가 있나 봅니다. objdump -d 하면 코드 섹션만 디스어셈블을 하게 되는데요.
Re: c 로 짠거 디스어셈블해보면...
소스있다면 gcc -S를 쓰세요.
그게 훨씬 낫습니다.
소스 없이 디스어셈블한다면, ELF구조와 로드방식에 대해 알아보고,
특정 위치부터 디스어셈블를 해야 할겁니다.
Written By the Black Knight of Destruction
Re: c 로 짠거 디스어셈블해보면...
GNU binutils안에 있는 objdump로 디스어셈블하면 구조를 몰라도 상관 없습니다. 그리고 거의 대부분의 디스어셈블러는 내부 구조를 몰라도 디스어셈블을 정상적으로 해줍니다.
댓글 달기