전체 글
-
lena 07강> Information Security/Reverse Engineering 2012. 3. 31. 23:21
lena 강의 07 @zrungee 이번에 열어볼 파일을 OllyDbg로 실행시킨다 제일먼저 맨 위의 'Unregistered'가 보인다. 다음으로, About > Register 에서 계정과 라이센스 넘버를 입력하고 등록해본다. 잘못된 계정이나 라이센스넘버를 입력했다고 뜬다. 이 창을 이용해서 라이센스 등록이 가능할 것 같다. OllyDbg창에서 Search for > All referenced text strings로 해당 문자열을 찾아보도록 하겠다. 다음과 같이 찾은 해당 스트링을 더블클릭 해준다. 1) "Thank you for registering!"으로 넘어가는 조건문인 JNZ가 보인다. 이부분을 무조건 점프할 수 있도록 JMP로 변경시켜준다. 또는 2) 에서 Register Now버튼을 누르..
-
lena 06강> Information Security/Reverse Engineering 2012. 3. 31. 21:33
lena 강의 06 @zrungee 이번 파일은 이다. OllyDbg로 열어서 실행시켜보자. 실행하자마자 이런창이 뜬다. 아니 이게뭐람.. OllyDbg에서 Search for > All referenced strings > Search for texts로 검색해본다. (이때 범위는 전체범위) 찾아서 CPU모드로 되돌아와보니 JE SHORT pcsurgeon~~~~ 이부분이 보인다. "Unable to start performance monitoring"이 뜨지 않도록 JE를 NOP처리해준다. 그랬더니 이번에는 이런창이 뜬다. 같은 방법으로 찾아가보니 해당 스트링을 찾을 수 있었다. 바로 윗줄에는 JNZ로 되어있고 ZF가 0이 아닐경우, 해당스트링이 있는 창이 뜨도록 되어있다. 그렇다면 주소값 '004B..
-
lena 05강> Information Security/Reverse Engineering 2012. 3. 31. 21:12
lena 강의 05 @zrungee 이번에 뜯어볼 파일이다. 프로그램이 어떻게 생겼나 보기 위해서 OllyDbg로 파일을 열어주고 실행시켜보자. 파일을 여는데의 회수는 10번으로 제한되어있다. 이 창이 뜨지 않도록 패치해주면 될 것 같다. 저 붉은 표시 안쪽에 있는게 Start 버튼이라고 한다.....(잘 보이지 않아서 체크해둠) 왼쪽은 Buy 란다 어쨌든, Start 버튼을 눌러 프로그램을 시작한다. 이러한 창이 뜨고, 이 프로그램을 종료시켜주면 이와 같이, 구매를 권유하는 팝업창이 뜬다. 이 팝업창도 뜨지 않도록 패치해주면 되겠다. 이제 OllyDbg로 돌아와서 첫번째로 나타났던 Trial Version의 창이 뜰때까지 차례차례 하나씩 F8로 실행시켜보겠다. 실행시키다가, 갑자기 반복문으로 인해 나갈..
-
lena 04강> Information Security/Reverse Engineering 2012. 3. 31. 11:31
lena 강의 04 @zrungee 이번에 뜯어볼 파일은 PixtopiaBook이라는 프로그램. OllyDbg로 열어서 실행하니 프로그램을 설치하라는 말이 나온다. 쭉~ 설치해주도록 한다 PixtopianBook의 정체가 나타났다. Unregistered 버전이니 registered버전으로 변경시켜주는 것이 목적인 듯 하다. 패치해주어야할 부분 첫번째 두번째 3번째 Add 가 최대 4명까지밖에 되지 않는다. (Unregistered version이라서) 4번째. 그룹추가가 3그룹까지만 가능하다. 마지막 5번째. Help>About 에 나타난 Unregisterd version. 여기에서 3번째와 4번째(인원 추가와 그룹 추가) 기능은 BackToUser모드를 이용해서 수정이 가능하다. 먼저 그룹추가 기능..
-
lena 03강> Information Security/Reverse Engineering 2012. 3. 25. 20:41
@zrungee 이번 강의는 PE구조의 이해를 통해 nag문제를 해결하는 과정이다. OllyDbg로 파일을 열어, 실행시켰다. 이렇게 총 3개의 창이 뜬다. 프로그램이 시작되기 전에 nag창이 떴고, 확인창을 누르니 메인 폼이 뜬다. 종료를 누르니 또다시 nag 창이 뜬다. 따라서, 처리해야할 부분은 실행할 때 1번과 종료할때 1번이다. 다시 OllyDbg로 돌아와서, F8로 Step Over해보겠다. GetModuleHandelA 함수로 얻어진 값을 비교한 후, EAX값과 0이 일치할 경우, Register.00401052 로 넘어가게 되는 구조. EAX값은 00400000이고, 0이 아니기 때문에 MessageBoxA가 발생한다. 이 부분을 PE구조의 EP주소를 수정하여 MessageBox가 실행되지..
-
lena 02강> Information Security/Reverse Engineering 2012. 3. 25. 01:27
lena 2번강의는 lena 강의 01과 같은 파일을 CPU레지스터와 어셈블리언어, 진수변환을 이용하여 패치하는 방식이다. 마찬가지로 OllyDbg를 이용하여 열어본당 CreatFileA는 새로운 파일을 생성한다는 의미의 API함수. 파일이름은 "Keyfile.dat"이다. 이 파일이 우리가 원하는 라이센스를 취득할 수 있도록 해주는 키 파일이 되는것으로 보인다. notepad를 이용하여 "Keyfile.dat" 을 생성해 본다. ReadFile은 파일을 읽어오는 API함수. F8을 눌러 진행한다. TEST : 두 피연산자 사이에 논리적인 AND연산을 수행하여 플래그 레지스터에 영향을 주지만 결과값은 저장하지 않는다. OF와 CF는 항상 0으로 세트되고 TEST 연산 결과값이 0이면 ZF가 1로, 0이 ..
-
lena 01강> Information Security/Reverse Engineering 2012. 3. 24. 03:29
lena (01) @zrungee OllyDbg를 이용하여 reverseMe파일을 뜯어보았다. 실행시켜보니 다음과 같은 창이 떴다. 평가기간이 지났으므로 새 라이선스를 취득하라는 창이다. 전체적으로 OllyDbg가 분석한 부분을 보니, 아까 실행시켰을 때 떴었던 문장이 보인다. 파일을 실행시켰을 때, 아무래도 API함수인 MessageBoxA라는 함수에 의해 이 문장이 실행될 수 있도록 되어있는 것으로 보인다. 다음으로, 맨 윗줄부터 F8을 눌러 한 줄씩 실행시켜보았다. 아까 보았던 문장이 있는 근처에서 JNZ명령어를 발견했다. zero플래그가 0일 때, ‘0040409A’로 Jump하는 조건이다. # JNZ : Zero 플래그가 0일 때 Jump 이 때, 창의 오른쪽에 해당하는 레지스터와 플래그 창을 ..