Sh4n3e
해당 문제는 Greedy+BFS+Zerosum Problem의 조합을 통해 답을 추출해내는 문제이다. 해당 문제는 농도를 계산하는 문제로 어떻게 효율적으로 제로섬을 만들어낼 것인가에서 고민은 출발하였다. 왜냐하면 입력값의 범위가 20만개였기 때문이었다. 하지만, 입력값의 범위를 0~1000, 즉 1001개로 중복제거를 통해 줄일 수 있었고, BFS를 돌리기 위해 필요한 Cut the Branch 작업이 필요했다. 이 부분은 resultMap라는 1차원 배열을 통해 쉽게 해결할 수 있었다. 다음 아래의 소스는 문제를 해결한 소스코드이다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35..
Debugger 단축키 참조 : http://mer-bleu.tistory.com/7
RTL(Return to Library)? RTL은 Return to Library의 약자로 Stack의 RET영역에 라이브러리 함수를 이용하여 쉘코드의 기능을 수행하는 공격기법이다. RTL의 등장 배경은 기존 BOF공격방법인 Stack영역에서의 코드실행을 막는 보호기법으로 인하여 등장하게 되었다. Stack영역에 쉘코드를 넣고 실행할 수 없게 되니, 또다른 방법을 해커들은 연구하게 된 것이고 RTL은 그 연구의 산출물이라고 할 수 있겠다. RTL은 기존의 BOF 공격과 절차는 비슷하나, 마지막 쉘코드 대신 라이브러리를 이용한다는 점이 다르다. 아래의 그림은 Stack을 나타낸 모습이며, Fuction Area의 최상단은 $esp이며, $sfp의 위의 4byte의 주소는 $ebp가 가리키고 있다. 현재 ..