반응형

함수가 호출되고 복귀조소로 가는과정을 스택프레임이라는 기법을 이용해서 안정화 시킨것이다.

esp 는 함수가 호출되면 함수의 주소를 저장하는 레지스터다

그리고이 값을 ebp에 저장한하.esp는 지속적으로 변화하기 때문에 저정하는 역활을 한다.

 

문제는...

이 엄청난 함수들은 ep코드다. 내컴퓨터는 시발 ep가 저엉말 너무 많다.

x32dp로 분석은 가능하나 심지어 이 메인 함수도 매우 복잡하게 숨어있다... 객체지향이어서 그런가..

ida로 ep값을 걸러내지 않으면 쉽게 메인 함수에 도달하기 힘들다. ep코드가 너무 많아서 동적 분석을 매우 힘들게 한다.  동적분석을 하는데 아무리 찾아도 메인 근처에는 다가가기 힘들다. ep값을 아무리 건너뛰어도 main이 나올려면 엄청 눌러야 됨다...

 

그리고 책과 내 프로그램과 매우 다르다... 프로그램에 대해서 찾아봐도 제대로 된 내용을 찾기는 어려웠다...

스택이 어떻게 저장이디고 연산되는지는 나도 분석을 해봤다...

오늘 나의 코드로 설명을 진행하고 싶으나... 너무 복잡해서

 

일단

프로그램을 기준으로

더해주는 함수와 변수를 저장하고 함수를 호출하는 구간이 존재한다.

그래서 처음 함수 구간에서 변수의 크기만큼 스택을 확보하여 함수를 제작하고 main 함수에 가게 된다.

main 함수에서는 또다시 스택에 값을 저장하고 더하기 함수를 호출한후 값을 옮기고 더하기 한다.

그리고 그 값을 리턴하고 프로그램을 종료시킨다. 끝

 

 

반응형

'리버싱 > 리버싱 핵심원리' 카테고리의 다른 글

abex' crackme #2 암호해독  (0) 2020.02.27
abex' crackme #2  (0) 2020.02.27
abex' crackme #1 크랙  (0) 2020.02.25
레지스터와 스택  (0) 2020.02.25
빅 엔디언/ 리틀 엔디언  (0) 2020.02.24
Posted by 53C
,