업무 특성 상, 실행파일(EXE, DLL 등...)의 디스어셈블 코드를 많이 보게 됩니다.
이번에 희안한(?) 걸 보게되서 간단히 포스팅 해봅니다...
[그림 01]. Sample #1
[그림 02]. Sample #2
어느 두 파일의 디스어셈블 코드인데요~
박스 친 부분의 명령어와 헥사 코드를 살펴보시기 바랍니다.
분명히 같은 어셈 명령어인데~ 헥사코드가 다릅니다...;;
( 예전부터 쭉 이래왔겠지만... 인지한 건 이번이 처음인지라...;;; )
지금까지는 당연한 것처럼~
스택 프레임이 형성된 함수의 시작코드는...
" 55, 8B, EC (PUSH EBP, MOV EBP, ESP) " 라고 생각해왔는데...
항상! 그렇지는 않은 모양입니다..;;;
틈나면 인텔 명령어 코드 한 번 뒤져봐야겠네요... ^^;;;;
'Reverse Engineering' 카테고리의 다른 글
간단한 Anti-Disasm ~ (0) | 2012.05.29 |
---|---|
2011~ 코드엔진 컨퍼런스 안내. (3) | 2011.06.14 |
같은 명령어, 다른 헥사코드~? (4) | 2011.02.13 |
Windows7 에서의 올리디버거 플러그인 셋팅~ (2) | 2010.03.27 |
사람 난감하게 만든 '언인스톨러'... (6) | 2010.03.22 |
3rd 코드엔진(CodeEngn) 컨퍼런스~!! (18) | 2009.06.24 |
opcode 분석해보니까 89와 8B는 src와 dest의 순서가 반대인 같은 명령이네요. 어셈블리 문법으로 보며... 89는 AT&T문법과 같고 8B는 INTEL문법과 순서가 같아요. 컴파일러가 왜 저렇게 다르게 번역했는지 신기하네요.
조금 더 정확하게 비교하면 89와 8B는 src와 dest 중 어디에서 메모리 참조하냐에 따라 다른 명령이지만, 양쪽 다 레지스터일 경우에는 단지 순서가 반대인 명령이네요...
: ) 호오.. 89 와 8B 가 같은 명령이었군요;;
참고로 둘다 Themida 로 패킹된 파일이었습니다..ㅋ
PEiD 시그니처 등록하려고 보다보니~ 저렇게 되어있더라는.. : )
Themida 요?
요즘 Themida 분석이 다시 급땡겨지네요 ㅋ
좋은 글 잘 읽었습니다.
덕분에 좋은 공부 됐어요 ^^