튜기's bloggggg(st1tch)

방명록을 남겨주세요!

  • 123 2017.07.21 20:37 신고

    술을 그렇게 잘드신다고 들엇는데 사실인가요?

  • 안뇽하세여 2017.07.12 21:13 신고

    안녕하세요 pwnable.kr sudoku 문제를 풀다가 잘 안돼서 검색하던 도중에 스티치..?님은 이미 푸신 것 같아 질문 드립니당.
    대충 스도쿠 결과를 구하는 코드는 backtracking 알고리즘으로 작성 완료했는데요. 결과를 보낼 때 분명 제대로 보낸 것 같은데도 오류가 나더라구요.
    [[6,7,3,5,2,4,8,1,9],[1,4,9,6,8,3,5,7,2],[8,2,5,1,7,9,3,4,6],[4,8,2,7,5,6,1,9,3],[5,9,1,2,3,8,4,6,7],[3,6,7,4,9,1,2,8,5],[2,1,4,9,6,5,7,3,8],[7,3,6,8,1,2,9,5,4],[9,5,8,3,4,7,6,2,1]] 이렇게 한 줄로 보내도 보고
    [[6,7,3,5,2,4,8,1,9],[1,4,9,6,8,3,5,7,2],
    [8,2,5,1,7,9,3,4,6],[4,8,2,7,5,6,1,9,3],
    [5,9,1,2,3,8,4,6,7],[3,6,7,4,9,1,2,8,5],
    [2,1,4,9,6,5,7,3,8],[7,3,6,8,1,2,9,5,4],
    [9,5,8,3,4,7,6,2,1]]
    이렇게 두 개씩 끊어서 보내도 봤는데도 format error! send me 9x9 array with JSON format ending with newline. 에러가 뜨네요..
    pwntools를 이용해서 shell.send(payload)로도 해보고 shell.send(payload + '\n')으로도 해보고 shell.sendline(payload), shell.sendline(payload+'\n')으로 해봐도 안되네요. 결과값을 어떻게 보내야 되는건가요? 관리자님께 메일도 넣어봤는데 대답이 없으시네연;
    아 그리고 smaller는 되는거같은데 bigger는 어떻게 짜줘야될까요 smaller에서 부호만 반대로 해줬는데 제대로 안되더라구요.

    질문을 요약하자면,
    1. 스도쿠의 결과값을 어떤 포맷으로 보내줘야 되는지
    2. bigger는 어떤 방법으로 구현해줘야 하는지

    입니다. 뭔가 좀 글이 길어졌네요..ㅎㅎ 죄송합니다 ㅠ

    • 안녕하세요!
      저는 일단 알고리즘으로 먼저 풀고, z3모듈이용해서도 풀었어요.
      우선 payload 형태는
      [[9,5,2,1,3,8,6,4,7],[7,3,1,4,6,9,2,8,5],[6,8,4,7,5,2,1,3,9],[8,2,5,6,1,7,4,9,3],[3,7,9,2,4,5,8,1,6],[1,4,6,8,9,3,7,5,2],[2,9,8,3,7,1,5,6,4],[5,6,7,9,8,4,3,2,1],[4,1,3,5,2,6,9,7,8]]
      이런형태로 보냈구요.
      알고리즘은 구글 참고하셔서 문제에 맞게 변형하시면서 보시면 아마 이해가 좀 더 잘되실거에요. 근데 z3로 푸는게 훨신 쉽고 편해요!! 궁금하시면 solve 코드 메일로 보내드릴게요.

    • 2017.07.13 21:14

      비밀댓글입니다

    • 2017.07.18 20:12

      비밀댓글입니다

    • 2017.07.18 20:23

      비밀댓글입니다

  • 안녕하세요! 블로그 보면서 열심히 공부 중 입니다. BOB 6기 꼭 TOP10 드셨으면 좋겠습니다. 화이팅입니다!

  • BlogIcon blackcon 2016.10.11 11:39 신고

    오 개쩜 ㅋㅋㅋㅋ 블로그 글 많이 적혀있네!_!
    잘보고 간다 ~,.~

  • 지진희 2016.09.20 13:02 신고

    안녕하세요 ㅎㅎ 블로그 잘보고가요.

  • 문의 2016.05.06 07:59 신고

    http://st1tch.tistory.com/145

    lob fc titan 풀이 중에 익스 코드 보면
    "payload += ( 'A' * 40 + p(addesp) + '\n') * 4"가 있는데 마지막에 개행을 왜 하는지 모르겠습니다 ㅠㅠ

    • socket통신이기 때문에 send함수에서 끝에 '\n'이 없으면 전송이 되지 않아요.
      그래서 붙인거에요 ~
      최종 rtl payload는 19번 라인보시면 뒤에 '\n'을 붙여서 보냈구요.

    • 문의 2016.05.08 01:35 신고

      아 제가 궁금한건 어차피 send 함수로 payload + '\n' 할 때 payload 변수에 저장해서 한방에 보내는데, 왜 하필 "A*40 + p(addes)" 페이로드에 대해서만 개행을 해야 하는지 궁금한겁니다 ㅠㅠ

    • 풀어서 쓰면
      s.send('A' * 40 + p(addesp) +'\n')
      s.send('A' * 40 + p(addesp) +'\n')
      s.send('A' * 40 + p(addesp) +'\n')
      s.send('A' * 40 + p(addesp) +'\n')
      s.send('A' * 8 + p(system) + 'A' * 4 + p(binsh) + '\n')
      이렇게 된다고 생각하면 될거같아요. 동일하게 쉘은 따져요
      쉘 획득하려면 입력을 총 5번 받기 때문에, 위에처럼 5번을 보내야하는데
      저가 개행문자를 뒤죽박죽써서 헷갈리셧나보네요 !

  • ㅎ-ㅇ

  • 2016.01.18 02:51

    비밀댓글입니다

  • 2015.10.14 08:54

    비밀댓글입니다

    • 늦게 봤네요 ㅎㅎ
      file명령어로 이후에 확인해본 결과 3개가 암호화 되지 않은 사실을 발견할 수 있었습니당

      감사합니다 !