워게임/pwnable.kr9 11번 - coin1 보호되어 있는 글 입니다. 2022. 2. 4. 9번 - mistake 보호되어 있는 글 입니다. 2022. 1. 31. 8번 - leg 보호되어 있는 글 입니다. 2022. 1. 31. 6번 - random 여기서 취약한 점은 random함수는 프로그램 실행시마다 항상 같은 랜덤값을 리턴한다는 점이다. gdb로 열어서 랜덤 함수가 실행된 후 해당 랜덤값을 확인한다. (gdb) b *0x0000000000400609 (gdb) x/x $rbp-0x4 0x7ffe0b842a4c: 0x6b8b4567 해당 gdb를 재시작해도 같은 값인 것을 확인할 수 있다. 0x6b684567 xor [입력한 값] = 0xdeadbeef 가 나오게 하려면 [입력한 값] = 0xdeadbeef xor 0x6b684567 = 0xb526fb88 2022. 1. 17. 5번 - passcode 보통 scanf("%d", &passcode1) 과 같이 받는다. 그런데 여기서는 &passcode1이 아닌 passcode1로 받았다. 이 의미는 scanf에서 입력한 값이 1234라면, 1234라는 값이 passcode1에 저장되어있던 쓰레기값에 해당하는 주소에 저장된다는 것이다. 그래서 아마 세그폴이 떴을 것이다. gdb name은 ebp-0x70에서부터 100바이트만큼을 차지하고, passcode1은 ebp-0x10에서부터 4바이트, passcode2는 ebp-0xc에서부터 4바이트만큼을 차지한다. name을 입력할 때 passcode1을 변조할 수 있다는 것을 알 수 있다. 그리고 scanf("%d", passcode1) 부분에서는 passcode1의 위치인 ebp-0x10에 담겨있는 값에 해당.. 2022. 1. 15. 4번 - flag 그냥 flag 파일 하나 주어진다. 해당 파일 실행결과 gdb exeinfo로 패킹 검사를 했더니 upx 패킹이 되어있다고 나왔다. https://github.com/upx/upx/releases Releases · upx/upx UPX - the Ultimate Packer for eXecutables. Contribute to upx/upx development by creating an account on GitHub. github.com gdb flag_de_upx set disassemble intel disassemble main x/xg 0x6c2070 // 64비트 환경 파일이니까 8바이트 출력하는 g 옵션 추가 x/s 0x496628 // 문자열 확인 2022. 1. 12. 이전 1 2 다음