반응형

Security&Hacking 103

Lena Reversing - tutorial 21_4

Lena Reversing tutorial 21_4 마지막 네번째 프로그램은 UnPackMe_WinUpack0.39 이다. Ollydbg로 열어준다. 오류창과 함께 시작된다. 특이하게 7C로 시작하는 주소에서 시작이 된다 . Memory map을 열어 확인해본다. 프로그램의 memory 영역이 PE header밖에 없고 크기가 매우 크다. PE header 안에 모든 내용을 집어 넣은 것으로 보인다. 더블클릭하여 좀 더 살펴본다. Entry point가 1018로 되어있다. 401018에 breakpoint를 걸고 실행한 뒤 한 줄씩 진행해본다. 프로그램 영역 내부이지만 다른곳으로 분기하는 부분이 있다. 계속 진행해준다. F8을 눌러 진행하는데 끝이 보이지 않게 계속 진행된다. 아래쪽에 RETN이 보인다..

Lena Reversing - tutorial 21_3

Lena Reversing tutorial 21_3 세번째 프로그램은 PCGuard4.06C_UnpackmeAll 이다. Ollydbg로 열어준다. 이번에도 ESP를 이용해서 OEP를 찾아주도록 한다. PUSH EBP가 실행되자 ESP값이 변한다. 12FFC0 메모리에 hw bp를 걸어준다. F9를 누르면 break가 걸리는데 의미 없는 곳에 걸린다. 계속해서 눌러주다보면 break가 계속해서 걸리고 마지막엔 멈추게 된다. 강의에서는 F9를 누르다보면 OEP로 가게 되는데 뭔가 이상하다. 바로 401000에 hw bp를 걸고 실행을 시켜도 break가 걸리지 않는다. 해당 파일이 이유는 아직 부족한 실력으로 잘 모르겠다... 강의를 기반으로 계속해서 설명을 하면 OEP를 401000으로 구했기 때문에 d..

Lena Reversing - tutorial 21_2

Lena Reversing tutorial 21_2 이번엔 두번째 프로그램 UnPackMe_UPX 를 가지고 진행을 한다. 파일이름에서 볼 수 있는 UPX는 상당히 유명한 패커의 일종이다. Ollydbg로 열어준다. PUSHAD로 시작하는 것이 눈에 띈다. 이번에도 ESP를 이용해서 OEP를 찾아주도록 한다. F8을 눌러 한 줄 진행하자마자 ESP값이 변한다. 0012FFA4 에 hw bp를 걸어준다. 그 다음 F9를 눌러 진행해준다. 다음과 같이 break가 걸린다. 00401000으로 분기하고 있고 이 주소가 OEP로 보인다. ollydump를 통해 dump를 떠준다. Rebuild Import는 체크 해제하고 진행한다. LoadPE 프로그램을 통해서 dump 한 파일을 Rebuild PE를 해준다...

Lena Reversing - tutorial 21_1

Lena Reversing tutorial 21_1 이번 단계의 프로그램은 총 4개이다. 하나씩 진행하도록 한다. 가장 먼저 볼 프로그램은 UnPackMe_FSG2.0 이다. 먼저 Exeinfo PE로 프로그램을 열어준다. FSG 패커로 패킹이 되어있는 것을 확인할 수 있다. Ollydbg로 프로그램을 실행해준다. ESP 값을 통해 OEP를 찾아준다. F8을 눌러 한 줄 넘어가면 ESP 값이 다음과 같이 변한다. 오른쪽 마우스를 눌러 Follow in dump를 눌러 메모리영역을 확인하고 해당 메모리에 hw bp를 걸어준다. F9를 눌러 실행하면 다음과 같이 break가 걸린다. 404000 번지로 분기하고 있다. 이 주소가 OEP로 보인다. Ollydump로 dump를 해준다. Rebuild Impor..

랜섬웨어(Ransomware)

랜섬웨어 (Ransomware) 악성코드의 일종이며 최근에 가장 일반 사람들에게 잘 알려진 랜섬웨어에 대해 알아본다. 랜섬웨어란 무엇일까? 정보처리기사, 정보보안기사에 용어에 대한 문제에 가끔씩 출제되는 부분이다. 랜섬웨어는 몸값을 뜻하는 Ransom과 software를 합성한 단어로 공격 대상자의 시스템을 잠그거나 시스템 안의 데이터들을 암호화시켜서 공격 대상자가 자신의 시스템을 사용할 수 없도록 만든다. 이 피해자가 자신의 시스템과 데이터를 사용하려면 공격자가 요구하는 금액을 지불해야 하며 금액을 지불한다 하더라도 원활하게 복구가 되는것은 확신할 수 없다. 이 악성 프로그램은 신뢰할 수 없는 사이트, 스팸메일, 파일공유 사이트, 네트워크 망을 통해 유포가 된다. 특히 최근에는 SNS가 급속도로 활발해..

