Jiyong's STUDY
[기초] 기본 구조 본문
냉장고에서 물을 꺼내서 마신다는 경우에,
C/C++ 코드로 작성한다면
void 물마심(){
bool b0pen = 냉장고문오픈();
if (b0pen){
물을꺼냄();
마심();
}
}
이런식이 된다.
하지만 이것을 어셈블리어로 표현한다면?
_asm{
냉장고앞으로간다
냉장고문을잡는다
냉장고문을연다
오픈성공:
냉장고안을본다
손을든다
냉장고안에넣는다
물병을잡는다
물병을꺼낸다
뚜껑을연다
물을컵에따른다
컵을손에든다
컵에든것을마신다
이런식이다.
차이점은 간단하게는 "한 가지 동작"을 한다는 것이다.
어셈블리어는 한 번에 한 가지 동작밖에 하지 못한다.
즉 짧은 코드도 어셈블리어로 바꾸면 엄청나게 길어진다는 점이 있는데, 이를 해석하는 방법을 알아야 한다.
'보안 > 리버싱, 어셈블리' 카테고리의 다른 글
[기초] Hello World 리버싱 문자열 패치 (0) | 2020.07.16 |
---|---|
[기초] 스택 자료구조의 ADT (0) | 2020.07.16 |
[기초] 어셈블리어 기본 명령어 (0) | 2020.07.16 |
[기초] 레지스터 (0) | 2020.07.16 |
[기초] 어셈블리 명령 포맷 (0) | 2020.07.16 |