SJH's Blog

기말고사

이름: 신재형

나이: 23살
거주지 : 인천 부평구
개인 블로그

관심분야


-웹해킹
-리버싱
-포너블

Plan


웹해킹

  • 기본적인 HTML, JavaScript, PHP 공부
  • Dreamhack에서 기본적인 웹해킹 기법을 공부
  • OWASP10, 시큐어코딩가이드라인을 참고하여 공부
  • Webhacking.kr 워게임 문제 해결


  • 리버싱

      x86 어셈블리어 공부
    • Dreamhack과 Youtube를 통해 어셈블리어 기본 문법 공부
      리버싱 서적 공부
    • 달고나 문서
    • 리버싱입문
    • 리버스 엔지니어링 비밀을 파헤치다
    • 리버스 엔지니어링 바이블(방독면 책)
    • 리버싱 핵심원리(나뭇잎 책)
      리버싱 워게임 문제 해결
    • Lena 시리즈
    • 써니나타스 리버싱
    • CodeEngn Basic
    • Reversing.kr
    • HackCTF 리버싱
      IDA 공부
    • THE IDA PRO BOOK


    포너블

      포너블에 입문하기 위해 필요한 지식

    • 기초적인 Linux지식
    • 프로그래밍(Python, C)
    • 리버싱
    • 디버깅
    • 해킹 공격 기법
    Linux 지식

    동적 분석을 할 때 리눅스 시스템을 활용하는 것이 좋음

    Linux의 기본 명령어, Permission(권한), 리다이렉션, 파이프 정도의 개념 숙지

    Bandit을 통해 리눅스에 관한 기본 지식 공부

    프로그래밍(Python, C)

    포너블 문제를 해결하기 위해서는 pwntools라는 라이브러리를 사용하기 때문에 파이썬은 pwntools 라이브러리를 사용할 수 있을 수준까지 공부

    pwntools을 사용하는 이유 : 데이터 전송, 패킹 등 포너블에서 필요한 많은 기능들을 가지고 있는 모듈 라이브러리를 사용하기 때문

    리버싱

    C언어 프로그래밍 → 실행파일

    실행파일은 기계어로 되어있음

    포너블 문제는 C코드를 주는 경우도 있지만 실행파일을 주는 경우도 있기 때문에 이 기계어를 해석할줄 알아야 함

    이 기계어를 읽고 프로그램이 어떻게 동작하는지, 내부 로직이 어떻게 동작하는지 이해할 수준까지 공부

    디버깅

    gdb, r2를 이용해서 디버깅 공부

    • Process attach
    • break point 설정 방법
    • Step in & Step Over
    • 디버거에서 Memory, Register 확인 방법