목록잡담.. (12)
CIDY
플래그 긴거 제출하면 준다. 예전에 얻은거라 맞아야 하는지 아닌지는 모름. 그냥 자연스럽게 여러개 풀다보면 어느새 획득되어 있다. 라업 하나 쓰면 준다. 정확한 플래그를 5번 연속 제출하면 준다. 포너블은 특성상 플래그를 게싱할 일은 없으므로 제출창에 이상한 걸 입력하지만 않으면 어느새 획득돼 있다. 잘못된 플래그를 30회 제출하면 준다. 얻고싶으면 그냥 아무거나 계속 제출하면 된다. 플래그 입력창에 fuck입력하면 준다.. https://pwnable.tw/admin/ ->이거 입력하면 준다. 웹해킹 권장하는 포넙 사이트,, 라업 10개 쓰면 준다. 닉네임뒤에 '(작은 따옴표)하나 붙이면 준다.
보호되어 있는 글입니다.
보통 segmentation fault가 뜨면 core dumped도 같이 된다. segmentation fault는 잘못된 메모리 영역에 접근했다는 뜻인데... 암튼 이렇게 프로그램이 비정상적으로 종료되면 운영체제에서 친절하게도 core파일을 자동 생성해준다. 근데 왜 난 안해줌? -> 코어파일이 너무 크면 생성안됨 그럴땐 이걸 입력해주자 ↓ ulimit -c unlimited 코어파일 분석 : gdb -c core
내가볼거니까 대충적고갈거임. peda고 python3 씀 인자 전달 : gdb-peda$ r $(python3 -c 'print(b"\xff"*100)') 입력값 주기 : r $(python3 -c 'print(b"\xff"*100)')
*어셈블리 문법 구조(intel기준) 어셈블리는 기본적으로 구조임 EX) mov eax, 3 에서 mov == opcode, eax == operand 1, 3 == operand 2 *어셈블리 명령어 ;--------------------------------------------------------- mov, lea -> 데이터 옮기기 and, or, xor, not -> 논리연산자 cmp, test -> 비교연산자 call, ret, leave -> 프로시져 push, pop -> 스택에 넣고빼는거 jmp, je, jg -> 분기문 inc, dec, add, sub -> 산술연산자 syscall -> 시스템콜(32비트에서는 int 0x80) ;-------------..
일단, recv(n) -> 최대 n바이트 받아옴 recvn(n) -> 정확히 n바이트 받아옴 (덜받으면 대기) recvline() -> 한줄 받아옴 recvuntil('x') -> 딱 x까지 받아옴 (못받으면 대기) recvall() -> 모두 받아옴 이건 다들 알고 쓰는 것일 것이다. 내가 이 글을 쓰는 이유는 recv로 받아온 것을 [ : ]로 자를 수 있는데, 스스로 헷갈려서 정리하려고 쓰는 것임.. ABCDEFGHIJKLMNO recvline()[3 : ] -> DEFGHIJKLMNO -> 앞쪽 3바이트 뗌 recvline()[ : 3] -> ABC -> 앞쪽 3바이트만 가져옴 recvline()[-3: ] -> NO\n -> 뒤쪽 3바이트만 가져옴 recvline()[ : -3] -> ABCDE..
일단 이렇게 하면 file이라는 이름의 파일을 만들겠다는 뜻. (또는 file이라는 파일을 vi편집기 상에서 편집하겠다는 뜻) vi file 이렇게 명령어를 입력하면 vi편집기 창이 뜨는데, 처음 열면 command mode이다. -> a 나 i를 누르면 insert mode로 전환됨 insert mode에서 파일 내용을 잘 적어준 뒤, 저장하려면 다시 명령 모드로 돌아와야 한다. -> esc키 명령 모드에서 last line mode로 전환하려면 -> : (콜론) 입력하면 되고, 작성 내용을 저장 후 종료하려면 wq, 그냥 종료하려면 q 또는 q! 를 입력하면 된다.