ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 실행압축 - 194p
    리버싱/리버싱스러운것 2023. 5. 30. 17:29

    실행 파일을 대상으로 파일 내부에 압축해제 코드를 가지고있다가 실행되는 순간에 메모리에서 압축을 해제 시킨후 실행시키는것

    우리가 일반적으로 알고있는 압축이랑 다른점은 압축파일 실행 가능하다는것, 흔히 패킹이라 부르는듯

    그리고 패킹을 해주는 프로그램은 패커

     

    하는이유 : 당연히 리버싱 못하게할려고

     

    그럼 이제 실제로 패킹을 해봅시다, 패커는 upx를 사용(이유: 공짜고 유명함)

     

    upx는 리버싱 공부한 분들 질리도록 보셧을듯 설치하고 작업폴더로 간뒤 upx 명령을 실행해주면 설명서쫙나옴

     

     

     

    메모장(notepad.exe)를 한번 패킹해봄, 저렇게 upx -o 이름할거 패킹할파일명 이런식으로 쳐줌

     

    하면 뙇 Packed 1 file

     

     

    압축이니까 당연히 용량이 줄어듬, 하지만 우리가 알고있는 zip 파일 처럼 용량이 확줄진 않음

     

    이유는 실행파일이므로 PE 헤더가 있어야하고 내부에 코드를 압축해제할 코드도 넣어야 하기 때문

     

    그럼 이제 내부에 있는 코드를 압축해제 한다는게 뭔소린가 싶음

     

    이 그림은 원본 파일과 패킹된 파일을 비교한 그림임

     

    이 그림을 보면 눈에띄는건 .text 섹션과 .data 섹션이 UPX0, UPX1로 바뀌었다는 것임

     

    중요한건 UPX의 RawDataSize가 0이라는 것 그냥 아무것도 들은게 없단 뜻임

     

    그럼 비워놓을거면서 왜 있는 공간인가? 보면 UPX패킹된 파일은 원래 코드와 그걸 압축한걸 해제시키는

     

    코드를 내부에 저장한다고 했음, 그리고 파일이 실행되면 압축해제 코드가 실행되어 압축된 원래 코드를

     

    첫번째 섹션에 풀어주는 것임, 그리고 압축해제 과정이 끝나면 원본 코드의 EP로 이동, 실행 하는 것

     

    다음은 패킹된 노트패드를 디버깅해보겟음

    '리버싱 > 리버싱스러운것' 카테고리의 다른 글

    Basic RCE L10  (0) 2023.06.06
    Notepad_upx.exe 분석  (1) 2023.06.01
    Abex Crack me #3  (0) 2023.05.11
    Tut.ReverseMe1 분석  (0) 2023.05.11
    Abex Crack me #2  (0) 2023.05.10
Designed by Tistory.