PRODRAMMER

프로그램 출처 : http://codeengn.com/



Korean :
Name이 CodeEngn 일때 Serial을 구하시오
(이 문제는 정답이 여러개 나올 수 있는 문제이며 5개의 숫자로 되어있는 정답을 찾아야함, bruteforce 필요)
Ex) 11111

English :
Find the Serial when the Name of CodeEngn
(This problem has several answers, and the answer should be a 5 digit number. Brute forcing is required.)
Ex) 11111 




Windows8에서 프로그램을 실행해 봤는데 실행이 안되더군요...


다행히 올리디버거로는 실행이 됐습니다.



흔히 봐오던 구성입니다.



CodeEngn과 1을 각각 입력했을 때 화면입니다.



패킹의 흔적도 없는 깔끔한 코드입니다.


제가 입력한 CodeEngn과 1을 내부적으로 읽어들이는 함수를 통해 문제를 해결하고자 합니다.


함수를 찾기위해 마우스 우클릭 → Search for → All intermodular calls에 들어가줍니다.



목록을 훑어보면 GetDlgItemTextA가 보이실 겁니다



두 부분에 브레이크를 걸어주고 F9를 눌러 실행시켜줍니다.



GetDlgItemTextA를 호출하는 부분에서 제가 입력한 "CodeEngn"이 보입니다.


그 아래에서는 제가 입력한 Name의 길이를 구한 후 특정 작업을 통해 키값을 생성하시는 것을

확인하실 수 있습니다.


조금 더 아래로 내려가면


제가 입력한 값과 Serial을 비교하는 명령어가 있습니다.



일치 여부를 비교한 후에 알맞은 메시지 박스를 호출해줍니다.






'WarGame > CodeEngn.com' 카테고리의 다른 글

[CodeEngn Basic]Level.16  (0) 2016.08.10
[CodeEngn Basic] Level.15  (0) 2016.08.09
[CodeEngn Basic] Level.13  (0) 2016.08.06
[CodeEngn Basic] Level.12  (0) 2016.08.05
[CodeEngn Basic] Level.08  (0) 2016.08.05