ii4gsp
FSC_Level1 본문
파일 실행을하면 콘솔창의 아주 간단한 프로그램이 실행된다.
키값을 입력하라는 문구가 뜨고 이것이 뜸으로써 임의의 키값을 넣었을때 다음과 같은 문구가 뜬다.
방법 1
올리디버거로 파일을 열어 main()함수를 열어 내려가다 보면
파일 실행시 나오던 문구가 보인다.
좀 더 내려가다보면 stricmp라는 문자열 비교 함수를 볼수있다.
문자열 비교를하고 문자열이 같을때 뜨는 문구와 문자열이 다를때 나타나는 문구가 보인다.
디버거에서 프로그램을 실행하여 임의의 값을 넣어주고
입력한 임의의 값이 어떤값과 비교하는지 알아낼수있다.
방법2
또 다른 방법으론 프로그램의 흐름을 바꿔주는 것이다.
main()함수에서 조금 내려보면 다음과 같은 어셈블리 코드를 볼수있다.
JNZ는 결과가 0이 아닐 때 점프하므로 결과가 0일때 점프하는 JZ로 수정하여서 실행하였다.
JZ와 JE는 그 의미는 다르지만 같이 사용할 수 있기 때문에 JZ 명령어를 입력해도 디버거 상에선 JE로 나타난다.
바꿔주고 프로그램을 실행해서 임의의 값을 넣어줘도 정답처리가 된다.
'리버싱' 카테고리의 다른 글
[Reversing] Hello World 문자열 패치 (0) | 2020.08.20 |
---|---|
[Reversing] Hello World (0) | 2020.08.18 |
리버싱 (Reversing) 예제 (0) | 2020.01.07 |
Comments