Level15
-
[FTZ Level15 풀이]System/FTZ 2018. 2. 16. 19:50
[Level15 Code]1234567891011121314#include main(){ int crap; int *check; char buf[20]; fgets(buf,45,stdin); if (*check==0xdeadbeef) { setreuid(3096,3096); system("/bin/sh"); }} cs 문제는 Level14와 매우 흡사하다.다른 점이 있다면, check변수가 포인터변수로 변했다는 점이 있다.어셈블리에서는 어떻게 달라졌는지 한번 보도록 하자 [Level15 Assemble] 보면, [EBP-16]공간에 있는 4Byte를 EAX에 저장하고 [EAX]에 있는 4Byte를 deadbeef와 비교한다. 여기서 우리가 주목해야 할 점은 [ ]의 의미이다.CMP부분에서 EAX의 대괄호..