전체 글
-
Windows Kernel Symbol(pdb file)Tools/Windows 2021. 9. 14. 23:06
pdb파일을 받을 수 있는 방법은 많다. 직접적으로 Request를 보내 받아오는 방법도 있고(https://github.com/ajkhoury/pdbfetch), IDA Pro는 인터넷이 연결되어있으면 사용자에게 물어보고 알아서 받아오기도 한다. Kernel Debugging을 할 때도 직접 받을 수 있는데, 너무 쉽고 당연해서 그런지 정리글이 없다. Kernel Debugging 환경이 있을 때, windbg(kd)를 통해 받는 방법이다. 1. Symbol Path 설정 .sympath srv* C:\symbols*https://msdl.microsoft.com/download/symbols 위 명령어를 이용해 심볼을 저장할 path를 설정한다. 혹은 Ctrl+S를 눌러 Symbol Search Pa..
-
VirtualKD: Windows 10 Kernel Debugging SettingTools/Windows 2021. 9. 14. 23:06
일반적으로 VM에 설치된 Windows를 windbg와 시리얼 통신을 이용해 Kernel 디버깅을 한다. 커널 디버깅은 상황에 따라 느릴 때도 있고, 여러가지 자잘자잘한 귀찮은 세팅이 필요할 수 있다. 이를 보완해 편하게 디버깅하고자 만들어진 툴이 VirtualKD인데, 러시아 사람이 만든 툴로 매우 빠르다. 뿐만 아니라 세팅도 단순한 편이고, UI도 직관적이라 쉽게 사용할 수 있다. 여러 블로그에서 설명이 잘 되어있긴 한데, VirtualKD-2.8 버전급으로 낮은 버전의 포스팅이 많다. 이는 Windows 8을 대상으로 만들어져서 Windows 10에서는 정상적으로 작동하지 않는 경우가 많다. 나는 Windows 10 디버깅을 위해 원래 VirutalKD-3.0 버전을 조금 수정해서 썼었는데, 특정 ..
-
BFF(Basic Fuzzing Framework)Tools/fuzzers 2021. 4. 8. 00:34
BFF는 Basic Fuzzing Framework의 줄임말로 카네기 멜론 대학의 CERT에서 만들어진 도구이다. BFF는 누구나 쉽게 사용할 수 있는 퍼저이다. 비전공자도 쉽게 쓸 수 있을 정도로 정말 쉽게 사용 가능한 퍼저이다. 다운로드, 설정도 매우 쉬운 편에 속하며 크래시 식별 및 미니마이즈 모두 자동화되어 있다. BlackBox, Mutate 기반이고 시드 파일만 가지고 있으면 바로 실행이 가능하다. Download and Set up 다운로드도 어렵지 않다. 링크를 타고 들어가서 라이센스 관련 동의만 누르면 쉽게 받을 수 있다. Windows, MacOS, Linux 운영체제 환경을 지원한다. 윈도우를 선택해서 설치해본다. BFF-2.8-setup.zip - Windows Installer를 ..
-
Fuzzer는 미래가 있을까?ETC 2021. 3. 19. 00:40
퍼저를 써서 버그를 찾을 수 있을까? 최근 여러 종류의 Fuzzer가 쏟아져 나오고 있고 각 툴의 README.md 파일을 보면 여러 CVE 번호가 나열되어있다. 이를 보면 최신 퍼저들도 나름 선방하고 있는 듯 하다. 어마어마한 자원을 쓰는 구글의 클러스터 퍼저를, 큰 자원을 들이지 않고 선방한다는 것은 대단한 일이라고 생각한다. 구글이 퍼징에 이만한 자원을 투자한다는 것은 그만큼 퍼징이 버그를 찾는데 실용성이 있다는 반증아닐까? 그렇지 않았으면 막대한 자원들을 굳이 퍼저에 쏟지 않았을 테니까. 물론, 그렇게 무시무시한 자원을 투입하면 거의 전수조사에 가까운 수준이 아니냐, 버그를 못찾는게 이상하지 않느냐 반문한다면, 나 역시 공감한다. 결국, 우리는 버그를 찾으려고 퍼저를 쓴다. 그렇다면 퍼저를 쓰려는..
-
Fuzzing: What is the Fuzzing?Theory/fuzzing theory 2021. 2. 15. 01:22
"퍼징이란?" 여러 사전적 의마가 있겠지만, 대략적으로 다음 설명이면 충분히 설명된다. 퍼징은 소프트웨어를 테스팅하는 방법의 일종으로 무작위 입력값을 프로그램에 대입해 예상치 못한 결과를 얻어내는 것 일반적으로 퍼징을 떠올리면 복잡하고 어렵다고 생각되지만, 그저 단순하게 보면 퍼징은 버그를 찾는 방법 중 하나라고 할 수 있다. 소프트웨어 버그를 찾는 방법을 공부하는 이유는 눈으로 분석하는 것보다 쉽고 빠르게 버그를 찾기 위함일 것이다. 그래서 버그 헌터들은 잘 만들어진 퍼저들을 사용하거나 직접 퍼저를 만들기도 한다. 정말 간단한 퍼저부터 시작해서, 여러가지 기법을 응용한 복잡한 퍼저들도 많이 나오고 있다. 복잡한 퍼저를 사용하려다 보면 Coverage, White Box, Black Box, Genera..