Reverse_engineering/리버싱 핵심원리__(2)
-
문자열 주소를 변경하여 실행하기
지난번에 main 함수를 찾는 법을 이어갔다. 이후 허탈한 기분과 함께 모듈 호출이나 문자열 검색으로 쉽게 찾아낼 수 있음을 알고 이번에는 데이터 값을 편집하여 Hello World ! 대신 새로운 문자열을 입력하게 유도해 Hello Reversing ! 으로 출력하게 만들어 낼 것이다. 위 사진을 보면 Hello 주석 구문이 있는데서 스택 값을 Push 하는 것을 확인해 나갈 수 있다. 여기서 새로운 문자열을 출력하게 하는 방법은 무엇이 있을까? 가장 간단하게 2가지 방법이 있다. 1. ) 문자열 버퍼를 직접 수정하는 방법 2. ) 다른 메모리 영역에 새로운 문자열을 생성하여 전달하는 방법. 문자열 버퍼를 직접 수정하는 방법 같은 경우에는 말 그대로 직접 수정하는 방식이다. 단순하게 생각하면 print..
2023.01.18 -
Hello World.exe 파일에서 Main 함수를 찾아가 보자 !
최근 리버스엔지니어링 공부를 시작하기 시작했다. 어셈블리어를 하나도 읽지 못하는 나에게 CPU 전기신호 어쩌고 저쩌고 샬라 되면서 익히는 거는 생각보다 고된 일인거 같다... 그래도 나름 책 보고 따라해봤는데 조금 정리할 필요성이 있을 거 같아 글을 남긴다. 책에서 쓰고 있는 디버깅 프로그램으로 OllyDbg를 택했다.. 생각보다 오래된 프로그램이라 살짝 그렇지만.. 다른 디버거로 넘어가기 전까지 책에 있는 걸 바탕으로 기초적인 역량을 끌어올려야 하기에 일단은 이걸 써야할거 같다.. 위에 004011A0 에서 0040270C 함수를 호출하는 것을 볼 수 있으며 두번째 줄 (004011A5)에서는 JMP(점프) 방식으로 004010F주소로 넘어가라 라는 의미로 해석할 수 있겠다. 일단 Ollydbg에서의 ..
2023.01.09