반응형

Security&Hacking 103

Lena Reversing - tutorial 20_3

Lena Reversing tutorial 20_3 20단계 세번째 프로그램이다. 이번 프로그램은 UnPackMe_eXPressor1.3.0.1pk 이다. 이번 프로그램은 이전 프로그램과 같은 방법으로 ESP를 이용하여 언팩을 진행한다. Ollydbg에서 열어준다. 패킹이 되지 않은 것으로 보이지만 패킹이 된 프로그램이다. PUSH EBP를 하면 ESP 값이 12FFC0이 된다. 이전 프로그램과 같은 방법으로 hw bp를 걸어준다. 이제 F9를 눌러 실행해주면 오류창이 하나 뜬다. 아직 breakpoint에 걸리지 않았기 때문에 무시하고 진행한다. break 가 걸린다. 004271B0로 점프하고 있다. 영역도 이 프로그램의 .text 영역이며 명령어들도 익숙한 명령어들이 보인다. OEP라고 추정할 수 ..

Lena Reversing - tutorial 20_2

Lena Reversing tutorial 20_2 20단계 두번째 프로그램이다. 이번에는 UnPackMe_EZIP1.0 프로그램을 언팩 해보도록 한다. 이번 프로그램에서는 ESP를 이용해서 언팩을 하는 방법을 사용하도록 한다. Ollydbg로 열어준다. 바로 JMP가 나온다. F8을 눌러 진행해준다. 함수 프롤로그가 나온다. PUSH EBP를 해주고 나면 ESP는 12FFC0가 된다. ESP는 Stack pointer 레지스터이다. 함수가 끝날 때 까지 해당 주소의 stack은 변하지 않고 끝나기 직전에 POP을 하게 된다. 이 값에 hardware breakpoint를 걸어준다. 이제 F9를 눌러 진행해준다. EAX의 값으로 분기하고 있다. 004271B0로 memory map에서 확인하면 이 프로그..

Lena Reversing - tutorial 20_1

Lena Reversing tutorial 20_1 이번 단계가 끝나면 절반이 끝나게 된다 힘을 내자! 이번 단계에서는 패커와 프로텍터에 대해서 배우게 된다. 패커와 프로텍터에 대해서는 시간이 되면 따로 글을 올려야겠다. 파일의 수는 어마어마하게 많이 준비되어있다. 총 8개이며 하나씩 나누어 진행하도록 하겠다. 가장 먼저 볼 프로그램은 UnPackMe_CrypKeySDK5.7 이다. Ollydbg로 열어준다. 패킹이 되었기 때문에 오류 창이 뜨지만 무시하고 진행해준다. 시작하는 곳을 보면 일반적인 Entry point가 아니다. F8을 눌러 진행해주면 RETN 전에 분기가 일어난다. 분기한 위치는 다음과 같다. 코드를 보았을 때는 아무것도 없다고 생각할 수 있다. 주소 값을 확인하고 memory map을..

Lena Reversing - tutorial 19_2

Lena Reversing tutorial 19_2 이번에는 Debugger Detected 프로그램을 분석하도록 한다. 프로그램 이름에도 나와있듯이 Debugger가 실행중인지를 판단하는 내용이 들어 있는 것으로 보인다. 프로그램을 실행해준다. 초기 창이다. Verify 버튼을 누른다. Debugger가 탐지되지 않았다고 나온다. 이번엔 Ollydbg로 실행해준다. debugger가 탐지 되었다고 나온다. 분석을 진행해보자. Search for -> All referenced text strings를 들어가준다. 탐지되었다는 문자열이 세개가 보인다. 모두 breakpoint를 걸어주고 실행해준다. 살펴보면 어떤 루틴 안으로 들어와있다. 가장 위에는 CreateToolhelp32Snapshot 함수가 보..

Lena Reversing - tutorial 19_1

Lena Reversing tutorial 19_1 이번 단계에서는 디버거를 탐지하고 안티 디버깅 기법이 들어있는 프로그램을 분석한다. 세개의 프로그램이 존재하지만 antisniff 프로그램은 디버거에서 오류가 나야 하는것이 안나서 두개만 나누어 진행한다. 첫번째 프로그램은 ReverseMe.A 프로그램이다. 프로그램을 실행하면 다음과 같이 나온다. 어디서 많이 본 것 같은 창이다. keyfile 을 확인하여 창을 띄우는 방식으로 1, 2 단계를 참고하면 좋다. Ollydbg로 열어서 실행을 해준다. ?? 그냥 실행한 것과 다른 결과가 나온다. Ollydbg에서 한줄씩 분석하도록 한다. CreateFileA 함수를 통해 파일이 있는지 확인하고 파일이 있다면 분기하고 있다. 아래쪽에는 기간이 지났으며 라이..

