디시인사이드 갤러리

마이너 갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

[일반] 청사진 문자열에 대해 알아보자.araboza

예토_갤로그로 이동합니다. 2019.11.14 19:28:16
조회 4184 추천 13 댓글 10
														

3줄 요약

1. 맨 앞 숫자 0은 버전 정보

2. 나머지 문자열은 JSON 문자열을 zlib level 9로 한번 압축하고 이후 Base64로 인코딩 되어있음

3. 복호화 하는데 소스코드 4줄 들어감


viewimage.php?id=2bbcd332eac031a9&no=24b0d769e1d32ca73fed84fa11d02831150e3d5bd66e1c599a53528ed1f42cc0af05d03feabac3ab734b07c34bcce383c49f805c9368602243ace63804f92ed860d70638

이제 31시간 해놓고 과학팩3 다음부터 자동화 못해서 현자타임에 빠진 팩린이임

이것저것 꿀팁같은거 찾아보다가 청사진이라는걸 알게 되었고, 얘가 문자열로 제어된다는걸 알게됨



https://gall.dcinside.com/mgallery/board/view/?id=factorio&no=11692
가장 처음에 념글에서 봤던 태양광 청사진이었음 이거 보고 내가 지어놓은 발전소가 너무 못생겨 보이기 시작했다


암튼 거두절미하고 본론으로 들어가자면, 생각보다 깔끔한 기능임


0eNqdl02PmzAQhv8K8qlVYYU/QoBjpN4r9VhVkZO1VtYag8C7bbTiv9cQdU ...

0eNqVm+tqI0kMRt+lfztDV1XXpfMqwzA42WYwOHbwZdkQ8u7rZMhsWPRV6/...


위 두 문자열은 다른 청사진인데, 뒤에까지 다 쓰면 너무 길어서 후략 했음

공통적으로 보면 가장 앞에 0 이라는 숫자가 붙어있는데, 이는 다른 모든 청사진 문자열에 붙어있음


이런식으로 공통되게 만들어진 숫자는 같은 문자열을 암호화 했거나, 그냥 강제로 때려박은 숫자이거나 둘중 하나임

무슨 암호화 방식인지는 대충 파악했는데 글자수가 안맞기 때문에 거의 100퍼센트 강제로 때려박은 숫자라고 생각했고, 그게 맞았음


청사진 문자열의 첫 문자는 그냥 강제로 때려박은 숫자 0인데, 아마도 청사진 암호화 버전을 뜻하는거 같다

나중에 맨 앞 숫자가 1 이나 다른 숫자로 바뀌면 이 암호화 방식이 아니라 다른걸로 바뀌었다는 것 ㅇㅇ


그러면 일단 맨 앞 숫자 0의 비밀은 알았으니 걔는 떼고 생각하자


eNqdl02PmzAQhv8K8qlVYYU/QoBjpN4r9VhVkZO1VtYag8C7bbTiv9cQdU ...

eNqVm+tqI0kMRt+lfztDV1XXpfMqwzA42WYwOHbwZdkQ8u7rZMhsWPRV6/...


그 후 남아있는 애들은 암호화 되어있는 문자열인데, 대체로 /+-= 같은 특문이 많이 나오는 암호화 방식은 Base64 방식의 알고리즘임

매우 간단한 암호화 방식이라서 쉽게 decoding가능하다


솔직히 여기서 끝인줄 알았음


viewimage.php?id=2bbcd332eac031a9&no=24b0d769e1d32ca73fed84fa11d02831150e3d5bd66e1c599a53528ed1f42cc0af05d03feabac3ab734b07ae27c8e58540f9e57f3e3f0e1f80387d0bd478ff3b34f21f

이것도 너무 길어서 후략한 것

대충 뭔가 더 있는걸 이때 알았음


이렇게 생긴 암호화는 본적이 없어서 내부적으로 hash key를 집어넣어서 복호화 하는 인코딩이라고 생각했는데, 실제로는 문자열 압축 이었음

zlib라는 라이브러리를 통해 문자열을 압축시켜버린건데, 쉽게 설명하면 .txt 파일을 .zip으로 압축하듯이 문자열을 압축했다고 생각하면 됨


물론 .zip파일도 압축 해제가 되듯이 문자열도 같은 방식으로 압축 해제가 가능함

실제로 해당 압축 문자열을 압축해제 해보면 나오는 문자열은 아래와 같음


