2011-03-05 2 views
3

나는 이전의 Paradox database (나는 그것을 Access 2007로 변환 할 수있다)에 200,000 개 이상의 레코드가있다. 이 데이터베이스에는 두 개의 열이 있습니다. 첫 번째 열은 "Word"이고 두 번째 열은 "Mean"입니다. 사전 데이터베이스이고 클라이언트가이 이전 데이터베이스를 ASP.NET 및 SQL로 변환하려고합니다.암호화 된 값의 암호를 해독 하시겠습니까?

그러나 우리는 유니 코드 형식의 "평균"열을 암호화하거나 인코딩하는 데 사용 된 키 또는 방법을 알지 못합니다. 소프트웨어 자체는 Delphi 7로 작성되었으며 소스 코드가 없습니다. 내 클라이언트는 데이터베이스에 로그인하기위한 자격 증명 만 알고 있습니다. 문제는 Mean 열을 디코딩하는 것입니다.

내가 가진 것은 컴파일 된 Windows 응용 프로그램과 Paradox 데이터베이스입니다. 이 소프트웨어는 각 "Word"에 대한 "평균"열을 디코딩하여 메서드 및/또는 키가 자체 컴파일 된 코드 (.exe) 또는 해당 디렉터리의 파일 중 하나에 있도록합니다.

예를 들어, 우리는 다음 행의 "양조 학" 정확히 의미 알고있다 "مبحث عمل تخمیر در شیمی علمی, تخمیر شناسی"응용 프로그램이 그런 식으로 변환하기 때문이다. 여기에 기록이 내가 Access에서 데이터베이스를 열 때 모습입니다 : 따라서

Word  Mean 
Zymurgy 5OBnGguKPdDAd7L2lnvd9Lnf1mdd2zDBQRxngsCuirK5h91sVmy0kpRcue/+ql9ORmP99Mn/QZ4= 

우리는 평균 열의 값을 변환하는 방법을 발견하려는에 "مبحث عمل تخمیر در شیمی علمی, تخمیر شناسی" . 위의 행에서 "평균"열 값이 Base64 문자열 형식으로 인코딩되어 있지만 Base64 문자열을 디코딩해도 예상되는 텍스트가 나타나지 않는다고 생각합니다.

win app 디렉토리의 파일 확장자는 dll, CCC, DAT, exe (기본 앱 파일 제외), SYS, FAM, MB, PX, TV, VAL입니다.

모든 종류의 도움을 받으실 수 있습니다. 여기

두 가지 더 예이며, 시작과 끝 부분에 큰 따옴표를 기억 문자열의 일부가 아닌 :

1- in unicode the result is: "ᩧ訋퀽矀箖�柖�섰᱁艧껀늊螹泝汖銴岔꫾也捆￉鹁" 
2- in utf32 the result is: "��������������" 
3- in utf7 the result is: "äàg\v=ÐÀw²ö{Ýô¹ßÖg]Û0ÁAgÀ®²¹ÝlVl´\\¹ïþª_NFcýôÉÿA" 
4- in utf8 the result is: "��g\v�=��w���{����g]�0�Ag��������lVl���\\����_NFc����A�" 
5- in 1256 the result is: "نàg\vٹ=ذہw²ِ–{فô¹كضg]غ0ءAg‚ہ®ٹ²¹‡فlVl´’”\\¹ï‏ھ_NFc‎ôةےA" 

아직 내가 발견 : 여기
word: "abdominal" 
coded value: "vwtj0bmj7jdF9SS8sbrIalBoKMDvTbpraFgG4gP/G9GLx5iU/E98rQ==" 
translation in Farsi: "شکمی, بطنی, وریدهای شکمی, ماهیان بطنی" 
word: "cart" 
coded value: "KHoCkDsIndb6OKjxVxsh+Ti+iA/ZqP9sz28e4/cQzMyLI+ToPbiLOaECWQ8XKXTz" 
translation in Farsi: "ارابه, گاری, دوچرخه, چرخ, با گاری بردن" 

