kone
sub_icon

심야시장

Base64 자동 디코더

2025-05-25 18:18:11
유틸
조회 4568 · 좋아요 3

Tempermonkey 설치 후 아래 스크립트 추가 하기...


설명은 다른사람들이 알아서 할것 같아서 그냥 싸지르고 튀겠습니다.


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

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

// ==UserScript==

// @name         Base64 AutoDecoder

// @namespace    http://tampermonkey.net/

// @version      1.0

// @description  디코딩 가능한 base64 문자열을 링크로 변환합니다.

// @author       Zeliper

// @match        https://kone.gg/s/imya/*

// @include      https://kone.gg/

// @grant        unsafeWindow

// ==/UserScript==

unsafeWindow.on = true ;

( function () {

'use strict' ;

// Base64 문자열을 URL로 디코딩하는 함수

function  decodeBase64ToURL(str) {

try  {

const  decoded =  atob(str); // Base64 디코딩

// URL이 http 또는 https로 시작하는지 확인

if  ( / ^https?:\ / \ //.test(decoded)) {

return  decoded; // 유효한 URL이면 반환

            }

        } catch  (e) {

return null ; // 디코딩 오류가 나면 null 반환

        }

return null ;

    }

// 텍스트에서 Base64 문자열을 찾아 링크로 변환하는 함수

function  replaceBase64WithLink(node) {

console .log( "Node : " , node);

const  base64Regex = / \b[a - zA - Z0 - 9 + / = ]{ 20 ,}\b / g; // Base64 문자열을 찾는 정규식

let  text =  node.textContent; // 텍스트 노드의 텍스트 내용

let  match;

const parent =  node.parentNode;

let  lastIndex = 0 ;

// 텍스트에서 Base64 문자열을 찾아서 처리

while  ((match =  base64Regex.exec(text)) ! = = null ) {

const  before =  text.slice(lastIndex, match.index);

const  base64Str =  match[ 0 ];

const  decodedURL =  decodeBase64ToURL(base64Str);

if  (decodedURL) {

console .log(decodedURL);

// 유효한 URL이 디코딩되었으면 링크로 변환

const  a = document .createElement( 'a' );

                a.href =  decodedURL;

                a.textContent =  decodedURL;

                a.target = '_blank' ;

//node.textContent = ''; // <-- 나중에 문제 없으면 이거 넣어서 해도 될듯

                node.appendChild( document .createElement( 'br' ));

                node.appendChild(a);

            } else {

console .log( "Failed" );

            }

            lastIndex =  base64Regex.lastIndex;

        }

    }

// .prose-container의 Shadow DOM을 탐색하여 텍스트 변환

function  walkShadowRoot(shadowRoot) {

const  textNodes =  shadowRoot.querySelectorAll( ':not(div)' );

// 모든 텍스트 노드를 확인

        textNodes.forEach(node = >  {

            replaceBase64WithLink(node);

        });

    }

// .prose-container가 로드된 후 Shadow DOM 탐색

function  processShadowRoot() {

const  container = document .body.querySelector( '.prose-container' );

if  (container & &  container.shadowRoot) {

            walkShadowRoot(container.shadowRoot); // Shadow DOM 처리

        }

    }

// 페이지가 완전히 로드된 후 실행

function  onLoad() {

        processShadowRoot();

    }

// MutationObserver를 사용하여 .prose-container의 Shadow DOM 로드를 감지

const  observer = new  MutationObserver(() = >  {

const  container = document .body.querySelector( '.prose-container' );

if  (container & &  container.shadowRoot) {

            processShadowRoot();

        }

    });

// .prose-container가 추가될 때까지 대기

    observer.observe( document .body, { childList: true , subtree: true  });

// 페이지 로딩이 완료되면 바로 실행

if  ( document .readyState = = = 'complete' ) {

        onLoad();

    }

})();

cs

