2010.02.28 19:59 WarGame


지난번에 Padocon CTF 경기가 있었습니다

제가 참가하진 못했지만 문제는 쉽게 구할수 있더군요 '-'

그래서 구한 문제들을 한번 풀어보았습니다




Check the Value 버튼을 클릭하면

값을 검증한뒤

메세지 박스를 하나 띄웁니다

그 값을 검증 하는 부분을 찾아서

우회하면 답이 나오 겠죠

검증 하는 부분을 찾는 방법에는

메세지 박스 위로 쭉 trace 하며 찾는 방법과

사용자가 입력한 값을 T search 등을 이용해 메모리에서 찾아서 BP를 건다음에 그곳에서 부터 진행하는 방법

등이 있겠습니다

아, 간단한 안티 디버깅 부분이 있습니다



code 영역 초반에 보이는 부분입니다

위 스샷은 제가 이미 수정한 부분이구요

현재 실행된 프로세스 중에 ollydbg.exe 가 있는지를 검사하는 간단한 안티 디버깅 루틴이군요

문자열만 살짝 바꿔주면 정상적인 디버깅이 가능해집니다 :D




자 그럼 계속해서 

검증 루틴을 찾아보면




위 SendMessageW 에서는 각  슬라이더에서 값을 윈도우로부터 받아옵니다

리턴 값을 보면 각각의 값이 기록되있는걸 볼 수 있죠

그리고 IMUL 부분

모두 곱한다는 의미죠

다 곱해서 나온 값이 16진수로 6B77 , 그러니까 27511 이군요

이 값과 비교해서 맞으면 정답 메세지를 출력하겠죠

우회해봅시다



정답이라고 보기엔 너무 규칙성 없는 문자열이네요

모두 곱한 값을 체크 한다음에

사용자가 입력한 값을 기준으로 문자열을 생성하는 모양입니다

그 루틴을 찾아도 우리가 원하는 문자열이 무엇인지 모르기 때문에

세 수의 곱이 27511 인 값을 찾는게 해답을 찾는 방법이죠

끝자리가 1이니 손으로 찾는 것도 어렵진 않겠습니다만

간단히 코드를 짜봅시다 :D


어때요, 참 쉽죠?


'WarGame' 카테고리의 다른 글

[Python Challenge] level2 풀이  (0) 2010.03.05
[Python Challenge] level1 풀이  (0) 2010.03.05
[ Padocon 2010 ] Crackme 100 Breakme 풀이  (0) 2010.02.28
Vortex level3 풀이  (0) 2010.02.20
Vortex level2 풀이  (0) 2010.02.16
Vortex level1 풀이  (0) 2010.02.10
Posted by LinkC

블로그 이미지
LinkC

태그목록

Tistory Cumulus Flash tag cloud by BLUEnLIVE requires Flash Player 9 or better.

공지사항

Yesterday30
Today8
Total328,680

달력

 « |  » 2019.5
      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 31  

최근에 받은 트랙백

글 보관함


. .