본문 바로가기

해킹 도구 리뷰

[NOOBHACK] 파일 시그니처 분석 툴(cityfoot)

오늘은 해킹 도구 헥사를 분석하는 툴을 소개하겠다

일단 코드는 이렇다(..?)

import sys

file=input("사진 경로")

IN=open(file, "rb")
offset = 0
hxer=""

signitures={"png":"89 50 4E 47 0D 0A 1A 0A",
"JPG":"FF D8 FF E0","jpg":"FF D8 FF E1",
"jpG":"FF D8 FF E8","BMP":"42 4D","GZ":"1F 8B 08",
"TAR.Z":"1F 9D 90","GIF":"47 49 46 38 37 61","Gif":"47 49 46 38 39 61",
"DB":"44 42 46 48","mp4":"00 00 00 18 66 74 79 70","mp3":"49 44 33",
"pdf":"25 50 44 46","PPT":"00 6E 1E F0","IMG":"00 01 00 08",
"PAK":"1A 0B","DAT":"1A 52 54 53 20 43 4F 4D",
"DAT1":"50 52 45 53 53 45 44 20",
"FDF":"25 50 44 46","DOCX":"50 4B 03 04 14 00 06 00",
"JAR":"50 4B 03 04 14 00 08 00"}

def search(extension,hxer,index):
    global signitures
    indexs=hxer.find(signitures[extension],index+1)
    if indexs != -1:
        print("파일 감지: ", extension,hxer[int(indexs/75)*75:(int(indexs/75)*75)+8])
        search(extension, hxer, indexs)
    else:
        return

while True: # 무한 루프
  buf16 = IN.read(16) 
  buf16Len = len(buf16) 
  if buf16Len == 0: break

  output = "%08X: " % offset
  hxer += "%08X: " % offset
  for i in range(buf16Len): 
    if (i == 8): output += " "
    output += "%02X " % buf16[i] 
    hxer+="%02X " % buf16[i]

  for i in range( ((16 - buf16Len) * 3) + 1 ): 
    output += " "
  if (buf16Len < 9):
    output += " " 

  for i in range(buf16Len): 
    if (int(buf16[i]) >= 0x20 and buf16[i] <= 0x7E): 
      output += chr(buf16[i])
      hxer+=chr(buf16[i])
    else: 
        output += "." 
        hxer+="."

  offset += 16 # 번지 값을 16 증가
  hxer+="\n"

if (offset == 0):
  print("%08X:  " % (offset))# 0바이트 파일일 경우 처리

IN.close() # 파일 닫기
print(hxer)
for i in signitures:
    search(i,hxer,0)

...?

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

맞다 사실 내가 만든 툴이다

전 까지만 해도 다 남이 만든걸 리뷰하고 사용방법을 소개했지만 이번엔 내가 만든 툴이다

포렌식을 공부 할 때 스테가노그라피 식으로 숨겨진 파일을 분석할 때에 HxD로 열고 하나하나 시그니처를 검색하기 상당히 귀찮고 시간을 많이 잡아 먹기 때문에 만든 툴이다

 

한 파일의 경로만 입력한다면 파일 안을 검색하여 검색된 시그니처를 전부 출력한다

상당히 편한 툴이니 사용해 보자

 

실행한다면 이런식으로 보여지게 된다