본문 바로가기

전체 글

(245)
Python Fuzzer - Manul 소개 및 사용법 참고자료 Manul Homepage Manul vs AFL Manul 이란? Manul은 Python으로 작성된 Windows / Linux / macOS에서 사용가능한 병렬 처리를 지원하는 Coverage Guided Fuzzer 이다. AFL과의 성능 비교는 이 곳의 자료를 참고한다. 준비하기 Python으로 작성되어 있어 설치도 매우 쉽다. pip3 install psutil git clone https://github.com/mxmssh/manul 필요하다면, clone 받은 위치를 path 환경 변수에 추가하여 사용한다. Fuzzing 수행 하부 폴더에 이미 저정되어 있는 afl-gcc로 빌드된 바이너리 test_afl을 사용한다. (linux/test/test_afl) 해당 소스코드는 아래와 ..
AFL(American Fuzzy Lop) Fuzzer 사용기 - binutils 대상 참고 자료 FUZZING WITH AFL-FUZZ, A PRACTICAL EXAMPLE (AFL vs BINUTILS) AFL Github AFL Training Github American Fuzzy Lop Homepage AFL이란? SW 버그를 찾기위해 다양한 상황을 고려한 테스트 케이스를 만들어야 하는데 많은 노력이 든다. 이에 테스트 케이스의 입력값을 자동으로 생성하는 다양한 기법들이 있는데, 이 중 유전알고리즘 기반 Fuzzing 기법을 활용한 테스트 케이스 입력값을 자동 생성하는 AFL의 간단한 사용법을 알아보고자 한다. AFL 홈페이지를 찾으면, AFL의 소개를 아래와 같이 하고 있다. (다른 기법인 Concolic Testing 활용은 Link1, Link2를 참고한다.) American..
Architecture Patterns with Python: Enabling Test-Driven Development, Domain-Driven Design, and Event-Driven Microservices http://www.cosmicpython.com/book/preface.html?fbclid=IwAR199_0_Svtsn4mMaQgBGwrJYz_0eD4VSH1QDJZMtXe_nzKV_2RyFa7tmq0 Preface You’re reading a book, but you’ll probably agree with us when we say that the best way to learn about code is to code. We learned most of what we know from pairing with people, writing code with them, and learning by doing, and we’d like to re-create that www.cosmicpython.com
Mutation testing tool for general language(C/C++ 포함) - mull 설치 1. 개요 C/C++ 대상으로 Mutation Testing 엔진을 찾고 있었는데, 그 중 하나가 Mull 이다. LLVM의 IR을 대상으로 하여 C/C++은 물론 다른 언어도 목표로 두고 있다. 관련 논문(Link)은 다음을 참고한다. Mull : https://github.com/mull-project/mull mull-project/mull LLVM-based mutation testing for C and C++. Contribute to mull-project/mull development by creating an account on GitHub. github.com 2. 사전조건 2.1. docker ubuntu18.04 이미지 설치 굳이 docker를 사용하지 않아도 된다. Ubuntu 1..
서울시립대 재직자과정(기계학습) https://sites.google.com/view/dlcv-uos/%ED%99%88
CppCheck misra.py Addon 확장을 통한 MISRA C:2012 Dir 4.6 검출 추가 개요 CppCheck는 misra.py addon을 제공하고 있으며, 이를 통해 몇가지의 Guideline(rule)들을 검출할 수 있다. 이를 확장하여 원하는 추가 Guideline을 개발할 수 있었다. 그 중 가장 간단히 추가할 수 있는 Guideline(Directive)는 Dir 4.6이다. int, unsigned int, float, double과 같이 숫자 기본형을 사용하지 말고, typedef를 통해 signedness와 size를 암시하는 새로운 형을 사용하라는 Guideline(Directive) 이다. 이를 검출하기 위해 작업을 수행해보자. typedef signed intint32_t; typedef unsigned int uint32_t; ... typedef doublefloat..
MISRA C:2012 를 위한 공개SW(CppCheck) 사용 공개 SW 정적분석 자동화 도구인 CppCheck(http://cppcheck.sourceforge.net/)에서 1.83 버전부터 misra 플러그인을 제공하고 있고, 홈페이지를 확인해보니까 MISRA로부터 정식 라이선스를 구매하여 서비스를 제공하고 있단다. 이 정도 도구를 무료로 사용할 수 있다니 공개SW 만세! https://sourceforge.net/p/cppcheck/discussion/general/thread/ccbe9e89/ cppcheck / Discussion / General Discussion: Use MISRA rules from the GUI? Use MISRA rules from the GUI? Log in to post a comment. © 2019 Slashdot Med..
Concolic testing 과 AddressSanitizer를 사용한 메모리 에러 검출 개요 테스트 케이스 자동생성을 위해 사용하는 기법 중 Concolic Testing이란 기법이 있다.(자세한 내용은 이분야의 대가이신 KAIST 김문주 교수님 홈페이지(Link)에서 알아보기로 하자.) Concolic Testing을 사용하면 소스코드가 가질 수 있는 다양한 패쓰 조합에 대한 테스트 케이스를 생성해주며, 실제 구동함에 따른 결과를 확인할 수 있다. 이에 최근에 메모리 에러 검출에 도움이 되는 AddressSanitizer에 대해 알아보니 두 개 기법을 조합하면 좋을 것 같아 시도해보았다. Concolic Testing : 테스트 케이스 자동 생성 + SW실행 AddressSanitizer : SW실행에 따른 각종 Memory 관련 에러 검출 준비물 CROWN : Concolic Testi..