디시인사이드 갤러리

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

갤러리 본문 영역

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

예토_갤로그로 이동합니다. 2019.11.14 19:28:16
조회 4170 추천 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
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 말머리 제목 글쓴이 작성일 조회 추천
2853 설문 연인과 헤어지고 뒤끝 작렬할 것 같은 스타는? 운영자 24/04/22 - -
2854 AD [원신] 신규 5성 아를레키노 등장 운영자 24/04/26 - -
7167 공지 신문고 [49] 설냥이갤로그로 이동합니다. 18.12.15 12501 12
21906 공지 [뉴비필독] 이 글 먼저 읽어라 [21] 설냥이갤로그로 이동합니다. 20.08.12 72279 92
1711 공지 팩토리오 갤러리는 어떤 곳인가요? [6] 설냥이갤로그로 이동합니다. 17.11.02 61865 34
24150 공지 공략 모음 Ver 0.1 (2020-08-31) [11] 고속도로갤로그로 이동합니다. 20.08.31 110408 22
17413 공지 팩토리오가 어려운 뉴비분들에게 전하고싶은 이야기 [29] ㅇㅇ(175.124) 20.04.07 42162 77
64749 질문 이번엔 기차가 스케쥴을 못잡는데.. [6] 팩토리2(218.209) 07:04 44 0
64748 자랑 싯팔 보라 물약 공장 재료 다 모았다 팩붕이(222.97) 05:06 32 0
64747 연재 시블럭 38-39일차 - 보석 가공, 리튬 이온 전지 생산 팩붕이(175.119) 04:49 29 0
64746 일반 그리드로 하트 그렸다 [3] AdHoc갤로그로 이동합니다. 03:33 57 0
64745 질문 속도 풀로 땡기면 거미가 더 빠르냐? 사람이 더 빠르냐? [1] 풀러리갤로그로 이동합니다. 02:20 55 0
64744 질문 1k 베이스는 물약 공장들을 어떤 식으로 배치함? [4] 팩붕이(222.97) 01:57 77 0
64743 질문 그리드 인풋 아웃풋이 많으면 어떻게 처리해? [2] 팩붕이(123.214) 00:59 59 0
64742 일반 지뢰 이거 벽도 뿌개버리네 ㅋㅋ [3] 태수토스테론갤로그로 이동합니다. 00:44 94 0
64741 질문 물류 회로 질문 [2] 팩붕이(180.224) 04.27 44 0
64740 자랑 뉴비 2트에 씹턱걸이로 15시간 업적깼다 휴.. [1] 팩붕이(182.226) 04.27 72 2
64739 일반 Dlc 티어 나오면 로봇 효율이 압도적으로 올라가나? [5] 팩붕이(118.235) 04.27 126 0
64738 질문 기차 경로 이거 중간에 끼워넣는 방법 없나?? 임시역 말고 [4] 팩붕이(211.173) 04.27 96 0
64737 일반 튜토리얼 5시간 지났는데 이거 정상임? [5] ㅇㅇ(221.158) 04.27 117 0
64736 일반 help)그리드는 1역 1품목 하차로 만들어야 함? [3] 팩붕이(58.239) 04.27 98 0
64735 질문 크라2 스파이더트론 리모컨 어디감? [2] ㅇㅇ갤로그로 이동합니다. 04.27 67 0
64734 멀티 주말 가볍게 바닐라 멀티 한겜 카이녹스갤로그로 이동합니다. 04.27 69 0
64733 질문 회로 질문입니다 [1] 팩붕이(39.121) 04.27 44 0
64732 질문 청사진 질문 [3] 팩붕이(211.199) 04.27 53 0
64731 일반 늅늅이 크라2 스샷 [1] 팩붕이(211.202) 04.27 72 0
64730 일반 밥스 로켓쏨 AdHoc갤로그로 이동합니다. 04.27 50 0
64729 일반 시블럭 한지 백수십시간만에 낚구갤로그로 이동합니다. 04.27 66 0
64728 일반 모드 포탈 개편됐네? 이파갤로그로 이동합니다. 04.27 134 1
64726 질문 철거하다가 붕 떠버린 드론들은 어떻게 해야해...? [2] 팩붕이(211.173) 04.27 91 0
64725 일반 뉴비 공장 건축일지 팩붕이(125.251) 04.27 78 2
64724 일반 이거 나온적 있었나?? [12] 토루갤로그로 이동합니다. 04.27 207 2
64723 일반 최근까지 rpg겜 하다가 슬슬 공장 풍경 그리워져서 돌아왔다 [1] ㅇㅇ갤로그로 이동합니다. 04.27 103 0
64722 일반 림월드 즐기다 왔는데 이 지구는 DLC 아직인가요 [5] 팩붕이(86.48) 04.27 148 1
64721 일반 사이버신 공급이 부족하면 제대로 분배가 안되는 느낌인데 [5] ㅇㅇ갤로그로 이동합니다. 04.27 80 0
64720 정보 유체 흐름 실험 [1] 팩붕이(180.224) 04.27 156 3
64719 일반 뭐야 노랑포션이 거의 극후반부였네 [2] 팩붕이(183.101) 04.27 173 0
64718 질문 이게 버퍼역 맞나?? 팩붕이(180.224) 04.27 107 0
64717 질문 cybersyn 임계값은 요청역 설정에만 작동하는 것이지? [4] 팩붕이(118.235) 04.27 65 0
64716 일반 다중공급역이 진짜 계륵이네 [7] 팩붕이(121.148) 04.27 192 0
64715 모드 우탐모 비행로봇 교통사고는 왜있는거냐 [4] ㅇㅇ(112.187) 04.27 160 0
64714 질문 분배기처럼 왼쪽먼저 보내는 유체흐름가능? [5] 불신갤로그로 이동합니다. 04.27 159 0
64713 일반 왜 발전기 효율 업글 테크놀로지는 못만들지 [2] 팩붕이(119.200) 04.27 118 0
64712 일반 고가 철도 아래로 물건 하차하기 나오면 재밌겠다 [4] 팩붕이(59.15) 04.27 122 0
64711 질문 UI 어디갔냐 도대체 ㅅㅂ 팩붕이(58.238) 04.26 192 0
64710 질문 CyberSyn을 쓰는데.. [4] 팩토리2(218.209) 04.26 123 0
64709 질문 아까 그리드 철도 다시 올렷음 팩붕이(110.70) 04.26 59 0
64708 일반 현생살다가 생각나서 들어와서 갤글 읽어보고 갑니다... [1] 팩붕이(49.142) 04.26 118 0
64707 질문 [질문] 요청상자 회로 질문 [8] 팩붕이(211.184) 04.26 147 0
64706 일반 행성은 다다음주려나 토루갤로그로 이동합니다. 04.26 104 1
64705 질문 혹시 그리드 철도 잘 만들어졌는지 봐주실 분... [2] 팩붕이(175.223) 04.26 109 0
64704 정보 FFF #408 - 통계 개선, Linux 모험 [7] 토루갤로그로 이동합니다. 04.26 664 14
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2