sweetchip's blog



dodoCrackme


binary

crackme_d079a0af0b01789c01d5755c885da4f6


우선 바이너리는 64비트 크랙미 파일이며 string이 존재하지 않아 첫번째 멘붕을 시켜준 문제이다.


마음을 진정하고 strace를 해보았다.

helloworld@ubuntu:~/sweetchip$ strace ./c

execve("./c", ["./c"], [/* 19 vars */]) = 0

mmap(NULL, 30000, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f7e1f22d000

write(1, "r", 1r) = 1

write(1, "o", 1o) = 1

write(1, "o", 1o) = 1

write(1, "t", 1t) = 1

write(1, "@", 1@) = 1

write(1, "l", 1l) = 1

write(1, "o", 1o) = 1

write(1, "c", 1c) = 1

write(1, "a", 1a) = 1

write(1, "l", 1l) = 1

write(1, "h", 1h) = 1

write(1, "o", 1o) = 1

write(1, "s", 1s) = 1

write(1, "t", 1t) = 1

write(1, "'", 1') = 1

write(1, "s", 1s) = 1

write(1, " ", 1 ) = 1

write(1, "p", 1p) = 1

write(1, "a", 1a) = 1

write(1, "s", 1s) = 1

write(1, "s", 1s) = 1

write(1, "w", 1w) = 1

write(1, "o", 1o) = 1

write(1, "r", 1r) = 1

write(1, "d", 1d) = 1

write(1, ":", 1:) = 1

write(1, " ", 1 ) = 1

read(0, zz

"z", 1) = 1

read(0, "z", 1) = 1

read(0, "\n", 1) = 1

write(1, "P", 1P) = 1

write(1, "e", 1e) = 1

write(1, "r", 1r) = 1

write(1, "m", 1m) = 1

write(1, "i", 1i) = 1

write(1, "s", 1s) = 1

write(1, "s", 1s) = 1

write(1, "i", 1i) = 1

write(1, "o", 1o) = 1

write(1, "n", 1n) = 1

write(1, " ", 1 ) = 1

write(1, "d", 1d) = 1

write(1, "e", 1e) = 1

write(1, "n", 1n) = 1

write(1, "i", 1i) = 1

write(1, "e", 1e) = 1

write(1, "d", 1d) = 1

write(1, " ", 1 ) = 1

write(1, "(", 1() = 1

write(1, "p", 1p) = 1

write(1, "a", 1a) = 1

write(1, "s", 1s) = 1

write(1, "s", 1s) = 1

write(1, "w", 1w) = 1

write(1, "o", 1o) = 1

write(1, "r", 1r) = 1

write(1, "d", 1d) = 1

write(1, ")", 1)) = 1

write(1, ".", 1.) = 1

write(1, "\n", 1

) = 1

_exit(0) = ?

exited with 0


보면 1글자씩 write를 하는것 같았다. 하지만 hex로 파일을 보면 string이 아예없고 비슷하게 모여있는것은 없었다.


그래서 ida로 열어보니 1바이트씩 계속 'inc byte ptr [rbp 0]' 연산을 하는것을 볼 수 잇엇는데 이같이 글자를 1개씩 늘려서 출력하는 것으로 예상하고


대충 찾아보았다. 그랬더니 H4PPY 가 맞춰지는 것을 보고 노가다를 뛰어서 키를 만들어냈다.


Key : H4PPY_C0DEGaTE_2014_CU_1N_K0RE4


#######################################################################################################################


WeirdShark


binary

invalid-file



매우 간단한 문제이다.




cap_len이 0xFE89413E 라서 매우 길다는 것인데 (최대 길이 62)


이를 찾아보면



가 있다. 이를 3e 00 00 00 으로 바꿔주고 실행하면 패킷이 잘 보이는데,


http로 전송된 파일목록을 모두 추출하면 여러 파일 중 pdf 가 보일것이다.


pdf를 살펴보면




Key : FORENSICS_WITH_HAXORS




신고

Comment 2

  • KaiEn
    2014.02.27 00:12 신고 수정 답글

    이야 성원이 문제 많이 풀었네..ㄷㄷ
    그 두두크랙미는 걍 gdb에서 data영역 덤프하니까 바로 나오던뎀..

    • 2014.02.27 01:20 신고 수정

      ㅋㅋ 코드게이트 문제를 풀고 암이 걸렸습니다.. ㅠ-ㅠ.
      하아.. 새로운 사실 알아갑니다.. 감사합니다 ㅎㅎ