소프트웨어 MPRESS 압축풀기-2
2021.09.28 22:14
출처: https://forum.tuts4you.com/topic/34146-mpress-v219-x32x64-for-newbies/
x64dbg 다운로드: https://x64dbg.com/#start
참고: https://www.goggleheadedhacker.com/blog/post/6
x64dbg 디버거를 이용해서 MPRESS 압축 풀기입니다.
압축을 해제하는 방법은 "ESP(32 비트) / RSP(64 비트)" 로 하드웨어 중단점을 설정 후,
OEP(Original Entry Point) 를 찾아서 Scylla(내장 덤프 도구) 로 덤프합니다.
그리고 이 번 [MPRESS 압축풀기-2] 가 숙달되면 [UPX 압축 풀기] 도 대동소이해서 쉽습니다.
테스트 파일1(원본): MPress2.19x32x64(Unpacking).7z
테스트 파일1(덤프): UnPackMe32_dump_SCY.7z
테스트 파일2(원본): PECMD.7z -> 추가 했습니다.
테스트 파일2(덤프): 없으니 스스로 해보세요.
1. x32dbg 및 x64dbg 공통
- [F7 키]=[(2) 번 버튼] 대신에 [우측 옆에 있는 버튼]=[F8 키] 를 이용해도 됩니다.
- [버튼 및 key] 를 클릭했을 때 이동이 안되면 동일한 [버튼 및 key] 다시 한번 클릭하면 잘 됩니다.
- 디버거 실행은 release 폴더의 x96dbg.exe 를 클릭하시면 x32dbg / x64dbg 선택 창이 나옵니다.
- 압축을 푼 후 리소스 수정이 불가 한 것은 Resource Tuner 로 로드한 다음에,
Resource Tuner 로 수정하든지 아니면 저장한 다음에 다른 리소스 편집기를 사용하시면 됩니다.
///////////////////////////////////////////////////////////////////////////////////////////
2. MPRESS 로 압축된 32 비트 파일 압축 풀기
2-1. DIE 로 UnPackMe32.exe 압축 여부 확인하기
2-2. x96dbg 실행시 대상 파일이 32 비트이면 x32dbg 를 선택합니다.
2-3. UnPackMe32.exe 를 로드하면 나타나는 첫 화면입니다.
2-4. 위에서 F9 을 클릭해서 엔트리 포인트가 있는 pushad 까지 와야 합니다.
pushad 우측에 적색으로 된 [EntryPoint] 가 있으면 정상입니다.
2-5. 위에서 F7 을 클릭해서 call 로 진입합니다.
여기서 [하드웨어 중단점] 설정을 명령어로 할려면 맨 아래 명령 창에 [bphws esp,rw] 를 입력하고 [엔터] 하시면 됩니다.
그리고 2-6, 2-7, 2-8 은 건너 뛰고 2-9 로 가세요.
2-6. 우측 [FPU 숨기기] 창에서 마우스로 ESP 를 우클릭한 후 [덤프에서 따라가기] 를 클릭합니다.
- 참고로 32 비트이면 ESP 이지만 64 비트는 RSP 입니다.
2-7. 좌하단 [덤프1] 창을 보면 HEX 밑에 [12] 즉 1 바이트만 선택되어 있습니다.
2-8. "덤프1" 창에서 하드웨어 중단점 설정하기
좌하단 [덤프1] 창의 HEX 밑 [12] 부터 4 바이트를 마우스로 선택합니다.
그 4 바이트에서 마우스로 우클릭한 후 [중단점(B) - 하드웨어, 액세스(A) - Dword] 를 선택합니다.
참고: 마우스로 우클릭한 후 [하드웨어 제거] 가 있으면 클릭하고, 다시 마우스로 우클릭을 하시면 됩니다.
2-9. 위에서 [하드웨어 중단점] 설정한 후 F9 을 클릭하면 jmp 에 도달합니다.
참고로 [jmp unpackme32.401110] 에서 [401110] 이 OEP 주소입니다.
2-10. 위에서 F7 을 클릭하면 push 에 도달합니다. 여기가 OEP 입니다.
주의: 여기서 키(key) 로 더 이상 진행하시면 안됩니다.
2-11. 덤프하기
위의 1 번에서 [3 번 아이콘] 을 클릭해서 Scylla 창이 뜨면, (1)-(2)-(3)-(4) 순으로 진행 하시면 됩니다.
(1) 번 [IAT Autosearch] 를 실행한다.
[예] 를 선택하면 [고급 IAT 검색] 을 사용하고, [아니오] 를 선택하면 [고급 IAT 검색] 을 미 사용하는 겁니다.
둘 다 사용해 보시고 기본값 설정은 메뉴의 [Misc - Options - Use advanced IAT serach] 에서 하시면 됩니다.
(2) 번 [Get Impots] 를 실행한다.
중요: Impots 칸에 적색 X 자 표시가 있는 것은 우클릭 후,
[Delete tree node] 를 클릭해서 전부 제거한 다음에 (3) 번 Dump 를 시행해야 dll 에러가 안 나옵니다.
(3) 번 [Dump] 를 실행한다.
UnPackMe32_dump.exe 파일이 생성됩니다.
(4) 번 [Fix dump] 를 실행한다.
파일명 끝에 [_dump] 가 붙은 UnPackMe32_dump.exe 를 선택해야 됩니다.
그러면 UnPackMe32_dump.exe 에 [_SCY] 가 붙은 UnPackMe32_dump_SCY.exe 파일이 생성됩니다.
이 파일이 압축이 풀린 최종 파일입니다.
- 덤프한 다음에 안될 경우
메뉴 "다시 시작" 아이콘을 클릭하시고 다시 실행보세요.
디버거를 종료하고 처음부터 다시 시작해보세요.
덤프 전에 수정할 것이 있거나 또는 덤프 후에 수정할 것이 있을 수도 있습니다.
그래도 안 되면 다른 고수님께 부탁하세요.
2-12. 언팩된 UnPackMe32_dump_SCY.exe 를 실행한 모습입니다.
2-13. UnPackMe32_dump_SCY.exe 를 DIE 로 살펴본 것입니다.
///////////////////////////////////////////////////////////////////////////////////////////
3. MPRESS 로 압축된 64 비트 파일 압축 풀기
3-1. DIE 로 UnPackMe64.exe 압축 여부 확인하기
3-2. x96dbg 실행시 대상 파일이 64 비트이면 x64dbg 를 선택합니다.
3-3. UnPackMe64.exe 를 로드하면 나타나는 첫 화면입니다.
3-4. 위에서 F9 을 클릭해서 엔트리 포인트가 있는 push 까지 와야 합니다.
push 우측에 적색으로 된 [EntryPoint] 가 있으면 정상입니다.
3-5. 위에서 F7 을 클릭해서 lea 로 진입합니다.
여기서 [하드웨어 중단점] 설정을 명령어로 할려면 맨 아래 명령 창에 [bphws rsp,rw] 를 입력하고 [엔터] 하시면 됩니다.
그리고 3-6, 3-7, 3-8 은 건너 뛰고 3-9 로 가세요.
3-6. 우측 [FPU 숨기기] 창에서 마우스로 RSP 를 우클릭한 후 [덤프에서 따라가기] 를 클릭합니다.
- 참고로 32 비트이면 ESP 이지만 64 비트는 RSP 입니다.
3-7. 좌하단 [덤프1] 창을 보면 HEX 밑에 [00] 즉 1 바이트만 선택되어 있습니다.
3-8. [덤프1] 창에서 하드웨어 중단점 설정하기
좌하단 [덤프1] 창의 HEX 밑 [00] 부터 4 바이트를 마우스로 선택합니다.
그 4 바이트에서 마우스로 우클릭한 후 [중단점(B) - 하드웨어, 액세스(A) - Dword] 를 선택합니다.
참고: 마우스로 우클릭한 후 [하드웨어 제거] 가 있으면 클릭하고, 다시 마우스로 우클릭을 하시면 됩니다.
3-9. 위에서 [하드웨어 중단점] 설정한 후 F9 을 클릭하면 pop 에 도달합니다.
3-9-1. 위에서 F7 을 클릭하면 jmp 에 도달합니다.
참고로 [jmp unpackme64.1400011EC] 에서 [1400011EC] 이 OEP 주소입니다.
3-10. 위에서 F7 을 클릭하면 sub 에 도달합니다. 여기가 OEP 입니다.
주의: 여기서 키(key) 로 더 이상 진행하시면 안됩니다.
3-11. 덤프하기
위의 1 번에서 [3 번 아이콘] 을 클릭해서 Scylla 창이 뜨면, (1)-(2)-(3)-(4) 순으로 진행 하시면 됩니다.
(1) 번 [IAT Autosearch] 를 실행한다.
[예] 를 선택하면 [고급 IAT 검색] 을 사용하고, [아니오] 를 선택하면 [고급 IAT 검색] 을 미 사용하는 겁니다.
둘 다 사용해 보시고 기본값 설정은 메뉴의 [Misc - Options - Use advanced IAT serach] 에서 하시면 됩니다.
(2) 번 [Get Impots] 를 실행한다.
중요: Impots 칸에 적색 X 자 표시가 있는 것은 우클릭 후,
"Delete tree node" 를 클릭해서 전부 제거한 다음에 (3) 번 Dump 를 시행해야 dll 에러가 안 나옵니다.
(3) 번 [Dump] 를 실행한다.
UnPackMe64_dump.exe 파일이 생성됩니다.
(4) 번 [Fix dump] 를 실행한다.
파일명 끝에 [_dump] 가 붙은 UnPackMe64_dump.exe 를 선택해야 됩니다.
그러면 UnPackMe64_dump.exe 에 [_SCY] 가 붙은 UnPackMe64_dump_SCY.exe 파일이 생성됩니다.
이 파일이 압축이 풀린 최종 파일입니다.
- 덤프한 다음에 안될 경우
메뉴 "다시 시작" 아이콘을 클릭하시고 다시 실행보세요.
디버거를 종료하고 처음부터 다시 시작해보세요.
덤프 전에 수정할 것이 있거나 또는 덤프 후에 수정할 것이 있을 수도 있습니다.
그래도 안 되면 다른 고수님께 부탁하세요.
3-12. 언팩된 UnPackMe64_dump_SCY.exe 를 실행한 모습입니다.
3-13. UnPackMe64_dump_SCY.exe 를 DIE 로 살펴본 것입니다.
32 비트에서는 안 보이던 compiler 가 나타났네요.
END ///////////////////////////////////////////////////////////////////////////////////////////
댓글 [11]
-
풍경소리 2021.09.28 22:49
-
sunshine 2021.09.28 23:09
저도 다른 곳에서 설명한 것을 따라서 해 보았지만 너무 모르다보니 한 번도 성공을 못했습니다.
그래서 초보자도 따라서 할 수 있도록 일부러 자세하게 풀어 농은 것입니다.
-
풍경소리 2021.09.28 23:23
수고스럽지만 BootICE.exe 64버전좀 한번 풀어 주시면 안될까요(영문버전요)
이미 한글버전이 있지만..,
-
harman777 2021.09.29 01:33
BootIce64.exe 푼거에요 ^^;;;;
-
풍경소리 2021.09.29 07:40
진심으로 너무 감사합니다.
오늘도 좋은 하루되세요
-
harman777 2021.09.28 22:55
저도 착한해킹???에 관심이 많습니다. 실력이 안따라줘서 문제-_-;;;;
추천 드려요 ^^;;;
-
두리안 2021.09.28 23:06
잘보고 갑니다 ^^
-
cungice 2021.09.28 23:07
수고 많으셨습니다. 감사합니다.
-
슈머슈마 2021.09.29 04:36
자세한 설명 감사합니다. -
왕초보 2021.09.29 09:38
어려운 분야를 자세히 설명을 해주셔서 감사합니다
좋은 정보가 여기 있다는것을 기억해두는 정도인것로 만족해야 할것 같습니다
즐거운 하루 되세요...
-
sis 2021.09.30 21:48
고생하셨습니다.
번호 | 제목 | 글쓴이 | 조회 | 추천 | 등록일 |
---|---|---|---|---|---|
[공지] | 강좌 작성간 참고해주세요 | gooddew | - | - | - |
3983 | 소프트웨어| 언패킹 후 리소스 재구축하기-1 [16] | sunshine | 1044 | 6 | 10-13 |
3982 | 윈 도 우| windows 11 네트워크 공유하는 방법 [7] | 버금차. | 3700 | 2 | 10-13 |
3981 | 윈 도 우| 윈11 TPM,UEFI 무시하고 설치하기. [8] | 마루나래 | 5232 | 16 | 10-12 |
3980 | 소프트웨어| 최신 Rufus를 사용하여 Windows 11에 대한 TPM, 보안 부팅 ... [4] | VₑₙᵤₛG | 2715 | 8 | 10-11 |
3979 | 윈 도 우| Windows 11에서 위젯을 제거하는 방법 [1] | VₑₙᵤₛG | 2665 | 6 | 10-09 |
3978 | 소프트웨어| 한컴오피스 설치시 제품 번호가 맞지 않습니다라며 설치 안... [5] | heykevin | 4800 | 2 | 10-09 |
3977 | 윈 도 우| Windows 11 우회 설치 - boot.wim 수정하기 [26] | suk | 5073 | 37 | 10-08 |
3976 | 윈 도 우| 아래글... UPX 버그패치 [18] | kernel | 2079 | 7 | 10-07 |
3975 | 소프트웨어| UPX 압축풀기 [5] | sunshine | 1917 | 9 | 10-07 |
3974 | 모 바 일| 아이폰 컴퓨터(윈도우10) 연결 문제 (아이튠즈 아이폰 인식... [2] | Day | 1083 | 0 | 10-06 |
3973 | 소프트웨어| WimBootBR 일회성 윔부트, C드라이브 백업/복원 cmd [37] | 지후빠 | 3527 | 26 | 10-03 |
3972 | 윈 도 우| 숨겨진 Windows 11 관리자 계정을 활성화하는 방법 [3] | VₑₙᵤₛG | 3051 | 6 | 10-02 |
3971 | 윈 도 우| Windows 11에서 포커스 세션을 사용하는 방법 | VₑₙᵤₛG | 1023 | 1 | 10-01 |
3970 | 소프트웨어| Ventoy 정리 #2 [2021.09.28] 추가 [11] | 메인보드 | 4701 | 20 | 09-29 |
3969 | 윈 도 우| [노트북] Intel 11세대 프로세서(Intel Tiger Lake) 문제 ... [1] | sugar | 1449 | 3 | 09-29 |
3968 | 소프트웨어| MPRESS 압축풀기-3 [5] | sunshine | 1090 | 6 | 09-29 |
» | 소프트웨어| MPRESS 압축풀기-2 [11] | sunshine | 1473 | 4 | 09-28 |
3966 | 소프트웨어| MPRESS 압축풀기-1 [12] | sunshine | 2967 | 14 | 09-26 |
3965 | 윈 도 우| 불필요한 파일/폴더 지우기 deltree useless .bat [35] | 지후빠 | 4713 | 22 | 09-21 |
3964 | 서버 / IT| TrueNAS 로 삼바 서버 구축하기 [14] | gooddew | 2673 | 5 | 09-20 |
예전에 따라하기 해보지만
디버거로 잘 안되는 경우가 많아서
배우기가 넘 어려워요