강좌 / 팁

소프트웨어 UPX 압축풀기

2021.10.07 02:09

sunshine 조회:1862 추천:9

출처;

https://github.com/upx/upx/issues/444

https://www.52pojie.cn/thread-326995-1-1.html

 

위의 [demo.zip] 파일 속의 [besttrace.exe] 를 가지고 테스트를 했습니다.

결과가 좋아서 bootice 에 적용한 것입니다. 회원 분도 한 번 해보시기를 바랍니다.

upx 옵션을 살펴보니 압축 해제 옵션 [-d] 는 [-d --strip-relocs=1(default)] 와 같습니다.

그 동안 [-d] 만 알았고 [-d --strip-relocs=1 or 0] 도 있는 줄 몰랐습니다.

아무튼 자체 압축 해제 명령으로 푸니까 리소스를 재 수정할 필요가 없어서 아주 편리합니다.

테스트에 사용한 UPX 는 가장 최신 버전인 UPX_v3.96w_x32 입니다. 

 

데모 파일: 출처에서 demo.zip 을 받으세요.

테스트 파일: bootice.7z -> 푸는 방법을 알려드렸으니까 [테스트 파일] 은 조만간 삭제 하겠습니다.

테스트 UPX: upx396.7z  -> v3.96w_x32

 

//////////////////////////////////////////////////////////////////////////////

1. demo.zip 파일 속의 besttrace_v.38 UPX 압축풀기

 

1-1. [besttrace] 를 DIE 로 검사하니 UPX 로 압축되어 있었습니다.

1demo.png

 

1-2. 흔히 사용하는 UPX 압축 해제 명령인 [-d] 를 적용했습니다.

2demo.png

 

1-3. 압축은 정상적으로 풀렸지만 실행시 [에러] 가 발생하네요.

3demo.png

 

1-4. 압축 해제 옵션 [--strip-relocs=0] 를 추가하고 다시 풀었습니다.

4demo.png

 

1-5. 실행시 에러도 안 나오고 잘 됩니다.

5demo.png

 

//////////////////////////////////////////////////////////////////////////////

2. bootice_v1.3.4.0 UPX 압축풀기

 

2-1. [bootice_v1.3.4.0_x32_x64] 를 DIE 로 검사하니 UPX 로 압축되어 있습니다.

6b134.png

 

2-2. 기본 옵션인 [-d] 만 적용해서 풀었더니 전혀 실행이 안 되었습니다.

7b134.png

 

2-3. 그래서 [besttrace] 와 마찬가지로 [--strip-relocs=0] 옵션을 추가로 적용했습니다.

8b134.png

 

2-4. x32 비트, x64 비트 둘 다 실행이 아주 잘 됩니다. 

9b134.png

 

2-5. [Resource Tuner] 로 리소스를 재 수정할 필요도 없고 [Resource Hacker] 에서 바로 수정이 가능합니다. 

10b134.png

 

//////////////////////////////////////////////////////////////////////////////

3. bootice_v1.3.3.2 UPX 압축풀기

 

3-1. [bootice_v1.3.3.2_x32_x64] 를 DIE 로 검사하니 UPX 로 압축되어 있습니다.

 [--strip-relocs=0] 옵션까지 추가해서 시도를 했지만 에러가 나와서 실패했습니다.

11b1332.png

 

3-2. 그래서 [winhex] 로 검사하니 주소 [000003E0 ~ 2] 의 값이 [UPX] 가 아니고 [uly] 로 되어 있었습니다. 

12b1332.png

 

3-3. [winhex] 로 주소 [000003E0 ~ 2] 의 값을 [UPX] 로 다시 정정했습니다.

수정 후 꼭 저장(update) 하셔야 적용됩니다.

13b1332.png

 

3-4. [--strip-relocs=0] 옵션을 적용해서 압축을 풀었더니, 아주 정상적으로 풀립니다.

14b1332.png

 

3-5. x32 비트, x64 비트 둘 다 실행이 아주 잘 됩니다.

아니 ! bootice_v1.3.3.2 가 이렇게 쉽게 풀리다니... 놀랍군요.

15b1332.png

 

3-6. [Resource Tuner] 로 리소스를 재 수정할 필요도 없고 [Resource Hacker] 에서 바로 수정이 가능하니 아주 편리합니다. 

 

16b1332.png

END //////////////////////////////////////////////////////////////////////////////

 

 

 

 

 

 

번호 제목 글쓴이 조회 추천 등록일
[공지] 강좌 작성간 참고해주세요 gooddew - - -
4278 윈 도 우| Windows 10, 12월 보안 패치(KB5021233) 설치 후 뜨는 블루... [5] 타천사둘리 1881 8 12-20
4277 윈 도 우| [실사] USB 테더링으로 PC 인터넷 랜 드라이버 설치하기! [8] 무월 1754 15 12-20
4276 윈 도 우| 관리자보다 더쎈 권한으로, 접근제한 에러 뚫기 [20] zerojiddu 4022 16 12-18
4275 윈 도 우| KB5018863 업데이트 제거하기(22621.1037로 버전 바꾸기) [5] 타천사둘리 1583 5 12-16
4274 윈 도 우| 윈도우 호스트 만들기 - 몇가지 추가 [11] 슈머슈마 1768 10 12-15
4273 윈 도 우| 윈도우 호스트에 온라인 광고차단 호스트 파일 추가, 기본 ... [14] 슈머슈마 2077 14 12-13
4272 윈 도 우| BCD 백업 및 복구 프로그램 입니다 [11] 지룡자 3103 25 12-10
4271 윈 도 우| [실사 ] 부트 메뉴에 PE 등록 하기 | Recovery 생성 백업&a... [14] 무월 2450 22 12-10
4270 윈 도 우| Windows 10에서 Windows 11 업데이트(업그레이드)를 차단하... [5] heykevin 2608 22 12-09
4269 윈 도 우| PE에서 NVME 드라이브 보이게 하기 [2] 좋게멋지게 1790 9 12-09
4268 윈 도 우| 핀 번호 암호 모를때 pe에서 간단한 작업후 로그인하고 핀... [4] heykevin 1759 6 12-08
4267 윈 도 우| [실사] 윈도우10,11 PIN번호 분실 암호 재설정으로 우회 로... [9] 무월 2571 11 12-07
4266 윈 도 우| [실사] 윈도우10,11 로그인 비밀번호 재설정 및 제거 [8] 무월 2001 16 12-07
4265 윈 도 우| [실사] 윈도우11&10 BCD 부팅 오류, 부트 복구(설치) [16] 무월 2456 24 12-05
4264 윈 도 우| [실사] 윈도우11 사용자 계정 만료 해제 방법! [4] 무월 1683 7 12-05
4263 윈 도 우| ISO 마운트 - 작업 - 꺼내기, ISO2WIM 추출 [5] 지후빠 1192 20 12-04
4262 윈 도 우| [실사] 윈도우10 사용자 계정 만료 해제 방법! [9] 무월 1457 15 12-04
4261 윈 도 우| 배치파일에서 내장명령어로 대기시간 구현 sleep [8] 지후빠 1014 14 12-01
4260 윈 도 우| 내용추가-WinNtSetup 사용하여 윈도우 설치용 VHD(가상 드... [5] 타천사둘리 1317 15 12-01
4259 윈 도 우| 정리하는 스크립트 V 0.2 [배포중단] [13] 졸린사자 1900 11 11-30
XE1.11.6 Layout1.4.8