Lena Reversing - tutorial 18

Lena Reversing tutorial 18 이번 단계에서는 분석을 방해하는 속임수 코드들을 파악하고 자기 변조 코드에 대해 이해 하는 것이 목적이다. 프로그램을 실행하면 다음과 같이 나온다. 가장 먼저 나오는 창이다. 2byte 패치를 통해 nag 창을 없애라고 나온다. 프로그램은 이전과 비슷한 문구를 포함하고 있고 종료시키면 그대로 종료가 된다. Ollydbg로 열어준다. 조금만 내리면 nag 창에 있는 문구를 포함한 messagebox 함수가 보인다. messagebox에 breakpoint를 걸고 실행을 해본다. 예상과 다르게 breakpoint에 걸리지 않고 nag창이 실행이 된다. 이 코드들은 실제로 동작하지 않고 분석을 방해할 목적으로 들어있는 코드로 보인다. 다시 실행하여 F8을 눌러가..

Lena Revesing - tutorial 17

Lena Reversing tutorial 17 이번 단계는 기본적인 keygen 에 대해 알아보는 단계이다. 프로그램을 실행해준다. About 버튼을 누르면 다음과 같이 나온다. 아무 값이나 넣고 Check 버튼을 누르면 다음과 같이 나온다. 올바른 key 값을 찾아주도록 한다. Ollydbg로 열어준다. 사용자의 입력값을 받고 있기 때문에 GetDlgItemTextA, GetWindowTextA 의 함수가 쓰일것으로 예상된다. 이 함수에 breakpoint를 걸고 확인해준다. 여기서 commandbar 플러그인을 사용해 주도록 한다. 하단 Commandbar에 다음과 같이 입력하고 breakpoint를 걸어준다. breakpoint를 확인해보면 다음과 같이 걸린 것을 확인할 수 있다. F9를 눌러 실..

Lena Reversing - tutorial 16_2

Lena Reversing tutorial 16_2 16단계의 두번째 파일이다. 프로그램을 실행해보면 다음과 같이 나온다. 30일만 이용 가능하다는 창이 가장 먼저 반긴다. 프로그램이 실행되고 Help -> About GIF Movie Gear를 누르면 다음과 같이 나온다. 역시 30일 남았다는 문구가 보인다. 종료버튼을 눌러도 똑같은 창이 뜬다. 다른점은 Order 버튼만 있다가 3초정도 후 OK 버튼이 생성된다. Ollydbg로 열어준다. F9를 눌러 프로그램을 실행시키고 종료시 나오는 nag 창이 뜨도록 종료해준다. nag 창이 뜨면 F12를 눌러 일시정지 시키고 상단의 K 버튼을 눌러 Call stack을 살펴본다. DialogBoxParamA 함수를 실행하는 곳이 nag 창을 실행하는 곳으로 보..

Lena Reversing - tutorial 16_1

Lena Reversing tutorial 16_1 이번 단계는 두개의 프로그램이 있다 하나씩 나누어 진행하도록 한다. 먼저 진행할 프로그램은 Urlegal 이라는 프로그램이다. 실행하보면 다음과 같이 나온다. 프로그램 자체는 특별한게 보이지 않는다. 종료시키면 다음과 같은 nag 창이 뜬다. 그냥 종료하기 위해 X버튼을 누르면 Register와 관련된 글이 뜨고 종료되지 않는다. I Will Register Soon 버튼을 눌러야지만 종료가 된다. 프로그램 상단의 File -> Register 버튼을 누르면 다음과 같이 나온다. 아무값이나 넣고 Validate My Codes 버튼을 누르면 다음과 같이 오류창이 뜬다. 종료시 나오는 창을 없애고 File -> Register 버튼을 비활성화 시키도록 한..

Lena Reversing - tutorial 15

Lena Reversing tutorial 15 이번 단계 역시 이전 단계와 마찬가지로 인라인패치를 이용하는 단계이다. 프로그램을 실행해보면 다음과 같이 나온다. starting nag 창이며 이것을 지우라고 하고 있다. 실행된 프로그램이다. 동작은 register 와 종료 밖에 없다. 종료하면 closing nag이며 이것도 지우라고 나온다. 프로그램에서 register 버튼을 누르면 아무것도 나오지 않지만 종료했을때 closing nag가 나오지 않는다. 흐름을 분석하며 이 두 nag 창이 나오지 않도록 바꾸어준다. Ollydbg로 열어준다. F9를 눌러 실행시키고 첫번째 nag창이 나온순간 F12를 눌러 일시정지 시킨다. 다음 상단의 K 버튼 또는 Alt + K 를 눌러 Call stack을 살펴 ..

반응형