티스토리 뷰

 

카테고리

reversing

 

문제

keygenme.exe 파일이 주어지는데 해당 파일에서는 Name과 Serial 값을 입력 받아 매치되는지 확인한다.

이때 Name값을 이용하여 Serial 값을 생성하는데 Serial 값이 "SpuLhNlYlcVsbApvU"와 매치되는 Name값을 찾는 문제다.

 

ida로 바이너리를 열어보면 Name으로 Serial을 계산하는 부분을 쉽게 찾을 수 있다. (sub_401080)

v1은 5로, 항상 값이 일정하다.

5-71 = -66, 5-39 = -34 이고 각각에 97과 65를 더하면 둘 다 31이 된다.

알파벳을 31번 rotate 하고 있는 것이고, 알파벳은 26개이기 때문에 5번 rotate하는 것과 같다.

Serial로부터 Name을 계산하려면 19(26-5)번 rotate 하면 된다.

 

 

또 하나의 방법은 디버거를 이용하여 Name으로부터 생성되는 Serial 값을 확인하는 것이다.

한 바이트씩 연산이 수행되기 때문에 하나의 알파벳에 대한 Serial 값은 항상 동일하다.

프로그램을 직접 실행하여 확인해보니, ABCD가 HIJK로 변환되었고 abcd의 경우도 hijk로 변환되어 5번 rotate되었다는 것을 알 수 있다.

 

 

19번 rotate 하면 문제에서 요구한 Serial 값에 해당하는 Name 값을 구할 수 있다.

 

 

Code


댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함