본문 바로가기

Reversing2

[리버스 엔지니어링] 함수 호출 규약 정리 함수 호출 규약이란?- 함수를 호출하는 방식에 대한 약속을 의미합니다.- 인자를 전달하는 방식과 함수 종료시 스택 공간을 정리하는 방법에 따라 달라집니다. cdecl- 인자 전달 순서 : 오른쪽에서 왼쪽- 인자 전달 매체 : 스택- Stack Frame 정리 : Caller호출한 main()에서 스택을 정리하는걸 확인 할 수 있습니다. C/C++에서의 표준 함수 호출규약으로, Caller가 인자를 정리하는 규약이며 가변인자를 사용할 수 있습니다.(printf와 같이 긴 인자를 사용할 수 있습니다.) stdcall- 인자 전달 순서 : 오른쪽에서 왼쪽- 인자 전달 매체 : 스택- Stack Frame 정리 : Callee호출당한 add()에서 스택을 정리하는걸 확인 할 수 있습니다.return 8을 통해 .. 2018. 11. 14.
[리버스 엔지니어링] OllyDbg 간단한 사용법 디버깅 툴을 사용하기 전에 먼저 알아야 할 내용이 있습니다. 디버그를 통해 나오는 어셈블리 언어는 CPU에 종속되어 있습니다. 즉 일반 PC에서 많이 사용되는 intel x86 계열 CPU와 모바일 제품에서 많이 사용되는 ARM 계열의 CPU는 서로 어셈블리 명령어의 형태가 다릅니다. 위 사진은 OllyDBG의 기본 화면입니다. OllyDbg는 무료에, 직관적인 인터페이스와 확장 기능을 통해 많은 사랑을 받고 있는 디버거 입니다. 위 화면에서 나오는 Code Window/Register Window/Dump Window/Stack Window가 존재하는데 Code Window 기본적으로 디스어셈블리 코드를 표시하여 각종 커멘트나 라벨을 보여주며, 코드를 분석하여 Loop, Jump 위치 등의 정보를 표시.. 2018. 10. 30.
반응형