viewimage.php?id=2bbcd332eac031a9&no=24b0d769e1d32ca73fed84fa11d02831150e3d5bd66e1c599a53528ed1f42cc0af05d03feabac3ab734b07ae27c8e58540f9e57f3e3f0e4f876f720fdc2bf53b6463bc

위 사진처럼 드디어 읽을 수 있는 문자열이 나오게됨. 해당 문자열 포맷은 JSON 방식으로 데이터를 전달/저장하는 방식 중 하나임

이거를 보기좋게 다듬어보면


viewimage.php?id=2bbcd332eac031a9&no=24b0d769e1d32ca73fed84fa11d02831150e3d5bd66e1c599a53528ed1f42cc0af05d03feabac3ab734b07c34bcce383c49f805c9368602216a6e13a0ef72e8ee726d1a3

이런식으로 되어있음

아이콘은 청사진 겉면에 붙은 구조물 아이콘이 뭐가 들어가 있는지 들어있는 곳이고,

실제로 구조물들이 들어가는것은 entities라는 리스트에 오브젝트로 묶여서 구조물의 number, name, position 정보가 들어있음 ㅇㅇ

개인적으로 entitiy_number 변수는 굳이 필요한가 싶음 내부적으로 쓰이는 뭔가가 있는건가


말이야 거창하고 어려운 얘기 밖에 없지만 실제로 복호화 하는 코드를 짜보면


viewimage.php?id=2bbcd332eac031a9&no=24b0d769e1d32ca73fed84fa11d02831150e3d5bd66e1c599a53528ed1f42cc0af05d03feabac3ab734b07c34bcce383c49f805c9368602245a0e46f0ff97c8f60f28fe2

import부분하고 문자열 넣는 부분 빼면 4줄밖에 안됨


아무튼 결론은 청사진 문자열은 개좋은 기능이 맞고 잘만들기도 했고

해당 문자열은 복호화 하기 쉬우니 관련 유틸리티를 만들어보는것도 좋을거 같음

이참에 웹으로 청사진 생성/수정 할 수 있는거 만들어보려고 생각중


추천 비추천

13

고정닉 5

