Reversing/윈도우즈보안과악성코드기초
문자열 패치, Little Endian 실습
와븨
2024. 3. 23. 00:31
문자열 패치 실습
HelloWorld.cpp를 작성해주고, 디버거에서 실행 파일을 열어준다.
먼저, 메인 함수로 들어간다.
www.reversecore.com --> www.swu.com 로 수정해야하기 때문에, Title 위치에서 더블클릭하면 해당 hex dump 위치를 알 수 있다.
Hex dump에서 빈 공간에 www.swu.com를 입력해준다.
문자열은 004030B8부터 입력됐다.
Title의 주소를 해당 위치로 변경해주고 assemble을 누르면
www.swu.com으로 제대로 바뀐 것을 확인할 수 있다.
변경 후 코드를 종료까지 실행하면 위 사진과 같이 www.swu.com으로 잘 변경된 것을 확인할 수있다.
Little Endian 실습
실행 파일을 디버거로 열어 F8로 실행하다보면 위 사진과 같이 arg3, arg2, arg1이 주석으로 달린 것이 보인다.
메인함수로 들어가는 포인트임이 예상되므로, breakpoint를 걸어놓고 계속 f8로 실행해보니 종료 함수로 점프된다.
즉, breakpoint를 걸어놓은 지점이 메인 함수로 이동하는 부분임을 알 수 있다.
메인함수로 이동하면 abcde를 출력하는 부분이 있다. F8로 해당 부분을 실행하면
위와 같이 abcde가 들어간 것이 보인다.
Hex dump를 살펴보면, 12345678(abcd)을 먼저 넣고 12를 나중에 넣은 것을 볼 수 있다.
이 때, 리틀엔디안이기 때문에 78 56 34 12로 거꾸로 저장된다.