소프트웨어 PECMD CMPA 복호화
2023.11.15 02:40
참고 자료:
夕影님의 자유 게시판: https://windowsforum.kr/index.php?mid=free&page=2&document_srl=20107591
왕초보님의 사용기: https://windowsforum.kr/review/20114925
- PECMD에서 CMPA로 암호화 된 스크립트를 복호화 하는 방법입니다.
복호화 스크립트 공개를 허락해 주신 夕影님께 감사드립니다.
- 작업 진행은 [원본 파일]에서 스크립트 추출 -> [대상 파일]로 스크립트 이식 ->
디버거로 [대상 파일] 스크립트 복호화 -> 복호화된 스크립트를 [원본 파일]로 이식으로 진행됩니다.
한글화는 리소스해커로 복호화된 원본 파일을 직접 수정하시면 됩니다.
- 관련 파일
원본 파일: CGI-plus_5.0.0.7_x86.7z
* 사전에 압축 해제가 되어야 리소스해커로 파일을 추출할 수가 있습니다.
대상 파일: PECMD101.7z
* 복호화용 스크립트가 x86 전용이라서 x64도 추출하기 위해서 대상 파일(x86)을 사용하는 것입니다.
일반 PECMD에서 SCRIPTINIT 삭제, 그리고 SCRIPT에서 101를 제외한 나머지는 모두 삭제한 것입니다.
원본 파일이 x86이고 SCRIPT101만 있으면 직접 디버거로 복호화가 가능합니다. 대상 파일은 불필요합니다.
복호화용 스크립트 파일: crypter1.2.7z 231115
* 4 종류의 도구에서 스크립트 추출이 잘 되었지만 그 외의 도구는 어떻게 될 지는 모릅니다.
리소스해커: ResHacker.exe
* 스크립트 교체시 사용하시면 됩니다.
디버거: x32dbg.7z
* 출처: https://sourceforge.net/projects/x64dbg/files/snapshots/
x64dbg에서 x32dbg만 추출한 것입니다. 압축을 풀고 "x32dbgstart.cmd"를 실행하시면 됩니다.
1. 원본 파일에서 스크립트 추출하기
1-1. 리소스해커로 원본 파일 로드 -> SCRIPT101에 우클릭 -> BIN 파일로 저장을 클릭합니다.
만약 SCRIPT가 복수이면 모두 추출합니다. SCRIPT101, SCRIPT102, SCRIPT103 등으로.
1-2. SCRIPT101.BIN 파일로 저장합니다.
2. 원본 파일 스크립트를 대상 파일(PECMD101.EXE)로 이식하기
2-1. 리소스해커로 대상 파일 로드 -> SCRIPT101에 우클릭 -> 리소스 교체를 클릭합니다.
만약 SCRIPT가 복수이면 SCRIPT101만 교체하고 추출한 후, 다시 1번부터 시작해서 SCRIPT102를 교체합니다. 이런 식으로 모두 교체.
2-2. 파일 선택을 클릭합니다.
2-3. 원본 파일에서 추출한 SCRIPT101를 선택 후 열기를 합니다.
2-4. 교체를 클릭합니다.
2-5. 저장 아이콘을 클릭합니다.
2-6. 원본 SCRIPT101를 대상 파일( PECMD101)로 이식 후 실행한 모습입니다.
3. x64dbg로 대상 파일(PECMD101.EXE)의 CMPA 스크립트 복호화 하기
3-1. x64dbg를 실행 후 x32dbg를 선택 -> 파일 -> 열기를 하세요.
3-2. PECMD101.EXE를 선택 후 열기를 클릭하세요.
3-3. 처음에는 EIP가 노란색 jmp~에 있습니다.
3-4. 아래 화살표 아이콘을 클릭하면 EIP가 청색 push~로 진입합니다.
3-5. 아래 (1)번 스크립트 탭을 클릭 후 빈 칸에 마우스를 우클릭 -> 스크립트 로드 -> 열기를 클릭합니다.
3-6. crypter1.2.txt를 선택 후 열기를 클릭합니다.
3-7. 스크립트가 나타나면, 빈 칸에 마우스를 우클릭 -> 실행을 클릭합니다. 또는 스페이스 키를 클릭합니다.
3-8. 복호화(디크립트) 성공 메시지가 나타나면 OK를 클릭합니다.
3-9. OK를 클릭하고 x64dbg 디버거를 종료합니다.
4. x32\memdumps 폴더에 복호화된 BIN 파일이 생성됩니다.
memdump_pid_addr_size.bin 형식으로 저장됩니다.
4-1.복호화 BIN 파일을 notepad2로 열고 [파일 - 다시 읽기 - 인코딩으로 - UTF-16LE]를 선택하면 문자가 깨지지 않고 잘 보입니다. 여기서 [모두 선택(Ctrl+A) - 복사(Ctrl+C) - 빈 곳에 마우스 우클릭 - 새로 만들기 - 텍스트 문서 - "새 텍스트 문서" 더블 클릭 - 붙여넣기(Ctrl+V) - 저장]하면 됩니다. 그리고 새 텍스트 문서.txt -> 새 텍스트 문서.bin 으로 확장자를 변경해야 리소스해커에서 로드할 수가 있습니다.
4-2. 리소스해커로 원본 파일을 로드한 후 이 BIN 파일을 2번처럼 교체합니다.
교체 후 원본 파일을 실행하면 중어이지만 리소스해커로 한글화를 할 수가 있습니다.
5. 제목만 한글화를 해보았습니다.
댓글 [13]
-
상발이 2023.11.15 05:47
-
cungice 2023.11.15 08:30
감사합니다. 수고 많으셨습니다.
-
세이퍼컴 2023.11.15 10:06
수고하십니다.
단일파일제작도구 7.0.2.382 해독중인데
3-7 --> 3-8번 복호화 실패가 나오네요.
crypter1.2.txt (복호화 이미지코드) 틀린가 봅니다.
어떻게 수정하는 지 알 수 있을까요?
-
sunshine 2023.11.15 10:10
테스트를 위해서 단일파일제작도구 7.0.2.382 를 첨부해주세요.
-
세이퍼컴 2023.11.15 10:18
첨부했습니다
-
왕초보 2023.11.15 12:16
스크립트가 x86만 가능하고 하셨던것 같습니다..
sunshine님 처럼 bin 추출후 전용 pecmd.exe (x86 같습니다)에 넣어서 추출하시는 방법은 잘되시는것 같습니다
한글화에 성공하시길 바랍니다
-
세이퍼컴 2023.11.16 05:05
한글화한다고 정신없다보니...
모두들 감사합니다
엄청 분량이 많아서.. 아직 미완성입니다.
폼수정까지 해야 되기에
-
夕影 2023.11.15 19:10
명령어 사용법을 알고싶은거라면
https://help.x64dbg.com/en/latest/ 여기에 나와 있습니다
-
sunshine 2023.11.15 10:55
SCRIPT101.bin: 원본에서 추출한 스크립트
SCRIPT101-수정.BIN: 원본 스크립트를 대상 파일로 이식 후 디버거로 추출 ->
NOTEPAD2로 "다시 읽기"하고 "새로운 텍스트 파일" 생성 후 NOTEPAD2의 텍스트를 "복사"한 스크립트
한글화 테스트를 위해서 제목 줄만 한글화를 했습니다.
단일파일제작도구x64-수정.7z: 원본을 SCRIPT101-수정.BIN로 수정한 실행 파일
- 아래처럼 한글이 잘 나옵니다. 나머지는 리소스해커로 수정하세요.
-
SPiRiTY 2023.11.15 11:54
멋지십니다.. 이런 강좌가 꼭 필요했었던 적이 있었습니다.
夕影님, sunshine님 두 분 모두 아낌없는 정보의 나눔과 수고에 진심으로 감사의 말씀올립니다.
정말 수고 많으셨고, 감사드립니다.^^
-
왕초보 2023.11.15 12:15
x86 x64 상관없이 소스를 추출해서 전용 pecmd.exe에 추가후 소스를 추출하는 방식으로 진행이 되었네요
편한 방식을 상세히 설명을 해주셔서 감사합니다
복 많이 받으십시요
-
꽃동산 2023.11.15 20:08
고급 정보 감사합니다. -
개골구리 2023.11.16 10:51
수고하셨습니다.
번호 | 제목 | 글쓴이 | 조회 | 추천 | 등록일 |
---|---|---|---|---|---|
[공지] | 강좌 작성간 참고해주세요 | gooddew | - | - | - |
310 | 윈 도 우| VHD를 WTG로 사용하기_Win8 [11] | 하늘보기 | 18750 | 18 | 04-14 |
309 | 소프트웨어| MSEdge_Browser_64_XPE_File.Script 수정방법 [11] |
|
1714 | 18 | 12-17 |
308 | 기 타| GRUB 부팅 USB 만들기. 쉽게 써보려고 노력...; [35] | 서기다 | 8366 | 18 | 03-08 |
307 | 윈 도 우| UEFI/Legacy 공용 USB 만들기 [29] | 히이이잌 | 10914 | 18 | 09-27 |
306 | 소프트웨어| (마지막)winpe 숨겨진 파일 및 확장자 보기 우클릭 등록 팁 [18] | sunshine | 3355 | 18 | 03-20 |
305 | 소프트웨어| Resource Hacker™ 4.7.34 kr [15] | VenusGirl | 3511 | 18 | 04-09 |
304 | 윈 도 우| 새 술은 새 부대에... 라는 말... [20] | 디폴트 | 4046 | 18 | 05-09 |
303 | 윈 도 우| 업데이트의 다양한 이용 [7] | 디폴트 | 4327 | 18 | 05-11 |
302 | 윈 도 우| 유용한 CMD 명령어 정리 [7] | gooddew | 4143 | 18 | 01-26 |
301 | 윈 도 우| 초보자도 할수 있는 윈도우 설치 방법 (UEFI) [12] | gooddew | 5213 | 18 | 06-30 |
300 | 윈 도 우| 20H2 19042.610에서 클래식 시스템 화면 보기 [6] | dreamsbk1 | 4278 | 18 | 11-03 |
299 | 기 타| 자신의 음악성향에 맞게 EQ(이퀼라이저) 설정하기 [10] | UCLA | 5693 | 18 | 12-02 |
298 | 기 타| 【한】Ventoy 핫키메뉴 한글화 하기 [4] | qnd | 3550 | 18 | 06-06 |
297 | 윈 도 우| 윈도우 10 설정편 Tips (보완) [12] | 뉴썬 | 6064 | 18 | 03-08 |
296 | 윈 도 우| 스크린샷 이쁘게좀 찍어 올립시다.. [ Tip ] [16] | 메인보드 | 3984 | 18 | 02-10 |
295 | 윈 도 우| 인증서 백업 복구 배치파일 [9] | 센돔타오르 | 2546 | 18 | 08-05 |
294 | 소프트웨어| 【팁】Ventoy 설치부터 제거까지 사용법s [5] | qnd | 5098 | 18 | 05-29 |
293 | 윈 도 우| 시스템 종료 컨텍스트 메뉴 [13] | 슈머슈마 | 1831 | 18 | 10-30 |
292 | 윈 도 우| DriveSnapshot 백업 복구 [17] | 슈머슈마 | 2868 | 18 | 11-13 |
291 | 윈 도 우| 윈도우 부팅 오류 복구 + RSImageX 조합 BCDboot 임의 삭제... [10] | 무월 | 2653 | 18 | 12-04 |
수고하셨습니다.