$ 리버싱 $/CodeEngn Basic RCE
-
CodeEngn Basic RCE 4$ 리버싱 $/CodeEngn Basic RCE 2019. 3. 27. 00:40
해당 문제는 디버거 프로그램을 탐지하는 기능을 가지고 잇다고 합니다. 디버거가 아닌 일반적으로 프로그램을 실행하면 디버거로 실행 한게아니기 때문에정상이라고 출력됩니다.그렇다면 디버거에서 올리디버거 에서 실행해보겠습니다. 이렇게 디버깅 당함 이라고 출력이 됩니다. 디버거를 탐지하는 함수를 한번 찾아보겠습니다.Search for -> all intermodular calls를 통해서 확인해 보면 다음과 같습니다. IsDebuggerPresent 라는 함수가 있네요 40105E으로 가겠습니다. EAX를 보면 디버거로 EAX이 1이면 다음과 같이 출력이 되는 것 같습니다. 그렇다면 EAX를 0이 되도록 바꿔 보면다음과 같이 바꿀수 있습니다. 그리고 실행을 해보면정상이 나오게 됩니다. IsDebuggerPrese..
-
CodeEngn Basic RCE 3$ 리버싱 $/CodeEngn Basic RCE 2019. 3. 27. 00:39
파일을 열었을때 MSVBVM50.DLL이 없다고 하는 문구가 뜨면https://support.microsoft.com/ko-kr/help/180071/file-msvbvm50-exe-installs-visual-basic-5-0-run-time-files 에 들어가서 다운로드 받으시면 됩니다. 다시 파일을 열어보면,확인 누르기Serial 값을 넣고 Registrieren을 누르면 되는 프로그램 같습니다. 일단 문자열을 비교하는 함수를 찾아야 하기 때문에 올리디버거를 이용해서 사용된 함수를 찾아보겠습니다. vbaStrCmp함수를 따라가 보겠습니다. 다음 문자열이 Serial값 인것 같습니다.
-
CodeEngn Basic RCE 1$ 리버싱 $/CodeEngn Basic RCE 2019. 3. 27. 00:35
프로그램을 실행하면 다음과 같은 문구가 나옵니다. CD-ROM이 아니라고 나옵니다. 올리디버거를 이용해서 확인해 보겠습니다. 좀 내려가 보면 40100E에서 첫 메시지 박스가 뜨고 나서 401024에서 CMP명령을 이용해서 EAX와 ESI가 비교를 합니다. 그리고 401028에서 CMP의 반환값을 가지고 참인지 거짓인지 판별후 JMP를 할지 안할지를 결정하는 문장입니다. 이때 Error로 가기 때문에 YEAH!!로 갈수 있도록 해야 하는데 방법이 총 4가지가 있습니다. #1. EAX와 ESI의 값을 동일하게 만들어서 성공으로 보내는 방법#2. JE조건문을 바꿔서 성공으로 보내는 방법#3. 실패화면을 성공으로 보내는 방법(문자열 변경)#4. C드라이브를 진짜 CD-ROM으로 인식하게 하는 방법 저는 가장 ..