JMP
무조건 분기명령이라고 불리는 친구다
그 이름처럼 오퍼랜드가 가리키는 곳으로 프로그램의 흐름이 바로 변경된다
옵션에는 127byte 범위 내에서 점프하는 short
같은 세그먼트 내에서 점프하는 near
현재 세그먼트를 벗어나는 far 이 있다
EIP값이 저장되지 않아 다시 돌아올 수 없다
CALL
함수를 호출할 때 사용되는 명령이다
이 역시 오퍼랜드가 가리키는 곳으로 프로그램의 흐름이 변경된다
JMP와 다른점은 함수가 끝나고 다시 복귀할 수 있도록 EIP값이 변경되기 전에 기존의 위치를 스택에 저장한다는 점이다
물론 다시 돌아올때는 스택에서 해당 정보를 꺼내어 복귀한다
RET
CALL을 통햬 호출된 함수에서 다시 복귀하기 위해 사용하는 명령이다
스택에 저장된 정보를 기반으로 흐름이 바뀌는 것이기 때문에 의미상으로는 POP EIP와 동일하지만
eip의 내용은 직접적인 수정이 안되기 때문에 문법적으로는 바르지 않음으로 개념적으로만 알아놓으면 좋을듯 하다
'Study > reversing' 카테고리의 다른 글
abex Crackme 1번 Line By Line (0) | 2017.09.19 |
---|---|
인터럽트에 대해 알아보자 (0) | 2017.08.24 |
함수의 호출 : 스택 프레임과 규약 그리고 프롤로그&에필로그 (0) | 2017.08.24 |
브레이크 포인트(Break Point)를 알아보자 (0) | 2017.08.24 |
API (0) | 2017.08.24 |