Rev/Write-up

RaziCTF2020 - Protected Conditions

zooonique 2021. 1. 29. 17:55
반응형

Easy Conditions였나? 그 문제랑 비슷해보인다.

 

디버깅이 필요한가 했었는데...

 

딱히 필요없다.

 

 

std::cin+4을 통해 문자를 입력받는다.

 

입력받은 문자를 sub_F93C20함수를 통해 어딘가에 입력한 문자를 저장한다. (v9 or v16)

 

sub_F93540에 들어가는 파라미터는 비교할 특정 문자인데, 위에 저장되어있는 어딘가에 저장한 문자와 비교하여 같으면 0을 반환한다.

 

그렇다면 우리가 알아야되는것은 sub_F93540의 들어가는 파라미터가 어떤것들인지 알아봐야한다.

 

저기에서보면 v114부터 v117, v120, ... 위에 해당 변수들을 선언과 초기화를 다 해놔서 디버깅할 필요없이 이 부분만 확인하면 될듯하다.

 

더보기

v114[16] =

v117[16] R

v120[16] a

v105[16] r

v108[16] r

v111[16] o

v123 c
v125 e
v127 s
v129 s
v131 e
v133 x
v135 e
v137 protected
v139 pr0tected
v141 protec
v143 attac
v145 c
v147 have fun
v149 capture the flags
v151 hello world!
v153 3
v155 3
v157 reverse
v159 }
v161 _
v163 =
v165 z
v167 i
v169 C
v171 T
v173 F
v175 {
v177 P
v179 r
v181 o
v183 t
v185 e
v187 c
v189 t
v191 e
v193 d
v195 _
v197 S
v199 o
v201 u
v203 r
v205 c
v207 e
v209 _
v211 C
v213 o
v215 d
v217 e
v219 _
v221 d
v223 c
v225 c
v227 e
v229 f
v231 5
v233 1
v235 a
v237 }
v240

이렇게 착할수가...

 

입력받아서 비교하는 파라미터들 순으로 정렬해보면

 

RaziCTF{Protected_Source_Code_dccef51a}

 

반응형