SQLite Expert

Digital Forensic Wikipedia
둘러보기로 가기 검색하러 가기

소개

SQLite Expert는 Bogdan Ureche에서 제공하는 상용 유틸리티(라이선스가 없는 경우 트라이얼 버전)가 있고, 무료 유틸리티가 있다. 최신버전은 3.5.6이고, 본 항에서는 3.5.59 버전을 기반으로 보고서를 작성하였다. SQLite Expert는 상용 유틸리티인 경우에는 라이선스 없이 30일 동안 트라이얼 버전을 이용 할 수 있다. 설치 후 30일 이후에는 라이선스를 구입해야만 이용이 가능하다. SQLite Expert는 Windows에서 GUI로 동작한다. 입력 가능한 파일은 SQLite 데이터베이스 파일만 된다.


사용법

[그림 1] SQLite Expert 실행 화면

SQLite Expert를 실행하면 [그림 1]와 같다. 데이터베이스의 정보와 수정 등이 가능하다. 크게는 SQL 쿼리 기능, 재구성 기능, 데이터 가져오기 및 내보내기, 데이터 편집 등의 다양한 기능을 지원하고 있다.





도구 기능

SQLite Expert에서는 주로 화면 상단에 있는 메뉴들을 통해 기능 이용이 가능하다. 메뉴에는 [그림 2]와 같이 메뉴모음 창이 있고, 그 아래에는 메뉴 모음에 있는 기능 바로 이용할 수 있는 단축 아이콘이 있고, 단 축 아이콘 아래에는 현재 입력한 SQLite 데이터베이스의 이름, 테이블 이름, 저장되어 있는 경로를 표시해주고 있다.

[그림 3] SQLite Expert 메뉴



메뉴모음 창에는 File, Database, Impot/Expot, Table, View, SQL, Transaction, Scripting, Tools, Help의 메뉴가 있다. File 메뉴에서는 [그림 3]와 같이 새로운 SQLite 데이터베이스를 생성하거나 열기, 닫기, 등록, 다른 데이터베이스 붙이기, dll파일 읽어 들이기, 암호키 입력하기 등의 기능이 있다.

[그림 3] File 메뉴






File 메뉴에 대한 단축 아이콘은 [그림 4] 와 같다. File 메뉴의 거의 모든 메뉴가 단축 아이콘으로 표시되어 있다.

[그림 4] File 메뉴의 단축 아이콘 메뉴



New Database 메뉴를 클릭하면 새로운 SQL 데이터베이스를 생성 할 수 있다. 데이터베이스를 생성할 때 [그림 5]와 같이 몇 가지 옵션에 대해 설정이 가능하다. 인코딩에서는 UTF-8, UTF-16, UTF-16le, UTF-16be 중에서 1개를 선택 할 수 있고, 페이지 크기에서는 512, 1024, 2048, 4096, 8192, 16384, 32768 중에서 1개를 선택 할 수 있다. Auto Vacuum에서는 0, 1 중에서 1개를 선택 할 수 있다.

[그림 5] 새로운 데이터베이스 생성의 옵션



DataBase 메뉴에서는 [그림 6]와 같이 새로 고침, 무결성 체크, Vacuum, Reindex, Repair, Backup 기능이 있다.

[그림 6] Database 메뉴




Database 메뉴에 대한 단축 아이콘은 존재하지 않는다. Repair는 [그림 7]와 같이 원본 데이터베이스에 Repair를 할지, 새로 Repair한 파일을 생성할지 여부를 선택 해서 저장 할 수 있다.

[그림 7] 성공적으로 Repair한 결과



Backup 기능에는 [그림 8]와 같이 현재 입력한 데이터베이스나 새로 생성한 데이터베이스에 대해 백업할 경로를 지정하고 백업 할 수 있다.

[그림 8] 백업 완료한 화면




Import/Export 메뉴에서는 [그림 9]와 같이 SQLite 데이터베이스를 들여오거나 내보내기가 가능하고, Csv, Tsv파일에 대해서도 들여오기가 가능 하다. 일반적으로 들여오기, 내보내기 기능은 Data Transfer Wizard 메뉴를 클릭하면 가능하다.

[그림 9] Import/Export 메뉴


