Reverse L03
'Wargame > CodeEngn (Basic)' 카테고리의 다른 글
Reverse L06 (0) | 2012.11.17 |
---|---|
Reverse L05 (0) | 2012.11.17 |
Reverse L04 (0) | 2012.11.16 |
Reverse L02 (0) | 2012.11.16 |
Reverse L01 (0) | 2012.11.16 |
Reverse L03
이름을 찾으라십니다.
문제 파일을 받고 실행해 보겠습니다.
Nag가 뜹니다.
뭐라는건지 못알아 듣겠습니다.
그냥 확인 버튼을 누릅니다.
뭘까요
아무값이나 넣고 Registrieren 버튼을 눌러봅니다.
뭐라는건지 모르겠습니다.
패스워드가 틀렸다고 하는 것 같습니다.
OllyDbg로 열어봅니다.
MSVBVM50이 눈에 띕니다.
Microsoft Visual Basic을 사용해 만든듯 합니다.
해당 프로그램에서 사용하는 함수 목록을 열어봅니다.
비교하는 함수로 예상되는 이름이 두개 보입니다.
vbaStrCmp와 vbaVarTstEq입니다.
이름을 대충 예상하자면
String compare와 variable test equal쯤 되겠습니다.
사용자가 입력하는 패스워드는 string 형태이므로
해당 프로그램에서 패스워드를 인증할 때 사용할 함수는
vbaStrCmp가 유력해 보입니다.
그래도 혹시 모르니 둘 다 break point를 걸어봅니다.
이제 패스워드로 아무 값이나 입력하고 실행해봅니다.
입력한 값은 slimV 입니다.
vbaStrCmp에서 break가 걸렸습니다.
함수를 call 하기 직전의 stack을 보면
vbaStrCmp에서 사용할 값들이 parameter로 넘어가는 것을 확인할 수 있습니다.
Parameter로는 입력한 값인 "slimV"와 key 값으로 보이는 "2G83G35Hs2"가 눈에 띕니다.
"2G83G35Hs2"로 인증해 보면 패스워드가 맞다고 뜹니다.
Reverse L06 (0) | 2012.11.17 |
---|---|
Reverse L05 (0) | 2012.11.17 |
Reverse L04 (0) | 2012.11.16 |
Reverse L02 (0) | 2012.11.16 |
Reverse L01 (0) | 2012.11.16 |