소프트웨어 보안 논문을 읽다 보면, 역어셈블(Disassemble)은 비결정(undecidable)문제라는 이야기를 자주 접하게 됩니다. 하지만 그 의미를 정확히 아는 사람은 드뭅니다. 국내외를 막론하고 역어셈블의 의미를 깊이 있게 고찰하는 글을 찾아보기는 매우 어렵기 때문입니다. 이번 시간에는 많은 사람들이 궁금해하는 바이너리 역어셈블의 의미와 원리를 한 번 파헤쳐보겠습니다. 역어셈블의 뜻은 그 대상에 따라 달라진다. 역어셈블(Disassemble)은 말 그대로 어셈블(Assemble)을 거꾸로 하는 것을
소스 코드가 없는 경우엔, 바이너리 코드를 본다? 보안에 관심 있는 사람은 누구나 바이너리(binary)에 대해서 들어보았을 것입니다. 해킹 경연대회(CTF)에서는 항상 바이너리 기반의 문제가 출제되죠. 소스 코드를 활용한 해킹대회 문제는 웹 해킹 쪽을 제외하고서는 매우 드물다 할 것입니다. 그뿐 아니라 메모리 취약점을 공격한다고 하면 누구나 다 바이너리를 기반으로 공격 코드(exploit)를 만듭니다. 그런데 왜 이렇게 보안에서는 바이너리가 중시되는
안녕하세요, 2020년 3월부터 센터장을 맡게 된 차상길입니다. 저희 센터는 올해부터 다양한 경로로 연구관련 소식을 전하고자 노력하고 있으며, 그 일환으로 블로그를 개설하게 되었습니다. 본 블로그는 국내 사이버 보안 인식 수준의 개선을 위해 다양한 주제의 보안 문제와 카이스트에서 연구중인 최첨단 보안 기술을 심도있게 다룰 예정이며, 이를 위해 영어보다는 주로 우리말로 된 글을 올릴 계획입니다. 여러분의 많은 관심