본문 바로가기

해킹 맛보기6

리버싱 스터디2 3.6 함수 리버싱 3.6.1 콜링 컨벤션 ⓵콜링 컨벤션이란? 함수가 어떻게 인자를 전달받고 자신을 호출한 함수에게 리턴값을 어떻게 다시 돌려주는지 에 대한 약속된 함수 호출 규약이다. - __cdecl 인자 전달 방법: 스택, 스택 해제 방법: 호출한 함수 sum() 함수의 호출 규약을 __cdecl로 정의 push 명령어를 이용해 높은 주소에서 낮은 주소로 데이터를 스택에 쌓아갑니다. __cdecl 호출 규약은 호출한 함수에서 스택을 해제 하기 때문에 호출된 함수에서는 스택 해제에 대해 신경을 쓰지 않습니다. - __stdcall 인자전달방법: 스택 스택 해제 방법: 호출된 함수 sum()함수의 호출 규약을 __stdcall 호출규약으로 정의한 것 __stdcall의 인자입력도 __.. 2016. 10. 11.
엔지니어링 스터디1 리버스 엔지니어링 우리말로 역공학이라는 의미다. 공학이 과학적 원리, 지식, 도구를 활용해 새로운 제품, 도구를 만드는 것이라면, 리버스 엔지니어링은 만들어진 제품, 도구를 분해해서 분석하거나 재조합하는 것이다. 줄여서 '리버싱'이라고도 사용. 리버싱 사용 사례 -컴퓨터 원리와 구조 이해 -프로그램 유지보수(실무에서 사용 중에 발견되는 버그를 리버싱으로 쉽게 찾는 경우가 많음) -개발에 활용(컴팩이 리버싱을 사용해 IBM의 바이오소스를 분석해 똑같은 기능을 가진 바이오소스 개발해냄) -보안 점검 및 취약점( 소스코드가 없는 프로그램의 버그를 정확히 알기 위해서는 리버싱 필요) -악성코드 분석 기초 지식 1.중앙연산처리장치 =>CPU는 외부로부터 명령어를 입력받아 해석하고 연산해서 실행하는 역할을 함 -C.. 2016. 10. 11.