본문 바로가기

CTF/Write-up

holyshield ppc

우선 이문제는 PowerPc로 되어있기 때문에 

명령어를 모르는 나는 동적디버깅이 시급했다 

대회 때 환경 구축을 못해서 못풀었었는데 

이제야 풀 수 있게 되었다 이게다 갓희근형 덕분이다 

우선 실행하면 이렇게 나오는데 입력을 받고 틀렸다고 출력해준다


우선 0x1B와 비교를 하는데 문자열 길이가 27자리이다


27자리를 입력해주고


여기서 qqqqqq함수를 분석하면 될거같다


이부분은 그냥 볼게 없는데 내가 입력한 값을 다른 위치에 옴기는 부분이다


이부분이 중요한 부분인데

우선 내가 입력한 값중에 첫 번째 글자에 0x58D를 곱한다

그리고 0~26까지 반복되니 반복에다가 +5를 해준다

다른 테이블 값에서 숫자를 하나씩 가져오는데 처음에는 3을 가져오고

그걸 위에 5더한것과 또 더한다

이렇게 더한것과 처음 0x58D를 곱한것을 XOR한다


0x78을 곱하고

0x6D를 더한다

그리고 0xAA에서 반복한 만큼 뺀다

그 후에 qqqq와 qqqqq의 값을 더하고

이 값과 위에 곱하고 더한값을 XOR하게된다


여기서 최종적으로 r9와 같은지 비교하는데

계속 반복할건지 결정하게 된다


이런식으로 역연산을 짤 수 있다


이런값이 나오는데 첨에 아닌줄 알았지만

이걸 넣으면


이래 플래그가 나오게된다


역연산을 이해하는데 조금 오래걸렸다

r10부터 거꾸로 올라가면서 이해했다

갓희근형 덕분에 한문제를 풀게되었다 ㄱㅇㄷ


'CTF > Write-up' 카테고리의 다른 글

Pico ctf 2014 rop1  (0) 2017.01.05
NEWSECU CTF Write-up  (0) 2017.01.01
holyshield BrokenPiano  (0) 2016.12.22
holyshield sound  (0) 2016.12.20
holyshield puzzle  (0) 2016.12.19