0

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 말머리 제목 글쓴이 작성일 조회 추천
2858 설문 SNS로 싸우면 절대 안 질 것 같은 고집 있는 스타는? 운영자 24/05/06 - -
2859 AD 나혼렙 어라이즈 그랜드 론칭! 운영자 24/05/09 - -
7167 공지 신문고 [49] 설냥이갤로그로 이동합니다. 18.12.15 12593 12
21906 공지 [뉴비필독] 이 글 먼저 읽어라 [21] 설냥이갤로그로 이동합니다. 20.08.12 72994 92
1711 공지 팩토리오 갤러리는 어떤 곳인가요? [6] 설냥이갤로그로 이동합니다. 17.11.02 61964 34
24150 공지 공략 모음 Ver 0.1 (2020-08-31) [11] 고속도로갤로그로 이동합니다. 20.08.31 111499 22
17413 공지 팩토리오가 어려운 뉴비분들에게 전하고싶은 이야기 [29] ㅇㅇ(175.124) 20.04.07 42498 78
65182 일반 크탐모 60시간만에 우주옴 팩붕이(58.239) 17:51 6 0
65181 질문 LTN 쓰는데 왜 요청역에 와서 공급을 기다리고있는경우가 가끔 있는거지 [1] 팩붕이(61.101) 17:15 13 0
65180 일반 석탄 액화는 쓰는게 이득인가 [2] 개허접임갤로그로 이동합니다. 16:55 36 0
65179 일반 팩린이 그리드 성업중 개허접임갤로그로 이동합니다. 16:46 34 0
65178 질문 유체 보관 그리드 질문 [4] 팩붕이(39.124) 16:46 34 0
65177 일반 요즘 휴일에도 멀티 자주 열림? ㅇㅇ갤로그로 이동합니다. 15:59 27 0
65176 일반 어우 시발 정유공장 짓다가 뇌정지 와서 잠깐 끔 [3] ㅇㅇ(118.235) 15:13 57 1
65175 일반 본인 역대 공장 전경 [4] Ilya_Repin갤로그로 이동합니다. 14:40 89 0
65174 질문 원심분리기 몇 개 설치해야함?? [4] 팩붕이(39.118) 11:24 98 0
65173 자랑 절벽 끄고 한 기본 세팅 약 35시간 단축 ㄷㄷ [1] 팩붕이(182.226) 11:16 110 3
65172 일반 이거 둘이 뭔 차이지 [3] EZV갤로그로 이동합니다. 10:38 121 1
65170 자랑 팩토리오 -完- [7] 부엉ㅇ갤로그로 이동합니다. 04:47 350 10
65169 일반 이라다걍 다음주 출시해주면 태수토스테론갤로그로 이동합니다. 02:53 96 0
65168 연재 시블럭 51-52일차 - 모듈 생산 시작/중수소 원자로 가동 팩붕이(175.119) 02:31 65 0
65167 일반 크탐모 원자력은 디자인 있음? [4] 팩붕이(119.200) 01:57 96 0
65166 일반 포탑 타겟 필터링 이거 혹시 바이터 보스 이런거 아니냐 [4] ㅇㅇ(125.176) 01:12 83 0
65165 질문 30과학팩 모드 과학팩 비율 조절 관련 AdHoc갤로그로 이동합니다. 00:29 51 0
65164 질문 사이버신 구간 나눌 수 있나요? [2] 팩붕이(118.45) 05.10 88 0
65162 일반 야호 시블럭 빨칩그리드다 야호야호 낚구갤로그로 이동합니다. 05.10 93 0
65161 일반 다음주 FFF 행성일수도 있지 않을까 [2] 고속도로갤로그로 이동합니다. 05.10 170 3
65160 일반 팩린이 바이터한테 빠큐먹었다;; [1] EZV갤로그로 이동합니다. 05.10 177 3
65159 일반 다음주도 행성 아니네 [1] 토루갤로그로 이동합니다. 05.10 134 0
65158 정보 FFF #410 - 로켓 포탑 & 타겟 우선순위 [14] 토루갤로그로 이동합니다. 05.10 586 17
65157 정보 fff떴다 [3] 설냥이갤로그로 이동합니다. 05.10 150 0
65156 자랑 팩뉴비의 자작 단선 그리드 자랑 [6] 팩붕이(220.120) 05.10 154 3
65155 일반 응애 팩 뉴비 어려워.. [3] 팩붕이(210.205) 05.10 127 2
65154 일반 크라2 모드가 사기네 [4] 팩붕이(182.231) 05.10 152 0
65153 일반 그리드, 버스 스파게티 전부 느낌이 다름 ㅇㅇ(211.235) 05.10 81 0
65152 일반 기차역 대각 설치도 되면 좋겠다 [8] ㅇㅇ(1.241) 05.10 142 0
65151 일반 극초반 그리드 짓기 ㅈㄴ 귀찮네 [2] ㅇㅇ(1.241) 05.10 148 0
65150 질문 로켓 준비~발사 뒤 재장전 모션까지 몇초인지 궁금함. [7] 팩붕이(119.203) 05.10 110 0
65149 일반 엑조틱은 자원 삭제 요소 있나? [3] ㅇㅇ(1.241) 05.10 103 0
65148 일반 오늘인가 [1] Dustear갤로그로 이동합니다. 05.10 82 0
65147 질문 크라2 연구소 원래 이렇게 늦어요 ? [4] 팩붕이(182.231) 05.10 128 1
65146 질문 로켓하나 쏠때 로켓부품이 몇개나 필요한거야? [5] 팩붕이(119.203) 05.10 136 0
65145 일반 이거 보니까 빨리 DLC 나왔으면 좋겠구나 [2] ㅇㅇ(210.113) 05.10 308 0
65144 질문 Ltn 찌거기 어캐 해결함? [9] ㅇㅅㅇ(125.181) 05.10 169 0
65143 자랑 지저분한 구리 스파게티를 정리해봤다 [10] ㅇㅇ(1.243) 05.10 302 0
65142 정보 고급정제배우면 그냥다 고급으로 하는게좋음?? [8] ㅇㅇ갤로그로 이동합니다. 05.10 220 0
65141 질문 아니 하늘팩부터 석유 어케써야대는지 감도 안잡히는데 [4] ㅇㅇ갤로그로 이동합니다. 05.10 193 0
65140 멀티 멀티방 만들었는데 같이 하실 분 [2] 팩붕이(180.68) 05.09 126 0
65139 질문 선로 투입기 질문좀 [7] 팩붕이(221.162) 05.09 140 0
65138 일반 분배기에 회로가 없는 이유가 뭘까 [1] 팩붕이(119.200) 05.09 129 0
65137 연재 오늘의 우탐모 [2] 팩붕이(180.224) 05.09 170 3
65136 질문 이건 뭐죠? 소가니갤로그로 이동합니다. 05.09 134 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2