본문 바로가기

정보보안/Lena's Reversing Tutorial

Lena's Reversing Tutorial 7 PEid라는 프로그램을 써보면서 시작한다. PE구조의 프로그램을 분석하는 툴인듯하다. 하지만, 나는 비슷한 DIE라는 프로그램을 사용해서 분석했다. 준비된 프로그램을 살펴보자면 About 안에 있는 register를 이용하여 정품등록을 해보자는 듯한다. 저번과 같이 일일이 변경해준것과 다르게 이번에는 내부 값을 변경하여 등록되었다고 인지하게 할것이다. 등록되지 않았을때 메세지를 이용하여 register를 동작하는 위치를 확인해보자 다음을 봤을때, 점프문에서 등록정보를 판단한다. 이때 판단하는 정보는 AL레지스터를 참고하여 test al, al al값이 0이 되지 않도록 만든다. jmp를 수정하는것보다 이런 방식은 위험성이 따른다고한다. 이후의 내용은 AL이 어떻게 어디서 바뀌는가 를 분석하는 내용이다. ..
Lena's Reversing Tutorial 6 PC Surgeon 이라는 프로그램을 리버싱하는 수업이다. 이번에는 오류가 여러개 뜨면서 창도 이상하게 나온다. 아마 64bit체제라 프로그램 구동이 이상해지는것같다. Help 버튼에서 내용을 누르면 Unregistered Version이라고 나온다. 오늘 할일은 이를 registered로 바꾸는작업이다. 이를 string으로 검색하여 접근해보았다. 하지만, 실습할 수 있는 내용은 여기까지였다. bp를 잡아도 걸리지도 않고 동작자체가 이상하게 돌아갔기 때문이다. 내용만 대충 보자면 이 registered 판단하는 부분은 jmp문들로 이루어져 있기 때문에 하나하나 동작을 확인하고 이를 일일이 수정하면서 patch한다.
Lena's Reversing Tutorial 5 이번 시간에도 프로그램을 패칭하는 강좌이다. 따라서 필요한 기능만 보고 빠르게 넘어갔다. 시간들여 노가다 하면 해결 할 수 있는 내용이기 때문이다. 해상도 때문인지 창이 깨져서 보인다. 왼쪽 버튼 누르면 다음과 같은 사이트로 데려다 준다. 오른쪽 버튼을 누르면 다음과 같이 프로그램이 작동한다. 종료될때는 이상한 창이 뜨고 아마 10번 실행하면 다시 실행하지 못하는것같다. 따라서 이 창을 실행하는 창을 찾아서 제거해주면 패치가 된다. 이번 장에서는 hardware breakpoint step in 에 대해서 배운다.
Lena's Reversing Tutorial 4 이번 강좌에서는 픽스토피안북이라는 옛날 유료 프로그램을 패치 하는 것이다. 프로그램을 실행해보면 보니까 설치하라고한다. 이 파일은 설치하는 파일이었던 것이다. 설치후 설치된 파일을 실행해보자. 다음과 같이 UNREGISTERED VERSION 이라고 나와있다. GROUP을 4개째 추가하려는 순간 다음과 같은 경고창이 나온다. 이번 과제에서는 다음의 유료 부분을 제거하는 것이다. 먼저 디버거로 실행하면 예외처리가 나온다. 따라서 설정에서 예외처리를 없애고 등록을 요구하는 부분을 STRING검색을 한다. 검색해보면 다음 함수 부분이 아까와 같은 msgbox를 위에서 push한것을 매개변수로 받아서 출력한다. 따라서 해당 부분을 수정하고 패치해주면 된다. 제목을 수정하는 부분도 있는데 이는 memory map..
Lena's Reversing Tutorial 3 2019.01.07. 먼저 실행파일에 대해 알아 보았다. 여기서 nag란 현재 띄워져 있는 확인을 누르는 창을 나오지 않게 하는것이다. 올리디버거로 프로그램을 열어보니 GetModuleHandleA를 실행한다.이를 구글에 검색해보니 이 프로그램의 현재 주소를 가져온다고한다.그래서 사진을 보면 EAX에 0040000이 저장되어있고이후에 CMP EAX, 0 0과 비교해서 nag창이 나오게 하는것이다. nag창이 안나오게 하는 방법은 Nope처리하거나 그 부분을 건너뛰거나하는 등의 여러가지 방법이 있을 수 있지만이번에는 PE구조에 대해서 공부하고 이를 활용해 보았다. PE구조에 관한 내용은 복잡하고 많아 기록할수 없었고 따로 기록해야겠다. 다음을 보면 시작하는 부분이 401000부터라는 것을 알 수 있다. 그..
Lena's Reversing Tutorial 2 2019.01.04. decimal number system - 우리가 일반적으로 쓰는 10진법 ex)6312 = 6*1000+3*100+1*10+2 binary system - 이진법ex)12 = 1100(2) = 1*8+1*4 Hexadecimal Number - 16진법 1-9까지는 10진법을 따르고 10-16까지는 a,b,c,d,e,f를 사용한다ex)23 = 17(16) = 1*16+7 다뤄볼 자료는 reversing tutorial 1 에서 만져봤던 것이었다.1에서는 어셈블리어를 수정해서 목적지로 도달하는 방법이었으면이번에는 더 세부적으로 코드를 이해하고 원하는 방식을 만족시켜 해결하는 방법이었다. 먼저 저번과 같이 createFile 함수를 자세히 알아보기로 했다. F8로 진행시켜보면위 함수를..
Lena's Reversing Tutorial 1 2019.01.03. 책사서 리버싱 공부중에 abexcrackme시리즈랑 lena강의 다 봐보는걸 추천한다고 해서 해보기로 했습니다. 먼저 lena강의 주소https://tuts4you.com/e107_plugins/download/download.php?list.17 ollydbg 공식사이트http://www.ollydbg.de/ ollydbg를 이용하여 lena 튜토리얼에 있던 reverseme를 열어보았다. 실행을 하니 다음과 같은 창이 뜬다. 1) virtual address 가상 주소 2) OP code 3) 어셈블리어 4) comment 5) 레지스터 - 데이터를 저장할수있는 특별한 장소 hexademical system intel CPU의 경우 9개의 범용 레지스터를 갖는다. EAX= Ext..