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
매우 간단한 문제이다.
cap_len이 0xFE89413E 라서 매우 길다는 것인데 (최대 길이 62)
이를 찾아보면
가 있다. 이를 3e 00 00 00 으로 바꿔주고 실행하면 패킷이 잘 보이는데,
http로 전송된 파일목록을 모두 추출하면 여러 파일 중 pdf 가 보일것이다.
pdf를 살펴보면
Key : FORENSICS_WITH_HAXORS
Codegate 2015 Bookstore2 Write-up [Exploit] (2) | 2015.04.18 |
---|---|
Codegate 2015 Bookstore Write-Up [Exploit] (0) | 2015.04.17 |
CodeGate 2014 PreQual CloneTechnique (2) | 2014.02.25 |
CodeGate 2014 PreQual 120 Write Up (0) | 2014.02.25 |
CodeGate 2014 PreQual Angry Doraemon (3) | 2014.02.25 |