리버스3 [리버스 엔지니어링] 함수 호출 규약 정리 함수 호출 규약이란?- 함수를 호출하는 방식에 대한 약속을 의미합니다.- 인자를 전달하는 방식과 함수 종료시 스택 공간을 정리하는 방법에 따라 달라집니다. cdecl- 인자 전달 순서 : 오른쪽에서 왼쪽- 인자 전달 매체 : 스택- Stack Frame 정리 : Caller호출한 main()에서 스택을 정리하는걸 확인 할 수 있습니다. C/C++에서의 표준 함수 호출규약으로, Caller가 인자를 정리하는 규약이며 가변인자를 사용할 수 있습니다.(printf와 같이 긴 인자를 사용할 수 있습니다.) stdcall- 인자 전달 순서 : 오른쪽에서 왼쪽- 인자 전달 매체 : 스택- Stack Frame 정리 : Callee호출당한 add()에서 스택을 정리하는걸 확인 할 수 있습니다.return 8을 통해 .. 2018. 11. 14. [리버스 엔지니어링] CPU 레지스터 레지스터 : CPU 내부에 존재하는 다목적 저장공간 vs 일반적인 메모리(RAM) : 레지스터가 속도가 훨씬 빠르다. 레지스터를 알아야 하는 이유 어셈블리어의 대부분이 레지스터를 조작하는 것이기에 레지스터의 용도의 내용을 이해 해야한다. 가장 기초가 되는 Register = Basic program execution registers General Purpose Register (32bit - 8개) Segment Register (16Bit - 6개) Program Status and Control Register (32Bit - 1개) Instruction Pointer(32Bit - 1개) General Purpose Register EAX : Accumulator for operands and r.. 2018. 11. 14. [리버스 엔지니어링] 리버스 엔지니어링이란? 지금까지 리버스 엔지니어링에 대해 수박 겉핡기씩으로 공부 해왔지만 이번 기회에 제대로 공부해보고자 하여 리버스 엔지니어링에 대해 공부한 내용을 공유하고자 합니다.제가 주로 공부하는데 참고하는 책은 "리버싱 핵심 원리"라는 서적이며 그 외에도 인터넷 서칭을 통해 더 많은 내용을 찾아 공부하려고 합니다. 게시글을 보시고 질문이나 지적할 내용이 있다면 댓글로 달아주시면 감사하겠습니다. //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 제가 처음으로 리버스 엔지니어링에 대해 알게 된건 대학교 1학년 시절 어떠한 롤 전적 검색 사이트에 롤 전.. 2018. 10. 30. 이전 1 다음 반응형