본문 바로가기

리버싱7

리버싱#1 - gdb 명령어 사용하는 방법! - 먼저 작성 코드 확인 - gdb a.out 실행 - disassemble = disas 명령어 실행 여기서 % = AT&T 방식의 경우 레지스터를 %형식으로 사용 인텔 방식을 사용할 경우에는 표현 방식을 변경 해 주어야 한다. run으로 프로그램을 시작해보면, Segmentation fault 에러 발생!! 그래서 Breakpoint를 만들어 주어야한다! 0x08048060 첫 번째 줄에 breakpoint가 걸렸다! tip - breakpoint 할 때 b main+7 하면 오류!! 위치를 지정할 시! *main+7 이렇게 해야 한다! 현재 지금 프로그램의 문맥의 위치가 화살표로 표시되어있다! 아직 저 push 명령어 실행 전! 현재 문맥에서의 register의 값들이 다 나오게 된다! eip - .. 2021. 3. 1.
리버싱#1 NASM(넷와이드 어셈블러) 사용법 NASM(넷와이드 어셈블러는 인텔 x86 아키텍처용 어셈블러) 설치 • 윈도우: http://www.nasm.us/pub/nasm/releasebuilds/?C=M;O=D 에서 다운로드 후 설치 • 리눅스(우분투 계열): apt-get install nasm NASM 프로그램 구조 - 우분투 접속 후 root 권한을 이용하여 nasm 설치 hello.o 는 nasm을 돌리고 나오는 오브젝트 파일이다! 그 파일을 링크 하겠다! 컴파일과 링킹하는 과정을 동시에 하겠다! > 결과로 a.out 파일이 생긴다! • PUSH: 스택에 데이터를 삽입 (push 명령어는 자동으로 ESP를 4 바이트 감소 시킴) push word / dword / word • POP: 스택에서 데이터를 꺼냄 (스택에서 4 바이트를 꺼내.. 2021. 2. 25.
리버싱#1 리버싱!? 리버스 엔지니어링? 리버서가 되려면? 무엇을 공부해야 하나요? 하나의 기계가 있을 때!! - 어떻게 생겼고 - 기계에 무엇을 넣었을 때 무엇이 나온다면 내부 구조가 어떻게 되었는가?? - 고민해보는 것 리버스 엔지니어링(영어: reverse engineering, RE) 또는 역공학(逆工學) - 위키백과 장치 또는 시스템의 기술적인 원리를 그 구조분석을 통해 발견하는 과정이다. - 대상(기계 장치, 전자 부품, 소프트웨어 프로그램 등)을 조각내서 분석하는 것을 포함한다. 그리고 유지 보수를 위해, 또는 같은 기능을 하는 새 장치를 원본의 일부를 이용하지 않고 만들기 위해 대상의 세부적인 작동을 분석하는 것을 포함한다. 내가 생각하는 리버스 엔지니어링이란? - 2021년 2월 17일 기준 : 아직 모름...ㅋㅋㅋㅋㅋㅋㅋㅋ 일단 다음에 다시 올께요! 리버싱이 필요한 이.. 2021. 2. 17.
728x90
반응형