2009-02-02 2 views
1

소스를 찾을 수없는 LOGIN DLL에서 사용하는 암호 파일의 형식을 해결하려고합니다. 관리 도구는 AFX로 작성되었으므로 암호를 인코딩하는 데 사용 된 알고리즘에 대한 단서를 제공하기를 바랍니다.AFX에서 이러한 암호를 코드화하는 데 사용 된 기능은 무엇입니까?

관리 도구를 사용하여 인코딩 된 두 개의 비밀번호가 있습니다. 첫 번째는 "dinosaur123456789"이며, 암호화의 진수는 여기 : 공룡 암호

생성 된 16 진수 값은

00H : 4A 6E 3C 34 29 32 2E (59) (51) (6B) 2B 4E 4F 20 47 75 ; Jn < 4) 2.YQk + NO Gu 10 시간 : 6A 33 09; j3. 20h : 64 69 6E 6F 73 61 75 72 31 32 33 34 35 36 37 38; dinosaur12345678 30h : 3930; 90

다른 암호 "gertcha"는 e8h로 인코딩됩니다. 4D 35 4C 46 53 5C 7E; GROUT M5LFS \ ~

일반적인 XOR을 찾으려고 시도했지만 아무 것도 찾지 못했습니다. 패스워드는 패스워드 파일의 길이가 같기 때문에 이것들은 다른 시대의 인 코드 가능 인코딩이라고 가정합니다. 나는 AFX 클래스가 이런 종류의 일에 사용될 수있는 수단을 가지고 있는지 궁금합니다.

누군가가 인코딩을 해결할 수 있다면 멋질 것입니다.

감사합니다, 매튜

[편집 :] 좋아, 첫째, 내가 넘어 새로운 솔루션 뒤에 과거를 떠날거야. 아직도 오래된 데이터를 사용하는 것이 좋을 것입니다. 실제로 누군가가 그것을 퍼즐로 풀기를 원한다면 나는 그것을 여전히 사용할 수 있기를 원합니다.

이동하려는 사용자에게는 두 개의 비밀번호가 있습니다.

모두 'a'- 19 a가있는 암호 : 47 7D 47 38 58 57 7C 73 59 2D 50; G} G8XW | sY-P 79 68 29 3E 44 52 31 6B 09; yh)> DR1k이다.

모두 'b'- 16b의 암호입니다. 48 7D 2C 71 78 67 4B 46 49 48 5F; H}, qxgKFIH_ 69 7D 39 79 5E 09; i} 9y ^.

이렇게 간단한 해결책이 없으며 몇 가지 피드백이 있다는 것을 확신합니다.

+0

내가 찾은 것을 알려주십시오. 나는 항상 이와 같은 것에 관심이있다. – LarryF

+0

나를 위해 "123"의 암호를 암호화하십시오. (따옴표 제외) ... 16a의 암호도보고 싶습니다. (또는 19 b 's ...) – LarryF

답변

1

글쎄, 나는 그것에 대한 빠른 암호 해독을했고, 지금까지 각 암호가 ascii 값 + 26로 시작하는 것으로 나타날 수 있다고 말할 수 있습니다. 다음 옥텟은 첫 번째 문자와 암호와 두 번째는 ASCII 값에 추가됩니다. 3d 편지, 나는 아직 알지 못했다. 어떤 종류의 피드백 암호 (feedback cipher)를 다루고 있다고 말하는 것이 안전하다고 생각합니다. 이것이 XOR이 아무 것도 나타나지 않는 이유입니다. 각 옥텟 값은 이전에 따라 달라질 것이라고 생각합니다.

나는 계속할 수 있지만,이 작업에는 많은 시간이 걸린다. 다행히도 이것은 당신에게 시작을 줄 수도 있고, 아니면 당신에게 몇 가지 아이디어를 줄 수도 있습니다.

+0

Shmoopty의 제안 및 일정한 문자 비밀번호에 대한 아이디어와 함께이 문제를 해결할 수 있어야한다고 생각합니다. – mj2008

0

출력은 입력과 길이가 같으므로 고정 키 암호처럼 보입니다. 사소한 xor 일 수도 있습니다.

나는 다음과 같은 암호를 테스트하는 것이 좋습니다 :

* AAAAAAAA 
* aaaaaaaa 
* BBBBBBBB 
* ABABABAB 
* BABABABA 
* AAAABBBB 
* BBBBAAAA 
* AAAAAAAAAAAAAAAA 
* AAAAAAAABBBBBBBB 
* BBBBBBBBAAAAAAAA 

이 어쩌면 우리가 역 DLL을 엔지니어링없이 암호를 깰 수 있도록해야합니다.

+0

패턴이 생겼는지보기 위해 두 숫자를 배타적으로 시도했지만 단순하지도 않고 볼 수도있는만큼 두 사람 사이에서 반복되지 않았습니다.). – mj2008

+0

함수를 리버스 엔지니어링해야합니다. 이것은 일종의 사소한 인코딩 함수처럼 보입니다. –

0

dll은 단일 문자 암호를 인코딩 할 수 있습니까? 아니면 심지어 제로 문자 암호?

가장 간단한 테스트 케이스부터 시작하려고합니다.

+0

아주 좋습니다. 실제로 다음 단계는 "aaaaaaaa"와 같은 암호를 인코딩하고 그 결과가 어떻게되는지 확인하는 것입니다. – mj2008

0

잘못된 각도에서이 문제가 발생했을 수 있습니다.나는 암호 해시가 어떻게 생성되는지 알아내는 가장 좋은 이유는 로그인 dll을 리버스 엔지니어링하는 것이라고 생각할 것이다.

이 작업에는 IDA Pro을 권하고 싶습니다. 도움을받을만한 가치가있는 것은 실행 가능 코드를 읽을 수있는 어셈블러로 바꾸는 것입니다. 돈을 지불하고 싶지 않다면 다른 디스어셈블러가 무료이지만 IDA Pro만큼 강력하지는 않습니다. 내가 권장하는 무료 정적 디스어셈블러/디버거는 SmidgeonSoft에서 PEBrowse가 될 것이다. 이는 실행중인 시스템을 빠르게 파고 들어보고 디버깅 심볼로드에 대한 PDB 지원이 좋다.

+0

감사합니다 - DLL의 나이가 계획이 간단 할 것이라고 생각하지만, 나는 그것을 체크 할 것입니다. 16 비트 모드에서 시작되었지만 32 비트 호환 버전도 구축되었다는 점이 가치가 있습니다. – mj2008