FC4 cruel -> enigma

ret 영역 다음에 canary가 있다는 걸 생각하야 한다. fake ebp를 이용해서 stdin의 임시버퍼 영역을 공략한다. 이 영역의 주소가 계속 바뀌긴 하지만 경우의 수 [Read More]

FC3 evil_wizard -> dark_stone

dark_stone 코드 /* The Lord of the BOF : The Fellowship of the BOF - dark_stone - Remote BOF on Fedora Core 3 - hint : GOT overwriting again - port : TCP 8888 */ #include <stdio.h> // magic potion for you void pop_pop_ret(void) { asm("pop %eax"); asm("pop %eax"); asm("ret"); } int main() { char buffer[256]; char saved_sfp[4]; int length; char temp[1024]; printf("dark_stone : how fresh meat you are!\n"); [Read More]

C++ 멀티스레드 무한루프 끝내기

까먹을 예정이라서 저장 만약 bool을 이용해서 종료를 해왔다면… 예를 들어 이렇게 써왔다면… #include <thread> void func( bool& run ) { while ( run ) { // ... [Read More]

FC3 hell_fire -> evil_wizard

pop pop ret을 어떻게 쓰는 건지 이 문제를 풀고 알게 됐다. 리턴을 이용해서 인자가 2개 필요한 함수를 호출할 때 스택에 아래와 같이 배치시킨다. [함수주소] [ㅁㄴㅇ [Read More]

FC3 iron_golem -> dark_eyes

ret sleding에 대해 쓰는 글 아래는 코드 /* The Lord of the BOF : The Fellowship of the BOF - dark_eyes - Local BOF on Fedora Core 3 - hint : RET sleding */ int main(int argc, char *argv[]) { char buffer[256]; char saved_sfp[4]; if(argc < 2){ printf("argv error\n"); exit(0); } // save sfp memcpy(saved_sfp, buffer+264, 4); // [Read More]