3
댓글 6개
댓글 쓰기
25.05.25
복붙하니까 eslint : no-multi-spaces - multiple spaces found before 이런 오류 뜨는 데 왜 그런지 암?
주황색 세모에 ! 있는거 왼쪽 line표시에 나오는거면 eslint 문법 체크인데 무시해도됨. 실제 동작 하는지 페이지 새로고침 해서 base64문자 밑에 링크 생성만 되면 동작하고 있는거임
25.05.26 (04.02)

삭제된 댓글입니다.

25.05.27 (04.02)

삭제된 댓글입니다.

25.11.15
안되는데..
0 / 500
풍기위원은 여음마의 꿈을 꾸는가?
번역
L
25.06.08 14418 51
설화 외전 복구가능할까요?
질문&요청
rdafsa
25.06.08 2016 0
최면성지도
영상
mu0sigma
25.06.08 6321 12
TwoControl
유틸
L
25.06.08 5088 11
루네의약방 복구 요청드립니다.
질문&요청
zeimia
25.06.08 1605 0
RJ151776 누나 벌이 복구 부탁드립니다. ㅠㅠ
질문&요청
lidjjfifkfn
25.06.08 2116 0
RJ01087268 생 오나호 공장 섬멸대 요청드립니다.
질문&요청
santaslittlehelper
25.06.07 1730 1
몬스터파크2/ 음요충 시리즈 가지고 있는사람?
질문&요청
yadamaanna
25.06.07 2104 0
압축을 해제하는데 CRC오류라는건 무슨 의미인가요?
질문&요청
승소산
25.06.07 1397 0
이터넘 브금 수정전 0.8.1 버전 부탁드림미다
일반
yamiyami
25.06.07 1982 0
잠 못 드는 양과 고독한 늑대 본편 + 외전
번역
ㅇㅇ
25.06.07 7522 15
만차율 300 3 세이브좀 부탁해용
질문&요청
crashn11
25.06.07 2362 0
RJ01241743 풍기위원은 여음마의 꿈을 꾸는가? 간청합니다..
질문&요청
177523
25.06.07 1706 2
무치무치 왕가슴 꼬추먹는 마왕님과 낡은 다다미 동거생활 번역작 있으신분 복구 부탁드립니다
질문&요청
아스나
25.06.07 2373 0
에로 검열관(the censor) 요청드립니다!
질문&요청
junjujn
25.06.07 2378 0
길티 나이트메어 시리즈 올려주실분 계신가요..
질문&요청
ma-ni
25.06.06 1760 0
19,nsfw) 혹시 이영상 만든 사람이나 음성 녹음한 사람 누군지 아는 사람있나요
질문&요청
floridaman0982
25.06.06 2280 0
세이브 탭같은건 없나
일반
digoldenn
25.06.06 1331 0
혹시 여기서 야설 써도 됨?
질문&요청
lion159753
25.06.06 1457 -1
챈 방주 다운 못받은 거 복구
번역
h-o-h
25.06.06 12294 21
bjmania, 3dplayer03, ONA, vamonly 등 vam 작가님들 작품들 요청합니다 ㅠㅠ
질문&요청
fumetholone
25.06.06 3145 -1
[후타]AgentRedGirl영상 부탁드립니다!!!!!!
질문&요청
pigyuma
25.06.05 1682 0
REBF 신작 나온거 복구 요청드립니다
질문&요청
dummydumb
25.06.05 1354 0
여기 서브 중에 소미소프트도 따로 있던데
질문&요청
lalarakaman
25.06.05 3650 0
아마카노
질문&요청
케붕쿤
25.06.04 1005 1
좀 더! 임신! 불꽃의 가슴 초에로 어플 학원!
번역
L
25.06.04 12412 53
해피니스더블룸/초보가출소녀와나/쿠로카미루나 있으신분 복구 부탁드립니다
질문&요청
zeimia
25.06.04 1324 0
[SQUEEZ] 불꽃의 임신 젖가슴★에로 어플 학원 / 뉴 동급생 한패된것 찾습니다
질문&요청
스튜디오레센
25.06.04 2080 0
블루아카이브 카즈사 ASMR
소리
sinnsida
25.06.04 4888 6
시드 오브 데드v2.10
번역
L
25.06.04 6373 15