본문 바로가기
IT

스터디그룹 프로젝트 원하던 기능까지 구현 완료

by %? 2022. 3. 2.

바이러스 토탈을 통한 텍스트, 음원, exe 파일의 SHA256 값(비교용) 및 API 사용 현황

 

각 파일에 대한 경로 및 SHA256 계산, DB 생성 및 DB에 SHA256 값 입력


[코드 결과]

DB 테이블이 성공적으로 생성되었습니다
insert-> D:\Develop\ICT\TEST

search low? => 1.yes 2.no 1
.
..
Dir ->D:\Develop\ICT\TEST\1
.
..

File->D:\Develop\ICT\TEST\1\TEST1.txt

e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

db파일에 sha256값을 기록하였습니다.

-------------------------------------------------

Dir ->D:\Develop\ICT\TEST\2
.
..

File->D:\Develop\ICT\TEST\2\TEST2.txt

d6ec6898de87ddac6e5b3611708a7aa1c2d298293349cc1a6c299a1db7149d38

db파일에 sha256값을 기록하였습니다.

-------------------------------------------------

Dir ->D:\Develop\ICT\TEST\3
.
..

File->D:\Develop\ICT\TEST\3\TEST3.txt

15e2b0d3c33891ebb0f1ef609ec419420c20e320ce94c65fbc8c3312448eb225

db파일에 sha256값을 기록하였습니다.

-------------------------------------------------

Dir ->D:\Develop\ICT\TEST\4
.
..

File->D:\Develop\ICT\TEST\4\TEST4.txt

e034b2e92520411b39988635462c99276d1be02e88037f0de93e9f16cb7f7a6f

db파일에 sha256값을 기록하였습니다.

-------------------------------------------------

Dir ->D:\Develop\ICT\TEST\5
.
..

File->D:\Develop\ICT\TEST\5\TEST5.txt

c87e4f4e0cedca5a950d9af7e2d39d52194ba51674ee7b15bff247189a316e17

db파일에 sha256값을 기록하였습니다.

-------------------------------------------------


File->D:\Develop\ICT\TEST\6.txt

185f8db32271fe25f561a6fc938b2e264306ec304eda518007d1764826381969

db파일에 sha256값을 기록하였습니다.

-------------------------------------------------


File->D:\Develop\ICT\TEST\inst.mp3

fbde63eea9d10f4838d28332438c5ee6493c35ad34c84167ace19f85c9d4519b

db파일에 sha256값을 기록하였습니다.

-------------------------------------------------


File->D:\Develop\ICT\TEST\notepad++.exe

c706add5639352fe39622458b89640844575e5cec2ff0c5609d96df78ae3310b

db파일에 sha256값을 기록하였습니다.

-------------------------------------------------


File->D:\Develop\ICT\TEST\pixel6pro.jpg

47e08e63d0703f71a09b9b796e16c3223361894968c7b5e4da237d753aad4892

db파일에 sha256값을 기록하였습니다.

-------------------------------------------------


File->D:\Develop\ICT\TEST\TEST.html

18f351a095099107b9598a6f20efdf51d80a342b2985c4de7c1d5899562a0d54

db파일에 sha256값을 기록하였습니다.

-------------------------------------------------


File->D:\Develop\ICT\TEST\vtapi2.py

41bf2433096bbd1c6bf975546cac3454ad1a843b2ced138735caa09b3c5fbc7a

db파일에 sha256값을 기록하였습니다.

-------------------------------------------------


========== Virus Total Loading ==========
=========================================
sha256 : e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
=========================================
ViRobot             : None
AhnLab-V3           : None
ALYac               : None

========== Virus Total Loading ==========
=========================================
sha256 : d6ec6898de87ddac6e5b3611708a7aa1c2d298293349cc1a6c299a1db7149d38
=========================================
nProtect            : None
ViRobot             : None
AhnLab-V3           : None
ALYac               : None

========== Virus Total Loading ==========
=========================================
sha256 : 15e2b0d3c33891ebb0f1ef609ec419420c20e320ce94c65fbc8c3312448eb225
=========================================
ALYac               : None
ViRobot             : None
AhnLab-V3           : None

