Write-up 쓴 날짜 : 2022-09-30 16:50
cconvert 파일은 악성파일로 탐지되어서인지 업로드가 안된다.
주제 - Continued reversing techniques in VB, use of decompilers and a basic anti-anti-trick
분석 1
cconvert 프로그램을 실행하면 위와 같이 나온다.
오른쪽 하단에 UNREGISTERED 문자열이 있다.
About 버튼을 누르면 위와 같이 뜨는데 하단에는 "Unregistered - Crack Me If You Can!" 문자열이 뜨고 있고, Register 버튼을 누르면 위와 같이 User Name과 Registration Code를 입력받는다.
임의의 값으로 slay/slay를 입력하면 위와 같이 "Sorry, Better Luck Next Time!" 문자열이 뜬다.
분석 2
이 프로그램은 VB로 만들어졌다.
디버거 내의 문자열 찾기 기능을 이용하면 위와 같이 문자열들이 나타난다.
문자열들 중 "Nice work! You're Now Registered!" 문자열을 참조하는 부분으로 간다.
409FCD 주소에서 해당 문자열을 참조하는데
409FBE 주소에서 조건 분기를 한다.
조건 분기를 할 때 조건은 409F98 주소에서 test 명령어에 의해 정해진다.
조건 분기가 이루어지면 "Sorry, Better Luck Next Time!" 문자열을 출력한다.
풀이 1
"Nice work! You're Now Registered!" 문자열을 띄울 것인지 "Sorry, Better Luck Next Time!" 문자열을 띄울 것인지 조건 분기가 있는 이 부분은 validate 버튼을 눌렀을 때 동작되는 함수 부분이다.
스크롤을 쭉 올려서 409C70 주소에 있는 함수 스택 프레임 프롤로그에 BP를 걸고 실행한다.
이름과 코드 입력 부분에 slay/slay를 입력하고 Validate를 누른다.
F8 키를 눌러 쭉 진행하다보면 위와 같이 409F76 주소에서 vbaVarTstEq 함수를 호출하는데 이 함수는 같은지 비교하는 함수이다.
이 함수의 인자로 esi 레지스터가 가리키는 함수의 반환값인 eax의 값이 넘어가는데 eax에는 19F1F4 주소가 담겨있고 스택에서 19F1F4 주소의 값을 확인하니 8이다.
그리고 스택에서 "REG-2300-CODE" 문자열이 보인다.
이어서 F8 키로 진행하다보면 409FBE 주소에서 조건 분기를 하는 것이 보이는데
왠지 "REG-2300-CODE"가 Registration Code일 것 같다.
REG-2300-CODE가 Registration Code 일 것이라는 건 일단 추측이므로 확실하게 하기 위해 409FBE 주소의 명령을 위와 같이 바꾸어 등록 성공 메세지가 뜨게 한다.
패치한 파일을 저장하고 패치된 파일을 실행한다.
패치된 파일을 실행 한 후 위와 같이 입력한 뒤 Validate를 누르면 Nice work 문자열이 뜬다.
그러면 위와 같이 재시작하라는 문구가 뜬다.
확인 버튼을 누르면 프로그램이 종료된다.
프로그램을 재실행하면 위와 같이 Register에 성공했다.
풀이 2
이전에 스택에 있는 데이터를 보고 REG-2300-CODE가 답일 것이라는 추측을 했었는데
위와 같이 입력해보면 등록 성공 메세지가 뜬다.
다른 이름에 같은 Registration Code를 입력해도 성공하는 것으로 보아 특정 암호 알고리즘 없이 Registration Code는 고정적인가 보다.
'전쟁 > lena tuts4you' 카테고리의 다른 글
[Lenatuts4you] 12. Teksched (0) | 2022.11.02 |
---|---|
[Lenatuts4you] 11. fjprodsetup (0) | 2022.11.02 |
[Lenatuts4you] 10-2. ReverseMe2 (0) | 2022.11.02 |
[Lenatuts4you] 10-1. Tut.ReverseMe1 (0) | 2022.11.02 |
[Lenatuts4you] 9. pc2am2p (0) | 2022.11.02 |