Data Transfer Wizard 메뉴를 클릭하면 [그림 10]와 같이 들여오기, 내보내기 선택이 가능하다.

[그림 10] 들여오기/내보내기 선택 화면

들여오기 기능인 Import에서는 들여오기 할 SQL 데이터베이스와 인코딩을 선택하면 들여올 수 있다. Export에서는 내보내기 할 SQL 데이터베이스에 대해 인코딩 선택, Object Type(테이블구조, 테이블 데이터, 인덱스, 트리거, 뷰 등)에 대해 선택해서 내보낼 수 있다.

Import/Export 메뉴의 단축 아이콘 메뉴는 [그림 11]와 같다.

[그림 11] Import/Export 단축 아이콘 메뉴

Table 메뉴에는 [그림 12]와 같이 Table을 생성하고, Table 이름 재설정, Reindex, 새로고침 기능이 있다.

[그림 12] Table 메뉴

New Table 메뉴를 클릭하면 화면의 가운데에 [그림 13]와 같이 Schema 창과 Design 창이 활성화 된다. Design 창에서 새로 생성할 테이블의 필드, 인덱스, 외래키, 제약조건(Constraints), 트리거에 대해 설정이 가능하다.

[그림 13] 활성화된 Schema 창과 Design 창


활성화된 Design창에서의 새로 생성할 테이블 이름을 설정 할 수 있다. 그리고 Fields 메뉴에서 화면의 하단에 위치하는 Add 버튼을 클릭하면 [그림 14]와 같이 필드를 추가 할 수 있다. 추가될 필드의 이름, 타입, 크기, Not null 등의 설정이 가능하다. Delete 버튼을 클릭하면 필드를 삭제 할 수 있고, Modify 버튼을 클릭하면 필드를 수정 할 수 있다. Move Up, Move Down 버튼을 클릭하여 테이블에 존재하는 필드를 위로 한 칸, 아래로 한 칸 이동시킬 수 있다.

[그림 14] 테이블에 필드 추가하는 화면


Index 메뉴에서 화면의 하단에 위치하는 Add 버튼을 클릭하면 [그림 15]와 같이 인덱스를 추가 할 수 있다. 추가 될 인덱스의 Primary, Unique, Autoincrement, On Conflict의 설정이 가능하다. Delete 버튼을 클릭하면 인덱스를 삭제 할 수 있고, Modify 버튼을 클릭하면 인덱스를 수정 할 수 있다. Move Up, Move Down 버튼을 클릭하여 테이블에 존재하는 인덱스를 위로 한 칸, 아래로 한 칸 이동시킬 수 있다.

[그림 15] 테이블에 인덱스 추가하는 화면

Foreign Keys 메뉴에서 화면의 하단에 위치하는 Add 버튼을 클릭하면 [그림 16]와 같이 인덱스를 추가 할 수 있다. 추가 될 외래키의 이름, Parent Table, Child Key, Parent Key 등의 설정이 가능하다. Delete 버튼을 클릭하면 외래키를 삭제 할 수 있고, Modify 버튼을 클릭하면 외래키를 수정 할 수 있다. Move Up, Move Down 버튼을 클릭하여 테이블에 존재하는 외래키를 위로 한 칸, 아래로 한 칸 이동시킬 수 있다.

[그림 16] 테이블에 외래키 추가하는 화면

Constraints 메뉴를 [그림 17]와 같이 클릭하면 제약조건을 설정 할 수 있다.

[그림 17] Constraints 설정 화면

Triggers 메뉴를 [그림 18]와 같이 클릭하면 트리거 설정이 가능하다.

[그림 18] 테이블에 트리거 설정 화면

Table 메뉴에 대한 단축 아이콘은 [그림 19] 와 같다. View 메뉴와 함께 있다. 아이콘 순서대로 테이블 생성, 테이블 이름 수정, 새로고침, 테이블 비우기, View 생성 기능이 있다.

[그림 19] Table 메뉴와 View 메뉴의 단축 아이콘


View 메뉴에는 [그림 20]와 같이 View를 생성하는 기능이 있다.

[그림 20] View 메뉴


