2013-04-26 2 views
1

나는 완전히 뒤죽박죽입니다. 필자는 오래된 DOS 기반 프로그램을 사용하여 데이터를 입력하고 검색하는 회사의 부업을 수행합니다. 이 소프트웨어는 기존의 소프트웨어이며, 이후 QuickBooks 또는 Outlook으로 이동하여 모든 주소 또는 청구 관련 요구 사항을 해결합니다. 그러나 몇 가지 변경 사항이 있었으며,이 데이터베이스와 함께 정기적으로 작업합니다. 이 소프트웨어가 설치된 컴퓨터는 XP를 실행 중이므로 (사무실에있는 다른 컴퓨터에서는 실행할 수 없습니다) 컴퓨터가 필연적으로 폭발 할 때 소프트웨어를 단계적으로 보려고합니다.알 수없는 마스터리스트 .dat 파일. 정보 검색 중 문제가 발생했습니다.

TLDR; 저는 오래된 .csv 파일 (대략 2 년)을 가지고 있습니다.이 파일에는 좋은 정보가 있지만 2 년이 지났습니다. 나는이 레거시 소프트웨어와 같은 폴더에있는 ml.dat (나는 masterlist.dat라고 가정 함) 파일을 가지고있다. 나는 메모장을 열고 엑셀과 같은 정보를 제시하고있다 :

S;Û).;PÃS;*p(â'a,µ, 

텍스트의 위의 덩어리는 메모장에서 훨씬 덜 인식 또는 Excel된다. 인식 할 수없는 사각형이 훨씬 더 많습니다. 그러나 일부 정보는 실제로 읽을 수 있습니다. 예를 들어 가끔 마을 이름이나 사람의 이름을 읽을 수는 있지만 누락 된 부분이 많기 때문에 모든 정보를 얻을 수는 없습니다. 아마도 데이터가 유니 코드 또는 다른 형식이 아닌 것입니까? 나는 모른다. 어떤 제안? 나는 궁극적으로이 정보를 가지고 그것을 빠른 책이나 전망으로 던지려고 노력하고있다.

도와주세요! 감사합니다.

편집 : .dat 파일은 일반적으로 일반 텍스트이므로 암호화 될 수 있습니다. 이견있는 사람?

답변

0

.DAT 파일은 일반적으로 응용 프로그램 데이터 일뿐입니다. 읽을 수있는 텍스트가 있기 때문에이 파일이 암호화되지는 않습니다. 대신 다른 내용의 바이트에 대한 ASCII 표현이 표시됩니다. 단일 바이트 값을 가정 http://www.asciitable.com/는, 숫자 77는 M.

귀하의 옵션으로 어딘가에 파일에 나타날 수 있습니다 : 일부 유틸리티

  1. 검색로드하고 해당 응용 프로그램의 DAT 파일을 변환 할 수 있습니다.
  2. 이 응용 프로그램을 다른 상자 또는 자유 소프트웨어 또는 뭔가를 실행하는 가상 컴퓨터에서 실행할 수 있도록 적절한 dos 에뮬레이터를 설정하십시오.
  3. 파일 형식을 파악한 다음 데이터를 번역 할 프로그램을 작성하십시오.

# 3의 경우 디버거를 응용 프로그램에 연결하여 파일을 읽고 쓰는 방법을 추적 할 수 있습니다. 또는 레코드 경계를 알아 내려고 시도 할 수 있습니다 (모든 레코드가 같은 크기 인 경우 사물이 좀 더 쉽게됩니다.) 그런 다음 알려진 값을 사용하여 필드 경계를 찾으려고 할 수 있습니다. 소스 코드를 찾을 수 있거나 (또는 ​​역 컴파일하면) 파일 형식에 대한 통찰력을 얻을 수 있습니다.

1이 최선의 방법이며, # 2는 더 이상 원래 기계를 필요로하지 않도록 시간을 벌어줍니다. # 3은 아마도 아웃소싱 할 대상이 될 것입니다. 원본 또는 파일 형식을 찾을 수 있다면


, 당신은 파일에 덤프 된 어떤 데이터 구조를 다시하고 그것으로 파일을 읽을.원래 응용 프로그램이 다음 파일에서 첫 번째 레코드를 읽을 같은 코드 뭔가가있을 것입니다 C로 작성되었다 가정

for %f in (*.exe) do find "ml.dat" %f -c 

:

당신이 뭔가를 할 수있는, EXE 그것을 여는 찾으려면

struct SecretData 
{ 
    int first; 
    double money; 
    char city[10]; 
}; 

FILE* input; 

struct SecretData secretdata; 
input = fopen("ml.dat", "rb"); 
fread(&data, sizeof(data), 1, input); 
fclose(input); 

(파일은 fwrite로 작성되었을 것입니다.) 기본적으로 파일을 읽을 수 있으려면 SecretData 구조의 내부 구조를 알아야합니다.

파일을 만드는 데 사용 된 별도의 유틸리티가 없기 때문에 데이터를 덤프하고 파일에서 다시 읽는 것이 대부분의 언어에서 비교적 쉽습니다.

+0

저는 실제로 데이터를 읽는 방법을 알아 내려고 시도하기 위해 실제로 지난 3 시간 동안 # 3을 시도하는 데 더 많은 시간을 보냈습니다. 몇 가지 디버거/디 컴파일러 (OllyDbg 및 Dede)를 다운로드했지만 주 파일을 열 수 없었습니다. 나는 그 폴더에있는 다른 임의의 .exe 파일을 열어서 내가 무엇이 생각해 내는지 살펴볼 것입니다. # 1의 경우 온라인으로 유틸리티를 검색하거나이 작업을 수행 할 원본 소스의 유틸리티를 찾으려고합니까? 응답 해 주셔서 감사합니다. – user1757359

+0

나는이 레거시 소프트웨어가 맞춤형이라고 언급 할 가치가 있다고 가정하기 때문에 # 1이 옵션인지는 알 수 없습니다. – user1757359

관련 문제