다른 인코딩의 결과입니다 역설 (paradox) 데이터베이스 시스템은 키 관리와 키가 "복합 키"일 때 매우 복잡합니다. 그래서 그것이 문제가되는 이유입니다. 그래서 그것이 버려진 이유입니다!

업데이트 : AutoIt v3을 사용하여 자동화를 시도하고 있습니다. 이해할 수있는 암호 해독 프로세스가 1 ~ 2 일 내에 완료 될 수 없기 때문에 자동화를 수행하려고합니다. 지금은 텍스트/글꼴과 관련된 다른 문제가 있습니다. 번역 된 텍스트를 메모장에 복사 할 때 메모장의 글꼴을 번역 소프트웨어의 글꼴로 변경하지 않으면 인식 할 수없는 텍스트로 바뀝니다. 내가 페르시아의 메모장에 뭔가를 입력하면 어떤 글꼴을 선택했는지에 관계없이 정확하게 표시됩니다. 더 흥미로운 것은 MS 오피스 Word와 같은 다른 프로그램에 텍스트를 복사 할 때 어떤 글꼴을 선택하든 정확하게 표시된다는 것입니다.

어떻게이 문제를 해결할 수 있습니까?

+0

"win app"에서 "zymurgy"라는 단어의 의미를 어떻게 알게 되었습니까? – muratgu

+1

이것은 좋은 도전처럼 보입니다. 하지만 우리는 더 많은 정보가 필요합니다. 16 진수의 "Mean"문자열의 base-64 디코딩은 무엇입니까? 어떤 유니 코드 문자를 기대합니까? (또한 암호화/복호화가 아니라 인코딩/디코딩입니다.) – TonyK

+0

시험해보십시오. http://arcanecode.com/2007/03/21/encoding-strings-to-base64-in-c/ 다음 문자열을 저장하십시오. 유니 코드 텍스트 파일에 저장하고 결과를 살펴보십시오. –

답변

2

ollydbg/softice와 같은 디버거를 사용하십시오. 평균이 디코딩/인코딩 된 장소를 찾은 다음 지시 사항을 단계별로 실행하고 모든 레지스터를 검사하여 수행 된 작업을 찾습니다. 나는 너무 많은 시간을 보냈다. 이 자료를 해독 할 수있는 응용 프로그램을 가지고 있으므로 시작하는 데 도움이됩니다. 또한 참조 단어가 있습니다. 그게 당신이 필요한 전부입니다.

또한 고려하십시오. 유니 코드는 리틀 또는 빅 엔디 언일 수 있습니다. 따라서 바이트를 바꿔보십시오. 일부 단어는 1 바이트로, 일부는 2 바이트로 저장되기 때문에 UTF-8은 고통 스러울 수 있습니다.

또한 페르시아어에서 거의 동일한 단어를 가져 와서 출력물을 비교해보십시오. 이는 사용자 정의 코드 페이지가있는 경우 재구성 될 수 있습니다.

3

이 상황에서 필자는 기존 프로그램을 통해 모든 데이터를 끌어 오기위한 스크립트/프로그램 작성에 대해 생각할 것입니다.

앱에 키 누르기를 보내면 각 값을 차례로 선택하고 복사 할 수 있습니다.

실행하는 데 약간의 시간이 걸릴 수 있지만 밤새도록 두어도됩니다 (데이터베이스의 크기는 얼마나됩니까?). 한 번만 실행하면됩니다.

이 응용 프로그램을 본 적이 없기 때문에 이것이 얼마나 쉬운 지 확신 할 수 없습니다.

+0

동의합니다. 데이터베이스가 너무 크지 않으면 가장 간단한 솔루션 일 수 있습니다. 데이터를 긁어서 새 UTF-8 형식의 유니 코드 (UTF16이 아마도 가장 좋음)로 새 데이터베이스/테이블에 쓰십시오. 아무것도 잘 모르겠다. – ollb

관련 문제