OutDoorFrog의 리버싱 이야기

Ajou OpenCTF 2018 WriteUp [Arm_Reversing] 본문

공부/CTF 문제 풀이

Ajou OpenCTF 2018 WriteUp [Arm_Reversing]

OutDoorFrog 2018. 9. 27. 19:12

편안한 개구리입니다.





암드 캔 두 애니띵, WriteUP을 시작하겠습니다.



.


.



.



.



.



.




우리는 리버싱을 할려면 3가지 요구 조건을 만족해야합니다.



  • 해당 CPU 아키텍쳐를 아는가?

  • 해당 어셈블리어를 아는가?

  • 리버싱 환경이 구성이 되었는가?





저는 환경 구성, CPU 아키텍쳐, 어셈공부까지 했습니다만..

좀 더 좋은 방법 급박한 대회에서 점수를 버는 방법이 있습니다.

Hex-Ray사에서 제공하는 디컴파일 기능을 이용하는 것입니다.

 급박한 상황에서 애용하는 기능 중 하나지만 공부할 때는 지양하는 기능입니다.


(뭐니뭐니 해도 핸드-레이가 공부에 최고)


1. IDA





이렇게 상당히 희귀한 문제는 난이도가 그만큼 너프되기 마련입니다.




2. 디컴파일




사스가 Hex-Rays;;;;


저는 이거 디컴파일 하는데 2시간 걸렸습니다.



3. 조건 추리


(n1 + n2 == 5) & (n1 - n2 == 1)


이 두 조건을 같이 만족하는 숫자는?


'3', '2' 일겁니다.




3+2 == 5

3-2 == 1


Flag = md5.Encrypt(3,2)




음.. 대부분의 문제에서는 디컴파일이 통하지 않습니다.


다만 이러한 기능이 통한다면

 "시간 벌었다" 라고 생각한 후 플래그 구하시면 됩니다.



Comments