snd-reversingwithlena-tutorial07.tutorial

min_fo·2023년 5월 25일
0

아래는 등록 키를 확인하는 구문이다. 이를 찾는 방법은 두가지이다.
1. 함수 스택을 통해서 찾는방법
2. 문자열 검색을 찾는방법


위 구문을 해석하자면, edi에 아이디 주소값을 넣고 eax에 비밀번호 주소값을 넣는다. 그후 edi와 eax를 스택에 저장한다. 이는 함수 인자값이다. 그리고 나서 40714c의 함수를 부른다. 이는 아이디와 비밀번호가 맞는지 확인하는 함수이다.

그리고 test al, al을 통해서 0인지 아닌지 확인한다. al이 0이면 zf가 1이된다. 그 후 jne을 통해서 성공메시지와 실패메시지 출력을 고른다.

위는 메세지의 함수 호출 내용이다.



위 사진은 40714c함수의 retn 하기 전의 구절이다. 여기서 al에 5076AD의 값을 넣는 구절이 있다. 만약 비밀번호랑 아이디가 맞다면, 5076AD는 0이 아닐 것이다. 이를 패치하여 무조건 1을 넣게 만들었다.

위는 성공사진이다.

참고로 jne를 패치하지 않고 아이디,비밀번호를 확인하는 함수 내부에서 패치를 한것은 프로그램이 지속적으로 확인함수를 불러내서 확인할 수 있기 때문이다.

profile
포렌식을 공부하는 학생입니다.

0개의 댓글