[CodeEngn Challenges] Advance RCE 03 고정된 이름에서 Serial을 찾는 유형의 문제이다. 될 리가 없지만, 실패 메시지가 표시되는지 확인하기 위한 절차이다. 실패하더라도 메시지가 표시된다. 이제 이 메시지는 단서가 된다. 401125에서 EAX는 Name으로 쓴 문자열의 길이이다. 3자 이상 쓰지 않으면 실패 메시지를 뱉는다. (401128) 40114E에서 401277 함수를 호출하는데 주어진 이름으로 Serial을 생성하는 함수로 추정된다. 직접 보면 알겠지만 keygen을 만들기엔 너무 길어서 전의를 상실하게 만든다. 이번엔 빠르게 결과만 보고 가겠다. 인쇄해서 오프라인으로 분석한 후, keygen을 만들어 볼 예정이다. (과연...) 40118C~401196에서 lstrcmp 함수를 통해 문자열 비교를 한다. 하나는 Serial로 .. 더보기 [CodeEngn Challenges] Advance RCE 02 뜬금없이 정답이 뭐냐고 한다. 입력값이 하나라 그런 것 같다. Win 10 x64 환경에서 실행하면 오류가 나서 가상 머신 돌렸다. Entry Point로부터 꽤나 내려왔는데, 별다른 의심이 가는(입력값을 비교하는) 구문이 없다. 4013C5에서 호출하는 주소의 함수가 좀 의심스러웠다. 육감은 정확했다. 한 글자씩 뽑아서 비교하고 있다. 이를 토대로 아래처럼 코딩해봤다. ASCII 코드표를 외우고 있는 사람들이라면 바로 알겠지만, 컴퓨터의 힘을 빌리고 싶었다... 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 import os def showTitle(): print "########################.. 더보기 이전 1 ··· 641 642 643 644 645 646 647 ··· 661 다음