정보보호

    [하드웨어 해킹] 퍼징과 분석 기술 - 심볼릭 실행

    퍼징 퍼징(fuzzing)은 가장 효과적으로 소프트웨어를 테스트하는 기술이다. 정의에 따르면 퍼징은 실행 중인 소프트웨어뿐 아니라 소스코드와 컴파일된 코드에도 적용할 수 있다. 하지만 실행 중인 프로그램이 아니라면 정적 분석의 영역이라고 봐야할 것이다. 퍼징과 동적 분석, 정적 분석을 합쳐 concolic testing이라고 할 수 있다. concolic은 concrete와 symbolic을 합친 말로, symbolic한 실행과 concrete 실행을 함께 사용하는 기술을 말한다. 다시 말해 주어진 소스코드를 기반으로 높은 커버리지를 달성하는 테스트 케이스를 자동으로 생성하는 테스팅 기법이다. 프로그램 시맨틱을 해석하는 법 프로그램 시맨틱(semantic)은 어떤 요소를 어떠한 위치에 두면 어떤 의미를 ..

    [하드웨어 해킹] QEMU 실행 모드

    ARM 아키텍처를 사용하기 전 패키지 설치 sudo apt install build-essential sudo apt install gcc-arm-linux-gnueabihf sudo apt install libc6-armhf-cross sudo apt install gdb gdb-multiarch for MIPS ARM 아키텍처를 이용하는 경우 설치하지 않아도 괜찮다. sudo apt install gcc-mips-linux-gnu sudo apt install libc6-mips-cross 플러그인(peda, pwndbg, gef) git clone https://github.com/apogiatzis/gdb-peda-pwndbg-gef git clone 명령으로 파일을 받은 다음 해당 디렉토리로 들..