Lena Reversing - tutorial 20_8

Lena Reversing tutorial 20_8 마지막 8번째 파일은 UnPackMe_Fusion4.0.00.c 이다. Ollydbg로 열어준다. 이번에도 ESP를 이용하여 언패킹을 해본다. F8을 눌러 ESP가 처음으로 바뀌는 부분을 찾는다. PUSH EBP 수행후 ESP 값이 0012FFC0로 바뀐다. 이 값에 hw bp를 걸어준다. F9를 눌러주면 다음과 같이 break가 걸린다. 이 주소가 OEP로 추정된다. Ollydump를 통해 dump 해준다. Rebuild Import는 해제하고 dump 해준다. 끝.

Lena Reversing - tutorial 20_7

Lena Reversing tutorial 20_7 7번째 프로그램은 UnPackMe_Exe32Pack1.42 이다. Ollydbg로 열어준다. 이번에도 ESP를 이용한 언패킹을 수행한다. 진행하다보면 다음 PUSH EBP가 수행되고 나면 ESP가 0012FFC0으로 바뀌게 된다. 여기에 hw bp를 걸고 실행해준다. 다음과 같은 주소에 break가 걸린다. 같은 ESP를 비교했기 때문에 다음 분기문에서 분기가 일어난다. 이동하게 되면 바로 다시 한 번 분기가 일어난다. 이 주소가 OEP로 추정된다. 이제 Ollydump를 통해 dump 해준다. 이번엔 Rebuild Import를 체크 해제 해주고 dump 해준다. 끝.

Lena Reversing - tutorial 20_6

Lena Reversing tutorial 20_6 6번째 프로그램은 UnPackMe_NoNamePacker.d.out 이다. Ollydbg로 열어준다. 실행을 해보면 다음과 같은 이상한 창이 나온다. 아무 문구도 없다.. 이상해서 디버거를 종료시키고 실행해보았다. 아까와는 다른 창이 나온다. 실행중인 디버거를 탐지하는 코드가 내부에 들어있는 것으로 보인다. 따라서 이번 프로그램은 안티 디버깅 기법을 우회하고 언패킹도 해주어야 한다. 쭉 진행하다보면 다음과 같이 IsDebuggerPresent 함수가 Call 된다. 이 함수를 통해 디버거가 실행중인지 판단하여 분기하는 것으로 보인다. 여기서 OR EAX, EAX 수행 전 EAX는 1이다. 디버거가 실행중임을 나타낸다. 이 값을 0으로 바꾸어 진행해준다...

Lena Reversing - tutorial 20_5

Lena Reversing tutorial 20_5 5번째 프로그램은 UnPackMe_NsPack3.5 이다. 프로그램을 Ollydbg로 열어준다. 이번엔 시작부분이 PUSHFD, PUSHAD로 시작한다. 따라서 언패킹 루틴이 끝날때는 POPAD 명령어가 나올것이다. control + f를 눌러 검색을 해준다. POPAD 또는 POPFD 를 검색해준다. 여러개가 검색되기 때문에 control + l 을 눌러주면서 하나하나 확인해준다. POPAD, POPFD 가 나온후 해당 프로그램의 .text 범위 내의 주소로 분기해야한다. 다음과 같이 찾을 수 있다. 004271B0로 분기하고 있고 이 주소가 OEP로 생각할 수 있다. 이번에도 Rebuild Import는 체크하고 dump 해준다. 끝.

Lena Reversing - tutorial 20_4

Lena Reversing tutorial 20_4 20단계 4번째 이다. 이번에는 UnPackMe_MEW1.1 프로그램을 볼 것이다. Ollydbg에서 열어준다. 바로 400154로 분기한다. ESP가 변하는 부분까지 진행한다. ESP가 변하면 hw bp를 걸어준다. F9를 눌러 진행한다. 이제는 익숙한 주소에 멈춘다. Ollydump를 통해 dump를 떠준다. EP를 확인하고 이번엔도 Rebuild Import 부분을 체크하고 dump한다. 실행해보면 오류창이 발생한다. 이번에도 이전 프로그램과 동일한 오류창이다. 넘어가도록 한다. 끝.

반응형