문제를 처음 본 순간 미루고 미루던 gdb 공부를 해야겠구나 라는 생각이 들었다. 그렇게 문제를 처음 본지 하루 정도가 지나서야 간단한 gdb명령어를 익히고 bof 문제를 제대로 풀기 시작했다. 여기서 사용된 개념인 gdb, 버퍼오버플로우, python을 통한 인자 전달은 다른 포스팅에서 설명하겠습니다. 사전조사 해당 문제는 소스파일과 문제파일 두개를 주었고, 문제의 정답은 nc pwnable.kr 9000을 통해서 입력해 주면 될듯 합니다. bof.c소스파일 해당 문제의 소스 파일을 먼저 간단하게 해석해보면 key값이 0xcafebabe와 같아지면 쉘을 실행시켜주고 그 실행된 쉘을 통해서 flag파일을 찾으면 될 듯 합니다. 하지만 key의 값을 입력하는 곳은 어디에도 없고 func에서 overflow..
collision.hwp 사전 분석 해당 디렉토리에 있는 파일입니다.col을 실행하여 flag값을 얻어야 하는듯합니다. col의 소스코드 소스 분석 main 함수 해당파일은 입력 값을 받아, 그 글자의 크기가 20글자이어야 하며, 입력한 값과 hashcode의 값이 같아야 flag파일을 볼 수 있는 듯합니다. 여기서 hashcode의 값은 0x21DD09EC입니다. ./col test로 입력한 경우에는argv[0] = colargv[1] = test가 들어가게 됩니다. check_password함수 여기서 이상한 점은 입력받을 때는 char 형으로 받지만 check_password 함수에 들어갈 때는 int 형으로 데이터를 더해준다는 것입니다.즉 ./col 12341234123412341234를 입력하게..
너무 오랜만에 ProjectEuler를 풀어보네요.... 나름 수월하게 12번을 풀기는 했지만 너무 오래걸렸..... 더군다나 다른분들 소스코드를 이해하는데는 조금 오래걸리네요...ㅠㅠㅠㅠ(자주 해야할듯ㅜㅜㅜㅜ) 다른분들 푸신걸 보니 여러방법이 있어서 그 중 맘에 드는 공식(?) 으로 나름대로 짜 봤습니다. 문제 : 1부터 n까지의 자연수를 차례로 더하여 구해진 값을 삼각수라고 합니다.예를 들어 7번째 삼각수는 1 + 2 + 3 + 4 + 5 + 6 + 7 = 28이 됩니다. 이런 식으로 삼각수를 구해 나가면 다음과 같습니다.1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ...이 삼각수들의 약수를 구해봅시다. 1: 1 3: 1, 3 6: 1, 2, 3, 6 10: 1, 2, 5, 10..
Prob 18번.hwp
Prob 17.hwp
Prob 16.hwp
Prob 6.hwp
Prob 14.hwp