========== Virus Total Loading ==========
=========================================
!!!!!!!!!! Sorry, No Match !!!!!!!!!!
=========================================

========== Virus Total Loading ==========
=========================================
!!!!!!!!!! Sorry, No Match !!!!!!!!!!
=========================================

========== Virus Total Loading ==========
=========================================
sha256 : 185f8db32271fe25f561a6fc938b2e264306ec304eda518007d1764826381969
=========================================
ALYac               : None
ViRobot             : None
AhnLab-V3           : None

========== Virus Total Loading ==========
=========================================
sha256 : fbde63eea9d10f4838d28332438c5ee6493c35ad34c84167ace19f85c9d4519b
=========================================
ViRobot             : None
AhnLab-V3           : None
ALYac               : None

========== Virus Total Loading ==========
=========================================
sha256 : c706add5639352fe39622458b89640844575e5cec2ff0c5609d96df78ae3310b
=========================================
ALYac               : None
ViRobot             : None
AhnLab-V3           : None

========== Virus Total Loading ==========
=========================================
sha256 : 47e08e63d0703f71a09b9b796e16c3223361894968c7b5e4da237d753aad4892
=========================================
ALYac               : None
ViRobot             : None
AhnLab-V3           : None

========== Virus Total Loading ==========
=========================================
sha256 : 18f351a095099107b9598a6f20efdf51d80a342b2985c4de7c1d5899562a0d54
=========================================
ALYac               : None
ViRobot             : None
AhnLab-V3           : None

========== Virus Total Loading ==========
=========================================
sha256 : 41bf2433096bbd1c6bf975546cac3454ad1a843b2ced138735caa09b3c5fbc7a
=========================================
ALYac               : None
ViRobot             : None
AhnLab-V3           : None
========== clear ==========

계속하려면 아무 키나 누르십시오 . . .

D:\Develop\ICT\Source\Project\x64\Debug\Project.exe(프로세스 16736개)이(가) 종료되었습니다(코드: 0개).
디버깅이 중지될 때 콘솔을 자동으로 닫으려면 [도구] -> [옵션] -> [디버깅] > [디버깅이 중지되면 자동으로 콘솔 닫기]를 사용하도록 설정합니다.
이 창을 닫으려면 아무 키나 누르세요...


드디어 원하는 기능까지 모두 구현을 했네요...

구현한 기능은 다음과 같습니다!

 

1. 원하는 경로 입력시 해당 경로에 존재하는 파일 목록 열거

2. 각 파일에 대한 올바른 SHA256 값 계산

3. SHA256 값 넣을 DB 및 DB 폴더 생성

4. 계산한 SHA256 값 DB에 입력

5. Virustotal API을 이용하여 SHA256 값 검사 및 결과 출력


원래 사용하려고 했었으나 끝내 못 쓴 기능들입니다..

 

1. 메모리 매핑 파일

스터디그룹 배울 때 멘토님께서 과제로 내주시기도 했었고, 제 담당 부분이여서 어떻게든 해보려고 했는데 텍스트 기반 파일만 SHA256 값이 제대로 계산될 뿐더러 학교 다닐 때 교수님들도 모르는 쪽이여서 물어보지도 못 했네요..

 

2. txt 파일이 아닌 db 파일을 통한 파이썬 연결

db 파일에 대한 속성 때문인지 연결이 안 돼서 그냥 텍스트 파일을 마지막에 삭제하는 방향으로 돌렸네요.

 

3. SHA256 값 계산 속도 향상

바이러스토탈 API가 개인 API여서.. 분당 4개까지 제한이 있어서 파이썬에서 time.sleep(20)이 최대인듯 합니다.


원하는 기능은 다 구현했지만 아직 확인해야할 부분이 조금 남기도 했고 프로젝트 목표에는 한참 못 미쳐서 계속 붙잡을 듯 싶네요..!! 그리고 무엇보다 하고 있으면 재밌어서 시간이 잘 가요 XD

예상했던 기능들로 구현한 것은 아니지만 성공했다는 게 뿌듯하네요 :)