개요 SQLite는 바이트코드를 사용해서 동작하는데, 이 바이트코드를 공부하는건 일반적인 프로그램 개발에 전혀 필요하지 않다. 단순히 SQLite가 어떻게 내부에서 쿼리를 처리하는지 궁금할 수 있기에 이를 공부하고자 한다. SQLite에서도 이런걸 예상하였는지 SQLite 바이트코드 엔진이 어떻게 동작하는지를 문서로 작성하였고, 이를 참고하였다. 맨 마지막 참고에 링크를 남겨두었다. 우선 SQLite의 바이트코드 엔진 구조는 다른 바이트코드 엔진을 사용하는 언어와 별로 다를게 없다. 아래의 사진이 SQLite의 전체 구조를 나타낸 그림이다. 바이트코드로 변환하는 코어 부분이 다른 바이트코드 언어와 동일하게 인터페이스로부터 받아 이를 토큰화 및 파싱을 통해 바이트코드로 생성한 다음, 해당 바이트 코드를 실..
NULL Dereference(CWE-476) : NULL 참조 취약점, NULL Pointer를 기준으로 메모리를 참조하면서 발생 궁금한 내용유저 영역에서의 공격 가능성Remote Code Execution 여부 Exploit case 2개의 상황에 맞는 경우는 상황이 조금 특수해야 공격이 가능하다. 예를 들면 addr[offset]과 같은 코드가 있고, offset을 사용자가 제어할 수 있다는 전제 조건이 필요하다. 다음의 코드를 상황에 맞춰 pseudo code로 간략하게 표현하면 다음과 같다.1234567mov addr, 0x00000000mov ebx, addrmov eax, lea ebx, [ebx+eax*4]add ebx, 0x10mov ecx, [ebx]call ecxcsaddr에 NULL..
보호되어 있는 글입니다.
다운로드 링크 : https://www.zynamics.com/software.html Windows 기준 설치 위의 링크로 들어가면 아래와 같은 화면이 나올 것이다.라이센스 동의에 체크한 후, Current Version에 있는 bindiff430.msi 설치 bindiff를 설치하기 전에 IDA가 컴퓨터에 설치되어 있어야 하고, 설치 진행 중에 설치된 IDA의 경로를 넣어주어야 함. ※ 기본으로 된 설정 경로는 Local Disk(C:)\Program Files (x86)\IDA 이다. 설치가 완료되면 설치 끝! ...이지만 혼자 설치가 이상하게 꼬였는지 잘 안 되길래 약간의 수작업을 하였다.만약 잘 작동하면 아래의 내용은 볼 필요가 없다. 첫 번째. IDA Plugin이 실행 안 될 때 - 설치할 ..