New View 메뉴를 클릭하면 [그림 21]와 같이 Design 창에서 DDL로 뷰를 생성하면 된다.

[그림 21] 뷰 생성하려는 화면


SQL 메뉴에는 [그림 22]와 같이 SQL문 빌드, 실행, SQL script 읽기, 저장 등의 기능이 있다.

[그림 22] SQL 메뉴


실제 사용자가 직접 입력하고 실행할 SQL문 입력은 [그림 23]화면의 가운데에 보이는 SQL창에서 하면 된다.

[그림 23] SQL 입력 창


SQL 메뉴의 단축 아이콘은 [그림 24]와 같다. SQL실행과 SQL script에 대한 기능의 아이콘이다.

[그림 24] SQL 메뉴의 단축 아이콘


Transactions 메뉴에는 트랜잭션에 대해 [그림 25]와 같이 Begin, Save Point, Commit, Rollback 등의 설정하는 기능이 있다.

[그림 25] Transactions 메뉴


Transactions 메뉴의 단축 아이콘은 [그림 26]와 같다. Begin, Commit, Rollback의 기능에 대한 아이콘이다.

[그림 26] Transactions 메뉴의 단축 아이콘


Scripting 메뉴에는 Lua언어의 스크립트와 Pascal언어의 스크립트 실행하거나 읽어 들이거나 저장 할 수 있는 기능이 있다. [그림 27]와 같이 화면의 가운데에 있는 Scripting 창에서 Lua 언어와 Pascal 언어를 선택하고 스크립트를 작성 할 수 있다.

[그림 27] Scripting 창


Lua 언어를 선택하면 Scripting 메뉴가 [그림 28]와 같이 보인다.

[그림 27] Lua 언어 선택 시 Scripting 메뉴


Pascal 언어를 선택하면 Scripting 메뉴가 [그림 29]와 같이 보인다.

[그림 29] Pascal 언어 선택 시 Scripting 메뉴


Scripting 메뉴의 단축 아이콘은 [그림 30]와 같다.

[그림 30] Scripting 메뉴의 단축 아이콘


Tools 메뉴에는 SQLite Expert에 대한 옵션 설정, Auto Extensions, Database DDL 비교, Toolbar 보이기, 필터 보이기, 화면과 폰트에 대한 조절 등의 기능이 있다. 이는 [그림 31]와 같다.

[그림 31] Tools 메뉴


SQLite Expert의 왼쪽 화면에는 [그림 32]와 같이 SQLite의 데이터베이스와 그 안의 테이블에 대한 정보를 확인 할 수 있다. 그리고 화면의 가운데에는 기본적으로 Database, Extensions, Schema, SQL Builder, SQL, Data, Design, DDL, Scripting 창이 있다.

[그림 32] SQL 데이터베이스 테이블 구조


Database 창에는 SQL 데이터베이스에 대한 자세한 정보를 [그림 33]와 같이 화면에 출력해준다.

[그림 33] Database 창 화면


그리고 Schema 화면에는 데이터베이스의 스키마에 대한 정보를 [그림 34]와 같이 화면에 출력해준다.

[그림 34] Schema 창 화면


그리고 SQL Builder 창에는 [그림 35]사용자가 직접 테이블의 컬럼 값들을 선택하여 SQL쿼리문을 생성해주는 기능을 지원한다.

[그림 35] SQL Builder 창 화면


[그림 36] Data 창 화면

[그림 36]Data 창에서는 사용자가 직접 레코드에 대한 편집이 가능하다.

제한사항

SQL 쿼리를 기본적으로 알고 있지 않다면, SQLite Expert 사용이 불가능할 정도로 기능이 매우 복잡하다.


수사 활용 방안

SQLite Expert는 SQLite의 데이터베이스에 대해서 모든 조작이 가능하다. SQLite Expert는 단순히 데이터베이스를 보여주는 것뿐만 아니라 데이터베이스에 대해 자세하고 상세한 분석 지원을 해주고, 사용자가 필요하다면 파일을 생성하거나 백업 작업도 할 수도 있다. 그렇기 때문에 수사에서 SQLite 기반의 데이터베이스를 분석하거나 백업을 해야 할 경우에는, SQLite Expert는 매우 유용하게 사용 될 수 있다.