22.01.06.Thu

  • ase21-industry 논문을 읽기 시작했다.
  • Ubuntu 서버와 맥OS에서 AFL++을 빌드하고 사용법을 익혔다.

22.01.07.Fri

  • AFL++을 사용해 오픈소스 프로젝트의 버그를 찾아보기 시작했다.
  • mpcmpca_lang()을 대상으로 AFL++을 사용해 보았다. » 버그 하나를 찾았다.

22.01.10.Mon

  • 3일간 AFL++로 mpc를 fuzzing한 결과 생성된, timeout과 crash를 유발하는 input들을 사용해 버그 리포트 쓰기를 시작했다.
    • mpc의 소스코드에서 버그를 유발하는 mpca_lang_st()를 찾았다.

22.01.12.Wed

  • mpc의 버그 리포트를 작성해 보았다. (link)

22.01.13.Thu

  • AFL++에서 function coverage 정보를 얻기 위해 AFL++의 코드를 살펴보기 시작했다.

22.01.14.Fri

  • AFL++이 효율성을 높이기 위해 execve() 없이 프로그램을 실행하는 방법에 대한 포스트를 읽어보았다.

22.01.17.Mon

  • shared memory를 이해하기 위해 Operating System Concepts 10th edition의 IPC 파트를 읽어보았다.
  • void * __builtin_return_address(unsigned int level) 함수에 대해 알아보았다. (link)

22.01.18.Tue

  • Sanitizer Coverage를 이용해 function coverage를 얻는 방법을 알기 위해 Sanitizer Coverage를 공부했다. (link1, link2)
  • FunCov(function coverage tool)를 만들기 시작했다.

22.01.24.Mon

  • Sanitizer Coverage가 function entry point를 구분하는 방법을 찾기 위해 llvm-project 코드를 보기 시작했다.
    • function entry point를 구분하여 추후 AFL++ 안에서 function coverage를 잴 수 있는 옵션을 추가하는 것이 목적

22.01.26.Wed