일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- svn 특정 리비전 사이 추출
- Store password unencrypted
- Failed to download metadata for repo 'appstream'
- taskkill
- docker oracle12c
- svn dump
- svn log
- mysql dml
- expected at least 1 bean which qualifies as autowire candidate
- svn load
- 프로젝트 네임변경 후 이클립스 로딩시 에러
- javax.servlet.GenericFilter
- svn update
- postgres install
- docker 폐쇄망
- Remmina
- VirtualBox
- ant
- Cannot prepare internal mirrorlist: No URLs in mirrorlist
- apt-get update 오류
- Oracle install
- svn
- WH question
- svn commit
- NEXUS
- grep
- svn 사용법
- xrdp
- 포스트그레스 설치
- svn 변경된 파일 추출
- Today
- Total
기억의 습작
소스코드 반출 방법 본문
외주 개발시 작성한 소스코드는 내가 작성한 소스코드이며 내 자산이기 때문에 타 프로젝트시 분명 참고가 될만한 소스코드가 많이 내포되어 있을 것이다. 또한 유지보수 차원에서 소장하고 있다면 발빠른 대처가 가능하기도 하다. 하지만 대부분 보안을 이유로 외부 반출이 금지 되어 있으며 유출시 기록에 남기 때문에 강행하기도 망설여 진다.
방법은 여러가지가 있지만 그 중 두 가지를 소개 한다.
- QR코드로 사진 촬영 후 이동
- jpg 및 pdf 파일에 몰래 숨겨서 정식 철자를 밟고 승인 후 빼돌리기. (파일안에 교묘하게 잘 숨겨야한다)
우선 1번에 해당하는 QR코드 사진촬영 방법은 유출하기 위한 소스코드를 최대한 압축율 좋게 압축한다.
압축 파일은 아래와 같이 binary 형태로 되어있을 것이다.
PK ?딭,?賃 >) settings.xmlz? ? 휹m뤭6??<@f[J?Wl]{M陵붙 需衝湧뷻쌱ITE?m퓓!%J鈗軸KEcS乭p^?z浚CY댙j?剌?쯕Ufr]m퓷~?3z玹r2Y?>??UV敭?J\????쾂?i?:????浿a*51? l??}?X(삙먞F쯗U?B쵓”璞7략?땷.??_??캚[q0枯?숂쇜B?Ja朗춍?윱>6z퍀?*8?戮?O?캅L?찬렑騶G’? ~ 생략.. |
해당 binary를 16진수 코드로 변환하여 String 으로 출력한다.
377ABCAF271C0003CED002AE23630000000000002400000000000000310921CBE1C78E5D965D0038184899CD1775240812B8C9941973D1A7603AA64BA624756E012F8440E00780DACC190BF8219CD13BB5BE6361907677F120E2A79053BEC0EF4563A9F8AA4D3F20AC7EE1FCA7FE253A85F6C71FEACCE9880119A0A358FD21 생략.. |
아마 어마어마한 16진수 코드가 나올 것이다. 약 2048 글자씩 끊어서 해당 문자를 QR코드로 생성한다.
필자가 테스트 할 당시 25Kbyte (0.025Mb) 용량은 25장이 QR코드가 필요했다 (QR코드는 약 7000 자 까지 수용이 가능하다고 나와 있었으나 java코드를 생성하려고 하면 너무 크다고 생성이 안되었음)
뽑아낸 QR코드를 모두 모니터에 띄운 후 휴대폰 QR코드 인식기로 촬영하여 16진수 값을 얻어낸다.
얻어낸 16진수값 String을 카톡이나 메일을 통해 전송해둔다.
소스를 착출할 곳에서의 작업은 여기까지.
이하 작업은 소스를 옮길곳에서 작업할 내용이다.
전송해 뒀던 16진수 값들을 하나의 txt 파일로 합친다.
16진수 String을 다시 binary로 변환한 후 파일로 적장한다.
private byte[] hexToByte(String s) { int len = s.length(); byte[] data = new byte[len/2]; for (int i=0; i<data.length; i++) { int index = i*2; int v = Integer.parseInt(s.substring(index, index+2), 16); data[i] = (byte)v; } return data; } |
이제 파견지에서 가져오고 싶었던 소스코드(압축파일) 를 내 PC에서 확인 할 수 있다.
장점: 사진촬영만 가능하다면 언제든지 유출이 가능한다.
단점: 용량이 많으면 사진을 많이 찍어야 하기 때문에 힘들다.
2번 방법은 다음 글에서 추가 하겠습니다..
'Software > JAVA' 카테고리의 다른 글
spring boot 를 war로 생성하여 tomcat 서버에 올렸을 때 발생되는 오류 (0) | 2021.08.26 |
---|---|
jar 패키지로 생성된 spring boot 프로젝트를 war 패키지로 변경 (0) | 2021.08.26 |
Project and External Dependencies 가 없을 때. (0) | 2021.08.26 |
롬복 lombok 사용 (0) | 2021.08.26 |
다중 main class 가 포함된 jar 파일에서 선택적으로 실행하는 방법 (0) | 2021.08.24 |