Lena Reversing tutorial 10_2
이번엔 CConvert 프로그램을 가지고 진행한다.
똑같이 vb-decompiler로 열어준다.
Regieter 하는 창으로 간다.
Validate 버튼을 눌러보면 이름이 cmdValidate로 되어있다.
우측에 cmdValidate_Click을 찾아보면 주소가 409C70이다.
Ollydbg로 열어준다.
찾은 주소에 breakpoint를 걸고 진행시켰다.
validate 버튼을 누르면 break가 걸린다.
register 하는 창에서 User name은 abcdefg, code는 1234로 등록하였다.
F8을 눌러가며 진행해준다.
가장먼저 vbaLenBstr 함수가 나온다.
반환값으로 EAX에는 7이 입력된다.
계속 진행하면 rtcMidCharVar 함수가 나온다.
이 함수를 지나게 되면 문자열이 잘려서 abcde 까지만 나오는 것을 볼 수 있다.
이후에 아스키값인 97이 보이게 되고
이는 a의 아스키코드 값이다.
진행하면 vbaVarMul 함수도 있다. 이는 어떤 값을 곱하는 함수로 보인다.
계속 내리면 다음과 같이 문자열을 입력값으로 vbaVarCat 함수를 호출하는 것을 볼 수 있다.
vbaVarCat 함수는 문자열을 합치는 함수로 함수의 리턴값인 EAX의 값을 살펴본다.
EAX의 값은 0012F474로 나온다. 해당 메모리를 살피기 위해 아래 메모리 영역에서 이동한다.
이동했지만 특별한 것이 보이지 않는다.
Visual basic에서의 string 구조는 문자열 주소 앞에 8byte가 붙어있다.
따라서 8byte 뒤인 74 70 15 00 을 살펴본다. 이대로 읽으면 안되고 00157074 주소로 이동한다.
이동하면 다음과 같이 나온다.
REG- 뒤에 숫자가 붙은 것을 볼 수 있다.
다시 진행을 한다.
다시 vbaValCat 함수가 나온다.
다시 함수 진행 후 EAX를 확인한다.
이번에는 001570AC 메모리를 확인한다.
뒤에 -CODE 문자열도 붙은 것이 확인되었다.
이렇게 합쳐진 문자열이 시리얼 코드로 보인다.
앞서 나온 vbaValMul 함수는 첫번째 글자의 아스키 값과 20을 곱하는 것으로 보인다.
이렇게 나온 값을 REG- 와 -CODE 사이에 넣어 코드를 완성시키는 것으로 판단된다.
성공적으로 register 되었다.
끝.
'Security&Hacking > 리버싱' 카테고리의 다른 글
Lena Reversing - tutorial 11 (0) | 2020.03.05 |
---|---|
Lena Reversing - tutorial 10_3 (0) | 2020.03.04 |
Lena Reversing - tutorial 10_1 (0) | 2020.03.04 |
Lena Reversing - tutorial 09 (0) | 2020.03.04 |
Lena Reversing - tutorial 08 (0) | 2020.03.04 |